diff --git a/Samples~/Hand Driver Demo/HandDriver/Model.meta b/Samples~/Hand Driver Demo/Model.meta
similarity index 77%
rename from Samples~/Hand Driver Demo/HandDriver/Model.meta
rename to Samples~/Hand Driver Demo/Model.meta
index 688f455..80d0bb5 100644
--- a/Samples~/Hand Driver Demo/HandDriver/Model.meta
+++ b/Samples~/Hand Driver Demo/Model.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 132e3b41f20a4f94cb20406095cdb38a
+guid: bdb07b9e9393c8040b9000470b1b9119
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg b/Samples~/Hand Driver Demo/Model/vr_glove_color.jpg
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg
rename to Samples~/Hand Driver Demo/Model/vr_glove_color.jpg
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg.meta b/Samples~/Hand Driver Demo/Model/vr_glove_color.jpg.meta
similarity index 98%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg.meta
rename to Samples~/Hand Driver Demo/Model/vr_glove_color.jpg.meta
index fe5f163..90876ee 100644
--- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.jpg.meta
+++ b/Samples~/Hand Driver Demo/Model/vr_glove_color.jpg.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 8589e8bfc64b93b4a8143d70c9127abd
+guid: f1ba7622665bf7e44aee3f43fc62e51d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat b/Samples~/Hand Driver Demo/Model/vr_glove_color.mat
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat
rename to Samples~/Hand Driver Demo/Model/vr_glove_color.mat
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat.meta b/Samples~/Hand Driver Demo/Model/vr_glove_color.mat.meta
similarity index 64%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat.meta
rename to Samples~/Hand Driver Demo/Model/vr_glove_color.mat.meta
index 8abd4ee..d80db84 100644
--- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_color.mat.meta
+++ b/Samples~/Hand Driver Demo/Model/vr_glove_color.mat.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: a824637846136a043bd018d27422dfd7
+guid: d28ff85c01985904bb98e5bc03251ff7
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 2100000
+ mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx b/Samples~/Hand Driver Demo/Model/vr_glove_new.fbx
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx
rename to Samples~/Hand Driver Demo/Model/vr_glove_new.fbx
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx.meta b/Samples~/Hand Driver Demo/Model/vr_glove_new.fbx.meta
similarity index 98%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx.meta
rename to Samples~/Hand Driver Demo/Model/vr_glove_new.fbx.meta
index c5a9069..82e36c6 100644
--- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_new.fbx.meta
+++ b/Samples~/Hand Driver Demo/Model/vr_glove_new.fbx.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7c6fe65dc83e437438be792aad474a5d
+guid: bf4ff8034d8337a4d8f291f88a544688
ModelImporter:
serializedVersion: 21300
internalIDToNameTable: []
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png b/Samples~/Hand Driver Demo/Model/vr_glove_normal.png
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png
rename to Samples~/Hand Driver Demo/Model/vr_glove_normal.png
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png.meta b/Samples~/Hand Driver Demo/Model/vr_glove_normal.png.meta
similarity index 98%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png.meta
rename to Samples~/Hand Driver Demo/Model/vr_glove_normal.png.meta
index e75290c..d6f50cd 100644
--- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_normal.png.meta
+++ b/Samples~/Hand Driver Demo/Model/vr_glove_normal.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3748dee6899f1094a9133c221951f5e9
+guid: ed1b2724730cc594aa8c79b70d2deb24
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx b/Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx
rename to Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx.meta b/Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx.meta
similarity index 98%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx.meta
rename to Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx.meta
index 2a21c85..b38a981 100644
--- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_glove_right_model.fbx.meta
+++ b/Samples~/Hand Driver Demo/Model/vr_glove_right_model.fbx.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c4e403660ace5984b8a2ec3594efa03b
+guid: 9183cab5601042546807088e330d8679
ModelImporter:
serializedVersion: 21300
internalIDToNameTable: []
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx b/Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx
rename to Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx
diff --git a/Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx.meta b/Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx.meta
similarity index 98%
rename from Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx.meta
rename to Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx.meta
index a05ccc4..b05d8e3 100644
--- a/Samples~/Hand Driver Demo/HandDriver/Model/vr_gloves_prototype.fbx.meta
+++ b/Samples~/Hand Driver Demo/Model/vr_gloves_prototype.fbx.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: fd5d3b6f78f09274297fdd339530e6cf
+guid: 0305e3a35dffee44ea72d74b0d43fada
ModelImporter:
serializedVersion: 21300
internalIDToNameTable: []
diff --git a/Samples~/Hand Driver Demo/Plugins.meta b/Samples~/Hand Driver Demo/Plugins.meta
new file mode 100644
index 0000000..e4efdb4
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a6f2d24fab7bde647aee587d1edea618
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android.meta b/Samples~/Hand Driver Demo/Plugins/Android.meta
new file mode 100644
index 0000000..9b343d3
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5cc2363ec8a06534888a10ed4811262e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml
new file mode 100644
index 0000000..b3ae9a2
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml.meta b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml.meta
new file mode 100644
index 0000000..20829d6
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/AndroidManifest.xml.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e3b2dbf36e4c448cfae5ccdedb0b4831
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll
new file mode 100644
index 0000000..2153a45
Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll differ
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll.meta b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll.meta
new file mode 100644
index 0000000..fd82d38
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/MWArray.dll.meta
@@ -0,0 +1,76 @@
+fileFormatVersion: 2
+guid: 4a66f3fb8d2284d45b6d098dd8d5c0dc
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ : Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 0
+ Exclude Editor: 0
+ Exclude Linux64: 0
+ Exclude OSXUniversal: 0
+ Exclude Win: 0
+ Exclude Win64: 0
+ - first:
+ Android: Android
+ second:
+ enabled: 1
+ settings:
+ CPU: ARMv7
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: AnyOS
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 1
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win
+ second:
+ enabled: 1
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: None
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll
new file mode 100644
index 0000000..ed514b2
Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll differ
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll.meta b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll.meta
new file mode 100644
index 0000000..b46a158
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/MathNet.Numerics.dll.meta
@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: 2da9db1ebc1520047a125131449f289f
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar
new file mode 100644
index 0000000..01612c0
Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar differ
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar.meta b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar.meta
new file mode 100644
index 0000000..9a6ff1c
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/ar1_linear.aar.meta
@@ -0,0 +1,32 @@
+fileFormatVersion: 2
+guid: 6205652e29e08fe4893554c50a14c0cf
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Android: Android
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED
new file mode 100644
index 0000000..02fad2e
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED
@@ -0,0 +1,31 @@
+allprojects {
+ buildscript {
+ repositories {**ARTIFACTORYREPOSITORY**
+ maven { url 'https://maven.rokid.com/repository/maven-public/' }
+ google()
+ jcenter()
+ }
+
+ dependencies {
+ // If you are changing the Android Gradle Plugin version, make sure it is compatible with the Gradle version preinstalled with Unity
+ // See which Gradle version is preinstalled with Unity here https://docs.unity3d.com/Manual/android-gradle-overview.html
+ // See official Gradle and Android Gradle Plugin compatibility table here https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
+ // To specify a custom Gradle version in Unity, go do "Preferences > External Tools", uncheck "Gradle Installed with Unity (recommended)" and specify a path to a custom Gradle version
+ classpath 'com.android.tools.build:gradle:4.0.1'
+ **BUILD_SCRIPT_DEPS**
+ }
+ }
+
+ repositories {**ARTIFACTORYREPOSITORY**
+ maven { url 'https://maven.rokid.com/repository/maven-public/' }
+ google()
+ jcenter()
+ flatDir {
+ dirs "${project(':unityLibrary').projectDir}/libs"
+ }
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED.meta b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED.meta
new file mode 100644
index 0000000..f5fd3c3
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/baseProjectTemplate.gradle.DISABLED.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 70cae7e35dc55ba4488f14ebd941ec1b
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED
new file mode 100644
index 0000000..412227e
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED
@@ -0,0 +1,45 @@
+apply plugin: 'com.android.library'
+**APPLY_PLUGINS**
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+
+ //核心依赖
+ implementation 'com.rokid.uxrplugin:rkuxrplugin:2.3.12'
+ //语音识别依赖
+ implementation("com.rokid.axr:glassvoice-phone:1.3.0")
+
+**DEPS**}
+
+android {
+ compileSdkVersion **APIVERSION**
+ buildToolsVersion '**BUILDTOOLS**'
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ defaultConfig {
+ minSdkVersion **MINSDKVERSION**
+ targetSdkVersion **TARGETSDKVERSION**
+ ndk {
+ abiFilters **ABIFILTERS**
+ }
+ versionCode **VERSIONCODE**
+ versionName '**VERSIONNAME**'
+ consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
+ }
+
+ lintOptions {
+ abortOnError false
+ }
+
+ aaptOptions {
+ noCompress = **BUILTIN_NOCOMPRESS** + unityStreamingAssets.tokenize(', ')
+ ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
+ }**PACKAGING_OPTIONS**
+}**REPOSITORIES**
+**IL_CPP_BUILD_SETUP**
+**SOURCE_BUILD_SETUP**
+**EXTERNAL_SOURCES**
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED.meta b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED.meta
new file mode 100644
index 0000000..045fbfc
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/mainTemplate.gradle.DISABLED.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d00a4052481eabd4f9950a6a34f030a2
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar
new file mode 100644
index 0000000..81f6f95
Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar differ
diff --git a/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar.meta b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar.meta
new file mode 100644
index 0000000..af3533c
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Android/unityandroidbluetoothlelib.jar.meta
@@ -0,0 +1,70 @@
+fileFormatVersion: 2
+guid: f158ceee465c745bc89002ae57bc033e
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ : Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 0
+ Exclude Editor: 1
+ Exclude Linux64: 1
+ Exclude OSXUniversal: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ - first:
+ Android: Android
+ second:
+ enabled: 1
+ settings:
+ CPU: ARMv7
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ DefaultValueInitialized: true
+ OS: AnyOS
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs
new file mode 100644
index 0000000..72226da
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs
@@ -0,0 +1,395 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class BluetoothDeviceScript : MonoBehaviour
+{
+#if UNITY_IOS
+ public Dictionary BLEStandardUUIDs = new Dictionary();
+#endif
+
+ public List DiscoveredDeviceList;
+
+ public Action InitializedAction;
+ public Action DeinitializedAction;
+ public Action ErrorAction;
+ public Action ServiceAddedAction;
+ public Action StartedAdvertisingAction;
+ public Action StoppedAdvertisingAction;
+ public Action DiscoveredPeripheralAction;
+ public Action DiscoveredPeripheralWithAdvertisingInfoAction;
+ public Action DiscoveredBeaconAction;
+ public Action RetrievedConnectedPeripheralAction;
+ public Action PeripheralReceivedWriteDataAction;
+ public Action ConnectedPeripheralAction;
+ public Action ConnectedDisconnectPeripheralAction;
+ public Action DisconnectedPeripheralAction;
+ public Action DiscoveredServiceAction;
+ public Action DiscoveredCharacteristicAction;
+ public Action DidWriteCharacteristicAction;
+ public Dictionary>> DidUpdateNotificationStateForCharacteristicAction;
+ public Dictionary>> DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction;
+ public Dictionary>> DidUpdateCharacteristicValueAction;
+ public Dictionary>> DidUpdateCharacteristicValueWithDeviceAddressAction;
+ public Action RequestMtuAction;
+ public Action ReadRSSIAction;
+
+ // Use this for initialization
+ void Start ()
+ {
+ DiscoveredDeviceList = new List ();
+ DidUpdateNotificationStateForCharacteristicAction = new Dictionary>> ();
+ DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction = new Dictionary>> ();
+ DidUpdateCharacteristicValueAction = new Dictionary>> ();
+ DidUpdateCharacteristicValueWithDeviceAddressAction = new Dictionary>> ();
+
+#if UNITY_IOS
+ BLEStandardUUIDs["Heart Rate Measurement"] = "00002A37-0000-1000-8000-00805F9B34FB";
+#endif
+ }
+
+ // Update is called once per frame
+ void Update ()
+ {
+ }
+
+ const string deviceInitializedString = "Initialized";
+ const string deviceDeInitializedString = "DeInitialized";
+ const string deviceErrorString = "Error";
+ const string deviceServiceAdded = "ServiceAdded";
+ const string deviceStartedAdvertising = "StartedAdvertising";
+ const string deviceStoppedAdvertising = "StoppedAdvertising";
+ const string deviceDiscoveredPeripheral = "DiscoveredPeripheral";
+ const string deviceDiscoveredBeacon = "DiscoveredBeacon";
+ const string deviceRetrievedConnectedPeripheral = "RetrievedConnectedPeripheral";
+ const string devicePeripheralReceivedWriteData = "PeripheralReceivedWriteData";
+ const string deviceConnectedPeripheral = "ConnectedPeripheral";
+ const string deviceDisconnectedPeripheral = "DisconnectedPeripheral";
+ const string deviceDiscoveredService = "DiscoveredService";
+ const string deviceDiscoveredCharacteristic = "DiscoveredCharacteristic";
+ const string deviceDidWriteCharacteristic = "DidWriteCharacteristic";
+ const string deviceDidUpdateNotificationStateForCharacteristic = "DidUpdateNotificationStateForCharacteristic";
+ const string deviceDidUpdateValueForCharacteristic = "DidUpdateValueForCharacteristic";
+ const string deviceLog = "Log";
+ const string deviceRequestMtu = "MtuChanged";
+ const string deviceReadRSSI = "DidReadRSSI";
+
+ public void OnBluetoothMessage (string message)
+ {
+ if (message != null)
+ {
+ char[] delim = new char[] { '~' };
+ string[] parts = message.Split (delim);
+
+ string log = "";
+ for (int i = 0; i < parts.Length; ++i)
+ log += string.Format("| {0}", parts[i]);
+ BluetoothLEHardwareInterface.Log(log);
+
+ if (message.Length >= deviceInitializedString.Length && message.Substring (0, deviceInitializedString.Length) == deviceInitializedString)
+ {
+ if (InitializedAction != null)
+ InitializedAction ();
+ }
+ else if (message.Length >= deviceLog.Length && message.Substring (0, deviceLog.Length) == deviceLog)
+ {
+ BluetoothLEHardwareInterface.Log (parts[1]);
+ }
+ else if (message.Length >= deviceDeInitializedString.Length && message.Substring (0, deviceDeInitializedString.Length) == deviceDeInitializedString)
+ {
+ BluetoothLEHardwareInterface.FinishDeInitialize ();
+
+ if (DeinitializedAction != null)
+ DeinitializedAction ();
+ }
+ else if (message.Length >= deviceErrorString.Length && message.Substring (0, deviceErrorString.Length) == deviceErrorString)
+ {
+ string error = "";
+
+ if (parts.Length >= 2)
+ error = parts[1];
+
+ if (ErrorAction != null)
+ ErrorAction (error);
+ }
+ else if (message.Length >= deviceServiceAdded.Length && message.Substring (0, deviceServiceAdded.Length) == deviceServiceAdded)
+ {
+ if (parts.Length >= 2)
+ {
+ if (ServiceAddedAction != null)
+ ServiceAddedAction (parts[1]);
+ }
+ }
+ else if (message.Length >= deviceStartedAdvertising.Length && message.Substring (0, deviceStartedAdvertising.Length) == deviceStartedAdvertising)
+ {
+ BluetoothLEHardwareInterface.Log ("Started Advertising");
+
+ if (StartedAdvertisingAction != null)
+ StartedAdvertisingAction ();
+ }
+ else if (message.Length >= deviceStoppedAdvertising.Length && message.Substring (0, deviceStoppedAdvertising.Length) == deviceStoppedAdvertising)
+ {
+ BluetoothLEHardwareInterface.Log ("Stopped Advertising");
+
+ if (StoppedAdvertisingAction != null)
+ StoppedAdvertisingAction ();
+ }
+ else if (message.Length >= deviceDiscoveredPeripheral.Length && message.Substring (0, deviceDiscoveredPeripheral.Length) == deviceDiscoveredPeripheral)
+ {
+ if (parts.Length >= 3)
+ {
+ // the first callback will only get called the first time this device is seen
+ // this is because it gets added to the a list in the DiscoveredDeviceList
+ // after that only the second callback will get called and only if there is
+ // advertising data available
+ if (!DiscoveredDeviceList.Contains (parts[1] + "|" + parts[2]))
+ {
+ DiscoveredDeviceList.Add (parts[1] + "|" + parts[2]);
+
+ if (DiscoveredPeripheralAction != null)
+ DiscoveredPeripheralAction (parts[1], parts[2]);
+ }
+
+ if (parts.Length >= 5 && DiscoveredPeripheralWithAdvertisingInfoAction != null)
+ {
+ // get the rssi from the 4th value
+ int rssi = 0;
+ if (!int.TryParse (parts[3], out rssi))
+ rssi = 0;
+
+ // parse the base 64 encoded data that is the 5th value
+ byte[] bytes = System.Convert.FromBase64String (parts[4]);
+
+ DiscoveredPeripheralWithAdvertisingInfoAction (parts[1], parts[2], rssi, bytes);
+ }
+ }
+ }
+ else if (message.Length >= deviceDiscoveredBeacon.Length && message.Substring (0, deviceDiscoveredBeacon.Length) == deviceDiscoveredBeacon)
+ {
+ if (parts.Length >= 7)
+ {
+ var iBeaconData = new BluetoothLEHardwareInterface.iBeaconData ();
+
+ iBeaconData.UUID = parts[1];
+ if (!int.TryParse (parts[2], out iBeaconData.Major))
+ iBeaconData.Major = 0;
+ if (!int.TryParse (parts[3], out iBeaconData.Minor))
+ iBeaconData.Minor = 0;
+ if (!int.TryParse (parts[4], out iBeaconData.RSSI))
+ iBeaconData.RSSI = 0;
+ if (!int.TryParse (parts[5], out iBeaconData.AndroidSignalPower))
+ iBeaconData.AndroidSignalPower = 0;
+ int iOSProximity = 0;
+ if (!int.TryParse (parts[6], out iOSProximity))
+ iOSProximity = 0;
+ iBeaconData.iOSProximity = (BluetoothLEHardwareInterface.iOSProximity)iOSProximity;
+
+ if (DiscoveredBeaconAction != null)
+ DiscoveredBeaconAction (iBeaconData);
+ }
+ }
+ else if (message.Length >= deviceRetrievedConnectedPeripheral.Length && message.Substring (0, deviceRetrievedConnectedPeripheral.Length) == deviceRetrievedConnectedPeripheral)
+ {
+ if (parts.Length >= 3)
+ {
+ DiscoveredDeviceList.Add (parts[1]);
+
+ if (RetrievedConnectedPeripheralAction != null)
+ RetrievedConnectedPeripheralAction (parts[1], parts[2]);
+ }
+ }
+ else if (message.Length >= devicePeripheralReceivedWriteData.Length && message.Substring (0, devicePeripheralReceivedWriteData.Length) == devicePeripheralReceivedWriteData)
+ {
+ if (parts.Length >= 3)
+ OnPeripheralData (parts[1], parts[2]);
+ }
+ else if (message.Length >= deviceConnectedPeripheral.Length && message.Substring (0, deviceConnectedPeripheral.Length) == deviceConnectedPeripheral)
+ {
+ if (parts.Length >= 2 && ConnectedPeripheralAction != null)
+ ConnectedPeripheralAction (parts[1]);
+ }
+ else if (message.Length >= deviceDisconnectedPeripheral.Length && message.Substring (0, deviceDisconnectedPeripheral.Length) == deviceDisconnectedPeripheral)
+ {
+ if (parts.Length >= 2)
+ {
+ if (ConnectedDisconnectPeripheralAction != null)
+ ConnectedDisconnectPeripheralAction (parts[1]);
+
+ if (DisconnectedPeripheralAction != null)
+ DisconnectedPeripheralAction (parts[1]);
+ }
+ }
+ else if (message.Length >= deviceDiscoveredService.Length && message.Substring (0, deviceDiscoveredService.Length) == deviceDiscoveredService)
+ {
+ if (parts.Length >= 3 && DiscoveredServiceAction != null)
+ DiscoveredServiceAction (parts[1], parts[2]);
+ }
+ else if (message.Length >= deviceDiscoveredCharacteristic.Length && message.Substring (0, deviceDiscoveredCharacteristic.Length) == deviceDiscoveredCharacteristic)
+ {
+ if (parts.Length >= 4 && DiscoveredCharacteristicAction != null)
+ DiscoveredCharacteristicAction (parts[1], parts[2], parts[3]);
+ }
+ else if (message.Length >= deviceDidWriteCharacteristic.Length && message.Substring (0, deviceDidWriteCharacteristic.Length) == deviceDidWriteCharacteristic)
+ {
+ if (parts.Length >= 2 && DidWriteCharacteristicAction != null)
+ DidWriteCharacteristicAction (parts[1]);
+ }
+ else if (message.Length >= deviceDidUpdateNotificationStateForCharacteristic.Length && message.Substring (0, deviceDidUpdateNotificationStateForCharacteristic.Length) == deviceDidUpdateNotificationStateForCharacteristic)
+ {
+ if (parts.Length >= 3)
+ {
+ if (DidUpdateNotificationStateForCharacteristicAction != null && DidUpdateNotificationStateForCharacteristicAction.ContainsKey (parts[1]))
+ {
+ var characteristicAction = DidUpdateNotificationStateForCharacteristicAction[parts[1]];
+ if (characteristicAction != null && characteristicAction.ContainsKey (parts[2]))
+ {
+ var action = characteristicAction[parts[2]];
+ if (action != null)
+ action (parts[2]);
+ }
+ }
+
+ if (DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction != null && DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (parts[1]))
+ {
+ var characteristicAction = DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[parts[1]];
+ if (characteristicAction != null && characteristicAction.ContainsKey (parts[2]))
+ {
+ var action = characteristicAction[parts[2]];
+ if (action != null)
+ action (parts[1], parts[2]);
+ }
+ }
+ }
+ }
+ else if (message.Length >= deviceDidUpdateValueForCharacteristic.Length && message.Substring (0, deviceDidUpdateValueForCharacteristic.Length) == deviceDidUpdateValueForCharacteristic)
+ {
+ if (parts.Length >= 4)
+ OnBluetoothData (parts[1], parts[2], parts[3]);
+ }
+ else if (message.Length >= deviceRequestMtu.Length && message.Substring(0, deviceRequestMtu.Length) == deviceRequestMtu)
+ {
+ if (parts.Length >= 3)
+ {
+ if (RequestMtuAction != null)
+ {
+ int mtu = 0;
+ if (int.TryParse(parts[2], out mtu))
+ RequestMtuAction(parts[1], mtu);
+ }
+ }
+ }
+ else if (message.Length >= deviceReadRSSI.Length && message.Substring(0, deviceReadRSSI.Length) == deviceReadRSSI)
+ {
+ if (parts.Length >= 3)
+ {
+ if (ReadRSSIAction != null)
+ {
+ int rssi = 0;
+ if (int.TryParse(parts[2], out rssi))
+ ReadRSSIAction(parts[1], rssi);
+ }
+ }
+ }
+ }
+ }
+
+ public void OnBluetoothData (string base64Data)
+ {
+ OnBluetoothData ("", "", base64Data);
+ }
+
+ public void OnBluetoothData (string deviceAddress, string characteristic, string base64Data)
+ {
+ if (base64Data != null)
+ {
+ byte[] bytes = System.Convert.FromBase64String (base64Data);
+ if (bytes.Length > 0)
+ {
+ deviceAddress = deviceAddress.ToUpper ();
+ characteristic = characteristic.ToUpper ();
+
+#if UNITY_IOS
+ if (BLEStandardUUIDs.ContainsKey(characteristic))
+ characteristic = BLEStandardUUIDs[characteristic];
+#endif
+
+ BluetoothLEHardwareInterface.Log ("Device: " + deviceAddress + " Characteristic Received: " + characteristic);
+
+ string byteString = "";
+ foreach (byte b in bytes)
+ byteString += string.Format ("{0:X2}", b);
+
+ BluetoothLEHardwareInterface.Log (byteString);
+
+ if (DidUpdateCharacteristicValueAction != null && DidUpdateCharacteristicValueAction.ContainsKey (deviceAddress))
+ {
+ var characteristicAction = DidUpdateCharacteristicValueAction[deviceAddress];
+#if UNITY_ANDROID
+ characteristic = characteristic.ToLower ();
+#endif
+ if (characteristicAction != null && characteristicAction.ContainsKey (characteristic))
+ {
+ var action = characteristicAction[characteristic];
+ if (action != null)
+ action (characteristic, bytes);
+ }
+ }
+
+ if (DidUpdateCharacteristicValueWithDeviceAddressAction != null && DidUpdateCharacteristicValueWithDeviceAddressAction.ContainsKey (deviceAddress))
+ {
+ var characteristicAction = DidUpdateCharacteristicValueWithDeviceAddressAction[deviceAddress];
+#if UNITY_ANDROID
+ characteristic = characteristic.ToLower ();
+#endif
+ if (characteristicAction != null && characteristicAction.ContainsKey (characteristic))
+ {
+ var action = characteristicAction[characteristic];
+ if (action != null)
+ action (deviceAddress, characteristic, bytes);
+ }
+ }
+ }
+ }
+ }
+
+ public void OnPeripheralData (string characteristic, string base64Data)
+ {
+ if (base64Data != null)
+ {
+ byte[] bytes = System.Convert.FromBase64String (base64Data);
+ if (bytes.Length > 0)
+ {
+ BluetoothLEHardwareInterface.Log ("Peripheral Received: " + characteristic);
+
+ string byteString = "";
+ foreach (byte b in bytes)
+ byteString += string.Format ("{0:X2}", b);
+
+ BluetoothLEHardwareInterface.Log (byteString);
+
+ if (PeripheralReceivedWriteDataAction != null)
+ PeripheralReceivedWriteDataAction (characteristic, bytes);
+ }
+ }
+ }
+
+#if UNITY_IOS
+ private void IncludeCoreLocationFramework()
+ {
+ // this method is here because Unity now only includes CoreLocation
+ // if there are methods in the .cs code that access it
+ Input.location.Stop ();
+ }
+#endif
+
+ public void OnApplicationQuit()
+ {
+ if (Application.isEditor)
+ {
+ BluetoothLEHardwareInterface.DeInitialize(() =>
+ {
+ BluetoothLEHardwareInterface.Log("Deinitialize complete");
+ });
+ }
+ }
+}
diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs.meta b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs.meta
new file mode 100644
index 0000000..e31cb90
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/BluetoothDeviceScript.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b188ba3ac565e48f58fc50dd5db4818d
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs
new file mode 100644
index 0000000..0ccd8db
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs
@@ -0,0 +1,1147 @@
+#define EXPERIMENTAL_MACOS_EDITOR
+/*
+
+This build includes an experimental implementation for the macOS editor of Unity
+It is experiemental because of the way that the Unity editor hangs on to plugin
+instances after leaving play mode. This causes this plugin to not free up its
+resources and therefore can cause crashes in the Unity editor on macOS.
+
+Since Unity does not give plugins or apps a chance to do anything when the user
+hits the play / stop button in the Editor there isn't a chance for the app to
+deinitialize this plugin.
+
+What I have found in my own use of this is that if you put a button on your app
+somewhere that you can press before hitting the stop button in the editor and
+then in that button handler call this plugin's Deinitialize method it seems to
+minimize how often the editor crashes.
+
+WARNING: using the macOS editor can cause the editor to crash an loose your work
+and settings. Save often. You have been warned, so please don't contact me if
+you have lost work becausee of this problem. This is experimental only. Use at
+your own risk.
+
+*/
+
+using UnityEngine;
+using System;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+using System.Collections;
+
+#if UNITY_2018_3_OR_NEWER
+#if UNITY_ANDROID
+using UnityEngine.Android;
+#endif
+#endif
+
+public class BluetoothLEHardwareInterface
+{
+ public enum CBCharacteristicProperties
+ {
+ CBCharacteristicPropertyBroadcast = 0x01,
+ CBCharacteristicPropertyRead = 0x02,
+ CBCharacteristicPropertyWriteWithoutResponse = 0x04,
+ CBCharacteristicPropertyWrite = 0x08,
+ CBCharacteristicPropertyNotify = 0x10,
+ CBCharacteristicPropertyIndicate = 0x20,
+ CBCharacteristicPropertyAuthenticatedSignedWrites = 0x40,
+ CBCharacteristicPropertyExtendedProperties = 0x80,
+ CBCharacteristicPropertyNotifyEncryptionRequired = 0x100,
+ CBCharacteristicPropertyIndicateEncryptionRequired = 0x200,
+ };
+
+ public enum ScanMode
+ {
+ LowPower = 0,
+ Balanced = 1,
+ LowLatency = 2
+ }
+
+ public enum ConnectionPriority
+ {
+ LowPower = 0,
+ Balanced = 1,
+ High = 2,
+ }
+
+ public enum AdvertisingMode
+ {
+ LowPower = 0,
+ Balanced = 1,
+ LowLatency = 2
+ }
+
+ public enum AdvertisingPower
+ {
+ UltraLow = 0,
+ Low = 1,
+ Medium = 2,
+ High = 3,
+ }
+
+ public enum iOSProximity
+ {
+ Unknown = 0,
+ Immediate = 1,
+ Near = 2,
+ Far = 3,
+ }
+
+ public struct iBeaconData
+ {
+ public string UUID;
+ public int Major;
+ public int Minor;
+ public int RSSI;
+ public int AndroidSignalPower;
+ public iOSProximity iOSProximity;
+ }
+
+#if UNITY_ANDROID
+ public enum CBAttributePermissions
+ {
+ CBAttributePermissionsReadable = 0x01,
+ CBAttributePermissionsWriteable = 0x10,
+ CBAttributePermissionsReadEncryptionRequired = 0x02,
+ CBAttributePermissionsWriteEncryptionRequired = 0x20,
+ };
+#else
+ public enum CBAttributePermissions
+ {
+ CBAttributePermissionsReadable = 0x01,
+ CBAttributePermissionsWriteable = 0x02,
+ CBAttributePermissionsReadEncryptionRequired = 0x04,
+ CBAttributePermissionsWriteEncryptionRequired = 0x08,
+ };
+#endif
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+
+ public delegate void UnitySendMessageCallbackDelegate (IntPtr objectName, IntPtr commandName, IntPtr commandData);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void ConnectUnitySendMessageCallback ([MarshalAs (UnmanagedType.FunctionPtr)]UnitySendMessageCallbackDelegate callbackMethod);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLELog (string message);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEInitialize ([MarshalAs (UnmanagedType.Bool)]bool asCentral, [MarshalAs (UnmanagedType.Bool)]bool asPeripheral);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEDeInitialize ();
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEPauseMessages (bool isPaused);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEScanForPeripheralsWithServices (string serviceUUIDsString, bool allowDuplicates, bool rssiOnly, bool clearPeripheralList);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLERetrieveListOfPeripheralsWithServices (string serviceUUIDsString);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEStopScan ();
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEConnectToPeripheral (string name);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEDisconnectAll ();
+
+ [DllImport("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLERequestMtu (string name, int mtu);
+
+ [DllImport("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEReadRSSI (string name);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEDisconnectPeripheral (string name);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEReadCharacteristic (string name, string service, string characteristic);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEWriteCharacteristic (string name, string service, string characteristic, byte[] data, int length, bool withResponse);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLESubscribeCharacteristic (string name, string service, string characteristic);
+
+ [DllImport ("BluetoothLEOSX")]
+ private static extern void OSXBluetoothLEUnSubscribeCharacteristic (string name, string service, string characteristic);
+
+#endif
+
+#if UNITY_IOS || UNITY_TVOS
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLELog (string message);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEInitialize (bool asCentral, bool asPeripheral);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEDeInitialize ();
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEPauseMessages (bool isPaused);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEScanForPeripheralsWithServices (string serviceUUIDsString, bool allowDuplicates, bool rssiOnly, bool clearPeripheralList);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLERetrieveListOfPeripheralsWithServices (string serviceUUIDsString);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEStopScan ();
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEConnectToPeripheral (string name);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEDisconnectPeripheral (string name);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEReadCharacteristic (string name, string service, string characteristic);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEWriteCharacteristic (string name, string service, string characteristic, byte[] data, int length, bool withResponse);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLESubscribeCharacteristic (string name, string service, string characteristic);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEUnSubscribeCharacteristic (string name, string service, string characteristic);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEDisconnectAll ();
+
+ [DllImport("__Internal")]
+ private static extern void _iOSBluetoothLERequestMtu(string name, int mtu);
+
+ [DllImport("__Internal")]
+ private static extern void _iOSBluetoothLEReadRSSI(string name);
+
+#if !UNITY_TVOS
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEScanForBeacons (string proximityUUIDsString);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEStopBeaconScan ();
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEPeripheralName (string newName);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLECreateService (string uuid, bool primary);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLERemoveService (string uuid);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLERemoveServices ();
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLECreateCharacteristic (string uuid, int properties, int permissions, byte[] data, int length);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLERemoveCharacteristic (string uuid);
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLERemoveCharacteristics ();
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEStartAdvertising ();
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEStopAdvertising ();
+
+ [DllImport ("__Internal")]
+ private static extern void _iOSBluetoothLEUpdateCharacteristicValue (string uuid, byte[] data, int length);
+#endif
+#elif UNITY_ANDROID
+ static AndroidJavaObject _android = null;
+#endif
+
+
+ private static BluetoothDeviceScript bluetoothDeviceScript;
+
+ public static void Log (string message)
+ {
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ Debug.Log(message);
+#else
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLELog (message);
+#elif UNITY_ANDROID
+ if (_android == null)
+ {
+ AndroidJavaClass javaClass = new AndroidJavaClass ("com.shatalmic.unityandroidbluetoothlelib.UnityBluetoothLE");
+ _android = javaClass.CallStatic ("getInstance");
+ }
+
+ if (_android != null)
+ _android.Call ("androidBluetoothLog", message);
+#endif
+ }
+#endif
+ }
+
+#if UNITY_2018_3_OR_NEWER
+#if UNITY_ANDROID
+ private static IEnumerator AskForPermissions()
+ {
+ bool scanAsked = false;
+ bool connectAsked = false;
+ bool permissionsGranted = false;
+ float timerValue = 0f;
+
+ while (timerValue < 5f)
+ {
+ if (!Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_SCAN"))
+ {
+ if (!scanAsked)
+ {
+ Permission.RequestUserPermission("android.permission.BLUETOOTH_SCAN");
+ scanAsked = true;
+ }
+ }
+ else
+ {
+ if (!Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_CONNECT"))
+ {
+ if (!connectAsked)
+ {
+ Permission.RequestUserPermission("android.permission.BLUETOOTH_CONNECT");
+ connectAsked = true;
+ break;
+ }
+ }
+ else
+ {
+ permissionsGranted = true;
+ }
+ }
+
+ timerValue += Time.deltaTime;
+
+ yield return new WaitForEndOfFrame();
+ }
+
+ if (!permissionsGranted)
+ {
+ if (bluetoothDeviceScript.ErrorAction != null)
+ bluetoothDeviceScript.ErrorAction("Error~Permissions Not Granted");
+ }
+ }
+#endif
+#endif
+
+ public static BluetoothDeviceScript Initialize (bool asCentral, bool asPeripheral, Action action, Action errorAction)
+ {
+ bluetoothDeviceScript = null;
+
+ GameObject bluetoothLEReceiver = GameObject.Find("BluetoothLEReceiver");
+ if (bluetoothLEReceiver == null)
+ bluetoothLEReceiver = new GameObject ("BluetoothLEReceiver");
+
+ if (bluetoothLEReceiver != null)
+ {
+ bluetoothDeviceScript = bluetoothLEReceiver.GetComponent ();
+ if (bluetoothDeviceScript == null)
+ bluetoothDeviceScript = bluetoothLEReceiver.AddComponent ();
+
+ if (bluetoothDeviceScript != null)
+ {
+ bluetoothDeviceScript.InitializedAction = action;
+ bluetoothDeviceScript.ErrorAction = errorAction;
+ }
+ }
+
+ GameObject.DontDestroyOnLoad (bluetoothLEReceiver);
+
+#if UNITY_2018_3_OR_NEWER
+#if UNITY_ANDROID
+
+ Log($"API: {SystemInfo.operatingSystem}");
+
+ int apiVersion = 30;
+ int apiIndex = SystemInfo.operatingSystem.IndexOf(" API-");
+ if (apiIndex >= 0)
+ {
+ Log($"API Index: {apiIndex}");
+ string versionString = SystemInfo.operatingSystem.Substring(apiIndex + 5, 2);
+ Log($"API Version String: {versionString}");
+ if (!int.TryParse(versionString, out apiVersion))
+ {
+ Log($"int parse failed: {versionString}");
+ apiVersion = 30;
+ }
+ }
+
+ Log($"API Version: {apiVersion}");
+
+ if (apiVersion >= 31)
+ {
+ if (asCentral)
+ bluetoothDeviceScript.StartCoroutine(AskForPermissions());
+
+ if (asPeripheral)
+ {
+ if (!Permission.HasUserAuthorizedPermission("android.permission.BLUETOOTH_ADVERTISE"))
+ Permission.RequestUserPermission("android.permission.BLUETOOTH_ADVERTISE");
+ }
+ }
+ else
+ {
+ if (!Permission.HasUserAuthorizedPermission(Permission.FineLocation))
+ Permission.RequestUserPermission(Permission.FineLocation);
+ }
+
+#endif
+#endif
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ ConnectUnitySendMessageCallback((objectName, commandName, commandData) => {
+ string name = Marshal.PtrToStringAuto (objectName);
+ string command = Marshal.PtrToStringAuto (commandName);
+ string data = Marshal.PtrToStringAuto (commandData);
+
+ GameObject foundObject = GameObject.Find (name);
+ if (foundObject != null)
+ foundObject.SendMessage (command, data);
+ });
+
+ BluetoothLEHardwareInterface.OSXBluetoothLEInitialize (asCentral, asPeripheral);
+#else
+ if (Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.SendMessage ("OnBluetoothMessage", "Initialized");
+ }
+ else
+ {
+#if UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEInitialize (asCentral, asPeripheral);
+#elif UNITY_ANDROID
+ if (_android == null)
+ {
+ AndroidJavaClass javaClass = new AndroidJavaClass ("com.shatalmic.unityandroidbluetoothlelib.UnityBluetoothLE");
+ _android = javaClass.CallStatic ("getInstance");
+ }
+
+ if (_android != null)
+ _android.Call ("androidBluetoothInitialize", asCentral, asPeripheral);
+#endif
+ }
+#endif
+
+ return bluetoothDeviceScript;
+ }
+
+ public static void DeInitialize (Action action)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.DeinitializedAction = action;
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ BluetoothLEHardwareInterface.OSXBluetoothLEDeInitialize ();
+#else
+ if (Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.SendMessage ("OnBluetoothMessage", "DeInitialized");
+ }
+ else
+ {
+#if UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEDeInitialize ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothDeInitialize");
+#endif
+ }
+#endif
+ }
+
+ public static void FinishDeInitialize ()
+ {
+ GameObject bluetoothLEReceiver = GameObject.Find("BluetoothLEReceiver");
+ if (bluetoothLEReceiver != null)
+ GameObject.Destroy(bluetoothLEReceiver);
+ }
+
+ public static void BluetoothEnable (bool enable)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS || UNITY_TVOS
+ //_iOSBluetoothLELog (message);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothEnable", enable);
+#endif
+ }
+ }
+
+ public static void BluetoothScanMode (ScanMode scanMode)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS || UNITY_TVOS
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothScanMode", (int)scanMode);
+#endif
+ }
+ }
+
+ public static void BluetoothConnectionPriority (ConnectionPriority connectionPriority)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS || UNITY_TVOS
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothConnectionPriority", (int)connectionPriority);
+#endif
+ }
+ }
+
+ public static void BluetoothAdvertisingMode (AdvertisingMode advertisingMode)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IPHONE || UNITY_TVOS
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothAdvertisingMode", (int)advertisingMode);
+#endif
+ }
+ }
+
+ public static void BluetoothAdvertisingPower (AdvertisingPower advertisingPower)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IPHONE || UNITY_TVOS
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothAdvertisingPower", (int)advertisingPower);
+#endif
+ }
+ }
+
+ public static void PauseMessages (bool isPaused)
+ {
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEPauseMessages (isPaused);
+#else
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEPauseMessages (isPaused);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothPause", isPaused);
+#endif
+ }
+#endif
+ }
+
+ // scanning for beacons requires that you know the Proximity UUID
+ public static void ScanForBeacons (string[] proximityUUIDs, Action actionBeaconResponse)
+ {
+ if (proximityUUIDs != null && proximityUUIDs.Length >= 0)
+ {
+ if (!Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.DiscoveredBeaconAction = actionBeaconResponse;
+
+ string proximityUUIDsString = null;
+
+ if (proximityUUIDs != null && proximityUUIDs.Length > 0)
+ {
+ proximityUUIDsString = "";
+
+ foreach (string proximityUUID in proximityUUIDs)
+ proximityUUIDsString += proximityUUID + "|";
+
+ proximityUUIDsString = proximityUUIDsString.Substring (0, proximityUUIDsString.Length - 1);
+ }
+
+#if UNITY_IOS
+ _iOSBluetoothLEScanForBeacons (proximityUUIDsString);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothScanForBeacons", proximityUUIDsString);
+#endif
+ }
+ }
+ }
+
+ public static void RequestMtu(string name, int mtu, Action action)
+ {
+ if (bluetoothDeviceScript != null)
+ {
+ bluetoothDeviceScript.RequestMtuAction = action;
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ if (mtu > 184)
+ mtu = 184;
+ OSXBluetoothLERequestMtu(name, mtu);
+#elif UNITY_IOS || UNITY_TVOS
+ if (mtu > 180)
+ mtu = 180;
+ _iOSBluetoothLERequestMtu (name, mtu);
+#elif UNITY_ANDROID
+ if (_android != null)
+ {
+ _android.Call ("androidBluetoothRequestMtu", name, mtu);
+ }
+#endif
+ }
+
+ public static void ReadRSSI(string name, Action action)
+ {
+ if (bluetoothDeviceScript != null)
+ {
+ bluetoothDeviceScript.ReadRSSIAction = action;
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEReadRSSI(name);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEReadRSSI(name);
+#elif UNITY_ANDROID
+ if (_android != null)
+ {
+ _android.Call ("androidBluetoothReadRSSI", name);
+ }
+#endif
+ }
+
+ public static void ScanForPeripheralsWithServices (string[] serviceUUIDs, Action action, Action actionAdvertisingInfo = null, bool rssiOnly = false, bool clearPeripheralList = true, int recordType = 0xFF)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ {
+ bluetoothDeviceScript.DiscoveredPeripheralAction = action;
+ bluetoothDeviceScript.DiscoveredPeripheralWithAdvertisingInfoAction = actionAdvertisingInfo;
+
+ if (bluetoothDeviceScript.DiscoveredDeviceList != null)
+ bluetoothDeviceScript.DiscoveredDeviceList.Clear ();
+ }
+
+ string serviceUUIDsString = null;
+
+ if (serviceUUIDs != null && serviceUUIDs.Length > 0)
+ {
+ serviceUUIDsString = "";
+
+ foreach (string serviceUUID in serviceUUIDs)
+ serviceUUIDsString += serviceUUID + "|";
+
+ serviceUUIDsString = serviceUUIDsString.Substring (0, serviceUUIDsString.Length - 1);
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEScanForPeripheralsWithServices (serviceUUIDsString, (actionAdvertisingInfo != null), rssiOnly, clearPeripheralList);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEScanForPeripheralsWithServices (serviceUUIDsString, (actionAdvertisingInfo != null), rssiOnly, clearPeripheralList);
+#elif UNITY_ANDROID
+ if (_android != null)
+ {
+ if (serviceUUIDsString == null)
+ serviceUUIDsString = "";
+
+ _android.Call ("androidBluetoothScanForPeripheralsWithServices", serviceUUIDsString, rssiOnly, recordType);
+ }
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void RetrieveListOfPeripheralsWithServices (string[] serviceUUIDs, Action action)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ {
+ bluetoothDeviceScript.RetrievedConnectedPeripheralAction = action;
+
+ if (bluetoothDeviceScript.DiscoveredDeviceList != null)
+ bluetoothDeviceScript.DiscoveredDeviceList.Clear ();
+ }
+
+ string serviceUUIDsString = serviceUUIDs.Length > 0 ? "" : null;
+
+ foreach (string serviceUUID in serviceUUIDs)
+ serviceUUIDsString += serviceUUID + "|";
+
+ // strip the last delimeter
+ serviceUUIDsString = serviceUUIDsString.Substring (0, serviceUUIDsString.Length - 1);
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLERetrieveListOfPeripheralsWithServices (serviceUUIDsString);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLERetrieveListOfPeripheralsWithServices (serviceUUIDsString);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothRetrieveListOfPeripheralsWithServices", serviceUUIDsString);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void StopScan ()
+ {
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEStopScan ();
+#else
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEStopScan ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothStopScan");
+#endif
+ }
+#endif
+ }
+
+ public static void StopBeaconScan ()
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS
+ _iOSBluetoothLEStopBeaconScan ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothStopBeaconScan");
+#endif
+ }
+ }
+
+ public static void DisconnectAll ()
+ {
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEDisconnectAll ();
+#else
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEDisconnectAll ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothDisconnectAll");
+#endif
+ }
+#endif
+ }
+
+ public static void ConnectToPeripheral (string name, Action connectAction, Action serviceAction, Action characteristicAction, Action disconnectAction = null)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ {
+ bluetoothDeviceScript.ConnectedPeripheralAction = connectAction;
+ bluetoothDeviceScript.DiscoveredServiceAction = serviceAction;
+ bluetoothDeviceScript.DiscoveredCharacteristicAction = characteristicAction;
+ bluetoothDeviceScript.ConnectedDisconnectPeripheralAction = disconnectAction;
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEConnectToPeripheral (name);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEConnectToPeripheral (name);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothConnectToPeripheral", name);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void DisconnectPeripheral (string name, Action action)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.DisconnectedPeripheralAction = action;
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEDisconnectPeripheral (name);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEDisconnectPeripheral (name);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidBluetoothDisconnectPeripheral", name);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void ReadCharacteristic (string name, string service, string characteristic, Action action)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ {
+ if (!bluetoothDeviceScript.DidUpdateCharacteristicValueAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateCharacteristicValueAction[name] = new Dictionary>();
+
+#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX))
+ bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [characteristic] = action;
+#elif UNITY_ANDROID
+ bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [FullUUID (characteristic).ToLower ()] = action;
+#endif
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEReadCharacteristic (name, service, characteristic);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEReadCharacteristic (name, service, characteristic);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidReadCharacteristic", name, service, characteristic);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void WriteCharacteristic (string name, string service, string characteristic, byte[] data, int length, bool withResponse, Action action)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.DidWriteCharacteristicAction = action;
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEWriteCharacteristic(name, service, characteristic, data, length, withResponse);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEWriteCharacteristic (name, service, characteristic, data, length, withResponse);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidWriteCharacteristic", name, service, characteristic, data, length, withResponse);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void SubscribeCharacteristic (string name, string service, string characteristic, Action notificationAction, Action action)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ {
+ name = name.ToUpper ();
+ service = service.ToUpper ();
+ characteristic = characteristic.ToUpper ();
+
+#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX))
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] = new Dictionary> ();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] [characteristic] = notificationAction;
+
+ if (!bluetoothDeviceScript.DidUpdateCharacteristicValueAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] = new Dictionary> ();
+ bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [characteristic] = action;
+#elif UNITY_ANDROID
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] = new Dictionary> ();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction [name] [FullUUID (characteristic).ToLower ()] = notificationAction;
+
+ if (!bluetoothDeviceScript.DidUpdateCharacteristicValueAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] = new Dictionary> ();
+ bluetoothDeviceScript.DidUpdateCharacteristicValueAction [name] [FullUUID (characteristic).ToLower ()] = action;
+#endif
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLESubscribeCharacteristic (name, service, characteristic);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLESubscribeCharacteristic (name, service, characteristic);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidSubscribeCharacteristic", name, service, characteristic);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void SubscribeCharacteristicWithDeviceAddress (string name, string service, string characteristic, Action notificationAction, Action action)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ {
+ name = name.ToUpper ();
+ service = service.ToUpper ();
+ characteristic = characteristic.ToUpper ();
+
+#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX))
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][characteristic] = notificationAction;
+
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][characteristic] = null;
+
+ if (!bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name][characteristic] = action;
+#elif UNITY_ANDROID
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][FullUUID (characteristic).ToLower ()] = notificationAction;
+
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey(name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][FullUUID (characteristic).ToLower ()] = null;
+
+ if (!bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateCharacteristicValueWithDeviceAddressAction[name][FullUUID (characteristic).ToLower ()] = action;
+#endif
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLESubscribeCharacteristic (name, service, characteristic);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLESubscribeCharacteristic (name, service, characteristic);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidSubscribeCharacteristic", name, service, characteristic);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void UnSubscribeCharacteristic (string name, string service, string characteristic, Action action)
+ {
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ if (!Application.isEditor)
+ {
+#endif
+ if (bluetoothDeviceScript != null)
+ {
+ name = name.ToUpper ();
+ service = service.ToUpper ();
+ characteristic = characteristic.ToUpper ();
+
+#if UNITY_IOS || UNITY_TVOS || (EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX))
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][characteristic] = null;
+
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary> ();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][characteristic] = action;
+#elif UNITY_ANDROID
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name] = new Dictionary>();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicWithDeviceAddressAction[name][FullUUID (characteristic).ToLower ()] = null;
+
+ if (!bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction.ContainsKey (name))
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name] = new Dictionary> ();
+ bluetoothDeviceScript.DidUpdateNotificationStateForCharacteristicAction[name][FullUUID (characteristic).ToLower ()] = action;
+#endif
+ }
+
+#if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
+ OSXBluetoothLEUnSubscribeCharacteristic (name, service, characteristic);
+#elif UNITY_IOS || UNITY_TVOS
+ _iOSBluetoothLEUnSubscribeCharacteristic (name, service, characteristic);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidUnsubscribeCharacteristic", name, service, characteristic);
+#endif
+#if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR
+ }
+#endif
+ }
+
+ public static void PeripheralName (string newName)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS
+ _iOSBluetoothLEPeripheralName (newName);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidPeripheralName", newName);
+#endif
+ }
+ }
+
+ public static void CreateService (string uuid, bool primary, Action action)
+ {
+ if (!Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.ServiceAddedAction = action;
+
+#if UNITY_IOS
+ _iOSBluetoothLECreateService (uuid, primary);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidCreateService", uuid, primary);
+#endif
+ }
+ }
+
+ public static void RemoveService (string uuid)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS
+ _iOSBluetoothLERemoveService (uuid);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidRemoveService", uuid);
+#endif
+ }
+ }
+
+ public static void RemoveServices ()
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS
+ _iOSBluetoothLERemoveServices ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidRemoveServices");
+#endif
+ }
+ }
+
+ public static void CreateCharacteristic (string uuid, CBCharacteristicProperties properties, CBAttributePermissions permissions, byte[] data, int length, Action action)
+ {
+ if (!Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.PeripheralReceivedWriteDataAction = action;
+
+#if UNITY_IOS
+ _iOSBluetoothLECreateCharacteristic (uuid, (int)properties, (int)permissions, data, length);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidCreateCharacteristic", uuid, (int)properties, (int)permissions, data, length);
+#endif
+ }
+ }
+
+ public static void RemoveCharacteristic (string uuid)
+ {
+ if (!Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.PeripheralReceivedWriteDataAction = null;
+
+#if UNITY_IOS
+ _iOSBluetoothLERemoveCharacteristic (uuid);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidRemoveCharacteristic", uuid);
+#endif
+ }
+ }
+
+ public static void RemoveCharacteristics ()
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS
+ _iOSBluetoothLERemoveCharacteristics ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidRemoveCharacteristics");
+#endif
+ }
+ }
+
+ public static void StartAdvertising (Action action, bool isConnectable = true, bool includeName = true, int manufacturerId = 0, byte[] manufacturerSpecificData = null)
+ {
+ if (!Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.StartedAdvertisingAction = action;
+
+#if UNITY_IOS
+ _iOSBluetoothLEStartAdvertising ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidStartAdvertising", isConnectable, includeName, manufacturerId, manufacturerSpecificData);
+#endif
+ }
+ }
+
+ public static void StopAdvertising (Action action)
+ {
+ if (!Application.isEditor)
+ {
+ if (bluetoothDeviceScript != null)
+ bluetoothDeviceScript.StoppedAdvertisingAction = action;
+
+#if UNITY_IOS
+ _iOSBluetoothLEStopAdvertising ();
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidStopAdvertising");
+#endif
+ }
+ }
+
+ public static void UpdateCharacteristicValue (string uuid, byte[] data, int length)
+ {
+ if (!Application.isEditor)
+ {
+#if UNITY_IOS
+ _iOSBluetoothLEUpdateCharacteristicValue (uuid, data, length);
+#elif UNITY_ANDROID
+ if (_android != null)
+ _android.Call ("androidUpdateCharacteristicValue", uuid, data, length);
+#endif
+ }
+ }
+
+ public static string FullUUID (string uuid)
+ {
+ if (uuid.Length == 4)
+ return "0000" + uuid + "-0000-1000-8000-00805F9B34FB";
+ return uuid;
+ }
+}
diff --git a/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs.meta b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs.meta
new file mode 100644
index 0000000..f3b5a0a
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/BluetoothHardwareInterface.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b8496a9b1a1df40af9ada2311d1d6d09
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant.meta
new file mode 100644
index 0000000..e819585
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2937a230c77d36a4dbb5a47fe61e8c3f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween.meta
new file mode 100644
index 0000000..50e2c01
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b6e300a5bd0db6b45974abfc99737f73
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll
new file mode 100644
index 0000000..57112d3
Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll differ
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll.meta
new file mode 100644
index 0000000..482dbb8
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/DOTween.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: a811bde74b26b53498b4f6d872b09b6d
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 1
+ settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor.meta
new file mode 100644
index 0000000..d284dad
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 83e4bbf9e17f8f94b8442369c7c47e87
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll
new file mode 100644
index 0000000..4911a86
Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll differ
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
new file mode 100644
index 0000000..53590f3
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 45d5034162d6cf04dbe46da84fc7d074
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll
new file mode 100644
index 0000000..ec5dd4c
Binary files /dev/null and b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll differ
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
new file mode 100644
index 0000000..c6717e9
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Editor/DOTweenUpgradeManager.dll.meta
@@ -0,0 +1,22 @@
+fileFormatVersion: 2
+guid: 2bf936a5d80799e4e88ec9270fea75a4
+PluginImporter:
+ serializedVersion: 1
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ platformData:
+ Any:
+ enabled: 0
+ settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules.meta
new file mode 100644
index 0000000..4982b1b
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e79ebd36be99a8047838bae73cb2d81a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs
new file mode 100644
index 0000000..d958ae0
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs
@@ -0,0 +1,198 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+using UnityEngine;
+using UnityEngine.Audio; // Required for AudioMixer
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModuleAudio
+ {
+ #region Shortcuts
+
+ #region Audio
+
+ /// Tweens an AudioSource's volume to the given value.
+ /// Also stores the AudioSource as the tween's target so it can be used for filtered operations
+ /// The end value to reach (0 to 1)The duration of the tween
+ public static TweenerCore DOFade(this AudioSource target, float endValue, float duration)
+ {
+ if (endValue < 0) endValue = 0;
+ else if (endValue > 1) endValue = 1;
+ TweenerCore t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an AudioSource's pitch to the given value.
+ /// Also stores the AudioSource as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPitch(this AudioSource target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region AudioMixer
+
+ /// Tweens an AudioMixer's exposed float to the given value.
+ /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations.
+ /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.
+ /// Name given to the exposed float to set
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(()=> {
+ float currVal;
+ target.GetFloat(floatName, out currVal);
+ return currVal;
+ }, x=> target.SetFloat(floatName, x), endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #region Operation Shortcuts
+
+ ///
+ /// Completes all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens completed
+ /// (meaning the tweens that don't have infinite loops and were not already complete)
+ ///
+ /// For Sequences only: if TRUE also internal Sequence callbacks will be fired,
+ /// otherwise they will be ignored
+ public static int DOComplete(this AudioMixer target, bool withCallbacks = false)
+ {
+ return DOTween.Complete(target, withCallbacks);
+ }
+
+ ///
+ /// Kills all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens killed.
+ ///
+ /// If TRUE completes the tween before killing it
+ public static int DOKill(this AudioMixer target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ ///
+ /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens flipped.
+ ///
+ public static int DOFlip(this AudioMixer target)
+ {
+ return DOTween.Flip(target);
+ }
+
+ ///
+ /// Sends to the given position all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens involved.
+ ///
+ /// Time position to reach
+ /// (if higher than the whole tween duration the tween will simply reach its end)
+ /// If TRUE will play the tween after reaching the given position, otherwise it will pause it
+ public static int DOGoto(this AudioMixer target, float to, bool andPlay = false)
+ {
+ return DOTween.Goto(target, to, andPlay);
+ }
+
+ ///
+ /// Pauses all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens paused.
+ ///
+ public static int DOPause(this AudioMixer target)
+ {
+ return DOTween.Pause(target);
+ }
+
+ ///
+ /// Plays all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens played.
+ ///
+ public static int DOPlay(this AudioMixer target)
+ {
+ return DOTween.Play(target);
+ }
+
+ ///
+ /// Plays backwards all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens played.
+ ///
+ public static int DOPlayBackwards(this AudioMixer target)
+ {
+ return DOTween.PlayBackwards(target);
+ }
+
+ ///
+ /// Plays forward all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens played.
+ ///
+ public static int DOPlayForward(this AudioMixer target)
+ {
+ return DOTween.PlayForward(target);
+ }
+
+ ///
+ /// Restarts all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens restarted.
+ ///
+ public static int DORestart(this AudioMixer target)
+ {
+ return DOTween.Restart(target);
+ }
+
+ ///
+ /// Rewinds all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens rewinded.
+ ///
+ public static int DORewind(this AudioMixer target)
+ {
+ return DOTween.Rewind(target);
+ }
+
+ ///
+ /// Smoothly rewinds all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens rewinded.
+ ///
+ public static int DOSmoothRewind(this AudioMixer target)
+ {
+ return DOTween.SmoothRewind(target);
+ }
+
+ ///
+ /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
+ /// (meaning tweens that were started from this target, or that had this target added as an Id)
+ /// and returns the total number of tweens involved.
+ ///
+ public static int DOTogglePause(this AudioMixer target)
+ {
+ return DOTween.TogglePause(target);
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
new file mode 100644
index 0000000..50aa010
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b766d08851589514b97afb23c6f30a70
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
new file mode 100644
index 0000000..2ab3775
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
@@ -0,0 +1,146 @@
+using UnityEngine;
+
+#if false || EPO_DOTWEEN // MODULE_MARKER
+
+using EPOOutline;
+using DG.Tweening.Plugins.Options;
+using DG.Tweening;
+using DG.Tweening.Core;
+
+namespace DG.Tweening
+{
+ public static class DOTweenModuleEPOOutline
+ {
+ public static int DOKill(this SerializedPass target, bool complete)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ public static TweenerCore DOFloat(this SerializedPass target, string propertyName, float endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFade(this SerializedPass target, string propertyName, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOColor(this SerializedPass target, string propertyName, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFloat(this SerializedPass target, int propertyId, float endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFade(this SerializedPass target, int propertyId, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOColor(this SerializedPass target, int propertyId, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ public static int DOKill(this Outliner target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ ///
+ /// Controls the alpha (transparency) of the outline
+ ///
+ public static TweenerCore DOFade(this Outlinable.OutlineProperties target, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the color of the outline
+ ///
+ public static TweenerCore DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of blur applied to the outline
+ ///
+ public static TweenerCore DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of blur applied to the outline
+ ///
+ public static TweenerCore DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of dilation applied to the outline
+ ///
+ public static TweenerCore DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ ///
+ /// Controls the amount of dilation applied to the outline
+ ///
+ public static TweenerCore DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+ }
+}
+#endif
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
new file mode 100644
index 0000000..4b8991f
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e944529dcaee98f4e9498d80e541d93e
+timeCreated: 1602593330
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
new file mode 100644
index 0000000..08b0700
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
@@ -0,0 +1,216 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using DG.Tweening.Core;
+using DG.Tweening.Core.Enums;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Core.PathCore;
+using DG.Tweening.Plugins.Options;
+using UnityEngine;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModulePhysics
+ {
+ #region Shortcuts
+
+ #region Rigidbody
+
+ /// Tweens a Rigidbody's position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's X position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's Y position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's Z position to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration);
+ t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody's rotation to the given value.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// Rotation mode
+ public static TweenerCore DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
+ t.SetTarget(target);
+ t.plugOptions.rotateMode = mode;
+ return t;
+ }
+
+ /// Tweens a Rigidbody's rotation so that it will look towards the given position.
+ /// Also stores the rigidbody as the tween's target so it can be used for filtered operations
+ /// The position to look atThe duration of the tween
+ /// Eventual axis constraint for the rotation
+ /// The vector that defines in which direction up is (default: Vector3.up)
+ public static TweenerCore DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration)
+ .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt);
+ t.plugOptions.axisConstraint = axisConstraint;
+ t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up;
+ return t;
+ }
+
+ #region Special
+
+ /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis.
+ /// Returns a Sequence instead of a Tweener.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ /// Total number of jumps
+ /// The duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
+ {
+ if (numJumps < 1) numJumps = 1;
+ float startPosY = 0;
+ float offsetY = -1;
+ bool offsetYSet = false;
+ Sequence s = DOTween.Sequence();
+ Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2))
+ .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
+ .SetLoops(numJumps * 2, LoopType.Yoyo)
+ .OnStart(() => startPosY = target.position.y);
+ s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration)
+ .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
+ ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration)
+ .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
+ ).Join(yTween)
+ .SetTarget(target).SetEase(DOTween.defaultEaseType);
+ yTween.OnUpdate(() => {
+ if (!offsetYSet) {
+ offsetYSet = true;
+ offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
+ }
+ Vector3 pos = target.position;
+ pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
+ target.MovePosition(pos);
+ });
+ return s;
+ }
+
+ /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations.
+ /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOPath.
+ /// The waypoints to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOPath(
+ this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
+ /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOLocalPath.
+ /// The waypoint to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOLocalPath(
+ this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+ // Used by path editor when creating the actual tween, so it can pass a pre-compiled path
+ internal static TweenerCore DOPath(
+ this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ internal static TweenerCore DOLocalPath(
+ this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
new file mode 100644
index 0000000..0ce0d75
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dae9aa560b4242648a3affa2bfabc365
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
new file mode 100644
index 0000000..8ce2b56
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
@@ -0,0 +1,193 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Core.PathCore;
+using DG.Tweening.Plugins.Options;
+using UnityEngine;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModulePhysics2D
+ {
+ #region Shortcuts
+
+ #region Rigidbody2D Shortcuts
+
+ /// Tweens a Rigidbody2D's position to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody2D's X position to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody2D's Y position to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Rigidbody2D's rotation to the given value.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DORotate(this Rigidbody2D target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #region Special
+
+ /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
+ /// Returns a Sequence instead of a Tweener.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
+ /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position
+ /// The end value to reach
+ /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ /// Total number of jumps
+ /// The duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
+ {
+ if (numJumps < 1) numJumps = 1;
+ float startPosY = 0;
+ float offsetY = -1;
+ bool offsetYSet = false;
+ Sequence s = DOTween.Sequence();
+ Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
+ .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
+ .SetLoops(numJumps * 2, LoopType.Yoyo)
+ .OnStart(() => startPosY = target.position.y);
+ s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration)
+ .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
+ ).Join(yTween)
+ .SetTarget(target).SetEase(DOTween.defaultEaseType);
+ yTween.OnUpdate(() => {
+ if (!offsetYSet) {
+ offsetYSet = true;
+ offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
+ }
+ Vector3 pos = target.position;
+ pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
+ target.MovePosition(pos);
+ });
+ return s;
+ }
+
+ /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
+ /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOPath.
+ /// The waypoints to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOPath(
+ this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ int len = path.Length;
+ Vector3[] path3D = new Vector3[len];
+ for (int i = 0; i < len; ++i) path3D[i] = path[i];
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOLocalPath.
+ /// The waypoint to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOLocalPath(
+ this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ int len = path.Length;
+ Vector3[] path3D = new Vector3[len];
+ for (int i = 0; i < len; ++i) path3D[i] = path[i];
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+ // Used by path editor when creating the actual tween, so it can pass a pre-compiled path
+ internal static TweenerCore DOPath(
+ this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ internal static TweenerCore DOLocalPath(
+ this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
new file mode 100644
index 0000000..ca9ed29
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 230fe34542e175245ba74b4659dae700
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
new file mode 100644
index 0000000..72afb7b
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
@@ -0,0 +1,93 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+using System;
+using UnityEngine;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModuleSprite
+ {
+ #region Shortcuts
+
+ #region SpriteRenderer
+
+ /// Tweens a SpriteRenderer's color to the given value.
+ /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this SpriteRenderer target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Material's alpha color to the given value.
+ /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this SpriteRenderer target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a SpriteRenderer's color using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to useThe duration of the tween
+ public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.color = c.color;
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+
+ #endregion
+
+ #region Blendables
+
+ #region SpriteRenderer
+
+ /// Tweens a SpriteRenderer's color to the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #endregion
+
+ #endregion
+ }
+}
+#endif
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
new file mode 100644
index 0000000..a0c67c4
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 188918ab119d93148aa0de59ccf5286b
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
new file mode 100644
index 0000000..2381f4c
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
@@ -0,0 +1,662 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+#if true // MODULE_MARKER
+
+using System;
+using System.Globalization;
+using UnityEngine;
+using UnityEngine.UI;
+using DG.Tweening.Core;
+using DG.Tweening.Core.Enums;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Options;
+using Outline = UnityEngine.UI.Outline;
+using Text = UnityEngine.UI.Text;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ public static class DOTweenModuleUI
+ {
+ #region Shortcuts
+
+ #region CanvasGroup
+
+ /// Tweens a CanvasGroup's alpha color to the given value.
+ /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this CanvasGroup target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Graphic
+
+ /// Tweens an Graphic's color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Graphic target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Graphic's alpha color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Graphic target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Image
+
+ /// Tweens an Image's color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Image target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Image's alpha color to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Image target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Image's fillAmount to the given value.
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The end value to reach (0 to 1)The duration of the tween
+ public static TweenerCore DOFillAmount(this Image target, float endValue, float duration)
+ {
+ if (endValue > 1) endValue = 1;
+ else if (endValue < 0) endValue = 0;
+ TweenerCore t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an Image's colors using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to useThe duration of the tween
+ public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.color = c.color;
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+
+ #endregion
+
+ #region LayoutElement
+
+ /// Tweens an LayoutElement's flexibleWidth/Height to the given value.
+ /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => {
+ target.flexibleWidth = x.x;
+ target.flexibleHeight = x.y;
+ }, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an LayoutElement's minWidth/Height to the given value.
+ /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => {
+ target.minWidth = x.x;
+ target.minHeight = x.y;
+ }, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens an LayoutElement's preferredWidth/Height to the given value.
+ /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => {
+ target.preferredWidth = x.x;
+ target.preferredHeight = x.y;
+ }, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Outline
+
+ /// Tweens a Outline's effectColor to the given value.
+ /// Also stores the Outline as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Outline target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Outline's effectColor alpha to the given value.
+ /// Also stores the Outline as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Outline target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Outline's effectDistance to the given value.
+ /// Also stores the Outline as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOScale(this Outline target, Vector2 endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region RectTransform
+
+ /// Tweens a RectTransform's anchoredPosition to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition X to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition Y to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's anchoredPosition3D to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition3D X to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration);
+ t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition3D Y to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration);
+ t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's anchoredPosition3D Z to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration);
+ t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's anchorMax to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's anchorMin to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's pivot to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPivot(this RectTransform target, Vector2 endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's pivot X to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPivotX(this RectTransform target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration);
+ t.SetOptions(AxisConstraint.X).SetTarget(target);
+ return t;
+ }
+ /// Tweens a RectTransform's pivot Y to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOPivotY(this RectTransform target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration);
+ t.SetOptions(AxisConstraint.Y).SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a RectTransform's sizeDelta to the given value.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one
+ /// as if it was connected to the starting position via an elastic.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The direction and strength of the punch (added to the RectTransform's current position)
+ /// The duration of the tween
+ /// Indicates how much will the punch vibrate
+ /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards.
+ /// 1 creates a full oscillation between the punch direction and the opposite direction,
+ /// while 0 oscillates only between the punch and the start position
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false)
+ {
+ return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity)
+ .SetTarget(target).SetOptions(snapping);
+ }
+
+ /// Shakes a RectTransform's anchoredPosition with the given values.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The duration of the tween
+ /// The shake strength
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the tween will smoothly snap all values to integers
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ /// Randomness mode
+ public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
+ {
+ return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode)
+ .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
+ }
+ /// Shakes a RectTransform's anchoredPosition with the given values.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The duration of the tween
+ /// The shake strength on each axis
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the tween will smoothly snap all values to integers
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ /// Randomness mode
+ public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
+ {
+ return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode)
+ .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
+ }
+
+ #region Special
+
+ /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis.
+ /// Returns a Sequence instead of a Tweener.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// Power of the jump (the max height of the jump is represented by this plus the final Y offset)
+ /// Total number of jumps
+ /// The duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
+ {
+ if (numJumps < 1) numJumps = 1;
+ float startPosY = 0;
+ float offsetY = -1;
+ bool offsetYSet = false;
+
+ // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence
+ // (in case users add a delay or other elements to the Sequence)
+ Sequence s = DOTween.Sequence();
+ Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
+ .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
+ .SetLoops(numJumps * 2, LoopType.Yoyo)
+ .OnStart(()=> startPosY = target.anchoredPosition.y);
+ s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration)
+ .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
+ ).Join(yTween)
+ .SetTarget(target).SetEase(DOTween.defaultEaseType);
+ s.OnUpdate(() => {
+ if (!offsetYSet) {
+ offsetYSet = true;
+ offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
+ }
+ Vector2 pos = target.anchoredPosition;
+ pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad);
+ target.anchoredPosition = pos;
+ });
+ return s;
+ }
+
+ #endregion
+
+ #endregion
+
+ #region ScrollRect
+
+ /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value.
+ /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false)
+ {
+ return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition),
+ x => {
+ target.horizontalNormalizedPosition = x.x;
+ target.verticalNormalizedPosition = x.y;
+ }, endValue, duration)
+ .SetOptions(snapping).SetTarget(target);
+ }
+ /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value.
+ /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
+ {
+ return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration)
+ .SetOptions(snapping).SetTarget(target);
+ }
+ /// Tweens a ScrollRect's verticalNormalizedPosition to the given value.
+ /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
+ {
+ return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration)
+ .SetOptions(snapping).SetTarget(target);
+ }
+
+ #endregion
+
+ #region Slider
+
+ /// Tweens a Slider's value to the given value.
+ /// Also stores the Slider as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOValue(this Slider target, float endValue, float duration, bool snapping = false)
+ {
+ TweenerCore t = DOTween.To(() => target.value, x => target.value = x, endValue, duration);
+ t.SetOptions(snapping).SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Text
+
+ /// Tweens a Text's color to the given value.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOColor(this Text target, Color endValue, float duration)
+ {
+ TweenerCore t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ ///
+ /// Tweens a Text's text from one integer to another, with options for thousands separators
+ ///
+ /// The value to start from
+ /// The end value to reach
+ /// The duration of the tween
+ /// If TRUE (default) also adds thousands separators
+ /// The to use (InvariantCulture if NULL)
+ public static TweenerCore DOCounter(
+ this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null
+ ){
+ int v = fromValue;
+ CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture;
+ TweenerCore t = DOTween.To(() => v, x => {
+ v = x;
+ target.text = addThousandsSeparator
+ ? v.ToString("N0", cInfo)
+ : v.ToString();
+ }, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Text's alpha color to the given value.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The end value to reachThe duration of the tween
+ public static TweenerCore DOFade(this Text target, float endValue, float duration)
+ {
+ TweenerCore t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Text's text to the given value.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The end string to tween toThe duration of the tween
+ /// If TRUE (default), rich text will be interpreted correctly while animated,
+ /// otherwise all tags will be considered as normal text
+ /// The type of scramble mode to use, if any
+ /// A string containing the characters to use for scrambling.
+ /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters.
+ /// Leave it to NULL (default) to use default ones
+ public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
+ {
+ if (endValue == null) {
+ if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors");
+ endValue = "";
+ }
+ TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration);
+ t.SetOptions(richTextEnabled, scrambleMode, scrambleChars)
+ .SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region Blendables
+
+ #region Graphic
+
+ /// Tweens a Graphic's color to the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the Graphic as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #region Image
+
+ /// Tweens a Image's color to the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the Image as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this Image target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #region Text
+
+ /// Tweens a Text's color BY the given value,
+ /// in a way that allows other DOBlendableColor tweens to work together on the same target,
+ /// instead than fight each other as multiple DOColor would do.
+ /// Also stores the Text as the tween's target so it can be used for filtered operations
+ /// The value to tween toThe duration of the tween
+ public static Tweener DOBlendableColor(this Text target, Color endValue, float duration)
+ {
+ endValue = endValue - target.color;
+ Color to = new Color(0, 0, 0, 0);
+ return DOTween.To(() => to, x => {
+ Color diff = x - to;
+ to = x;
+ target.color += diff;
+ }, endValue, duration)
+ .Blendable().SetTarget(target);
+ }
+
+ #endregion
+
+ #endregion
+
+ #region Shapes
+
+ /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations.
+ /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value"
+ /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates)
+ /// The end value degrees to reach (to rotate counter-clockwise pass a negative value)
+ /// The duration of the tween
+ /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOShapeCircle(
+ this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false
+ )
+ {
+ TweenerCore t = DOTween.To(
+ CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration
+ );
+ t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #endregion
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ public static class Utils
+ {
+ ///
+ /// Converts the anchoredPosition of the first RectTransform to the second RectTransform,
+ /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition
+ ///
+ public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to)
+ {
+ Vector2 localPoint;
+ Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin);
+ Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position);
+ screenP += fromPivotDerivedOffset;
+ RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint);
+ Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin);
+ return to.anchoredPosition + localPoint - pivotDerivedOffset;
+ }
+ }
+ }
+}
+#endif
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
new file mode 100644
index 0000000..60d55ef
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a060394c03331a64392db53a10e7f2d1
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
new file mode 100644
index 0000000..8f818ba
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
@@ -0,0 +1,389 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+using System;
+using UnityEngine;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Options;
+//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
+//using Task = System.Threading.Tasks.Task;
+//#endif
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ ///
+ /// Shortcuts/functions that are not strictly related to specific Modules
+ /// but are available only on some Unity versions
+ ///
+ public static class DOTweenModuleUnityVersion
+ {
+ #region Material
+
+ /// Tweens a Material's color using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to useThe duration of the tween
+ public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.color = c.color;
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+ /// Tweens a Material's named color property using the given gradient
+ /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
+ /// Also stores the image as the tween's target so it can be used for filtered operations
+ /// The gradient to use
+ /// The name of the material property to tween (like _Tint or _SpecColor)
+ /// The duration of the tween
+ public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration)
+ {
+ Sequence s = DOTween.Sequence();
+ GradientColorKey[] colors = gradient.colorKeys;
+ int len = colors.Length;
+ for (int i = 0; i < len; ++i) {
+ GradientColorKey c = colors[i];
+ if (i == 0 && c.time <= 0) {
+ target.SetColor(property, c.color);
+ continue;
+ }
+ float colorDuration = i == len - 1
+ ? duration - s.Duration(false) // Verifies that total duration is correct
+ : duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
+ s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear));
+ }
+ s.SetTarget(target);
+ return s;
+ }
+
+ #endregion
+
+ #region CustomYieldInstructions
+
+ ///
+ /// Returns a that waits until the tween is killed or complete.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForCompletion(true);
+ ///
+ public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForCompletion(t);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed or rewinded.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForRewind();
+ ///
+ public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForRewind(t);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForKill();
+ ///
+ public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForKill(t);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed or has gone through the given amount of loops.
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForElapsedLoops(2);
+ ///
+ /// Elapsed loops to wait for
+ public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed
+ /// or has reached the given time position (loops included, delays excluded).
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForPosition(2.5f);
+ ///
+ /// Position (loops included, delays excluded) to wait for
+ public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForPosition(t, position);
+ }
+
+ ///
+ /// Returns a that waits until the tween is killed or started
+ /// (meaning when the tween is set in a playing state the first time, after any eventual delay).
+ /// It can be used inside a coroutine as a yield.
+ /// Example usage:yield return myTween.WaitForStart();
+ ///
+ public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return null;
+ }
+ return new DOTweenCYInstruction.WaitForStart(t);
+ }
+
+ #endregion
+
+#if UNITY_2018_1_OR_NEWER
+ #region Unity 2018.1 or Newer
+
+ #region Material
+
+ /// Tweens a Material's named texture offset property with the given ID to the given value.
+ /// Also stores the material as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// The ID of the material property to tween (also called nameID in Unity's manual)
+ /// The duration of the tween
+ public static TweenerCore DOOffset(this Material target, Vector2 endValue, int propertyID, float duration)
+ {
+ if (!target.HasProperty(propertyID)) {
+ if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
+ return null;
+ }
+ TweenerCore t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ /// Tweens a Material's named texture scale property with the given ID to the given value.
+ /// Also stores the material as the tween's target so it can be used for filtered operations
+ /// The end value to reach
+ /// The ID of the material property to tween (also called nameID in Unity's manual)
+ /// The duration of the tween
+ public static TweenerCore DOTiling(this Material target, Vector2 endValue, int propertyID, float duration)
+ {
+ if (!target.HasProperty(propertyID)) {
+ if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
+ return null;
+ }
+ TweenerCore t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
+ #region .NET 4.6 or Newer
+
+#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
+
+ #region Async Instructions
+
+ ///
+ /// Returns an async that waits until the tween is killed or complete.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.WaitForCompletion();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or rewinded.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForRewind();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForKill();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or has gone through the given amount of loops.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForElapsedLoops();
+ ///
+ /// Elapsed loops to wait for
+ public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or started
+ /// (meaning when the tween is set in a playing state the first time, after any eventual delay).
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForPosition();
+ ///
+ /// Position (loops included, delays excluded) to wait for
+ public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForKill();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield();
+ }
+
+ #endregion
+#endif
+
+ #endregion
+
+ #endregion
+#endif
+ }
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ public static class DOTweenCYInstruction
+ {
+ public class WaitForCompletion : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && !t.IsComplete();
+ }}
+ readonly Tween t;
+ public WaitForCompletion(Tween tween)
+ {
+ t = tween;
+ }
+ }
+
+ public class WaitForRewind : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0);
+ }}
+ readonly Tween t;
+ public WaitForRewind(Tween tween)
+ {
+ t = tween;
+ }
+ }
+
+ public class WaitForKill : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active;
+ }}
+ readonly Tween t;
+ public WaitForKill(Tween tween)
+ {
+ t = tween;
+ }
+ }
+
+ public class WaitForElapsedLoops : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && t.CompletedLoops() < elapsedLoops;
+ }}
+ readonly Tween t;
+ readonly int elapsedLoops;
+ public WaitForElapsedLoops(Tween tween, int elapsedLoops)
+ {
+ t = tween;
+ this.elapsedLoops = elapsedLoops;
+ }
+ }
+
+ public class WaitForPosition : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && t.position * (t.CompletedLoops() + 1) < position;
+ }}
+ readonly Tween t;
+ readonly float position;
+ public WaitForPosition(Tween tween, float position)
+ {
+ t = tween;
+ this.position = position;
+ }
+ }
+
+ public class WaitForStart : CustomYieldInstruction
+ {
+ public override bool keepWaiting { get {
+ return t.active && !t.playedOnce;
+ }}
+ readonly Tween t;
+ public WaitForStart(Tween tween)
+ {
+ t = tween;
+ }
+ }
+ }
+}
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
new file mode 100644
index 0000000..290189f
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 63c02322328255542995bd02b47b0457
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
new file mode 100644
index 0000000..12a365d
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
@@ -0,0 +1,167 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2018/07/13
+
+using System;
+using System.Reflection;
+using UnityEngine;
+using DG.Tweening.Core;
+using DG.Tweening.Plugins.Core.PathCore;
+using DG.Tweening.Plugins.Options;
+
+#pragma warning disable 1591
+namespace DG.Tweening
+{
+ ///
+ /// Utility functions that deal with available Modules.
+ /// Modules defines:
+ /// - DOTAUDIO
+ /// - DOTPHYSICS
+ /// - DOTPHYSICS2D
+ /// - DOTSPRITE
+ /// - DOTUI
+ /// Extra defines set and used for implementation of external assets:
+ /// - DOTWEEN_TMP ► TextMesh Pro
+ /// - DOTWEEN_TK2D ► 2D Toolkit
+ ///
+ public static class DOTweenModuleUtils
+ {
+ static bool _initialized;
+
+ #region Reflection
+
+ ///
+ /// Called via Reflection by DOTweenComponent on Awake
+ ///
+#if UNITY_2018_1_OR_NEWER
+ [UnityEngine.Scripting.Preserve]
+#endif
+ public static void Init()
+ {
+ if (_initialized) return;
+
+ _initialized = true;
+ DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath;
+
+#if UNITY_EDITOR
+#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
+ UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged;
+#else
+ UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged;
+#endif
+#endif
+ }
+
+#if UNITY_2018_1_OR_NEWER
+#pragma warning disable
+ [UnityEngine.Scripting.Preserve]
+ // Just used to preserve methods when building, never called
+ static void Preserver()
+ {
+ Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
+ MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub");
+ }
+#pragma warning restore
+#endif
+
+ #endregion
+
+#if UNITY_EDITOR
+ // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime)
+#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
+ static void PlaymodeStateChanged()
+ #else
+ static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state)
+#endif
+ {
+ if (DOTween.instance == null) return;
+ DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused);
+ }
+#endif
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ public static class Physics
+ {
+ // Called via DOTweenExternalCommand callback
+ public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans)
+ {
+#if true // PHYSICS_MARKER
+ if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot;
+ else trans.rotation = newRot;
+#else
+ trans.rotation = newRot;
+#endif
+ }
+
+ // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached
+ public static bool HasRigidbody2D(Component target)
+ {
+#if true // PHYSICS2D_MARKER
+ return target.GetComponent() != null;
+#else
+ return false;
+#endif
+ }
+
+ #region Called via Reflection
+
+
+ // Called via Reflection by DOTweenPathInspector
+ // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached
+#if UNITY_2018_1_OR_NEWER
+ [UnityEngine.Scripting.Preserve]
+#endif
+ public static bool HasRigidbody(Component target)
+ {
+#if true // PHYSICS_MARKER
+ return target.GetComponent() != null;
+#else
+ return false;
+#endif
+ }
+
+ // Called via Reflection by DOTweenPath
+#if UNITY_2018_1_OR_NEWER
+ [UnityEngine.Scripting.Preserve]
+#endif
+ public static TweenerCore CreateDOTweenPathTween(
+ MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode
+ ){
+ TweenerCore t = null;
+ bool rBodyFoundAndTweened = false;
+#if true // PHYSICS_MARKER
+ if (tweenRigidbody) {
+ Rigidbody rBody = target.GetComponent();
+ if (rBody != null) {
+ rBodyFoundAndTweened = true;
+ t = isLocal
+ ? rBody.DOLocalPath(path, duration, pathMode)
+ : rBody.DOPath(path, duration, pathMode);
+ }
+ }
+#endif
+#if true // PHYSICS2D_MARKER
+ if (!rBodyFoundAndTweened && tweenRigidbody) {
+ Rigidbody2D rBody2D = target.GetComponent();
+ if (rBody2D != null) {
+ rBodyFoundAndTweened = true;
+ t = isLocal
+ ? rBody2D.DOLocalPath(path, duration, pathMode)
+ : rBody2D.DOPath(path, duration, pathMode);
+ }
+ }
+#endif
+ if (!rBodyFoundAndTweened) {
+ t = isLocal
+ ? target.transform.DOLocalPath(path, duration, pathMode)
+ : target.transform.DOPath(path, duration, pathMode);
+ }
+ return t;
+ }
+
+ #endregion
+ }
+ }
+}
diff --git a/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
new file mode 100644
index 0000000..ab62186
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Plugins/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7bcaf917d9cf5b84090421a5a2abe42e
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Samples~/Hand Driver Demo/Runtime.meta b/Samples~/Hand Driver Demo/Runtime.meta
new file mode 100644
index 0000000..f2181be
--- /dev/null
+++ b/Samples~/Hand Driver Demo/Runtime.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2c9e2272c07c90a4eb03ef74f9a87470
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scenes.meta b/Samples~/Hand Driver Demo/Scenes.meta
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scenes.meta
rename to Samples~/Hand Driver Demo/Scenes.meta
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity b/Samples~/Hand Driver Demo/Scenes/Sample.unity
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity
rename to Samples~/Hand Driver Demo/Scenes/Sample.unity
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity.meta b/Samples~/Hand Driver Demo/Scenes/Sample.unity.meta
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scenes/Sample.unity.meta
rename to Samples~/Hand Driver Demo/Scenes/Sample.unity.meta
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts.meta b/Samples~/Hand Driver Demo/Scripts.meta
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts.meta
rename to Samples~/Hand Driver Demo/Scripts.meta
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs b/Samples~/Hand Driver Demo/Scripts/HandDriver.cs
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs
rename to Samples~/Hand Driver Demo/Scripts/HandDriver.cs
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs.meta b/Samples~/Hand Driver Demo/Scripts/HandDriver.cs.meta
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/HandDriver.cs.meta
rename to Samples~/Hand Driver Demo/Scripts/HandDriver.cs.meta
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs b/Samples~/Hand Driver Demo/Scripts/InputData.cs
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs
rename to Samples~/Hand Driver Demo/Scripts/InputData.cs
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs.meta b/Samples~/Hand Driver Demo/Scripts/InputData.cs.meta
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/InputData.cs.meta
rename to Samples~/Hand Driver Demo/Scripts/InputData.cs.meta
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs b/Samples~/Hand Driver Demo/Scripts/Network.cs
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs
rename to Samples~/Hand Driver Demo/Scripts/Network.cs
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs.meta b/Samples~/Hand Driver Demo/Scripts/Network.cs.meta
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/Network.cs.meta
rename to Samples~/Hand Driver Demo/Scripts/Network.cs.meta
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs b/Samples~/Hand Driver Demo/Scripts/VibrationData.cs
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs
rename to Samples~/Hand Driver Demo/Scripts/VibrationData.cs
diff --git a/Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs.meta b/Samples~/Hand Driver Demo/Scripts/VibrationData.cs.meta
similarity index 100%
rename from Samples~/Hand Driver Demo/HandDriver/Scripts/VibrationData.cs.meta
rename to Samples~/Hand Driver Demo/Scripts/VibrationData.cs.meta
diff --git a/Samples~/Hand Driver Demo/_3rd.meta b/Samples~/Hand Driver Demo/_3rd.meta
new file mode 100644
index 0000000..039595d
--- /dev/null
+++ b/Samples~/Hand Driver Demo/_3rd.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f94ed6072f4ff6646becdf1839ffe326
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TouchSocket.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket.meta
similarity index 100%
rename from TouchSocket.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket.meta
diff --git a/TouchSocket/Core.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core.meta
similarity index 100%
rename from TouchSocket/Core.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core.meta
diff --git a/TouchSocket/Core/ByteManager.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager.meta
similarity index 100%
rename from TouchSocket/Core/ByteManager.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager.meta
diff --git a/TouchSocket/Core/ByteManager/ByteBlock.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs
similarity index 100%
rename from TouchSocket/Core/ByteManager/ByteBlock.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs
diff --git a/TouchSocket/Core/ByteManager/ByteBlock.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs.meta
similarity index 100%
rename from TouchSocket/Core/ByteManager/ByteBlock.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ByteBlock.cs.meta
diff --git a/TouchSocket/Core/ByteManager/BytePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs
similarity index 100%
rename from TouchSocket/Core/ByteManager/BytePool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs
diff --git a/TouchSocket/Core/ByteManager/BytePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs.meta
similarity index 100%
rename from TouchSocket/Core/ByteManager/BytePool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytePool.cs.meta
diff --git a/TouchSocket/Core/ByteManager/BytesQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs
similarity index 100%
rename from TouchSocket/Core/ByteManager/BytesQueue.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs
diff --git a/TouchSocket/Core/ByteManager/BytesQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs.meta
similarity index 100%
rename from TouchSocket/Core/ByteManager/BytesQueue.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/BytesQueue.cs.meta
diff --git a/TouchSocket/Core/ByteManager/ValueByteBlock.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs
similarity index 100%
rename from TouchSocket/Core/ByteManager/ValueByteBlock.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs
diff --git a/TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta
similarity index 100%
rename from TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/ByteManager/ValueByteBlock.cs.meta
diff --git a/TouchSocket/Core/Caching.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching.meta
similarity index 100%
rename from TouchSocket/Core/Caching.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching.meta
diff --git a/TouchSocket/Core/Caching/CacheEntry.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs
similarity index 100%
rename from TouchSocket/Core/Caching/CacheEntry.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs
diff --git a/TouchSocket/Core/Caching/CacheEntry.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs.meta
similarity index 100%
rename from TouchSocket/Core/Caching/CacheEntry.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheEntry.cs.meta
diff --git a/TouchSocket/Core/Caching/CacheManagementExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs
similarity index 100%
rename from TouchSocket/Core/Caching/CacheManagementExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs
diff --git a/TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/CacheManagementExtensions.cs.meta
diff --git a/TouchSocket/Core/Caching/ICache.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs
similarity index 100%
rename from TouchSocket/Core/Caching/ICache.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs
diff --git a/TouchSocket/Core/Caching/ICache.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs.meta
similarity index 100%
rename from TouchSocket/Core/Caching/ICache.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICache.cs.meta
diff --git a/TouchSocket/Core/Caching/ICacheEntry.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs
similarity index 100%
rename from TouchSocket/Core/Caching/ICacheEntry.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs
diff --git a/TouchSocket/Core/Caching/ICacheEntry.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs.meta
similarity index 100%
rename from TouchSocket/Core/Caching/ICacheEntry.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/ICacheEntry.cs.meta
diff --git a/TouchSocket/Core/Caching/MemoryCache.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs
similarity index 100%
rename from TouchSocket/Core/Caching/MemoryCache.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs
diff --git a/TouchSocket/Core/Caching/MemoryCache.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs.meta
similarity index 100%
rename from TouchSocket/Core/Caching/MemoryCache.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Caching/MemoryCache.cs.meta
diff --git a/TouchSocket/Core/Collections.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections.meta
similarity index 100%
rename from TouchSocket/Core/Collections.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections.meta
diff --git a/TouchSocket/Core/Collections/Concurrent.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent.meta
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent.meta
diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs
diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentDoublyDictionary.cs.meta
diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs
diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentList.cs.meta
diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs
diff --git a/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/ConcurrentMultiDictionary.cs.meta
diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs
diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentConcurrentQueue.cs.meta
diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs
diff --git a/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/IntelligentDataQueue.cs.meta
diff --git a/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs
diff --git a/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/Concurrent/TriggerQueue.cs.meta
diff --git a/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs
similarity index 100%
rename from TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs
diff --git a/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/IgnoreCaseNameValueCollection.cs.meta
diff --git a/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs
similarity index 100%
rename from TouchSocket/Core/Collections/NameValueCollectionDebugView.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs
diff --git a/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta
similarity index 100%
rename from TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Collections/NameValueCollectionDebugView.cs.meta
diff --git a/TouchSocket/Core/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common.meta
similarity index 100%
rename from TouchSocket/Core/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common.meta
diff --git a/TouchSocket/Core/Common/AppConfigBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs
similarity index 100%
rename from TouchSocket/Core/Common/AppConfigBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs
diff --git a/TouchSocket/Core/Common/AppConfigBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/AppConfigBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/AppConfigBase.cs.meta
diff --git a/TouchSocket/Core/Common/DateExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs
similarity index 100%
rename from TouchSocket/Core/Common/DateExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs
diff --git a/TouchSocket/Core/Common/DateExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/DateExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DateExtensions.cs.meta
diff --git a/TouchSocket/Core/Common/DisposableObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs
similarity index 100%
rename from TouchSocket/Core/Common/DisposableObject.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs
diff --git a/TouchSocket/Core/Common/DisposableObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/DisposableObject.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/DisposableObject.cs.meta
diff --git a/TouchSocket/Core/Common/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum.meta
similarity index 100%
rename from TouchSocket/Core/Common/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum.meta
diff --git a/TouchSocket/Core/Common/Enum/EndianType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs
similarity index 100%
rename from TouchSocket/Core/Common/Enum/EndianType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs
diff --git a/TouchSocket/Core/Common/Enum/EndianType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/Enum/EndianType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/EndianType.cs.meta
diff --git a/TouchSocket/Core/Common/Enum/ResultCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs
similarity index 100%
rename from TouchSocket/Core/Common/Enum/ResultCode.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs
diff --git a/TouchSocket/Core/Common/Enum/ResultCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/Enum/ResultCode.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Enum/ResultCode.cs.meta
diff --git a/TouchSocket/Core/Common/FlowGate.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs
similarity index 100%
rename from TouchSocket/Core/Common/FlowGate.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs
diff --git a/TouchSocket/Core/Common/FlowGate.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/FlowGate.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/FlowGate.cs.meta
diff --git a/TouchSocket/Core/Common/GlobalEnvironment.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs
similarity index 100%
rename from TouchSocket/Core/Common/GlobalEnvironment.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs
diff --git a/TouchSocket/Core/Common/GlobalEnvironment.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/GlobalEnvironment.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/GlobalEnvironment.cs.meta
diff --git a/TouchSocket/Core/Common/IResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs
similarity index 100%
rename from TouchSocket/Core/Common/IResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs
diff --git a/TouchSocket/Core/Common/IResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/IResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IResult.cs.meta
diff --git a/TouchSocket/Core/Common/IWrite.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs
similarity index 100%
rename from TouchSocket/Core/Common/IWrite.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs
diff --git a/TouchSocket/Core/Common/IWrite.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/IWrite.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/IWrite.cs.meta
diff --git a/TouchSocket/Core/Common/Locker.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs
similarity index 100%
rename from TouchSocket/Core/Common/Locker.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs
diff --git a/TouchSocket/Core/Common/Locker.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/Locker.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Locker.cs.meta
diff --git a/TouchSocket/Core/Common/Metadata.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs
similarity index 100%
rename from TouchSocket/Core/Common/Metadata.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs
diff --git a/TouchSocket/Core/Common/Metadata.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/Metadata.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Metadata.cs.meta
diff --git a/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs
similarity index 100%
rename from TouchSocket/Core/Common/MetadataFastBinaryConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs
diff --git a/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/MetadataFastBinaryConverter.cs.meta
diff --git a/TouchSocket/Core/Common/OptimizedPlatforms.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs
similarity index 100%
rename from TouchSocket/Core/Common/OptimizedPlatforms.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs
diff --git a/TouchSocket/Core/Common/OptimizedPlatforms.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/OptimizedPlatforms.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/OptimizedPlatforms.cs.meta
diff --git a/TouchSocket/Core/Common/Result.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs
similarity index 100%
rename from TouchSocket/Core/Common/Result.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs
diff --git a/TouchSocket/Core/Common/Result.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/Result.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/Result.cs.meta
diff --git a/TouchSocket/Core/Common/SnowflakeIDGenerator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs
similarity index 100%
rename from TouchSocket/Core/Common/SnowflakeIDGenerator.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs
diff --git a/TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/SnowflakeIDGenerator.cs.meta
diff --git a/TouchSocket/Core/Common/StringResStore.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs
similarity index 100%
rename from TouchSocket/Core/Common/StringResStore.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs
diff --git a/TouchSocket/Core/Common/StringResStore.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/StringResStore.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/StringResStore.cs.meta
diff --git a/TouchSocket/Core/Common/ThrowHelper.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs
similarity index 100%
rename from TouchSocket/Core/Common/ThrowHelper.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs
diff --git a/TouchSocket/Core/Common/ThrowHelper.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/ThrowHelper.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/ThrowHelper.cs.meta
diff --git a/TouchSocket/Core/Common/TouchSocketBitConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs
similarity index 100%
rename from TouchSocket/Core/Common/TouchSocketBitConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs
diff --git a/TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketBitConverter.cs.meta
diff --git a/TouchSocket/Core/Common/TouchSocketCoreUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs
similarity index 100%
rename from TouchSocket/Core/Common/TouchSocketCoreUtility.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs
diff --git a/TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta
similarity index 100%
rename from TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Common/TouchSocketCoreUtility.cs.meta
diff --git a/TouchSocket/Core/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config.meta
similarity index 100%
rename from TouchSocket/Core/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config.meta
diff --git a/TouchSocket/Core/Config/TouchSocketConfig.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs
similarity index 100%
rename from TouchSocket/Core/Config/TouchSocketConfig.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs
diff --git a/TouchSocket/Core/Config/TouchSocketConfig.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs.meta
similarity index 100%
rename from TouchSocket/Core/Config/TouchSocketConfig.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketConfig.cs.meta
diff --git a/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs
similarity index 100%
rename from TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs
diff --git a/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Config/TouchSocketCoreConfigExtension.cs.meta
diff --git a/TouchSocket/Core/Converter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter.meta
similarity index 100%
rename from TouchSocket/Core/Converter.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter.meta
diff --git a/TouchSocket/Core/Converter/BytesConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs
similarity index 100%
rename from TouchSocket/Core/Converter/BytesConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs
diff --git a/TouchSocket/Core/Converter/BytesConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Converter/BytesConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/BytesConverter.cs.meta
diff --git a/TouchSocket/Core/Converter/IConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs
similarity index 100%
rename from TouchSocket/Core/Converter/IConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs
diff --git a/TouchSocket/Core/Converter/IConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Converter/IConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/IConverter.cs.meta
diff --git a/TouchSocket/Core/Converter/StringConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs
similarity index 100%
rename from TouchSocket/Core/Converter/StringConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs
diff --git a/TouchSocket/Core/Converter/StringConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Converter/StringConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/StringConverter.cs.meta
diff --git a/TouchSocket/Core/Converter/TouchSocketConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs
similarity index 100%
rename from TouchSocket/Core/Converter/TouchSocketConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs
diff --git a/TouchSocket/Core/Converter/TouchSocketConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Converter/TouchSocketConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Converter/TouchSocketConverter.cs.meta
diff --git a/TouchSocket/Core/Data.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data.meta
similarity index 100%
rename from TouchSocket/Core/Data.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data.meta
diff --git a/TouchSocket/Core/Data/Compress.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress.meta
similarity index 100%
rename from TouchSocket/Core/Data/Compress.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress.meta
diff --git a/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs
similarity index 100%
rename from TouchSocket/Core/Data/Compress/GZipDataCompressor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs
diff --git a/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/GZipDataCompressor.cs.meta
diff --git a/TouchSocket/Core/Data/Compress/IDataCompressor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs
similarity index 100%
rename from TouchSocket/Core/Data/Compress/IDataCompressor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs
diff --git a/TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Compress/IDataCompressor.cs.meta
diff --git a/TouchSocket/Core/Data/Crc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs
similarity index 100%
rename from TouchSocket/Core/Data/Crc.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs
diff --git a/TouchSocket/Core/Data/Crc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/Crc.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Crc.cs.meta
diff --git a/TouchSocket/Core/Data/GZip.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs
similarity index 100%
rename from TouchSocket/Core/Data/GZip.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs
diff --git a/TouchSocket/Core/Data/GZip.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/GZip.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/GZip.cs.meta
diff --git a/TouchSocket/Core/Data/MD5.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs
similarity index 100%
rename from TouchSocket/Core/Data/MD5.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs
diff --git a/TouchSocket/Core/Data/MD5.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/MD5.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/MD5.cs.meta
diff --git a/TouchSocket/Core/Data/Security.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security.meta
similarity index 100%
rename from TouchSocket/Core/Data/Security.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security.meta
diff --git a/TouchSocket/Core/Data/Security/DataSecurity.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs
similarity index 100%
rename from TouchSocket/Core/Data/Security/DataSecurity.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs
diff --git a/TouchSocket/Core/Data/Security/DataSecurity.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/Security/DataSecurity.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Security/DataSecurity.cs.meta
diff --git a/TouchSocket/Core/Data/Swap.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs
similarity index 100%
rename from TouchSocket/Core/Data/Swap.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs
diff --git a/TouchSocket/Core/Data/Swap.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/Swap.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/Swap.cs.meta
diff --git a/TouchSocket/Core/Data/XML.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML.meta
similarity index 100%
rename from TouchSocket/Core/Data/XML.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML.meta
diff --git a/TouchSocket/Core/Data/XML/XmlTool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs
similarity index 100%
rename from TouchSocket/Core/Data/XML/XmlTool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs
diff --git a/TouchSocket/Core/Data/XML/XmlTool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs.meta
similarity index 100%
rename from TouchSocket/Core/Data/XML/XmlTool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Data/XML/XmlTool.cs.meta
diff --git a/TouchSocket/Core/Dependency.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency.meta
similarity index 100%
rename from TouchSocket/Core/Dependency.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency.meta
diff --git a/TouchSocket/Core/Dependency/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/Attribute.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute.meta
diff --git a/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs
diff --git a/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DataValidationAttribute.cs.meta
diff --git a/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs
diff --git a/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Attribute/DependencyInjectionAttribute.cs.meta
diff --git a/TouchSocket/Core/Dependency/Container.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/Container.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs
diff --git a/TouchSocket/Core/Dependency/Container.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/Container.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Container.cs.meta
diff --git a/TouchSocket/Core/Dependency/ContainerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/ContainerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs
diff --git a/TouchSocket/Core/Dependency/ContainerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/ContainerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerExtension.cs.meta
diff --git a/TouchSocket/Core/Dependency/ContainerProvider.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/ContainerProvider.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs
diff --git a/TouchSocket/Core/Dependency/ContainerProvider.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/ContainerProvider.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/ContainerProvider.cs.meta
diff --git a/TouchSocket/Core/Dependency/DependencyDescriptor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/DependencyDescriptor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs
diff --git a/TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyDescriptor.cs.meta
diff --git a/TouchSocket/Core/Dependency/DependencyObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/DependencyObject.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs
diff --git a/TouchSocket/Core/Dependency/DependencyObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/DependencyObject.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyObject.cs.meta
diff --git a/TouchSocket/Core/Dependency/DependencyProperty.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/DependencyProperty.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs
diff --git a/TouchSocket/Core/Dependency/DependencyProperty.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/DependencyProperty.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/DependencyProperty.cs.meta
diff --git a/TouchSocket/Core/Dependency/IContainer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/IContainer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs
diff --git a/TouchSocket/Core/Dependency/IContainer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/IContainer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainer.cs.meta
diff --git a/TouchSocket/Core/Dependency/IContainerProvider.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/IContainerProvider.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs
diff --git a/TouchSocket/Core/Dependency/IContainerProvider.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/IContainerProvider.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/IContainerProvider.cs.meta
diff --git a/TouchSocket/Core/Dependency/Lifetime.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs
similarity index 100%
rename from TouchSocket/Core/Dependency/Lifetime.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs
diff --git a/TouchSocket/Core/Dependency/Lifetime.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs.meta
similarity index 100%
rename from TouchSocket/Core/Dependency/Lifetime.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Dependency/Lifetime.cs.meta
diff --git a/TouchSocket/Core/Diagnostics.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics.meta
similarity index 100%
rename from TouchSocket/Core/Diagnostics.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics.meta
diff --git a/TouchSocket/Core/Diagnostics/TimeMeasurer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs
similarity index 100%
rename from TouchSocket/Core/Diagnostics/TimeMeasurer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs
diff --git a/TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta
similarity index 100%
rename from TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Diagnostics/TimeMeasurer.cs.meta
diff --git a/TouchSocket/Core/Event.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event.meta
similarity index 100%
rename from TouchSocket/Core/Event.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event.meta
diff --git a/TouchSocket/Core/Event/TouchSocketEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs
similarity index 100%
rename from TouchSocket/Core/Event/TouchSocketEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs
diff --git a/TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Event/TouchSocketEventArgs.cs.meta
diff --git a/TouchSocket/Core/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions.meta
similarity index 100%
rename from TouchSocket/Core/Exceptions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions.meta
diff --git a/TouchSocket/Core/Exceptions/MessageNotFoundException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs
similarity index 100%
rename from TouchSocket/Core/Exceptions/MessageNotFoundException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs
diff --git a/TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta
similarity index 100%
rename from TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageNotFoundException.cs.meta
diff --git a/TouchSocket/Core/Exceptions/MessageRegisteredException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs
similarity index 100%
rename from TouchSocket/Core/Exceptions/MessageRegisteredException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs
diff --git a/TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta
similarity index 100%
rename from TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Exceptions/MessageRegisteredException.cs.meta
diff --git a/TouchSocket/Core/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions.meta
similarity index 100%
rename from TouchSocket/Core/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions.meta
diff --git a/TouchSocket/Core/Extensions/BytesExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/BytesExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs
diff --git a/TouchSocket/Core/Extensions/BytesExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/BytesExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/BytesExtension.cs.meta
diff --git a/TouchSocket/Core/Extensions/DictionaryExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/DictionaryExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs
diff --git a/TouchSocket/Core/Extensions/DictionaryExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/DictionaryExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/DictionaryExtension.cs.meta
diff --git a/TouchSocket/Core/Extensions/RangeExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/RangeExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs
diff --git a/TouchSocket/Core/Extensions/RangeExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/RangeExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/RangeExtension.cs.meta
diff --git a/TouchSocket/Core/Extensions/StringExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/StringExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs
diff --git a/TouchSocket/Core/Extensions/StringExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/StringExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/StringExtension.cs.meta
diff --git a/TouchSocket/Core/Extensions/SystemExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/SystemExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs
diff --git a/TouchSocket/Core/Extensions/SystemExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/SystemExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemExtensions.cs.meta
diff --git a/TouchSocket/Core/Extensions/SystemNetExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/SystemNetExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs
diff --git a/TouchSocket/Core/Extensions/SystemNetExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/SystemNetExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/SystemNetExtension.cs.meta
diff --git a/TouchSocket/Core/Extensions/TaskExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/TaskExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs
diff --git a/TouchSocket/Core/Extensions/TaskExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/TaskExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TaskExtension.cs.meta
diff --git a/TouchSocket/Core/Extensions/TupleExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/TupleExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs
diff --git a/TouchSocket/Core/Extensions/TupleExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/TupleExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TupleExtension.cs.meta
diff --git a/TouchSocket/Core/Extensions/TypeExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs
similarity index 100%
rename from TouchSocket/Core/Extensions/TypeExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs
diff --git a/TouchSocket/Core/Extensions/TypeExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Extensions/TypeExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Extensions/TypeExtension.cs.meta
diff --git a/TouchSocket/Core/IO.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO.meta
similarity index 100%
rename from TouchSocket/Core/IO.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO.meta
diff --git a/TouchSocket/Core/IO/BlockReadStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs
similarity index 100%
rename from TouchSocket/Core/IO/BlockReadStream.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs
diff --git a/TouchSocket/Core/IO/BlockReadStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/BlockReadStream.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReadStream.cs.meta
diff --git a/TouchSocket/Core/IO/BlockReader.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs
similarity index 100%
rename from TouchSocket/Core/IO/BlockReader.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs
diff --git a/TouchSocket/Core/IO/BlockReader.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/BlockReader.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/BlockReader.cs.meta
diff --git a/TouchSocket/Core/IO/ConsoleAction.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs
similarity index 100%
rename from TouchSocket/Core/IO/ConsoleAction.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs
diff --git a/TouchSocket/Core/IO/ConsoleAction.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/ConsoleAction.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/ConsoleAction.cs.meta
diff --git a/TouchSocket/Core/IO/DirectoryUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs
similarity index 100%
rename from TouchSocket/Core/IO/DirectoryUtility.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs
diff --git a/TouchSocket/Core/IO/DirectoryUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/DirectoryUtility.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/DirectoryUtility.cs.meta
diff --git a/TouchSocket/Core/IO/FileIO.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO.meta
similarity index 100%
rename from TouchSocket/Core/IO/FileIO.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO.meta
diff --git a/TouchSocket/Core/IO/FileIO/FilePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FilePool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs
diff --git a/TouchSocket/Core/IO/FileIO/FilePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FilePool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FilePool.cs.meta
diff --git a/TouchSocket/Core/IO/FileIO/FileStorage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs
diff --git a/TouchSocket/Core/IO/FileIO/FileStorage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorage.cs.meta
diff --git a/TouchSocket/Core/IO/FileIO/FileStorageReader.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorageReader.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs
diff --git a/TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageReader.cs.meta
diff --git a/TouchSocket/Core/IO/FileIO/FileStorageStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorageStream.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs
diff --git a/TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageStream.cs.meta
diff --git a/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorageWriter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs
diff --git a/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileIO/FileStorageWriter.cs.meta
diff --git a/TouchSocket/Core/IO/FileUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs
similarity index 100%
rename from TouchSocket/Core/IO/FileUtility.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs
diff --git a/TouchSocket/Core/IO/FileUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/FileUtility.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/FileUtility.cs.meta
diff --git a/TouchSocket/Core/IO/WrapStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs
similarity index 100%
rename from TouchSocket/Core/IO/WrapStream.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs
diff --git a/TouchSocket/Core/IO/WrapStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs.meta
similarity index 100%
rename from TouchSocket/Core/IO/WrapStream.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/IO/WrapStream.cs.meta
diff --git a/TouchSocket/Core/Logger.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger.meta
similarity index 100%
rename from TouchSocket/Core/Logger.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger.meta
diff --git a/TouchSocket/Core/Logger/ConsoleLogger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs
similarity index 100%
rename from TouchSocket/Core/Logger/ConsoleLogger.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs
diff --git a/TouchSocket/Core/Logger/ConsoleLogger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/ConsoleLogger.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ConsoleLogger.cs.meta
diff --git a/TouchSocket/Core/Logger/EasyLogger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs
similarity index 100%
rename from TouchSocket/Core/Logger/EasyLogger.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs
diff --git a/TouchSocket/Core/Logger/EasyLogger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/EasyLogger.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/EasyLogger.cs.meta
diff --git a/TouchSocket/Core/Logger/FileLogger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs
similarity index 100%
rename from TouchSocket/Core/Logger/FileLogger.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs
diff --git a/TouchSocket/Core/Logger/FileLogger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/FileLogger.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/FileLogger.cs.meta
diff --git a/TouchSocket/Core/Logger/ILog.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs
similarity index 100%
rename from TouchSocket/Core/Logger/ILog.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs
diff --git a/TouchSocket/Core/Logger/ILog.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/ILog.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/ILog.cs.meta
diff --git a/TouchSocket/Core/Logger/LogType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs
similarity index 100%
rename from TouchSocket/Core/Logger/LogType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs
diff --git a/TouchSocket/Core/Logger/LogType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/LogType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LogType.cs.meta
diff --git a/TouchSocket/Core/Logger/LoggerBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs
diff --git a/TouchSocket/Core/Logger/LoggerBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerBase.cs.meta
diff --git a/TouchSocket/Core/Logger/LoggerContainerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerContainerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs
diff --git a/TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerContainerExtension.cs.meta
diff --git a/TouchSocket/Core/Logger/LoggerExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs
diff --git a/TouchSocket/Core/Logger/LoggerExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerExtensions.cs.meta
diff --git a/TouchSocket/Core/Logger/LoggerGroup.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerGroup.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs
diff --git a/TouchSocket/Core/Logger/LoggerGroup.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs.meta
similarity index 100%
rename from TouchSocket/Core/Logger/LoggerGroup.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Logger/LoggerGroup.cs.meta
diff --git a/TouchSocket/Core/Mapper.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper.meta
similarity index 100%
rename from TouchSocket/Core/Mapper.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper.meta
diff --git a/TouchSocket/Core/Mapper/Mapper.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs
similarity index 100%
rename from TouchSocket/Core/Mapper/Mapper.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs
diff --git a/TouchSocket/Core/Mapper/Mapper.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs.meta
similarity index 100%
rename from TouchSocket/Core/Mapper/Mapper.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/Mapper.cs.meta
diff --git a/TouchSocket/Core/Mapper/MapperOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs
similarity index 100%
rename from TouchSocket/Core/Mapper/MapperOption.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs
diff --git a/TouchSocket/Core/Mapper/MapperOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs.meta
similarity index 100%
rename from TouchSocket/Core/Mapper/MapperOption.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Mapper/MapperOption.cs.meta
diff --git a/TouchSocket/Core/Packages_.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_.meta
similarity index 100%
rename from TouchSocket/Core/Packages_.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_.meta
diff --git a/TouchSocket/Core/Packages_/IPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs
similarity index 100%
rename from TouchSocket/Core/Packages_/IPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs
diff --git a/TouchSocket/Core/Packages_/IPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs.meta
similarity index 100%
rename from TouchSocket/Core/Packages_/IPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/IPackage.cs.meta
diff --git a/TouchSocket/Core/Packages_/MsgRouterPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs
similarity index 100%
rename from TouchSocket/Core/Packages_/MsgRouterPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs
diff --git a/TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta
similarity index 100%
rename from TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/MsgRouterPackage.cs.meta
diff --git a/TouchSocket/Core/Packages_/PackageBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs
similarity index 100%
rename from TouchSocket/Core/Packages_/PackageBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs
diff --git a/TouchSocket/Core/Packages_/PackageBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs.meta
similarity index 100%
rename from TouchSocket/Core/Packages_/PackageBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageBase.cs.meta
diff --git a/TouchSocket/Core/Packages_/PackageExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs
similarity index 100%
rename from TouchSocket/Core/Packages_/PackageExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs
diff --git a/TouchSocket/Core/Packages_/PackageExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Core/Packages_/PackageExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/PackageExtensions.cs.meta
diff --git a/TouchSocket/Core/Packages_/RouterPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs
similarity index 100%
rename from TouchSocket/Core/Packages_/RouterPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs
diff --git a/TouchSocket/Core/Packages_/RouterPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs.meta
similarity index 100%
rename from TouchSocket/Core/Packages_/RouterPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/RouterPackage.cs.meta
diff --git a/TouchSocket/Core/Packages_/WaitPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs
similarity index 100%
rename from TouchSocket/Core/Packages_/WaitPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs
diff --git a/TouchSocket/Core/Packages_/WaitPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs.meta
similarity index 100%
rename from TouchSocket/Core/Packages_/WaitPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitPackage.cs.meta
diff --git a/TouchSocket/Core/Packages_/WaitRouterPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs
similarity index 100%
rename from TouchSocket/Core/Packages_/WaitRouterPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs
diff --git a/TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta
similarity index 100%
rename from TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Packages_/WaitRouterPackage.cs.meta
diff --git a/TouchSocket/Core/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins.meta
similarity index 100%
rename from TouchSocket/Core/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins.meta
diff --git a/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs
diff --git a/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/AsyncRaiserAttribute.cs.meta
diff --git a/TouchSocket/Core/Plugins/IPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/IPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs
diff --git a/TouchSocket/Core/Plugins/IPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/IPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPlugin.cs.meta
diff --git a/TouchSocket/Core/Plugins/IPluginObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/IPluginObject.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs
diff --git a/TouchSocket/Core/Plugins/IPluginObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/IPluginObject.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginObject.cs.meta
diff --git a/TouchSocket/Core/Plugins/IPluginsManager.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/IPluginsManager.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs
diff --git a/TouchSocket/Core/Plugins/IPluginsManager.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/IPluginsManager.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/IPluginsManager.cs.meta
diff --git a/TouchSocket/Core/Plugins/PlguinObjectExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/PlguinObjectExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs
diff --git a/TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PlguinObjectExtension.cs.meta
diff --git a/TouchSocket/Core/Plugins/PluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/PluginBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs
diff --git a/TouchSocket/Core/Plugins/PluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/PluginBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginBase.cs.meta
diff --git a/TouchSocket/Core/Plugins/PluginsManager.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/PluginsManager.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs
diff --git a/TouchSocket/Core/Plugins/PluginsManager.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/PluginsManager.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManager.cs.meta
diff --git a/TouchSocket/Core/Plugins/PluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/PluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs
diff --git a/TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/PluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Plugins/SingletonPluginAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs
diff --git a/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Plugins/SingletonPluginAttribute.cs.meta
diff --git a/TouchSocket/Core/Pool.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool.meta
similarity index 100%
rename from TouchSocket/Core/Pool.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool.meta
diff --git a/TouchSocket/Core/Pool/ObjectPool.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool.meta
similarity index 100%
rename from TouchSocket/Core/Pool/ObjectPool.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool.meta
diff --git a/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs
similarity index 100%
rename from TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs
diff --git a/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta
similarity index 100%
rename from TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IObjectPool.cs.meta
diff --git a/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs
similarity index 100%
rename from TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs
diff --git a/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta
similarity index 100%
rename from TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/IPoolObject.cs.meta
diff --git a/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs
similarity index 100%
rename from TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs
diff --git a/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta
similarity index 100%
rename from TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Pool/ObjectPool/ObjectPool.cs.meta
diff --git a/TouchSocket/Core/Reflection.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection.meta
similarity index 100%
rename from TouchSocket/Core/Reflection.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection.meta
diff --git a/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs
diff --git a/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/DynamicMethodMemberAccessor.cs.meta
diff --git a/TouchSocket/Core/Reflection/ExpressionMapper.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/ExpressionMapper.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs
diff --git a/TouchSocket/Core/Reflection/ExpressionMapper.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/ExpressionMapper.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/ExpressionMapper.cs.meta
diff --git a/TouchSocket/Core/Reflection/IMemberAccessor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/IMemberAccessor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs
diff --git a/TouchSocket/Core/Reflection/IMemberAccessor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/IMemberAccessor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/IMemberAccessor.cs.meta
diff --git a/TouchSocket/Core/Reflection/Member.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/Member.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs
diff --git a/TouchSocket/Core/Reflection/Member.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/Member.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Member.cs.meta
diff --git a/TouchSocket/Core/Reflection/MemberAccessor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/MemberAccessor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs
diff --git a/TouchSocket/Core/Reflection/MemberAccessor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/MemberAccessor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberAccessor.cs.meta
diff --git a/TouchSocket/Core/Reflection/MemberGetter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/MemberGetter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs
diff --git a/TouchSocket/Core/Reflection/MemberGetter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/MemberGetter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberGetter.cs.meta
diff --git a/TouchSocket/Core/Reflection/MemberSetter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/MemberSetter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs
diff --git a/TouchSocket/Core/Reflection/MemberSetter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/MemberSetter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/MemberSetter.cs.meta
diff --git a/TouchSocket/Core/Reflection/Method.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/Method.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs
diff --git a/TouchSocket/Core/Reflection/Method.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/Method.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Method.cs.meta
diff --git a/TouchSocket/Core/Reflection/Property.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs
similarity index 100%
rename from TouchSocket/Core/Reflection/Property.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs
diff --git a/TouchSocket/Core/Reflection/Property.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs.meta
similarity index 100%
rename from TouchSocket/Core/Reflection/Property.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Reflection/Property.cs.meta
diff --git a/TouchSocket/Core/Run.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run.meta
similarity index 100%
rename from TouchSocket/Core/Run.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run.meta
diff --git a/TouchSocket/Core/Run/Action.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action.meta
similarity index 100%
rename from TouchSocket/Core/Run/Action.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action.meta
diff --git a/TouchSocket/Core/Run/Action/EasyTask.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs
similarity index 100%
rename from TouchSocket/Core/Run/Action/EasyTask.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs
diff --git a/TouchSocket/Core/Run/Action/EasyTask.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Action/EasyTask.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/EasyTask.cs.meta
diff --git a/TouchSocket/Core/Run/Action/LoopAction.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs
similarity index 100%
rename from TouchSocket/Core/Run/Action/LoopAction.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs
diff --git a/TouchSocket/Core/Run/Action/LoopAction.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Action/LoopAction.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/LoopAction.cs.meta
diff --git a/TouchSocket/Core/Run/Action/RunStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs
similarity index 100%
rename from TouchSocket/Core/Run/Action/RunStatus.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs
diff --git a/TouchSocket/Core/Run/Action/RunStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Action/RunStatus.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Action/RunStatus.cs.meta
diff --git a/TouchSocket/Core/Run/Message.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message.meta
similarity index 100%
rename from TouchSocket/Core/Run/Message.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message.meta
diff --git a/TouchSocket/Core/Run/Message/AppMessageAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Run/Message/AppMessageAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs
diff --git a/TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessageAttribute.cs.meta
diff --git a/TouchSocket/Core/Run/Message/AppMessenger.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs
similarity index 100%
rename from TouchSocket/Core/Run/Message/AppMessenger.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs
diff --git a/TouchSocket/Core/Run/Message/AppMessenger.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Message/AppMessenger.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessenger.cs.meta
diff --git a/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs
similarity index 100%
rename from TouchSocket/Core/Run/Message/AppMessengerExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs
diff --git a/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/AppMessengerExtensions.cs.meta
diff --git a/TouchSocket/Core/Run/Message/IMessageObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs
similarity index 100%
rename from TouchSocket/Core/Run/Message/IMessageObject.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs
diff --git a/TouchSocket/Core/Run/Message/IMessageObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Message/IMessageObject.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/IMessageObject.cs.meta
diff --git a/TouchSocket/Core/Run/Message/MessageInstance.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs
similarity index 100%
rename from TouchSocket/Core/Run/Message/MessageInstance.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs
diff --git a/TouchSocket/Core/Run/Message/MessageInstance.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Message/MessageInstance.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Message/MessageInstance.cs.meta
diff --git a/TouchSocket/Core/Run/Timers.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers.meta
similarity index 100%
rename from TouchSocket/Core/Run/Timers.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers.meta
diff --git a/TouchSocket/Core/Run/Timers/SingleTimer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs
similarity index 100%
rename from TouchSocket/Core/Run/Timers/SingleTimer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs
diff --git a/TouchSocket/Core/Run/Timers/SingleTimer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/Timers/SingleTimer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/Timers/SingleTimer.cs.meta
diff --git a/TouchSocket/Core/Run/WaitPool.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool.meta
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool.meta
diff --git a/TouchSocket/Core/Run/WaitPool/IWaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/IWaitResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs
diff --git a/TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/IWaitResult.cs.meta
diff --git a/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs
diff --git a/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/ValueWaitResult.cs.meta
diff --git a/TouchSocket/Core/Run/WaitPool/WaitData.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitData.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs
diff --git a/TouchSocket/Core/Run/WaitPool/WaitData.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitData.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitData.cs.meta
diff --git a/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs
diff --git a/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitDataStatus.cs.meta
diff --git a/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs
diff --git a/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitHandlePool.cs.meta
diff --git a/TouchSocket/Core/Run/WaitPool/WaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs
diff --git a/TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta
similarity index 100%
rename from TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Run/WaitPool/WaitResult.cs.meta
diff --git a/TouchSocket/Core/Serialization.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization.meta
similarity index 100%
rename from TouchSocket/Core/Serialization.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization.meta
diff --git a/TouchSocket/Core/Serialization/Attributes.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/Attributes.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes.meta
diff --git a/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs
diff --git a/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastConverterAttribute.cs.meta
diff --git a/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs
diff --git a/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastNonSerializedAttribute.cs.meta
diff --git a/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs
diff --git a/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Attributes/FastSerializedAttribute.cs.meta
diff --git a/TouchSocket/Core/Serialization/FastBinary.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary.meta
diff --git a/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs
diff --git a/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/FastBinaryFormatter.cs.meta
diff --git a/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs
diff --git a/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/IFastBinaryConverter.cs.meta
diff --git a/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/InstanceType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs
diff --git a/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/InstanceType.cs.meta
diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/SerializObject.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs
diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializObject.cs.meta
diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/SerializationType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs
diff --git a/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/SerializationType.cs.meta
diff --git a/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs
diff --git a/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/FastBinary/VersionFastBinaryConverter.cs.meta
diff --git a/TouchSocket/Core/Serialization/Json.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/Json.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json.meta
diff --git a/TouchSocket/Core/Serialization/Json/JsonFast.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/Json/JsonFast.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs
diff --git a/TouchSocket/Core/Serialization/Json/JsonFast.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/Json/JsonFast.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonFast.cs.meta
diff --git a/TouchSocket/Core/Serialization/Json/JsonNet.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/Json/JsonNet.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs
diff --git a/TouchSocket/Core/Serialization/Json/JsonNet.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/Json/JsonNet.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/Json/JsonNet.cs.meta
diff --git a/TouchSocket/Core/Serialization/SerializeConvert.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs
similarity index 100%
rename from TouchSocket/Core/Serialization/SerializeConvert.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs
diff --git a/TouchSocket/Core/Serialization/SerializeConvert.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs.meta
similarity index 100%
rename from TouchSocket/Core/Serialization/SerializeConvert.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/Serialization/SerializeConvert.cs.meta
diff --git a/TouchSocket/Core/代码说明.txt b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt
similarity index 100%
rename from TouchSocket/Core/代码说明.txt
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt
diff --git a/TouchSocket/Core/代码说明.txt.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt.meta
similarity index 100%
rename from TouchSocket/Core/代码说明.txt.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Core/代码说明.txt.meta
diff --git a/TouchSocket/Http.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http.meta
similarity index 100%
rename from TouchSocket/Http.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http.meta
diff --git a/TouchSocket/Http/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common.meta
similarity index 100%
rename from TouchSocket/Http/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common.meta
diff --git a/TouchSocket/Http/Common/FileCachePool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs
similarity index 100%
rename from TouchSocket/Http/Common/FileCachePool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs
diff --git a/TouchSocket/Http/Common/FileCachePool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/FileCachePool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/FileCachePool.cs.meta
diff --git a/TouchSocket/Http/Common/HttpBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs
similarity index 100%
rename from TouchSocket/Http/Common/HttpBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs
diff --git a/TouchSocket/Http/Common/HttpBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/HttpBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpBase.cs.meta
diff --git a/TouchSocket/Http/Common/HttpContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs
similarity index 100%
rename from TouchSocket/Http/Common/HttpContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs
diff --git a/TouchSocket/Http/Common/HttpContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/HttpContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpContext.cs.meta
diff --git a/TouchSocket/Http/Common/HttpProxy.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs
similarity index 100%
rename from TouchSocket/Http/Common/HttpProxy.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs
diff --git a/TouchSocket/Http/Common/HttpProxy.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/HttpProxy.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpProxy.cs.meta
diff --git a/TouchSocket/Http/Common/HttpRange.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs
similarity index 100%
rename from TouchSocket/Http/Common/HttpRange.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs
diff --git a/TouchSocket/Http/Common/HttpRange.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/HttpRange.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRange.cs.meta
diff --git a/TouchSocket/Http/Common/HttpRequest.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs
similarity index 100%
rename from TouchSocket/Http/Common/HttpRequest.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs
diff --git a/TouchSocket/Http/Common/HttpRequest.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/HttpRequest.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpRequest.cs.meta
diff --git a/TouchSocket/Http/Common/HttpResponse.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs
similarity index 100%
rename from TouchSocket/Http/Common/HttpResponse.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs
diff --git a/TouchSocket/Http/Common/HttpResponse.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/HttpResponse.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpResponse.cs.meta
diff --git a/TouchSocket/Http/Common/HttpTools.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs
similarity index 100%
rename from TouchSocket/Http/Common/HttpTools.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs
diff --git a/TouchSocket/Http/Common/HttpTools.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/HttpTools.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/HttpTools.cs.meta
diff --git a/TouchSocket/Http/Common/MultifileCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs
similarity index 100%
rename from TouchSocket/Http/Common/MultifileCollection.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs
diff --git a/TouchSocket/Http/Common/MultifileCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/MultifileCollection.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/MultifileCollection.cs.meta
diff --git a/TouchSocket/Http/Common/TouchSocketHttpUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs
similarity index 100%
rename from TouchSocket/Http/Common/TouchSocketHttpUtility.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs
diff --git a/TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/TouchSocketHttpUtility.cs.meta
diff --git a/TouchSocket/Http/Common/WebProxy.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy.meta
similarity index 100%
rename from TouchSocket/Http/Common/WebProxy.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy.meta
diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs
similarity index 100%
rename from TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs
diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationChallenge.cs.meta
diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs
similarity index 100%
rename from TouchSocket/Http/Common/WebProxy/AuthenticationType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs
diff --git a/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/AuthenticationType.cs.meta
diff --git a/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs
similarity index 100%
rename from TouchSocket/Http/Common/WebProxy/NetworkCredential.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs
diff --git a/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta
similarity index 100%
rename from TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Common/WebProxy/NetworkCredential.cs.meta
diff --git a/TouchSocket/Http/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components.meta
similarity index 100%
rename from TouchSocket/Http/Components.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components.meta
diff --git a/TouchSocket/Http/Components/HttpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs
similarity index 100%
rename from TouchSocket/Http/Components/HttpClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs
diff --git a/TouchSocket/Http/Components/HttpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs.meta
similarity index 100%
rename from TouchSocket/Http/Components/HttpClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpClient.cs.meta
diff --git a/TouchSocket/Http/Components/HttpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs
similarity index 100%
rename from TouchSocket/Http/Components/HttpService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs
diff --git a/TouchSocket/Http/Components/HttpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs.meta
similarity index 100%
rename from TouchSocket/Http/Components/HttpService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpService.cs.meta
diff --git a/TouchSocket/Http/Components/HttpSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs
similarity index 100%
rename from TouchSocket/Http/Components/HttpSocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs
diff --git a/TouchSocket/Http/Components/HttpSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Http/Components/HttpSocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Components/HttpSocketClient.cs.meta
diff --git a/TouchSocket/Http/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config.meta
similarity index 100%
rename from TouchSocket/Http/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config.meta
diff --git a/TouchSocket/Http/Config/HttpConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs
similarity index 100%
rename from TouchSocket/Http/Config/HttpConfigExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs
diff --git a/TouchSocket/Http/Config/HttpConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Http/Config/HttpConfigExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Config/HttpConfigExtensions.cs.meta
diff --git a/TouchSocket/Http/DataAdapter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter.meta
similarity index 100%
rename from TouchSocket/Http/DataAdapter.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter.meta
diff --git a/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs
diff --git a/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpClientDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs
diff --git a/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DataAdapter/HttpServerDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Http/DelegateCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs
similarity index 100%
rename from TouchSocket/Http/DelegateCollection.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs
diff --git a/TouchSocket/Http/DelegateCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs.meta
similarity index 100%
rename from TouchSocket/Http/DelegateCollection.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/DelegateCollection.cs.meta
diff --git a/TouchSocket/Http/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum.meta
similarity index 100%
rename from TouchSocket/Http/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum.meta
diff --git a/TouchSocket/Http/Enum/HttpHeaders.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs
similarity index 100%
rename from TouchSocket/Http/Enum/HttpHeaders.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs
diff --git a/TouchSocket/Http/Enum/HttpHeaders.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs.meta
similarity index 100%
rename from TouchSocket/Http/Enum/HttpHeaders.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Enum/HttpHeaders.cs.meta
diff --git a/TouchSocket/Http/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs.meta
similarity index 100%
rename from TouchSocket/Http/EventArgs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs.meta
diff --git a/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs
similarity index 100%
rename from TouchSocket/Http/EventArgs/HttpContextEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs
diff --git a/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/EventArgs/HttpContextEventArgs.cs.meta
diff --git a/TouchSocket/Http/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions.meta
similarity index 100%
rename from TouchSocket/Http/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions.meta
diff --git a/TouchSocket/Http/Extensions/HttpExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs
similarity index 100%
rename from TouchSocket/Http/Extensions/HttpExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs
diff --git a/TouchSocket/Http/Extensions/HttpExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Http/Extensions/HttpExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpExtensions.cs.meta
diff --git a/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs
diff --git a/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Extensions/HttpPluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Http/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface.meta
similarity index 100%
rename from TouchSocket/Http/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface.meta
diff --git a/TouchSocket/Http/Interface/HttpPluginInterface.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs
similarity index 100%
rename from TouchSocket/Http/Interface/HttpPluginInterface.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs
diff --git a/TouchSocket/Http/Interface/HttpPluginInterface.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs.meta
similarity index 100%
rename from TouchSocket/Http/Interface/HttpPluginInterface.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/HttpPluginInterface.cs.meta
diff --git a/TouchSocket/Http/Interface/IFormFile.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs
similarity index 100%
rename from TouchSocket/Http/Interface/IFormFile.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs
diff --git a/TouchSocket/Http/Interface/IFormFile.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs.meta
similarity index 100%
rename from TouchSocket/Http/Interface/IFormFile.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IFormFile.cs.meta
diff --git a/TouchSocket/Http/Interface/IHttpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs
similarity index 100%
rename from TouchSocket/Http/Interface/IHttpClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs
diff --git a/TouchSocket/Http/Interface/IHttpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs.meta
similarity index 100%
rename from TouchSocket/Http/Interface/IHttpClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpClient.cs.meta
diff --git a/TouchSocket/Http/Interface/IHttpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs
similarity index 100%
rename from TouchSocket/Http/Interface/IHttpService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs
diff --git a/TouchSocket/Http/Interface/IHttpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs.meta
similarity index 100%
rename from TouchSocket/Http/Interface/IHttpService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Interface/IHttpService.cs.meta
diff --git a/TouchSocket/Http/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins.meta
similarity index 100%
rename from TouchSocket/Http/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins.meta
diff --git a/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs
similarity index 100%
rename from TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs
diff --git a/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta
similarity index 100%
rename from TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/DefaultHttpServicePlugin.cs.meta
diff --git a/TouchSocket/Http/Plugins/HttpPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs
similarity index 100%
rename from TouchSocket/Http/Plugins/HttpPluginBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs
diff --git a/TouchSocket/Http/Plugins/HttpPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs.meta
similarity index 100%
rename from TouchSocket/Http/Plugins/HttpPluginBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpPluginBase.cs.meta
diff --git a/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs
similarity index 100%
rename from TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs
diff --git a/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta
similarity index 100%
rename from TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/Plugins/HttpStaticPagePlugin.cs.meta
diff --git a/TouchSocket/Http/WebSockets.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets.meta
diff --git a/TouchSocket/Http/WebSockets/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common.meta
diff --git a/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Common/WSDataFrame.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs
diff --git a/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSDataFrame.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Common/WSTools.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Common/WSTools.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs
diff --git a/TouchSocket/Http/WebSockets/Common/WSTools.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Common/WSTools.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Common/WSTools.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Components.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components.meta
diff --git a/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Components/WebSocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs
diff --git a/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Components/WebSocketClient.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config.meta
diff --git a/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs
diff --git a/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Config/WebSocketConfigExtensions.cs.meta
diff --git a/TouchSocket/Http/WebSockets/DataAdapter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/DataAdapter.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter.meta
diff --git a/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs
diff --git a/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DataAdapter/WebSocketDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Http/WebSockets/DelegateCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/DelegateCollection.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs
diff --git a/TouchSocket/Http/WebSockets/DelegateCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/DelegateCollection.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/DelegateCollection.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum.meta
diff --git a/TouchSocket/Http/WebSockets/Enum/WSDataType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Enum/WSDataType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs
diff --git a/TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Enum/WSDataType.cs.meta
diff --git a/TouchSocket/Http/WebSockets/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/EventArgs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs.meta
diff --git a/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs
diff --git a/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/EventArgs/WSDataFrameEventArgs.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Exceptions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions.meta
diff --git a/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs
diff --git a/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Exceptions/WebSocketConnectException.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions.meta
diff --git a/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs
diff --git a/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSClientExtensions.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs
diff --git a/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WSDataFrameExtensions.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs
diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketExtensions.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs
diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketPluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs
diff --git a/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Extensions/WebSocketServerExtensions.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface.meta
diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs
diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketClient.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs
diff --git a/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Interface/IWebSocketPlugin.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins.meta
diff --git a/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs
diff --git a/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WSCommandLinePlugin.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs
diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketHeartbeatPlugin.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs
diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketPluginBase.cs.meta
diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs
diff --git a/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Http/WebSockets/Plugins/WebSocketServerPlugin.cs.meta
diff --git a/TouchSocket/Resources.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources.meta
similarity index 100%
rename from TouchSocket/Resources.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources.meta
diff --git a/TouchSocket/Resources/AssemblyInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs
similarity index 100%
rename from TouchSocket/Resources/AssemblyInfo.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs
diff --git a/TouchSocket/Resources/AssemblyInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs.meta
similarity index 100%
rename from TouchSocket/Resources/AssemblyInfo.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/AssemblyInfo.cs.meta
diff --git a/TouchSocket/Resources/TouchSocketStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs
similarity index 100%
rename from TouchSocket/Resources/TouchSocketStatus.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs
diff --git a/TouchSocket/Resources/TouchSocketStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs.meta
similarity index 100%
rename from TouchSocket/Resources/TouchSocketStatus.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatus.cs.meta
diff --git a/TouchSocket/Resources/TouchSocketStatusExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs
similarity index 100%
rename from TouchSocket/Resources/TouchSocketStatusExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs
diff --git a/TouchSocket/Resources/TouchSocketStatusExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs.meta
similarity index 100%
rename from TouchSocket/Resources/TouchSocketStatusExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Resources/TouchSocketStatusExtension.cs.meta
diff --git a/TouchSocket/Rpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc.meta
similarity index 100%
rename from TouchSocket/Rpc.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc.meta
diff --git a/TouchSocket/Rpc/Global.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global.meta
similarity index 100%
rename from TouchSocket/Rpc/Global.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global.meta
diff --git a/TouchSocket/Rpc/Global/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute.meta
diff --git a/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs
diff --git a/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/IRpcActionFilter.cs.meta
diff --git a/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs
diff --git a/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcActionFilterAttribute.cs.meta
diff --git a/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs
diff --git a/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcAttribute.cs.meta
diff --git a/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs
diff --git a/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Attribute/RpcProxyAttribute.cs.meta
diff --git a/TouchSocket/Rpc/Global/Code.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Code.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code.meta
diff --git a/TouchSocket/Rpc/Global/Code/ClassCellCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/ClassCellCode.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs
diff --git a/TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCellCode.cs.meta
diff --git a/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs
diff --git a/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ClassCodeGenerator.cs.meta
diff --git a/TouchSocket/Rpc/Global/Code/CodeGenerator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/CodeGenerator.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs
diff --git a/TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/CodeGenerator.cs.meta
diff --git a/TouchSocket/Rpc/Global/Code/MethodCellCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/MethodCellCode.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs
diff --git a/TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/MethodCellCode.cs.meta
diff --git a/TouchSocket/Rpc/Global/Code/ServerCellCode.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/ServerCellCode.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs
diff --git a/TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Code/ServerCellCode.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common.meta
diff --git a/TouchSocket/Rpc/Global/Common/ActionMap.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/ActionMap.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs
diff --git a/TouchSocket/Rpc/Global/Common/ActionMap.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/ActionMap.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/ActionMap.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common/FeedbackType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/FeedbackType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs
diff --git a/TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/FeedbackType.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common/InvokeResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/InvokeResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs
diff --git a/TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/InvokeResult.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common/MethodInstance.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/MethodInstance.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs
diff --git a/TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/MethodInstance.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common/RpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/RpcServer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs
diff --git a/TouchSocket/Rpc/Global/Common/RpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/RpcServer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServer.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/RpcServerFactory.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs
diff --git a/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcServerFactory.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common/RpcStore.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/RpcStore.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs
diff --git a/TouchSocket/Rpc/Global/Common/RpcStore.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/RpcStore.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/RpcStore.cs.meta
diff --git a/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/TransientRpcServer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs
diff --git a/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Common/TransientRpcServer.cs.meta
diff --git a/TouchSocket/Rpc/Global/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum.meta
diff --git a/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs
diff --git a/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/CodeGeneratorFlag.cs.meta
diff --git a/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Enum/InvokeStatus.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs
diff --git a/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/InvokeStatus.cs.meta
diff --git a/TouchSocket/Rpc/Global/Enum/MethodFlags.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Enum/MethodFlags.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs
diff --git a/TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Enum/MethodFlags.cs.meta
diff --git a/TouchSocket/Rpc/Global/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Exceptions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions.meta
diff --git a/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs
diff --git a/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Exceptions/RpcExceptions.cs.meta
diff --git a/TouchSocket/Rpc/Global/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions.meta
diff --git a/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs
diff --git a/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcConfigExtensions.cs.meta
diff --git a/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs
diff --git a/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcParserExtensions.cs.meta
diff --git a/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs
diff --git a/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Extensions/RpcStoreExtensions.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface.meta
diff --git a/TouchSocket/Rpc/Global/Interface/ICallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/ICallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs
diff --git a/TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ICallContext.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IInvokeOption.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs
diff --git a/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IInvokeOption.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRemoteServer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs
diff --git a/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRemoteServer.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcParser.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcParser.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcParser.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcServer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServer.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs
diff --git a/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/IRpcServerFactory.cs.meta
diff --git a/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs
diff --git a/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/Global/Interface/ITransientRpcServer.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Attribute.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Attribute/JsonRpcAttribute.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonResponseContext.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcCallContext.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcContext.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcRequest.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcResponse.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Common/JsonRpcWaitResult.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Components.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Components/JsonRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Config/JsonRpcConfigExtensions.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Enum/JRPT.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Extensions/JsonRpcPluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcCallContext.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Interface/IJsonRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins.meta
diff --git a/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs
diff --git a/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/JsonRpc/Plugins/JsonRpcParserPlugin.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Attribute.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Attribute/TouchRpcAttribute.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Channel.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/Channel.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/Channel.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/ChannelStatus.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Channel/WaitCreateChannelPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/FlowOperator.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/IDependencyTouchRpc.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpc.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcCallContext.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/Interface/ITouchRpcService.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/TouchRpcUtility.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitPingPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitSetID.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Common/WaitVerify.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcService.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/HttpTouchRpcSocketClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Http/Interface/IHttpTouchRpcService.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/RpcActorGroup.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/Interface/ITcpTouchRpcService.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcService.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Tcp/TcpTouchRpcSocketClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Udp.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/Interface/IUdpTouchRpc.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Udp/UdpTouchRpc.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/Interface/IWSTouchRpcClientBase.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Components/Websocket/WSTouchRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Config/TouchRpcConfigExtensions.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/RouteType.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferFlags.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Enum/TransferType.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileOperationEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/FileTransferStatusEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/HttpVerifyOptionEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/PackageRouterEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/ProtocolDataEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamOperationEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/StreamStatusEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/EventArgs/VerifyOptionEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Exceptions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/ProtocolException.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TokenVerifyException.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Exceptions/TouchRpcExceptions.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/RpcActorExtensions.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcContainerExtension.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcExtensions.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcPluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Extensions/TouchRpcServiceExtension.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/FileOperator.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileOperator.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/FileResourceController.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/IFileResourceController.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/PullSmallFileResult.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileInfo.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileOperator.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/RemoteFileSystemInfo.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileInfo.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/TouchRpcFileStream.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitFileInfoPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitPushFileAckPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitSmallFilePackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/File/WaitTransferPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue.meta
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/DeliverEventArgs.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueueClientExtensions.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs
diff --git a/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/MessageQueue/MessageQueuePlugin.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/ITouchRpcPlugin.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcActionPlugin.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcHeartbeatPlugin.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/TouchRpcPluginBase.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Plugins/WSTouchRpcPluginBase.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Redis.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisClientExtensions.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPackageType.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisPlugin.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisRequestWaitPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Redis/RedisResponseWaitPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/CanceledPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/InvokeOption.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/DefaultSerializationSelector.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/Serialization/SerializationSelector.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcCallContext.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/TouchRpcPackage.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Rpc/UdpCaller.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IDRpcActor.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActor.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorBase.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/IRpcActorSender.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcActor.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Interface/ITargetRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Channel.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-File.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Rpc.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor-Stream.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/RpcActor.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp.meta
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs
diff --git a/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/RpcActor/Udp/UdpRpcActor.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Stream.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Stream.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamInfo.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/StreamOperator.cs.meta
diff --git a/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs
diff --git a/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/TouchRpc/Stream/WaitStream.cs.meta
diff --git a/TouchSocket/Rpc/WebApi.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi.meta
diff --git a/TouchSocket/Rpc/WebApi/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Attribute.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute.meta
diff --git a/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs
diff --git a/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/OriginAttribute.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs
diff --git a/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/RouterAttribute.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs
diff --git a/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Attribute/WebApiAttribute.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common.meta
diff --git a/TouchSocket/Rpc/WebApi/Common/ActionResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Common/ActionResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs
diff --git a/TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/ActionResult.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs
diff --git a/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Common/WebApiCallContext.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Components.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components.meta
diff --git a/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Components/WebApiClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs
diff --git a/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Components/WebApiClient.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config.meta
diff --git a/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs
diff --git a/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Config/WebApiConfigExtensions.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum.meta
diff --git a/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs
diff --git a/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Enum/HttpMethodType.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions.meta
diff --git a/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs
diff --git a/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Extensions/WebApiPluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface.meta
diff --git a/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs
diff --git a/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IHttpCallContext.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs
diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiCallContext.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs
diff --git a/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Interface/IWebApiClient.cs.meta
diff --git a/TouchSocket/Rpc/WebApi/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins.meta
diff --git a/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs
diff --git a/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/WebApi/Plugins/WebApiParserPlugin.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Attribute.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Attribute.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Attribute/XmlRpcAttribute.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlDataTool.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Common/XmlRpcCallContext.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Components.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Components/XmlRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Config/XmlRpcConfigExtensions.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Extensions/XmlRpcPluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcCallContext.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Interface/IXmlRpcClient.cs.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins.meta
diff --git a/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs
diff --git a/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Rpc/XmlRpc/Plugins/XmlRpcParserPlugin.cs.meta
diff --git a/TouchSocket/Sockets.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets.meta
similarity index 100%
rename from TouchSocket/Sockets.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets.meta
diff --git a/TouchSocket/Sockets/BaseSocket.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs
similarity index 100%
rename from TouchSocket/Sockets/BaseSocket.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs
diff --git a/TouchSocket/Sockets/BaseSocket.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/BaseSocket.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/BaseSocket.cs.meta
diff --git a/TouchSocket/Sockets/Common.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common.meta
similarity index 100%
rename from TouchSocket/Sockets/Common.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common.meta
diff --git a/TouchSocket/Sockets/Common/DelaySender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/DelaySender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs
diff --git a/TouchSocket/Sockets/Common/DelaySender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/DelaySender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/DelaySender.cs.meta
diff --git a/TouchSocket/Sockets/Common/IPHost.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/IPHost.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs
diff --git a/TouchSocket/Sockets/Common/IPHost.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/IPHost.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/IPHost.cs.meta
diff --git a/TouchSocket/Sockets/Common/KeepAliveValue.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/KeepAliveValue.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs
diff --git a/TouchSocket/Sockets/Common/KeepAliveValue.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/KeepAliveValue.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/KeepAliveValue.cs.meta
diff --git a/TouchSocket/Sockets/Common/NetworkMonitor.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/NetworkMonitor.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs
diff --git a/TouchSocket/Sockets/Common/NetworkMonitor.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/NetworkMonitor.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/NetworkMonitor.cs.meta
diff --git a/TouchSocket/Sockets/Common/Options.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/Options.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options.meta
diff --git a/TouchSocket/Sockets/Common/Options/ClientSslOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/ClientSslOption.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs
diff --git a/TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ClientSslOption.cs.meta
diff --git a/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/DelaySenderOption.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs
diff --git a/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/DelaySenderOption.cs.meta
diff --git a/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/ServiceSslOption.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs
diff --git a/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/ServiceSslOption.cs.meta
diff --git a/TouchSocket/Sockets/Common/Options/SslOption.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/SslOption.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs
diff --git a/TouchSocket/Sockets/Common/Options/SslOption.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/Options/SslOption.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Options/SslOption.cs.meta
diff --git a/TouchSocket/Sockets/Common/Protocol.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/Protocol.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs
diff --git a/TouchSocket/Sockets/Common/Protocol.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/Protocol.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/Protocol.cs.meta
diff --git a/TouchSocket/Sockets/Common/SocketCliectCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/SocketCliectCollection.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs
diff --git a/TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/SocketCliectCollection.cs.meta
diff --git a/TouchSocket/Sockets/Common/TouchSocketUtility.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs
similarity index 100%
rename from TouchSocket/Sockets/Common/TouchSocketUtility.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs
diff --git a/TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Common/TouchSocketUtility.cs.meta
diff --git a/TouchSocket/Sockets/Components.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components.meta
similarity index 100%
rename from TouchSocket/Sockets/Components.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components.meta
diff --git a/TouchSocket/Sockets/Components/Factory.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/Factory.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory.meta
diff --git a/TouchSocket/Sockets/Components/Factory/ClientFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/Factory/ClientFactory.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs
diff --git a/TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/ClientFactory.cs.meta
diff --git a/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs
diff --git a/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/Factory/TcpClientFactory.cs.meta
diff --git a/TouchSocket/Sockets/Components/NAT.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/NAT.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT.meta
diff --git a/TouchSocket/Sockets/Components/NAT/NATService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/NAT/NATService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs
diff --git a/TouchSocket/Sockets/Components/NAT/NATService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/NAT/NATService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATService.cs.meta
diff --git a/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/NAT/NATSocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs
diff --git a/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/NAT/NATSocketClient.cs.meta
diff --git a/TouchSocket/Sockets/Components/TCP.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP.meta
diff --git a/TouchSocket/Sockets/Components/TCP/SocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/SocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs
diff --git a/TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/SocketClient.cs.meta
diff --git a/TouchSocket/Sockets/Components/TCP/TcpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/TcpClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs
diff --git a/TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpClient.cs.meta
diff --git a/TouchSocket/Sockets/Components/TCP/TcpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/TcpService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs
diff --git a/TouchSocket/Sockets/Components/TCP/TcpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/TcpService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpService.cs.meta
diff --git a/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs
diff --git a/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/TCP/TcpServiceBase.cs.meta
diff --git a/TouchSocket/Sockets/Components/UDP.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/UDP.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP.meta
diff --git a/TouchSocket/Sockets/Components/UDP/UdpSession.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs
similarity index 100%
rename from TouchSocket/Sockets/Components/UDP/UdpSession.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs
diff --git a/TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Components/UDP/UdpSession.cs.meta
diff --git a/TouchSocket/Sockets/Config.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config.meta
similarity index 100%
rename from TouchSocket/Sockets/Config.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config.meta
diff --git a/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs
similarity index 100%
rename from TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs
diff --git a/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Config/TouchSocketConfigExtension.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter.meta
diff --git a/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/CacheDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Custom.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBetweenAndDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomBigFixedHeaderDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomFixedHeaderDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Custom/CustomUnfixedHeaderDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/DataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/JsonStringDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/NormalDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Package.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Package.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedHeaderPackageAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/FixedSizePackageAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Package/TerminatorPackageAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/PipelineDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Test.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Test.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Test/DataAdapterTester.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Udp.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/NormalUdpDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpDataHandlingAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpKcpPackageAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs
diff --git a/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DataAdapter/Udp/UdpPackageAdapter.cs.meta
diff --git a/TouchSocket/Sockets/DelegateCollection.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs
similarity index 100%
rename from TouchSocket/Sockets/DelegateCollection.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs
diff --git a/TouchSocket/Sockets/DelegateCollection.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/DelegateCollection.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/DelegateCollection.cs.meta
diff --git a/TouchSocket/Sockets/Enum.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum.meta
similarity index 100%
rename from TouchSocket/Sockets/Enum.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum.meta
diff --git a/TouchSocket/Sockets/Enum/CheckClearType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs
similarity index 100%
rename from TouchSocket/Sockets/Enum/CheckClearType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs
diff --git a/TouchSocket/Sockets/Enum/CheckClearType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Enum/CheckClearType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/CheckClearType.cs.meta
diff --git a/TouchSocket/Sockets/Enum/FilterResult.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs
similarity index 100%
rename from TouchSocket/Sockets/Enum/FilterResult.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs
diff --git a/TouchSocket/Sockets/Enum/FilterResult.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Enum/FilterResult.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FilterResult.cs.meta
diff --git a/TouchSocket/Sockets/Enum/FixedHeaderType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs
similarity index 100%
rename from TouchSocket/Sockets/Enum/FixedHeaderType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs
diff --git a/TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/FixedHeaderType.cs.meta
diff --git a/TouchSocket/Sockets/Enum/ReceiveType.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs
similarity index 100%
rename from TouchSocket/Sockets/Enum/ReceiveType.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs
diff --git a/TouchSocket/Sockets/Enum/ReceiveType.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Enum/ReceiveType.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ReceiveType.cs.meta
diff --git a/TouchSocket/Sockets/Enum/ServerState.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs
similarity index 100%
rename from TouchSocket/Sockets/Enum/ServerState.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs
diff --git a/TouchSocket/Sockets/Enum/ServerState.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Enum/ServerState.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Enum/ServerState.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs.meta
diff --git a/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ByteBlockEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/BytesEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/BytesEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConfigEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ConnectingEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/DisconnectEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/IDChangedEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/MsgEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/MsgEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/OperationEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/OperationEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ReceivedDataEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/SendingEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/SendingEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/ServiceStateEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs
diff --git a/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/EventArgs/UdpReceivedDataEventArgs.cs.meta
diff --git a/TouchSocket/Sockets/Exceptions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions.meta
similarity index 100%
rename from TouchSocket/Sockets/Exceptions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions.meta
diff --git a/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs
similarity index 100%
rename from TouchSocket/Sockets/Exceptions/ClientNotFindException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs
diff --git a/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/ClientNotFindException.cs.meta
diff --git a/TouchSocket/Sockets/Exceptions/NotConnectedException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs
similarity index 100%
rename from TouchSocket/Sockets/Exceptions/NotConnectedException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs
diff --git a/TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/NotConnectedException.cs.meta
diff --git a/TouchSocket/Sockets/Exceptions/OverlengthException.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs
similarity index 100%
rename from TouchSocket/Sockets/Exceptions/OverlengthException.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs
diff --git a/TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Exceptions/OverlengthException.cs.meta
diff --git a/TouchSocket/Sockets/Extensions.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions.meta
similarity index 100%
rename from TouchSocket/Sockets/Extensions.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions.meta
diff --git a/TouchSocket/Sockets/Extensions/ClientExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs
similarity index 100%
rename from TouchSocket/Sockets/Extensions/ClientExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs
diff --git a/TouchSocket/Sockets/Extensions/ClientExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Extensions/ClientExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/ClientExtension.cs.meta
diff --git a/TouchSocket/Sockets/Extensions/SenderExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs
similarity index 100%
rename from TouchSocket/Sockets/Extensions/SenderExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs
diff --git a/TouchSocket/Sockets/Extensions/SenderExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Extensions/SenderExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SenderExtension.cs.meta
diff --git a/TouchSocket/Sockets/Extensions/SocketExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs
similarity index 100%
rename from TouchSocket/Sockets/Extensions/SocketExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs
diff --git a/TouchSocket/Sockets/Extensions/SocketExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Extensions/SocketExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketExtension.cs.meta
diff --git a/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs
similarity index 100%
rename from TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs
diff --git a/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Extensions/SocketPluginsManagerExtension.cs.meta
diff --git a/TouchSocket/Sockets/Interface.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface.meta
diff --git a/TouchSocket/Sockets/Interface/IClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/IClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs
diff --git a/TouchSocket/Sockets/Interface/IClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/IClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IClient.cs.meta
diff --git a/TouchSocket/Sockets/Interface/INATSocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/INATSocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs
diff --git a/TouchSocket/Sockets/Interface/INATSocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/INATSocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/INATSocketClient.cs.meta
diff --git a/TouchSocket/Sockets/Interface/IRequestInfo.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/IRequestInfo.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs
diff --git a/TouchSocket/Sockets/Interface/IRequestInfo.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/IRequestInfo.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IRequestInfo.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IClientSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IClientSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IClientSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IDefaultSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDRequsetInfoSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IIDSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IIDSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IIDSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IRequsetInfoSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/ISender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/ISender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/ISender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/ISender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/ISenderBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/ISenderBase.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpClientSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IUdpDefaultSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IWaitSender.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs
diff --git a/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISender/IWaitSender.cs.meta
diff --git a/TouchSocket/Sockets/Interface/IService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/IService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs
diff --git a/TouchSocket/Sockets/Interface/IService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/IService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IService.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISocket.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISocket.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs
diff --git a/TouchSocket/Sockets/Interface/ISocket.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISocket.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocket.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ISocketClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISocketClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs
diff --git a/TouchSocket/Sockets/Interface/ISocketClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ISocketClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ISocketClient.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ITcpClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ITcpClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs
diff --git a/TouchSocket/Sockets/Interface/ITcpClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ITcpClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClient.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ITcpClientBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ITcpClientBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs
diff --git a/TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpClientBase.cs.meta
diff --git a/TouchSocket/Sockets/Interface/ITcpService.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/ITcpService.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs
diff --git a/TouchSocket/Sockets/Interface/ITcpService.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/ITcpService.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/ITcpService.cs.meta
diff --git a/TouchSocket/Sockets/Interface/IUdpSession.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/IUdpSession.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs
diff --git a/TouchSocket/Sockets/Interface/IUdpSession.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/IUdpSession.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/IUdpSession.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConfigPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectedPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IConnectingPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectedPlguin.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IDisconnectingPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IServicePlugin.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/ITcpPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs
diff --git a/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Interface/Plugins/IUdpSessionPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Plugins.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins.meta
similarity index 100%
rename from TouchSocket/Sockets/Plugins.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins.meta
diff --git a/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Plugins/CheckClearPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs
diff --git a/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/CheckClearPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs
diff --git a/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ReconnectionPlugin.cs.meta
diff --git a/TouchSocket/Sockets/Plugins/ServicePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Plugins/ServicePlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs
diff --git a/TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/ServicePlugin.cs.meta
diff --git a/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs
similarity index 100%
rename from TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs
diff --git a/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpCommandLinePlugin.cs.meta
diff --git a/TouchSocket/Sockets/Plugins/TcpPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs
similarity index 100%
rename from TouchSocket/Sockets/Plugins/TcpPluginBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs
diff --git a/TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/TcpPluginBase.cs.meta
diff --git a/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs
similarity index 100%
rename from TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs
diff --git a/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/Plugins/UdpSessionPluginBase.cs.meta
diff --git a/TouchSocket/Sockets/WaitingClient.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient.meta
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient.meta
diff --git a/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/IWaitingClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs
diff --git a/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/IWaitingClient.cs.meta
diff --git a/TouchSocket/Sockets/WaitingClient/ResponsedData.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/ResponsedData.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs
diff --git a/TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/ResponsedData.cs.meta
diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClient.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/WaitingClient.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs
diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClient.cs.meta
diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs
diff --git a/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingClientExtension.cs.meta
diff --git a/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/WaitingOptions.cs
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs
diff --git a/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta b/Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta
similarity index 100%
rename from TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta
rename to Samples~/Hand Driver Demo/_3rd/TouchSocket/Sockets/WaitingClient/WaitingOptions.cs.meta
diff --git a/Samples~/Hand Driver Demo/package.json b/Samples~/Hand Driver Demo/package.json
new file mode 100644
index 0000000..2debf2c
--- /dev/null
+++ b/Samples~/Hand Driver Demo/package.json
@@ -0,0 +1,10 @@
+{
+"name": "com.udexreal.handdriver",
+"displayName": "HandDriver",
+"description": "HandDriver",
+"version": "2.1.8",
+"unity": "2022.3",
+"license": "MIT",
+"dependencies": {
+ }
+}
\ No newline at end of file
diff --git a/Samples~/Hand Driver Demo/package.json.meta b/Samples~/Hand Driver Demo/package.json.meta
new file mode 100644
index 0000000..7009360
--- /dev/null
+++ b/Samples~/Hand Driver Demo/package.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 55fb2bfbd9252144d814a5950abfa968
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: