diff --git a/.yamato/mobile-build-and-run.yml b/.yamato/mobile-build-and-run.yml
index 5a4831c058..c3a8aeaa90 100644
--- a/.yamato/mobile-build-and-run.yml
+++ b/.yamato/mobile-build-and-run.yml
@@ -9,17 +9,20 @@ Build_Player_With_Tests_iOS_{{ project.name }}_{{ editor }}:
     name: build {{ project.name }} - {{ editor }} on iOS
     agent:
         type: Unity::VM::osx
-        image: package-ci/macos-12:v4
+        image: package-ci/macos-13:v4
         flavor: b1.large
 
     commands:
         - pip install unity-downloader-cli==1.2.0 --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple --upgrade
         - unity-downloader-cli -c Editor -c iOS -u {{ editor }} --fast --wait
+        - echo "CONFIGURATION = Release" >> ~/XcodeBuildConfig.xcconfig
         - curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools-local/utr-standalone/utr --output utr
         - chmod +x ./utr
         - ./utr --suite=playmode --platform=iOS --editor-location=.Editor --testproject={{ project.path }} --player-save-path=build/players --artifacts_path=build/logs --build-only --testfilter=Unity.BossRoom.Tests.Runtime
     variables:
         UNITY_HANDLEUIINTERRUPTIONS: 1
+        UNITY_TESTS_XCODEBUILD_TIMEOUT: 60
+        XCODE_XCCONFIG_FILE: ~/XcodeBuildConfig.xcconfig
     artifacts:
         players:
             paths:
@@ -38,18 +41,19 @@ Build_Player_With_Tests_Android_{{ project.name }}_{{ editor }}:
         type: Unity::VM
         # Any generic image can be used, no need to have Android tools in the image for building
         # All Android tools will be downloaded by unity-downloader-cli
-        image: mobile/android-execution-base:stable
-        flavor: b1.xlarge
+        image: mobile/android-execution-base:v2.1774381
+        flavor: b1.large
 
     commands:
         # Download unity-downloader-cli
-        - pip install unity-downloader-cli==1.2.0 --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple --upgrade
-        - curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools/utr-standalone/utr.bat --output utr.bat
-        - python .yamato/disable-burst-if-requested.py --project-path {{ project.path }} --platform Android
+        - gsudo choco source add -n Unity -s https://artifactory-slo.bf.unity3d.com/artifactory/api/nuget/unity-choco-local --priority=1
+        - gsudo choco install -y unity-config unity-downloader-cli
+        - curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools-local/utr-standalone/utr.bat --output ./utr.bat
+        - unity-config project set registry candidates --project-path {{ project.path }}
         - unity-downloader-cli -c Editor -c Android -u {{ editor }} --fast --wait
+        - python .yamato/disable-burst-if-requested.py --project-path {{ project.path }} --platform Android
         # Build player(s)
-        - set UTR_VERSION=0.12.0
-        - ./utr.bat --suite=playmode --platform=Android --editor-location=.Editor --testproject={{ project.path }} --player-save-path=build/players --artifacts_path=build/logs --scripting-backend=mono --build-only --testfilter=Unity.BossRoom.Tests.Runtime
+        - ./utr.bat --suite=playmode --platform=Android --editor-location=.Editor --testproject={{ project.path }} --player-save-path=build/players --artifacts_path=build/logs --scripting-backend=il2cpp --build-only --testfilter=Unity.BossRoom.Tests.Runtime
     artifacts:
         players:
             paths:
@@ -72,7 +76,7 @@ mobile_test_ios_{{ project.name }}_{{ editor }}:
     agent:
         model: SE-Gen3
         type: Unity::mobile::iPhone
-        image: package-ci/macos-12:v4
+        image: package-ci/macos-13:v4
         flavor: b1.medium
 
     # Skip repository cloning
@@ -105,7 +109,7 @@ mobile_test_android_{{ project.name }}_{{ editor }}:
     name: {{ project.name }} mobile project tests - {{ editor }} on Android
     agent:
         type: Unity::mobile::shield
-        image: mobile/android-execution-base:stable
+        image: package-ci/ubuntu-22.04:v4
         flavor: b1.medium
 
     # Skip repository cloning
@@ -115,13 +119,20 @@ mobile_test_android_{{ project.name }}_{{ editor }}:
         - .yamato/mobile-build-and-run.yml#Build_Player_With_Tests_Android_{{ project.name }}_{{ editor }}
     commands:
       # Download standalone UnityTestRunner
-      - curl -s https://artifactory.prd.it.unity3d.com/artifactory/unity-tools/utr-standalone/utr.bat --output utr.bat
-      - |
-          set ANDROID_DEVICE_CONNECTION=%BOKKEN_DEVICE_IP%
-          start %ANDROID_SDK_ROOT%\platform-tools\adb.exe connect %BOKKEN_DEVICE_IP%
-          start %ANDROID_SDK_ROOT%\platform-tools\adb.exe devices
-          set UTR_VERSION=0.12.0
-          ./utr --artifacts_path=build/test-results --testproject={{ project.path }} --editor-location=.Editor --reruncount=2 --suite=playmode --platform=android --player-load-path=build/players --testfilter=Unity.BossRoom.Tests.Runtime
+      - unity-downloader-cli --fast --wait -u {{ editor }} -c editor -c Android
+      - >
+        ANDROID_DEVICE_CONNECTION=$BOKKEN_DEVICE_IP
+        ANDROID_SDK_ROOT=$PWD/.Editor/Data/PlaybackEngines/AndroidPlayer/SDK
+        UnifiedTestRunner
+        --artifacts-path=build/test-results
+        --editor-location=.Editor
+        --suite=playmode
+        --testproject={{ project.path }}
+        --platform=Android
+        --player-load-path=build/players
+        --testfilter=Unity.BossRoom.Tests.Runtime
+        --reruncount=2
+        --player-connection-ip=$BOKKEN_HOST_IP    
     # Set uploadable artifact paths
     artifacts:
         logs:
diff --git a/.yamato/project-pack.yml b/.yamato/project-pack.yml
index abd3613596..6e1d60a7e7 100644
--- a/.yamato/project-pack.yml
+++ b/.yamato/project-pack.yml
@@ -5,7 +5,7 @@ pack_{{ project.name }}:
   name: Pack {{ project.name }}
   agent:
     type: Unity::VM
-    image: package-ci/ubuntu:stable
+    image: package-ci/ubuntu-22.04:v4
     flavor: b1.small
   commands:
     - npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
diff --git a/.yamato/project-standards.yml b/.yamato/project-standards.yml
index ab229c1037..5d44717478 100644
--- a/.yamato/project-standards.yml
+++ b/.yamato/project-standards.yml
@@ -4,7 +4,7 @@ standards_{{ projects.first.name }}:
   name: Standards Check {{ projects.first.name }}
   agent:
     type: Unity::VM
-    image: desktop/logging-testing-linux:v0.1.2-926285
+    image: package-ci/ubuntu-22.04:v4
     flavor: b1.large
   commands:
     - dotnet --version
diff --git a/.yamato/project.metafile b/.yamato/project.metafile
index eaa1a89770..80f716f909 100644
--- a/.yamato/project.metafile
+++ b/.yamato/project.metafile
@@ -2,7 +2,7 @@
 test_platforms:
   - name: win
     type: Unity::VM
-    image: package-ci/win10:v4
+    image: package-ci/win10:v4.36.0
     flavor: b1.large
     editorpath: .Editor\Unity.exe
     utr: .\utr.bat
@@ -14,7 +14,7 @@ test_platforms:
     utr: ./utr
   - name: ubuntu
     type: Unity::VM
-    image: package-ci/ubuntu-18.04:v4
+    image: package-ci/ubuntu-22.04:v4
     flavor: b1.large
     editorpath: .Editor/Unity
     utr: ./utr
@@ -30,4 +30,4 @@ projects:
       - name: com.unity.multiplayer.samples.coop
         path: Packages/com.unity.multiplayer.samples.coop
     test_editors:
-      - 2022.3
+      - 6000.0.44
diff --git a/Assets/Scripts/Editor/Readme.meta b/Assets/Editor.meta
similarity index 77%
rename from Assets/Scripts/Editor/Readme.meta
rename to Assets/Editor.meta
index c80553f44c..264dd661bc 100644
--- a/Assets/Scripts/Editor/Readme.meta
+++ b/Assets/Editor.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 964c044b0ba6ff842a5a79554366eec6
+guid: 6cda21f4268f0f642914368587e14332
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}
diff --git a/Assets/Editor/Tutorials.meta b/Assets/Editor/Tutorials.meta
new file mode 100644
index 0000000000..0e162212ed
--- /dev/null
+++ b/Assets/Editor/Tutorials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fdca3057c2386514a8e5a6fced2ff0c5
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/DiscordIcon.png b/Assets/Editor/Tutorials/DiscordIcon.png
new file mode 100644
index 0000000000..89369920eb
--- /dev/null
+++ b/Assets/Editor/Tutorials/DiscordIcon.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:08cc1cf08b0054635dc74e8dc7da29f352c108ed25141bd2d4fd8e5dd5859f90
+size 107123
diff --git a/Assets/Editor/Tutorials/DiscordIcon.png.meta b/Assets/Editor/Tutorials/DiscordIcon.png.meta
new file mode 100644
index 0000000000..c7564e9fed
--- /dev/null
+++ b/Assets/Editor/Tutorials/DiscordIcon.png.meta
@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 6c32c6fb9392fc04690a6de3ca1a69bf
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/GithubIcon.png b/Assets/Editor/Tutorials/GithubIcon.png
new file mode 100644
index 0000000000..1b7659abda
--- /dev/null
+++ b/Assets/Editor/Tutorials/GithubIcon.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bb3bef19cb8c588b21d999d670a4ce488c57004ce8634ae2576fa0f938d1b59
+size 2781
diff --git a/Assets/Editor/Tutorials/GithubIcon.png.meta b/Assets/Editor/Tutorials/GithubIcon.png.meta
new file mode 100644
index 0000000000..8634454414
--- /dev/null
+++ b/Assets/Editor/Tutorials/GithubIcon.png.meta
@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 149f7ad236e738b40bdea2bff10007a0
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Homepage.meta b/Assets/Editor/Tutorials/Homepage.meta
new file mode 100644
index 0000000000..7a2a3d1219
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ca9c27a0c42006f48a61dace60da1dae
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset b/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset
new file mode 100644
index 0000000000..99a17cefea
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:501dc3e378c5a1ddb9f1ddc7333f3ce867fd846939d76fdf0f9ff61a9d163b9e
+size 1524
diff --git a/Assets/Readme.asset.meta b/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset.meta
similarity index 79%
rename from Assets/Readme.asset.meta
rename to Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset.meta
index 04ab265e65..7bf23150d9 100644
--- a/Assets/Readme.asset.meta
+++ b/Assets/Editor/Tutorials/Homepage/0_TableOfContents.asset.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 83c2ed844a8c74b779a4c823d16594b1
+guid: 986f9d379400f5f448b0648cedb79c03
 NativeFormatImporter:
   externalObjects: {}
   mainObjectFileID: 11400000
diff --git a/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset
new file mode 100644
index 0000000000..e31c67c935
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c16f97958fbc897c0311d98cca161ed16d2cacb9c386127b9afbdc1c03041ad1
+size 1216
diff --git a/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset.meta b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset.meta
new file mode 100644
index 0000000000..7b18318f81
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/1_ConfigureUGS.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5d69a76b0f9609842aa1b9d5722fe73c
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Homepage/4_Resources.asset b/Assets/Editor/Tutorials/Homepage/4_Resources.asset
new file mode 100644
index 0000000000..731fbaef23
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/4_Resources.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9bd8a34a13e8cf635a44acfc9d33fa56bb7455c8267a8f50e206dbfee5aad04d
+size 856
diff --git a/Assets/Editor/Tutorials/Homepage/4_Resources.asset.meta b/Assets/Editor/Tutorials/Homepage/4_Resources.asset.meta
new file mode 100644
index 0000000000..f4a6791742
--- /dev/null
+++ b/Assets/Editor/Tutorials/Homepage/4_Resources.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48186ead215cb424490b34715150bf02
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images.meta b/Assets/Editor/Tutorials/Images.meta
new file mode 100644
index 0000000000..e81a14d5e9
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3ddbd96be999570489a15892f46e591b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_001.png b/Assets/Editor/Tutorials/Images/Feature_Image_001.png
new file mode 100644
index 0000000000..5a3e2b4ea3
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_001.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3185a42bb832dfa1348dd3bd1e5eab84a4e916786cd8935119788abb644ee99e
+size 329212
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_001.png.meta b/Assets/Editor/Tutorials/Images/Feature_Image_001.png.meta
new file mode 100644
index 0000000000..633bedcaef
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_001.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: 2993213975b834e09b6c91af94d30157
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_003.png b/Assets/Editor/Tutorials/Images/Feature_Image_003.png
new file mode 100644
index 0000000000..a15b3631a1
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_003.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd2de8d8d729d64b3f1b4660f3a33c1ba4c5eb46ad30a78423884a249d346cb7
+size 437823
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_003.png.meta b/Assets/Editor/Tutorials/Images/Feature_Image_003.png.meta
new file mode 100644
index 0000000000..3bc30eb182
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_003.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: 39c0b44a9ad1a4c69a8e789b88918ba0
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_006.png b/Assets/Editor/Tutorials/Images/Feature_Image_006.png
new file mode 100644
index 0000000000..62a6de01f4
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_006.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c1a874a74e006d569bfceadf34a51f72284b657bbc3c600b7d0bcb5cf34cdc33
+size 534643
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_006.png.meta b/Assets/Editor/Tutorials/Images/Feature_Image_006.png.meta
new file mode 100644
index 0000000000..fe47bdd0b7
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_006.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: a469bb09777a149c5a81f3c4ff52fa85
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_008.png b/Assets/Editor/Tutorials/Images/Feature_Image_008.png
new file mode 100644
index 0000000000..d276f28ebe
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_008.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f350b3e22fa4522e7ac217db0b810653f7d2cbf37e5a913e4229cc04efb041f2
+size 662808
diff --git a/Assets/Editor/Tutorials/Images/Feature_Image_008.png.meta b/Assets/Editor/Tutorials/Images/Feature_Image_008.png.meta
new file mode 100644
index 0000000000..7a759c2920
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Feature_Image_008.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: 0e9ea27979f7a4a5bb15caa2e6729425
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 0
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images/Icon_Authentication.png b/Assets/Editor/Tutorials/Images/Icon_Authentication.png
new file mode 100644
index 0000000000..f004f24d62
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Icon_Authentication.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:da1e7072326ad8f1cd04a78324a4e09728ce0f4c4ec6a61dd346e8c190a484cc
+size 16835
diff --git a/Assets/Editor/Tutorials/Images/Icon_Authentication.png.meta b/Assets/Editor/Tutorials/Images/Icon_Authentication.png.meta
new file mode 100644
index 0000000000..68183f0d1d
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Icon_Authentication.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: 8a0da43bbd75541d3a909c57d0c8757c
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images/Icon_Multiplayer_Services.png b/Assets/Editor/Tutorials/Images/Icon_Multiplayer_Services.png
new file mode 100644
index 0000000000..0820ab0e50
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Icon_Multiplayer_Services.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c78fe1a5fec1f0f9b2a64a584bd5e2b22155c3ca3376fcfc06fe1c6720a5e6fd
+size 16532
diff --git a/Assets/Editor/Tutorials/Images/Icon_Multiplayer_Services.png.meta b/Assets/Editor/Tutorials/Images/Icon_Multiplayer_Services.png.meta
new file mode 100644
index 0000000000..e92174cede
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Icon_Multiplayer_Services.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: 65168bb3eb1b0407f87bb48c7b0b09dc
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Images/Icon_Vivox.png b/Assets/Editor/Tutorials/Images/Icon_Vivox.png
new file mode 100644
index 0000000000..af5ba3bc60
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Icon_Vivox.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b0922bc9636911a49d7797377abe06497e3e1c5a3a4e4820ee192fd5572b143c
+size 15062
diff --git a/Assets/Editor/Tutorials/Images/Icon_Vivox.png.meta b/Assets/Editor/Tutorials/Images/Icon_Vivox.png.meta
new file mode 100644
index 0000000000..27ea327dd6
--- /dev/null
+++ b/Assets/Editor/Tutorials/Images/Icon_Vivox.png.meta
@@ -0,0 +1,127 @@
+fileFormatVersion: 2
+guid: 7b1f754ee40014b6985dcf4b4e123806
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 0
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Resources.meta b/Assets/Editor/Tutorials/Resources.meta
new file mode 100644
index 0000000000..7e99a868ad
--- /dev/null
+++ b/Assets/Editor/Tutorials/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6a19a741e10b7426f82205a403975061
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Resources/4_HelpNGO.asset b/Assets/Editor/Tutorials/Resources/4_HelpNGO.asset
new file mode 100644
index 0000000000..019532c09c
--- /dev/null
+++ b/Assets/Editor/Tutorials/Resources/4_HelpNGO.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1077c6d00b8d09912da1a2d727d452c17668df82a43d41fe65340b627d102298
+size 2715
diff --git a/Assets/Editor/Tutorials/Resources/4_HelpNGO.asset.meta b/Assets/Editor/Tutorials/Resources/4_HelpNGO.asset.meta
new file mode 100644
index 0000000000..1851ada552
--- /dev/null
+++ b/Assets/Editor/Tutorials/Resources/4_HelpNGO.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ccae638fd0beeca4d9aafd0d1792516d
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Resources/5_HelpUGS.asset b/Assets/Editor/Tutorials/Resources/5_HelpUGS.asset
new file mode 100644
index 0000000000..de0b416dba
--- /dev/null
+++ b/Assets/Editor/Tutorials/Resources/5_HelpUGS.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:695797ac3a2b65d7d20ebf5df3e9c25d3caa310cfcfab30756157d160aea7b50
+size 2226
diff --git a/Assets/Editor/Tutorials/Resources/5_HelpUGS.asset.meta b/Assets/Editor/Tutorials/Resources/5_HelpUGS.asset.meta
new file mode 100644
index 0000000000..53ff18ddcf
--- /dev/null
+++ b/Assets/Editor/Tutorials/Resources/5_HelpUGS.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f03539295867ec846ad184945a11dffd
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Tutorial Project Settings.asset b/Assets/Editor/Tutorials/Tutorial Project Settings.asset
new file mode 100644
index 0000000000..add946c9e4
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial Project Settings.asset	
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:776391e23b53af59a2556f2d8b32646961251a94a2e76f7555305e71a2468e43
+size 1034
diff --git a/Assets/Editor/Tutorials/Tutorial Project Settings.asset.meta b/Assets/Editor/Tutorials/Tutorial Project Settings.asset.meta
new file mode 100644
index 0000000000..846f18deaf
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial Project Settings.asset.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5ec8bb025bbc3b54b97adc3acb390f1c
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Tutorial Welcome Page.asset b/Assets/Editor/Tutorials/Tutorial Welcome Page.asset
new file mode 100644
index 0000000000..92e8938603
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial Welcome Page.asset	
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5324a2c2df7f4983887f5f31d8a7a934b43c6e0255e2fc9821fdaa3e52eb0d25
+size 3203
diff --git a/Assets/Editor/Tutorials/Tutorial Welcome Page.asset.meta b/Assets/Editor/Tutorials/Tutorial Welcome Page.asset.meta
new file mode 100644
index 0000000000..fb66e528d7
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial Welcome Page.asset.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c412c471d3f0a3042ac2fda7759f4d38
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS.meta
new file mode 100644
index 0000000000..b0631a0e12
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 869e9875e764edd45a8c65d132e4ac4e
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset
new file mode 100644
index 0000000000..7614a7807d
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset	
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:906b96219e7c7d6e763a0654834197a27bb67bc3f93752c43fbbaa784a7b45a7
+size 3035
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset.meta
new file mode 100644
index 0000000000..a5147ebbe2
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/1-Verify And Setup UGS.asset.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f8f4819713a447b4d88780a1f232be55
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset
new file mode 100644
index 0000000000..bf1df5d5b8
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cdf61b105a1e633877187ab063da4c4d6b8734eae95cc403ec05d1983f0e4d7f
+size 6585
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset.meta
new file mode 100644
index 0000000000..09c94f57de
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/2-CheckServices.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0a25191a04226774497720a897023462
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset
new file mode 100644
index 0000000000..746ad923dd
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset	
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac721dec4e2a4370270b1e70b4383351ec621fab2f7f8af27bc34b89ed1e3a17
+size 3302
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset.meta
new file mode 100644
index 0000000000..bded08ad1c
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/8-Project Successfully Linked.asset.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 20a34659981c32947b4437c2e0df9876
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset
new file mode 100644
index 0000000000..b45ec29e18
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset	
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:54db6af02dc3be072fc11e511152d7d6a69b59256e114d2f566ae4c856d8b5cb
+size 1795
diff --git a/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset.meta b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset.meta
new file mode 100644
index 0000000000..2187d7cbbe
--- /dev/null
+++ b/Assets/Editor/Tutorials/Tutorial0_SetupUGS/Tutorial 0 - UGS Setup.asset.meta	
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6a5464225c4ee62499087728e8ee0a4d
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/TutorialCallbacks.asset b/Assets/Editor/Tutorials/TutorialCallbacks.asset
new file mode 100644
index 0000000000..8d2d4ae776
--- /dev/null
+++ b/Assets/Editor/Tutorials/TutorialCallbacks.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be4bd812a520630e50025d82ee80a9e0cd2fab15be44fd04a405b7f2588976ad
+size 493
diff --git a/Assets/Editor/Tutorials/TutorialCallbacks.asset.meta b/Assets/Editor/Tutorials/TutorialCallbacks.asset.meta
new file mode 100644
index 0000000000..b91cb3ff39
--- /dev/null
+++ b/Assets/Editor/Tutorials/TutorialCallbacks.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a801694c599b91149aecf05212674c82
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/TutorialCallbacks.cs b/Assets/Editor/Tutorials/TutorialCallbacks.cs
new file mode 100644
index 0000000000..d360baa2c5
--- /dev/null
+++ b/Assets/Editor/Tutorials/TutorialCallbacks.cs
@@ -0,0 +1,63 @@
+using UnityEngine;
+using UnityEditor;
+using Unity.Tutorials.Core.Editor;
+
+namespace Unity.Netcode.Samples.BossRoom
+{
+    /// 
+    /// Implement your Tutorial callbacks here.
+    /// 
+    [CreateAssetMenu(fileName = k_DefaultFileName, menuName = "Tutorials/" + k_DefaultFileName + " Instance")]
+    public class TutorialCallbacks : ScriptableObject
+    {
+        [SerializeField]
+        SceneAsset m_StartupScene;
+
+        /// 
+        /// The default file name used to create asset of this class type.
+        /// 
+        const string k_DefaultFileName = "TutorialCallbacks";
+
+        /// 
+        /// Creates a TutorialCallbacks asset and shows it in the Project window.
+        /// 
+        /// 
+        /// A relative path to the project's root. If not provided, the Project window's currently active folder path is used.
+        /// 
+        /// The created asset
+        public static ScriptableObject CreateAndShowAsset(string assetPath = null)
+        {
+            assetPath = assetPath ?? $"{TutorialEditorUtils.GetActiveFolderPath()}/{k_DefaultFileName}.asset";
+            var asset = CreateInstance();
+            AssetDatabase.CreateAsset(asset, AssetDatabase.GenerateUniqueAssetPath(assetPath));
+            EditorUtility.FocusProjectWindow(); // needed in order to make the selection of newly created asset to really work
+            Selection.activeObject = asset;
+            return asset;
+        }
+
+        public void StartTutorial(Tutorial tutorial)
+        {
+            TutorialWindow.StartTutorial(tutorial);
+        }
+
+        public bool IsConnectedToUgs()
+        {
+            return CloudProjectSettings.projectBound;
+        }
+
+        public void ShowServicesSettings()
+        {
+            SettingsService.OpenProjectSettings("Project/Services");
+        }
+
+        public void OpenURL(string url)
+        {
+            TutorialEditorUtils.OpenUrl(url);
+        }
+
+        public void LoadStartupScene()
+        {
+            UnityEditor.SceneManagement.EditorSceneManager.OpenScene(AssetDatabase.GetAssetPath(m_StartupScene));
+        }
+    }
+}
diff --git a/Assets/Scripts/Editor/Readme/ReadmeEditor.cs.meta b/Assets/Editor/Tutorials/TutorialCallbacks.cs.meta
similarity index 68%
rename from Assets/Scripts/Editor/Readme/ReadmeEditor.cs.meta
rename to Assets/Editor/Tutorials/TutorialCallbacks.cs.meta
index 88dac7ea69..d82a8aa021 100644
--- a/Assets/Scripts/Editor/Readme/ReadmeEditor.cs.meta
+++ b/Assets/Editor/Tutorials/TutorialCallbacks.cs.meta
@@ -1,8 +1,7 @@
 fileFormatVersion: 2
-guid: e071f34aab1e7c245b3c500b5e8bd8eb
-timeCreated: 1484146680
-licenseType: Store
+guid: 86463d0eca31aed478f3271dc27f0ba9
 MonoImporter:
+  externalObjects: {}
   serializedVersion: 2
   defaultReferences: []
   executionOrder: 0
diff --git a/Assets/Editor/Tutorials/UnityIcon.png b/Assets/Editor/Tutorials/UnityIcon.png
new file mode 100644
index 0000000000..e5a4672e69
--- /dev/null
+++ b/Assets/Editor/Tutorials/UnityIcon.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e77075e5f49411a22d1efd630cbc3ba6e4b3175a07baedd159367bf0b1a60a89
+size 28134
diff --git a/Assets/Editor/Tutorials/UnityIcon.png.meta b/Assets/Editor/Tutorials/UnityIcon.png.meta
new file mode 100644
index 0000000000..026c0bde0b
--- /dev/null
+++ b/Assets/Editor/Tutorials/UnityIcon.png.meta
@@ -0,0 +1,123 @@
+fileFormatVersion: 2
+guid: 8ac562a549408f54a84585f76a7c4c42
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 12
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMasterTextureLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 0
+    wrapV: 0
+    wrapW: 0
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 2
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 2
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 128
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Editor/Tutorials/layout.wlt b/Assets/Editor/Tutorials/layout.wlt
new file mode 100644
index 0000000000..d98fce2e40
--- /dev/null
+++ b/Assets/Editor/Tutorials/layout.wlt
@@ -0,0 +1,1240 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &1
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_PixelRect:
+    serializedVersion: 2
+    x: 5.7777777
+    y: 43.11111
+    width: 1695.1111
+    height: 868.44446
+  m_ShowMode: 4
+  m_Title: Game
+  m_RootView: {fileID: 4}
+  m_MinSize: {x: 875, y: 371}
+  m_MaxSize: {x: 10000, y: 10000}
+  m_Maximized: 0
+--- !u!114 &2
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: InspectorWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 1057.3334
+    y: 0
+    width: 259.11108
+    height: 554.2222
+  m_MinSize: {x: 277, y: 121}
+  m_MaxSize: {x: 4002, y: 4021}
+  m_ActualView: {fileID: 14}
+  m_Panes:
+  - {fileID: 14}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &3
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: TutorialWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 1316.4445
+    y: 0
+    width: 378.66663
+    height: 818.44446
+  m_MinSize: {x: 401, y: 621}
+  m_MaxSize: {x: 601, y: 1221}
+  m_ActualView: {fileID: 13}
+  m_Panes:
+  - {fileID: 13}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &4
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 5}
+  - {fileID: 7}
+  - {fileID: 6}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1695.1111
+    height: 868.44446
+  m_MinSize: {x: 875, y: 371}
+  m_MaxSize: {x: 10000, y: 10000}
+  m_UseTopView: 1
+  m_TopViewHeight: 30
+  m_UseBottomView: 1
+  m_BottomViewHeight: 20
+--- !u!114 &5
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1695.1111
+    height: 30
+  m_MinSize: {x: 0, y: 0}
+  m_MaxSize: {x: 0, y: 0}
+  m_LastLoadedLayoutName: 
+--- !u!114 &6
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 848.44446
+    width: 1695.1111
+    height: 20
+  m_MinSize: {x: 0, y: 0}
+  m_MaxSize: {x: 0, y: 0}
+--- !u!114 &7
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 8}
+  - {fileID: 3}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 30
+    width: 1695.1111
+    height: 818.44446
+  m_MinSize: {x: 400, y: 100}
+  m_MaxSize: {x: 32384, y: 16192}
+  vertical: 0
+  controlID: 49
+--- !u!114 &8
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 9}
+  - {fileID: 12}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1316.4445
+    height: 818.44446
+  m_MinSize: {x: 300, y: 100}
+  m_MaxSize: {x: 24288, y: 16192}
+  vertical: 1
+  controlID: 50
+--- !u!114 &9
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Children:
+  - {fileID: 10}
+  - {fileID: 11}
+  - {fileID: 2}
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1316.4445
+    height: 554.2222
+  m_MinSize: {x: 300, y: 50}
+  m_MaxSize: {x: 24288, y: 8096}
+  vertical: 0
+  controlID: 51
+--- !u!114 &10
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: SceneHierarchyWindow
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 238.22223
+    height: 554.2222
+  m_MinSize: {x: 201, y: 221}
+  m_MaxSize: {x: 4001, y: 4021}
+  m_ActualView: {fileID: 16}
+  m_Panes:
+  - {fileID: 16}
+  m_Selected: 0
+  m_LastSelected: 0
+--- !u!114 &11
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: GameView
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 238.22223
+    y: 0
+    width: 819.11115
+    height: 554.2222
+  m_MinSize: {x: 202, y: 221}
+  m_MaxSize: {x: 4002, y: 4021}
+  m_ActualView: {fileID: 18}
+  m_Panes:
+  - {fileID: 17}
+  - {fileID: 18}
+  m_Selected: 1
+  m_LastSelected: 0
+--- !u!114 &12
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: ProjectBrowser
+  m_EditorClassIdentifier: 
+  m_Children: []
+  m_Position:
+    serializedVersion: 2
+    x: 0
+    y: 554.2222
+    width: 1316.4445
+    height: 264.22223
+  m_MinSize: {x: 231, y: 271}
+  m_MaxSize: {x: 10001, y: 10021}
+  m_ActualView: {fileID: 15}
+  m_Panes:
+  - {fileID: 15}
+  - {fileID: 19}
+  m_Selected: 0
+  m_LastSelected: 1
+--- !u!114 &13
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5c022ecfc024a284d8e6fe2d32be9e75, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 400, y: 600}
+  m_MaxSize: {x: 600, y: 1200}
+  m_TitleContent:
+    m_Text: Tutorials
+    m_Image: {fileID: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 1322.2223
+    y: 73.333336
+    width: 377.66663
+    height: 797.44446
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+--- !u!114 &14
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 275, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Inspector
+    m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 1063.1111
+    y: 73.333336
+    width: 257.11108
+    height: 533.2222
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_ObjectsLockedBeforeSerialization: []
+  m_InstanceIDsLockedBeforeSerialization: 
+  m_PreviewResizer:
+    m_CachedPref: 294.3333
+    m_ControlHash: 1412526313
+    m_PrefName: Preview_InspectorPreview
+  m_LastInspectedObjectInstanceID: -1
+  m_LastVerticalScrollValue: 0
+  m_GlobalObjectId: 
+  m_InspectorMode: 0
+  m_LockTracker:
+    m_IsLocked: 0
+  m_PreviewWindow: {fileID: 0}
+--- !u!114 &15
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 230, y: 250}
+  m_MaxSize: {x: 10000, y: 10000}
+  m_TitleContent:
+    m_Text: Project
+    m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 5.7777777
+    y: 627.55554
+    width: 1315.4445
+    height: 243.22223
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_SearchFilter:
+    m_NameFilter: 
+    m_ClassNames: []
+    m_AssetLabels: []
+    m_AssetBundleNames: []
+    m_ReferencingInstanceIDs: 
+    m_SceneHandles: 
+    m_ShowAllHits: 0
+    m_SkipHidden: 1
+    m_SearchArea: 1
+    m_Folders:
+    - Assets
+    m_Globs: []
+    m_OriginalText: 
+    m_ImportLogFlags: 0
+    m_FilterByTypeIntersection: 0
+  m_ViewMode: 1
+  m_StartGridSize: 16
+  m_LastFolders:
+  - Assets
+  m_LastFoldersGridSize: -1
+  m_LastProjectPath: C:\Projects\wa_Unity\Samples\com.unity.multiplayer.samples.coop
+  m_LockTracker:
+    m_IsLocked: 1
+  m_FolderTreeState:
+    scrollPos: {x: 0, y: 0}
+    m_SelectedIDs: a2a10000
+    m_LastClickedID: 41378
+    m_ExpandedIDs: 00000000a2a10000a6a1000000ca9a3bffffff7f
+    m_RenameOverlay:
+      m_UserAcceptedRename: 0
+      m_Name: 
+      m_OriginalName: 
+      m_EditFieldRect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 0
+        height: 0
+      m_UserData: 0
+      m_IsWaitingForDelay: 0
+      m_IsRenaming: 0
+      m_OriginalEventType: 11
+      m_IsRenamingFilename: 1
+      m_ClientGUIView: {fileID: 0}
+    m_SearchString: 
+    m_CreateAssetUtility:
+      m_EndAction: {fileID: 0}
+      m_InstanceID: 0
+      m_Path: 
+      m_Icon: {fileID: 0}
+      m_ResourceFile: 
+  m_AssetTreeState:
+    scrollPos: {x: 0, y: 0}
+    m_SelectedIDs: 
+    m_LastClickedID: 0
+    m_ExpandedIDs: 00000000a2a10000a4a10000a6a10000a8a10000
+    m_RenameOverlay:
+      m_UserAcceptedRename: 0
+      m_Name: 
+      m_OriginalName: 
+      m_EditFieldRect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 0
+        height: 0
+      m_UserData: 0
+      m_IsWaitingForDelay: 0
+      m_IsRenaming: 0
+      m_OriginalEventType: 11
+      m_IsRenamingFilename: 1
+      m_ClientGUIView: {fileID: 0}
+    m_SearchString: 
+    m_CreateAssetUtility:
+      m_EndAction: {fileID: 0}
+      m_InstanceID: 0
+      m_Path: 
+      m_Icon: {fileID: 0}
+      m_ResourceFile: 
+  m_ListAreaState:
+    m_SelectedInstanceIDs: 
+    m_LastClickedInstanceID: 0
+    m_HadKeyboardFocusLastEvent: 0
+    m_ExpandedInstanceIDs: c6230000b8cc0100
+    m_RenameOverlay:
+      m_UserAcceptedRename: 0
+      m_Name: 
+      m_OriginalName: 
+      m_EditFieldRect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 0
+        height: 0
+      m_UserData: 0
+      m_IsWaitingForDelay: 0
+      m_IsRenaming: 0
+      m_OriginalEventType: 11
+      m_IsRenamingFilename: 1
+      m_ClientGUIView: {fileID: 12}
+    m_CreateAssetUtility:
+      m_EndAction: {fileID: 0}
+      m_InstanceID: 0
+      m_Path: 
+      m_Icon: {fileID: 0}
+      m_ResourceFile: 
+    m_NewAssetIndexInList: -1
+    m_ScrollPosition: {x: 0, y: 0}
+    m_GridSize: 16
+  m_SkipHiddenPackages: 1
+  m_DirectoriesAreaWidth: 243
+--- !u!114 &16
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Hierarchy
+    m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 5.7777777
+    y: 73.333336
+    width: 237.22223
+    height: 533.2222
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_SceneHierarchy:
+    m_TreeViewState:
+      scrollPos: {x: 0, y: 0}
+      m_SelectedIDs: 
+      m_LastClickedID: 0
+      m_ExpandedIDs: e0faffff
+      m_RenameOverlay:
+        m_UserAcceptedRename: 0
+        m_Name: 
+        m_OriginalName: 
+        m_EditFieldRect:
+          serializedVersion: 2
+          x: 0
+          y: 0
+          width: 0
+          height: 0
+        m_UserData: 0
+        m_IsWaitingForDelay: 0
+        m_IsRenaming: 0
+        m_OriginalEventType: 11
+        m_IsRenamingFilename: 0
+        m_ClientGUIView: {fileID: 10}
+      m_SearchString: 
+    m_ExpandedScenes: []
+    m_CurrenRootInstanceID: 0
+    m_LockTracker:
+      m_IsLocked: 0
+    m_CurrentSortingName: TransformSorting
+  m_WindowGUID: 8fc052f840a2535499b1e625db4cdc81
+--- !u!114 &17
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Scene
+    m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 193.77779
+    y: 58.666668
+    width: 1150.8889
+    height: 595.8889
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData:
+    - dockPosition: 0
+      containerId: overlay-toolbar__top
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: -166, y: -26.666687}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 3
+      id: Tool Settings
+      index: 0
+      layout: 1
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 0
+      containerId: overlay-toolbar__top
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: -141, y: 149}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 1
+      id: unity-grid-and-snap-toolbar
+      index: 1
+      layout: 1
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-toolbar__top
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 0, y: 24.88889}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: unity-scene-view-toolbar
+      index: 0
+      layout: 1
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-toolbar__top
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 1
+      id: unity-search-toolbar
+      index: 1
+      layout: 1
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 0
+      containerId: overlay-container--left
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: unity-transform-toolbar
+      index: 0
+      layout: 2
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 0
+      containerId: overlay-container--left
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 0, y: 197}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: unity-component-tools
+      index: 1
+      layout: 2
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 0
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 41.27777, y: 79.111115}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Orientation
+      index: 0
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Light Settings
+      index: 0
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Camera
+      index: 1
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Cloth Constraints
+      index: 1
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Cloth Collisions
+      index: 2
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Navmesh Display
+      index: 4
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Agent Display
+      index: 5
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Obstacle Display
+      index: 6
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Occlusion Culling
+      index: 3
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Physics Debugger
+      index: 4
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Scene Visibility
+      index: 5
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Particles
+      index: 6
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Tilemap
+      index: 11
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Tilemap Palette Helper
+      index: 12
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Visual Effect Model
+      index: 7
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Visual Effect
+      index: 8
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Visual Effect Event Tester
+      index: 9
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 0, y: 0}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/UI Particles
+      index: 10
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: APV Overlay
+      index: 8
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/Visual Effect Timeline Control
+      index: 12
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Scene View/TrailRenderer
+      index: 7
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: UnityEditor.SceneViewCameraOverlay
+      index: 11
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 1
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: AINavigationOverlay
+      index: 9
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    - dockPosition: 1
+      containerId: overlay-container--right
+      floating: 0
+      collapsed: 0
+      displayed: 0
+      snapOffset: {x: 48, y: 48}
+      snapOffsetDelta: {x: 0, y: 0}
+      snapCorner: 0
+      id: Cinemachine Tool Settings
+      index: 10
+      layout: 4
+      size: {x: 0, y: 0}
+      sizeOverriden: 0
+    m_OverlaysVisible: 1
+  m_WindowGUID: 3a0359307ee50c44cac4059d91b2417e
+  m_Gizmos: 1
+  m_OverrideSceneCullingMask: 6917529027641081856
+  m_SceneIsLit: 0
+  m_SceneLighting: 1
+  m_2DMode: 0
+  m_isRotationLocked: 0
+  m_PlayAudio: 0
+  m_AudioPlay: 0
+  m_Position:
+    m_Target: {x: 0, y: 0, z: 0}
+    speed: 2
+    m_Value: {x: 0, y: 0, z: 0}
+  m_RenderMode: 0
+  m_CameraMode:
+    drawMode: 0
+    name: Shaded
+    section: Shading Mode
+  m_ValidateTrueMetals: 0
+  m_DoValidateTrueMetals: 0
+  m_SceneViewState:
+    m_AlwaysRefresh: 0
+    showFog: 1
+    showSkybox: 1
+    showFlares: 1
+    showImageEffects: 1
+    showParticleSystems: 1
+    showVisualEffectGraphs: 1
+    m_FxEnabled: 1
+  m_Grid:
+    xGrid:
+      m_Fade:
+        m_Target: 0
+        speed: 2
+        m_Value: 0
+      m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
+      m_Pivot: {x: 0, y: 0, z: 0}
+      m_Size: {x: 0, y: 0}
+    yGrid:
+      m_Fade:
+        m_Target: 0
+        speed: 2
+        m_Value: 0
+      m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
+      m_Pivot: {x: 0, y: 0, z: 0}
+      m_Size: {x: 1, y: 1}
+    zGrid:
+      m_Fade:
+        m_Target: 1
+        speed: 2
+        m_Value: 1
+      m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4}
+      m_Pivot: {x: 0, y: 0, z: 0}
+      m_Size: {x: 1, y: 1}
+    m_ShowGrid: 1
+    m_GridAxis: 1
+    m_gridOpacity: 0.5
+  m_Rotation:
+    m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
+    speed: 2
+    m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
+  m_Size:
+    m_Target: 10
+    speed: 2
+    m_Value: 10
+  m_Ortho:
+    m_Target: 0
+    speed: 2
+    m_Value: 0
+  m_CameraSettings:
+    m_Speed: 1
+    m_SpeedNormalized: 0.5
+    m_SpeedMin: 0.01
+    m_SpeedMax: 2
+    m_EasingEnabled: 1
+    m_EasingDuration: 0.4
+    m_AccelerationEnabled: 1
+    m_FieldOfViewHorizontalOrVertical: 60
+    m_NearClip: 0.03
+    m_FarClip: 10000
+    m_DynamicClip: 1
+    m_OcclusionCulling: 0
+  m_LastSceneViewRotation: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226}
+  m_LastSceneViewOrtho: 0
+  m_ReplacementShader: {fileID: 0}
+  m_ReplacementString: 
+  m_SceneVisActive: 1
+  m_LastLockedObject: {fileID: 0}
+  m_ViewIsLockedToObject: 0
+--- !u!114 &18
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Game
+    m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 244
+    y: 73.333336
+    width: 817.11115
+    height: 533.2222
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
+  m_SerializedViewNames: []
+  m_SerializedViewValues: []
+  m_PlayModeViewName: GameView
+  m_ShowGizmos: 0
+  m_TargetDisplay: 0
+  m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
+  m_TargetSize: {x: 817.11115, y: 460}
+  m_TextureFilterMode: 0
+  m_TextureHideFlags: 61
+  m_RenderIMGUI: 1
+  m_EnterPlayModeBehavior: 0
+  m_UseMipMap: 0
+  m_VSyncEnabled: 0
+  m_Gizmos: 0
+  m_Stats: 0
+  m_SelectedSizes: 01000000000000000000000000000000000000000000000000000000000000000000000000000000
+  m_ZoomArea:
+    m_HRangeLocked: 0
+    m_VRangeLocked: 0
+    hZoomLockedByDefault: 0
+    vZoomLockedByDefault: 0
+    m_HBaseRangeMin: -181.58026
+    m_HBaseRangeMax: 181.58026
+    m_VBaseRangeMin: -102.22222
+    m_VBaseRangeMax: 102.22222
+    m_HAllowExceedBaseRangeMin: 1
+    m_HAllowExceedBaseRangeMax: 1
+    m_VAllowExceedBaseRangeMin: 1
+    m_VAllowExceedBaseRangeMax: 1
+    m_ScaleWithWindow: 0
+    m_HSlider: 0
+    m_VSlider: 0
+    m_IgnoreScrollWheelUntilClicked: 0
+    m_EnableMouseInput: 1
+    m_EnableSliderZoomHorizontal: 0
+    m_EnableSliderZoomVertical: 0
+    m_UniformScale: 1
+    m_UpDirection: 1
+    m_DrawArea:
+      serializedVersion: 2
+      x: 0
+      y: 21
+      width: 817.11115
+      height: 512.2222
+    m_Scale: {x: 2.25, y: 2.25}
+    m_Translation: {x: 408.5556, y: 256.1111}
+    m_MarginLeft: 0
+    m_MarginRight: 0
+    m_MarginTop: 0
+    m_MarginBottom: 0
+    m_LastShownAreaInsideMargins:
+      serializedVersion: 2
+      x: -181.58026
+      y: -113.82716
+      width: 363.16052
+      height: 227.65433
+    m_MinimalGUI: 1
+  m_defaultScale: 2
+  m_LastWindowPixelSize: {x: 1838.5001, y: 1199.75}
+  m_ClearInEditMode: 1
+  m_NoCameraWarning: 1
+  m_LowResolutionForAspectRatios: 01000000000000000000
+  m_XRRenderMode: 0
+  m_RenderTexture: {fileID: 0}
+--- !u!114 &19
+MonoBehaviour:
+  m_ObjectHideFlags: 52
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 1
+  m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_MinSize: {x: 100, y: 100}
+  m_MaxSize: {x: 4000, y: 4000}
+  m_TitleContent:
+    m_Text: Console
+    m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0}
+    m_Tooltip: 
+  m_Pos:
+    serializedVersion: 2
+    x: 5.7777777
+    y: 597.7778
+    width: 953.6667
+    height: 273
+  m_SerializedDataModeController:
+    m_DataMode: 0
+    m_PreferredDataMode: 0
+    m_SupportedDataModes: 
+    isAutomatic: 1
+  m_ViewDataDictionary: {fileID: 0}
+  m_OverlayCanvas:
+    m_LastAppliedPresetName: Default
+    m_SaveData: []
+    m_OverlaysVisible: 1
diff --git a/Assets/Editor/Tutorials/layout.wlt.meta b/Assets/Editor/Tutorials/layout.wlt.meta
new file mode 100644
index 0000000000..ace34180a3
--- /dev/null
+++ b/Assets/Editor/Tutorials/layout.wlt.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 84fb82f6671b7634092a1d564bf7d4a0
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Fonts/Bungee-Regular SDF.asset b/Assets/Fonts/Bungee-Regular SDF.asset
index d69d808028..bc5688318d 100644
--- a/Assets/Fonts/Bungee-Regular SDF.asset	
+++ b/Assets/Fonts/Bungee-Regular SDF.asset	
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:e1b2e0c87e28b1a62d2c6db44107369f1ec7b1d565ab8ef7b65a8f09220e4739
-size 577421
+oid sha256:f423064a483d6f113328aaf08af463cced623dceb931b1caef991ed769eb9f70
+size 580541
diff --git a/Assets/GameData/Action/Mage/MageHeal.asset b/Assets/GameData/Action/Mage/MageHeal.asset
index f1d5f0daf5..b30161aaf7 100644
--- a/Assets/GameData/Action/Mage/MageHeal.asset
+++ b/Assets/GameData/Action/Mage/MageHeal.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:6c16b018e4bfa01b23bea3e0f6ef366ac529f16a749e38c93384e1e38a5c7ab8
-size 1159
+oid sha256:5f28c042dceb2a438a0faec834feaf3b3470fc34629e4ab5e489af33b780ed32
+size 1185
diff --git a/Assets/GameData/Game/BreakableCrystal.meta b/Assets/GameData/Game/BreakableCrystal.meta
new file mode 100644
index 0000000000..3157716879
--- /dev/null
+++ b/Assets/GameData/Game/BreakableCrystal.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 71461e10ac53f4c11868aed1435fc130
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GameData/Game/BreakableCrystal/BaseHP.asset b/Assets/GameData/Game/BreakableCrystal/BaseHP.asset
new file mode 100644
index 0000000000..11134efb85
--- /dev/null
+++ b/Assets/GameData/Game/BreakableCrystal/BaseHP.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:91d0103ab97ba1ce721cb53fb473898e223278cd299827570eb2ec9d344f163a
+size 407
diff --git a/Assets/GameData/Game/BreakableCrystal/BaseHP.asset.meta b/Assets/GameData/Game/BreakableCrystal/BaseHP.asset.meta
new file mode 100644
index 0000000000..903b8f0f5d
--- /dev/null
+++ b/Assets/GameData/Game/BreakableCrystal/BaseHP.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 35bb8d80ab89bf64aa87c6e1a7863370
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GameData/Game/BreakablePillar.meta b/Assets/GameData/Game/BreakablePillar.meta
new file mode 100644
index 0000000000..48a5dd901a
--- /dev/null
+++ b/Assets/GameData/Game/BreakablePillar.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ba81fbd6f5a39475a834b654373f9a87
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GameData/Game/BreakablePillar/BaseHP.asset b/Assets/GameData/Game/BreakablePillar/BaseHP.asset
new file mode 100644
index 0000000000..43ec6dd747
--- /dev/null
+++ b/Assets/GameData/Game/BreakablePillar/BaseHP.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:94d6f2f66c38f80b44fb3c2451fc2120736b8685ed93b3223eb6b1545380f727
+size 406
diff --git a/Assets/GameData/Game/BreakablePillar/BaseHP.asset.meta b/Assets/GameData/Game/BreakablePillar/BaseHP.asset.meta
new file mode 100644
index 0000000000..1f08b943c9
--- /dev/null
+++ b/Assets/GameData/Game/BreakablePillar/BaseHP.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8e56e91693df2421190b5c79ce9630a6
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GameData/Game/BreakablePot.meta b/Assets/GameData/Game/BreakablePot.meta
new file mode 100644
index 0000000000..4d09c19ad6
--- /dev/null
+++ b/Assets/GameData/Game/BreakablePot.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e8f7cd106c2404c76819baf4b3e20c4d
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GameData/Game/BreakablePot/BaseHP.asset b/Assets/GameData/Game/BreakablePot/BaseHP.asset
new file mode 100644
index 0000000000..b995eff1e3
--- /dev/null
+++ b/Assets/GameData/Game/BreakablePot/BaseHP.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4ee715ca09c30156b890781af1d726fce76d34784a8b9bd62e84572dc13663c
+size 406
diff --git a/Assets/GameData/Game/BreakablePot/BaseHP.asset.meta b/Assets/GameData/Game/BreakablePot/BaseHP.asset.meta
new file mode 100644
index 0000000000..5147455497
--- /dev/null
+++ b/Assets/GameData/Game/BreakablePot/BaseHP.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c38b94dde37df4242a38c9257c303417
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/GameData/Game/EnemySpawner/BaseHP.asset b/Assets/GameData/Game/EnemySpawner/BaseHP.asset
index 11134efb85..43ec6dd747 100644
--- a/Assets/GameData/Game/EnemySpawner/BaseHP.asset
+++ b/Assets/GameData/Game/EnemySpawner/BaseHP.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:91d0103ab97ba1ce721cb53fb473898e223278cd299827570eb2ec9d344f163a
-size 407
+oid sha256:94d6f2f66c38f80b44fb3c2451fc2120736b8685ed93b3223eb6b1545380f727
+size 406
diff --git a/Assets/GameData/Game/EnemySpawner/BaseHP.asset.meta b/Assets/GameData/Game/EnemySpawner/BaseHP.asset.meta
index 903b8f0f5d..d67ccf07fe 100644
--- a/Assets/GameData/Game/EnemySpawner/BaseHP.asset.meta
+++ b/Assets/GameData/Game/EnemySpawner/BaseHP.asset.meta
@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 35bb8d80ab89bf64aa87c6e1a7863370
+guid: 0ea073444920f455e9b4769e970d81d8
 NativeFormatImporter:
   externalObjects: {}
   mainObjectFileID: 11400000
diff --git a/Assets/InputSystem.meta b/Assets/InputSystem.meta
new file mode 100644
index 0000000000..c50391a0cb
--- /dev/null
+++ b/Assets/InputSystem.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e851526f574e2428099024339b111519
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/InputSystem/PlayerActions.inputactions b/Assets/InputSystem/PlayerActions.inputactions
new file mode 100644
index 0000000000..93c760862e
--- /dev/null
+++ b/Assets/InputSystem/PlayerActions.inputactions
@@ -0,0 +1,999 @@
+{
+    "name": "PlayerActions",
+    "maps": [
+        {
+            "name": "Player",
+            "id": "df70fa95-8a34-4494-b137-73ab6b9c7d37",
+            "actions": [
+                {
+                    "name": "Action1",
+                    "type": "Button",
+                    "id": "a253bfe9-3490-4b8a-a863-112a3d9ad51c",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Action2",
+                    "type": "Button",
+                    "id": "5c29eb01-ef74-4b5c-9349-7f3ef300025c",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Action3",
+                    "type": "Button",
+                    "id": "0557d847-afce-466f-a041-75907f18670b",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Action4",
+                    "type": "Button",
+                    "id": "19b1aa91-cf31-4e9b-83d1-ccaae8ff518b",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Action5",
+                    "type": "Button",
+                    "id": "2ef11149-91c6-4722-8570-5784583d8526",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Action6",
+                    "type": "Button",
+                    "id": "d9939487-9a80-4f97-9733-9410b4f2e63b",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Action7",
+                    "type": "Button",
+                    "id": "84095eb0-5936-45d3-8beb-2f79c3a8f68c",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Action8",
+                    "type": "Button",
+                    "id": "e176e7b8-0bed-4bf8-931b-f5bcd8332d4b",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "ToggleEmoteBar",
+                    "type": "Button",
+                    "id": "ced7334e-d2d0-49b9-8a34-2dcda513e275",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "ToggleNetworkStats",
+                    "type": "Button",
+                    "id": "d1f96fd1-9fbb-4b2c-bb98-ddd1b1150dd0",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "ToggleNetworkSimulator",
+                    "type": "Button",
+                    "id": "8b27e946-68af-4c4d-ba82-d2cb4a866217",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "ToggleCheats",
+                    "type": "Button",
+                    "id": "d406d43c-a802-4adc-8a61-c7f0745ed4df",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Target",
+                    "type": "Button",
+                    "id": "43b99b7b-ca7a-4ef6-9d13-2751c2d2b3aa",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Skill1",
+                    "type": "Button",
+                    "id": "b97db0db-4f74-415d-99bf-8b754bfa6827",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Point",
+                    "type": "PassThrough",
+                    "id": "577651e7-bedb-409c-bba8-513e74e03e3b",
+                    "expectedControlType": "Vector2",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": true
+                },
+                {
+                    "name": "ScrollWheel",
+                    "type": "Value",
+                    "id": "a333c836-68b4-44ef-8f65-4c48bb3870c3",
+                    "expectedControlType": "Vector2",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": true
+                }
+            ],
+            "bindings": [
+                {
+                    "name": "",
+                    "id": "cc91faff-b1f5-41fc-a4da-4a7afdc60ddf",
+                    "path": "/1",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action1",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "8327da8e-1ef1-4fb8-ab26-0cf54c330c40",
+                    "path": "/2",
+                    "interactions": "Hold",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action2",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "4b4f1a22-bbbb-4f4a-8216-2bf1b80a7d00",
+                    "path": "/3",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action3",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "08b6361c-4da4-40ae-8fa8-2d96fd65175c",
+                    "path": "/4",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action4",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "6367f1ca-20ca-41fe-8cba-b83c544ea439",
+                    "path": "/5",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action5",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "1d095f50-2ab8-4b1e-ab2c-0ac704915af4",
+                    "path": "/6",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action6",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "d6b8d96c-297b-4570-95d0-9f7d6e076a83",
+                    "path": "/7",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action7",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "ad7181df-7d35-438d-a75e-77def5068d9c",
+                    "path": "/8",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Action8",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "0cc145f8-a4b0-432e-b0fd-850e0a63c265",
+                    "path": "/4",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "ToggleEmoteBar",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "5ee395b1-5245-4bc8-b716-c0f619a423c7",
+                    "path": "/s",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "ToggleNetworkStats",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "08019be4-0b1b-4c81-a805-111c875ad7c3",
+                    "path": "/touch3/tap",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Touch",
+                    "action": "ToggleNetworkStats",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "a2f7fe81-4374-49f6-ac91-31f25ff7695f",
+                    "path": "/tab",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "ToggleNetworkSimulator",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "b1533cc3-511d-496b-ba9a-8d5606061c26",
+                    "path": "/touch4/tap",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Touch",
+                    "action": "ToggleNetworkSimulator",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "9b456d39-4b33-4bed-b1aa-c4d648dd523c",
+                    "path": "/slash",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "ToggleCheats",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "571fb49b-094d-4788-b76c-68863ac01164",
+                    "path": "/leftButton",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Keyboard&Mouse",
+                    "action": "Target",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "dfdea74a-f685-40f7-856e-736492574188",
+                    "path": "/touch*/press",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Touch",
+                    "action": "Target",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "03468fd1-8d67-488b-ba05-2dd82ef9c830",
+                    "path": "/rightButton",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Keyboard&Mouse",
+                    "action": "Skill1",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "de7a02bc-5cc4-4d3e-b7f7-3b6ea4e56a69",
+                    "path": "/position",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Point",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "897044fe-c81a-4245-ba4a-5bc7c717bedb",
+                    "path": "/touch*/position",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Touch",
+                    "action": "Point",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "0e6a3466-3efb-4405-8ff2-068eeff4b435",
+                    "path": "/scroll",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Keyboard&Mouse",
+                    "action": "ScrollWheel",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "Two Modifiers",
+                    "id": "a7d13156-4095-4d23-8e27-53b486aa0930",
+                    "path": "TwoModifiers",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "ScrollWheel",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "modifier1",
+                    "id": "3c8e94d7-5fda-4b27-9a33-a912cb2fd103",
+                    "path": "/touch0/press",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Touch",
+                    "action": "ScrollWheel",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "modifier2",
+                    "id": "3b706b16-7840-4f02-9f8f-7453a22b1f47",
+                    "path": "/touch1/press",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Touch",
+                    "action": "ScrollWheel",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "binding",
+                    "id": "02294441-af70-4095-af64-d2ec6a4590dd",
+                    "path": "/delta",
+                    "interactions": "",
+                    "processors": "InvertVector2",
+                    "groups": ";Touch",
+                    "action": "ScrollWheel",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                }
+            ]
+        },
+        {
+            "name": "UI",
+            "id": "272f6d14-89ba-496f-b7ff-215263d3219f",
+            "actions": [
+                {
+                    "name": "Navigate",
+                    "type": "PassThrough",
+                    "id": "c95b2375-e6d9-4b88-9c4c-c5e76515df4b",
+                    "expectedControlType": "Vector2",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Submit",
+                    "type": "Button",
+                    "id": "7607c7b6-cd76-4816-beef-bd0341cfe950",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Cancel",
+                    "type": "Button",
+                    "id": "15cef263-9014-4fd5-94d9-4e4a6234a6ef",
+                    "expectedControlType": "",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Point",
+                    "type": "PassThrough",
+                    "id": "32b35790-4ed0-4e9a-aa41-69ac6d629449",
+                    "expectedControlType": "Vector2",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": true
+                },
+                {
+                    "name": "Click",
+                    "type": "PassThrough",
+                    "id": "3c7022bf-7922-4f7c-a998-c437916075ad",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": true
+                },
+                {
+                    "name": "RightClick",
+                    "type": "PassThrough",
+                    "id": "44b200b1-1557-4083-816c-b22cbdf77ddf",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "MiddleClick",
+                    "type": "PassThrough",
+                    "id": "dad70c86-b58c-4b17-88ad-f5e53adf419e",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "ScrollWheel",
+                    "type": "PassThrough",
+                    "id": "0489e84a-4833-4c40-bfae-cea84b696689",
+                    "expectedControlType": "Vector2",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "TrackedDevicePosition",
+                    "type": "PassThrough",
+                    "id": "24908448-c609-4bc3-a128-ea258674378a",
+                    "expectedControlType": "Vector3",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "TrackedDeviceOrientation",
+                    "type": "PassThrough",
+                    "id": "9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be",
+                    "expectedControlType": "Quaternion",
+                    "processors": "",
+                    "interactions": "",
+                    "initialStateCheck": false
+                }
+            ],
+            "bindings": [
+                {
+                    "name": "Gamepad",
+                    "id": "809f371f-c5e2-4e7a-83a1-d867598f40dd",
+                    "path": "2DVector",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Navigate",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "up",
+                    "id": "14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf",
+                    "path": "/leftStick/up",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "up",
+                    "id": "9144cbe6-05e1-4687-a6d7-24f99d23dd81",
+                    "path": "/rightStick/up",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "down",
+                    "id": "2db08d65-c5fb-421b-983f-c71163608d67",
+                    "path": "/leftStick/down",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "down",
+                    "id": "58748904-2ea9-4a80-8579-b500e6a76df8",
+                    "path": "/rightStick/down",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "left",
+                    "id": "8ba04515-75aa-45de-966d-393d9bbd1c14",
+                    "path": "/leftStick/left",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "left",
+                    "id": "712e721c-bdfb-4b23-a86c-a0d9fcfea921",
+                    "path": "/rightStick/left",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "right",
+                    "id": "fcd248ae-a788-4676-a12e-f4d81205600b",
+                    "path": "/leftStick/right",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "right",
+                    "id": "1f04d9bc-c50b-41a1-bfcc-afb75475ec20",
+                    "path": "/rightStick/right",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "",
+                    "id": "fb8277d4-c5cd-4663-9dc7-ee3f0b506d90",
+                    "path": "/dpad",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Gamepad",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "Joystick",
+                    "id": "e25d9774-381c-4a61-b47c-7b6b299ad9f9",
+                    "path": "2DVector",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Navigate",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "up",
+                    "id": "3db53b26-6601-41be-9887-63ac74e79d19",
+                    "path": "/stick/up",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Joystick",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "down",
+                    "id": "0cb3e13e-3d90-4178-8ae6-d9c5501d653f",
+                    "path": "/stick/down",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Joystick",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "left",
+                    "id": "0392d399-f6dd-4c82-8062-c1e9c0d34835",
+                    "path": "/stick/left",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Joystick",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "right",
+                    "id": "942a66d9-d42f-43d6-8d70-ecb4ba5363bc",
+                    "path": "/stick/right",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Joystick",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "Keyboard",
+                    "id": "ff527021-f211-4c02-933e-5976594c46ed",
+                    "path": "2DVector",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Navigate",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "up",
+                    "id": "563fbfdd-0f09-408d-aa75-8642c4f08ef0",
+                    "path": "/w",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "up",
+                    "id": "eb480147-c587-4a33-85ed-eb0ab9942c43",
+                    "path": "/upArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "down",
+                    "id": "2bf42165-60bc-42ca-8072-8c13ab40239b",
+                    "path": "/s",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "down",
+                    "id": "85d264ad-e0a0-4565-b7ff-1a37edde51ac",
+                    "path": "/downArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "left",
+                    "id": "74214943-c580-44e4-98eb-ad7eebe17902",
+                    "path": "/a",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "left",
+                    "id": "cea9b045-a000-445b-95b8-0c171af70a3b",
+                    "path": "/leftArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "right",
+                    "id": "8607c725-d935-4808-84b1-8354e29bab63",
+                    "path": "/d",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "right",
+                    "id": "4cda81dc-9edd-4e03-9d7c-a71a14345d0b",
+                    "path": "/rightArrow",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Navigate",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "",
+                    "id": "9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc",
+                    "path": "*/{Submit}",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR",
+                    "action": "Submit",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "82627dcc-3b13-4ba9-841d-e4b746d6553e",
+                    "path": "*/{Cancel}",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR",
+                    "action": "Cancel",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "c52c8e0b-8179-41d3-b8a1-d149033bbe86",
+                    "path": "/position",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Point",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "e1394cbc-336e-44ce-9ea8-6007ed6193f7",
+                    "path": "/position",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "Point",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "5693e57a-238a-46ed-b5ae-e64e6e574302",
+                    "path": "/touch*/position",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Touch",
+                    "action": "Point",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "4faf7dc9-b979-4210-aa8c-e808e1ef89f5",
+                    "path": "/leftButton",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Keyboard&Mouse",
+                    "action": "Click",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "8d66d5ba-88d7-48e6-b1cd-198bbfef7ace",
+                    "path": "/tip",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Keyboard&Mouse",
+                    "action": "Click",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "47c2a644-3ebc-4dae-a106-589b7ca75b59",
+                    "path": "/touch*/press",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Touch",
+                    "action": "Click",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "bb9e6b34-44bf-4381-ac63-5aa15d19f677",
+                    "path": "/trigger",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "XR",
+                    "action": "Click",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "38c99815-14ea-4617-8627-164d27641299",
+                    "path": "/scroll",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": ";Keyboard&Mouse",
+                    "action": "ScrollWheel",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "4c191405-5738-4d4b-a523-c6a301dbf754",
+                    "path": "/rightButton",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "RightClick",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "24066f69-da47-44f3-a07e-0015fb02eb2e",
+                    "path": "/middleButton",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "Keyboard&Mouse",
+                    "action": "MiddleClick",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77",
+                    "path": "/devicePosition",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "XR",
+                    "action": "TrackedDevicePosition",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "",
+                    "id": "23e01e3a-f935-4948-8d8b-9bcac77714fb",
+                    "path": "/deviceRotation",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "XR",
+                    "action": "TrackedDeviceOrientation",
+                    "isComposite": false,
+                    "isPartOfComposite": false
+                }
+            ]
+        }
+    ],
+    "controlSchemes": [
+        {
+            "name": "Keyboard&Mouse",
+            "bindingGroup": "Keyboard&Mouse",
+            "devices": [
+                {
+                    "devicePath": "",
+                    "isOptional": false,
+                    "isOR": false
+                },
+                {
+                    "devicePath": "",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        },
+        {
+            "name": "Gamepad",
+            "bindingGroup": "Gamepad",
+            "devices": [
+                {
+                    "devicePath": "",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        },
+        {
+            "name": "Touch",
+            "bindingGroup": "Touch",
+            "devices": [
+                {
+                    "devicePath": "",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        },
+        {
+            "name": "Joystick",
+            "bindingGroup": "Joystick",
+            "devices": [
+                {
+                    "devicePath": "",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        },
+        {
+            "name": "XR",
+            "bindingGroup": "XR",
+            "devices": [
+                {
+                    "devicePath": "",
+                    "isOptional": false,
+                    "isOR": false
+                }
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/Assets/InputSystem/PlayerActions.inputactions.meta b/Assets/InputSystem/PlayerActions.inputactions.meta
new file mode 100644
index 0000000000..9c1de82e6e
--- /dev/null
+++ b/Assets/InputSystem/PlayerActions.inputactions.meta
@@ -0,0 +1,14 @@
+fileFormatVersion: 2
+guid: add476edce0d24d26bcdaf1681449ecf
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
+  generateWrapperCode: 0
+  wrapperCodePath: 
+  wrapperClassName: 
+  wrapperCodeNamespace: 
diff --git a/Assets/Material/Characters/Character_Shadow.mat b/Assets/Material/Characters/Character_Shadow.mat
index 316de69277..72e7a1257a 100644
--- a/Assets/Material/Characters/Character_Shadow.mat
+++ b/Assets/Material/Characters/Character_Shadow.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -132,6 +133,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &2085413229483183920
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -144,4 +146,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Enemy_Eyes_sheet.mat b/Assets/Material/Characters/Enemy_Eyes_sheet.mat
index 8bd47d8b57..8df68bbc65 100644
--- a/Assets/Material/Characters/Enemy_Eyes_sheet.mat
+++ b/Assets/Material/Characters/Enemy_Eyes_sheet.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -127,6 +129,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &2746495770331472876
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -139,4 +142,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Enemy_Mouth_sheet.mat b/Assets/Material/Characters/Enemy_Mouth_sheet.mat
index 2af786300c..b0bf27b411 100644
--- a/Assets/Material/Characters/Enemy_Mouth_sheet.mat
+++ b/Assets/Material/Characters/Enemy_Mouth_sheet.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,7 +26,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -145,3 +147,4 @@ Material:
     - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
     - _SpecularColor: {r: 0.9, g: 0.9, b: 0.9, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Hero_Eyes_sheet.mat b/Assets/Material/Characters/Hero_Eyes_sheet.mat
index 32ce187b95..d03cae6bae 100644
--- a/Assets/Material/Characters/Hero_Eyes_sheet.mat
+++ b/Assets/Material/Characters/Hero_Eyes_sheet.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -127,6 +129,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4340826014879142409
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -139,4 +142,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Hero_Mouth_sheet.mat b/Assets/Material/Characters/Hero_Mouth_sheet.mat
index a0437b7100..33a099c0ba 100644
--- a/Assets/Material/Characters/Hero_Mouth_sheet.mat
+++ b/Assets/Material/Characters/Hero_Mouth_sheet.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -132,6 +134,7 @@ Material:
     - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
     - _SpecularColor: {r: 0.9, g: 0.9, b: 0.9, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1900546452016667472
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -144,4 +147,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Hair_Archer_Boy.mat b/Assets/Material/Characters/Toon/Hair_Archer_Boy.mat
index 205b317275..e44f095480 100644
--- a/Assets/Material/Characters/Toon/Hair_Archer_Boy.mat
+++ b/Assets/Material/Characters/Toon/Hair_Archer_Boy.mat
@@ -20,7 +20,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -102,6 +103,7 @@ Material:
     - _RimColor: {r: 1, g: 1, b: 1, a: 1}
     - _SpecularColor: {r: 3.6078432, g: 3.6078432, b: 3.6078432, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4864082934053653154
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -114,4 +116,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Hair_Archer_Girl.mat b/Assets/Material/Characters/Toon/Hair_Archer_Girl.mat
index 857a79cca5..adf79f1d46 100644
--- a/Assets/Material/Characters/Toon/Hair_Archer_Girl.mat
+++ b/Assets/Material/Characters/Toon/Hair_Archer_Girl.mat
@@ -20,7 +20,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -102,6 +103,7 @@ Material:
     - _RimColor: {r: 4, g: 4, b: 4, a: 1}
     - _SpecularColor: {r: 7.2156863, g: 7.2156863, b: 7.2156863, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &6413572590179603764
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -114,4 +116,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Hair_Mage_Boy.mat b/Assets/Material/Characters/Toon/Hair_Mage_Boy.mat
index 0a72b9dc5d..31eadbf45f 100644
--- a/Assets/Material/Characters/Toon/Hair_Mage_Boy.mat
+++ b/Assets/Material/Characters/Toon/Hair_Mage_Boy.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -33,7 +33,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -115,3 +116,4 @@ Material:
     - _RimColor: {r: 4, g: 4, b: 4, a: 1}
     - _SpecularColor: {r: 7.2156863, g: 7.2156863, b: 7.2156863, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Hair_Mage_Girl.mat b/Assets/Material/Characters/Toon/Hair_Mage_Girl.mat
index 52f0090ee0..1c56f2fe0d 100644
--- a/Assets/Material/Characters/Toon/Hair_Mage_Girl.mat
+++ b/Assets/Material/Characters/Toon/Hair_Mage_Girl.mat
@@ -33,7 +33,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -115,6 +116,7 @@ Material:
     - _RimColor: {r: 4, g: 4, b: 4, a: 1}
     - _SpecularColor: {r: 7.2156863, g: 7.2156863, b: 7.2156863, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8325592805791008449
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -127,4 +129,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Hair_Rogue_Boy.mat b/Assets/Material/Characters/Toon/Hair_Rogue_Boy.mat
index ccbc9a7678..450ee4f587 100644
--- a/Assets/Material/Characters/Toon/Hair_Rogue_Boy.mat
+++ b/Assets/Material/Characters/Toon/Hair_Rogue_Boy.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -33,7 +33,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -115,3 +116,4 @@ Material:
     - _RimColor: {r: 4, g: 4, b: 4, a: 1}
     - _SpecularColor: {r: 7.2156863, g: 7.2156863, b: 7.2156863, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Hair_Rogue_Girl.mat b/Assets/Material/Characters/Toon/Hair_Rogue_Girl.mat
index 8ef73219ff..cb97f1dc67 100644
--- a/Assets/Material/Characters/Toon/Hair_Rogue_Girl.mat
+++ b/Assets/Material/Characters/Toon/Hair_Rogue_Girl.mat
@@ -20,7 +20,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -102,6 +103,7 @@ Material:
     - _RimColor: {r: 4, g: 4, b: 4, a: 1}
     - _SpecularColor: {r: 7.2156863, g: 7.2156863, b: 7.2156863, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8814935330546915290
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -114,4 +116,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Hair_Tank_Boy.mat b/Assets/Material/Characters/Toon/Hair_Tank_Boy.mat
index 66348ca436..a4e133c9c5 100644
--- a/Assets/Material/Characters/Toon/Hair_Tank_Boy.mat
+++ b/Assets/Material/Characters/Toon/Hair_Tank_Boy.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -33,7 +33,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -115,3 +116,4 @@ Material:
     - _RimColor: {r: 4, g: 4, b: 4, a: 1}
     - _SpecularColor: {r: 7.2156863, g: 7.2156863, b: 7.2156863, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Hair_Tank_Girl.mat b/Assets/Material/Characters/Toon/Hair_Tank_Girl.mat
index e924aa3c13..335edfbc07 100644
--- a/Assets/Material/Characters/Toon/Hair_Tank_Girl.mat
+++ b/Assets/Material/Characters/Toon/Hair_Tank_Girl.mat
@@ -20,7 +20,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -102,6 +103,7 @@ Material:
     - _RimColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
     - _SpecularColor: {r: 1.8039216, g: 1.8039216, b: 1.8039216, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &77699869095076743
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -114,4 +116,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Head_Archer_Boy.mat b/Assets/Material/Characters/Toon/Head_Archer_Boy.mat
index 172ae9ca9f..aa81e6cb1d 100644
--- a/Assets/Material/Characters/Toon/Head_Archer_Boy.mat
+++ b/Assets/Material/Characters/Toon/Head_Archer_Boy.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 1.6941177, g: 1.6941177, b: 1.6941177, a: 1}
     - _SpecularColor: {r: 2.0078433, g: 2.0078433, b: 2.0078433, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Head_Archer_Girl.mat b/Assets/Material/Characters/Toon/Head_Archer_Girl.mat
index 746eea7f0c..324250e71c 100644
--- a/Assets/Material/Characters/Toon/Head_Archer_Girl.mat
+++ b/Assets/Material/Characters/Toon/Head_Archer_Girl.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 3.3882349, g: 3.3882349, b: 3.3882349, a: 1}
     - _SpecularColor: {r: 4.0156865, g: 4.0156865, b: 4.0156865, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Head_Boss.mat b/Assets/Material/Characters/Toon/Head_Boss.mat
index e2b7cda78f..bb6c188445 100644
--- a/Assets/Material/Characters/Toon/Head_Boss.mat
+++ b/Assets/Material/Characters/Toon/Head_Boss.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 1.6941177, g: 1.6941177, b: 1.6941177, a: 1}
     - _SpecularColor: {r: 4.0156865, g: 4.0156865, b: 4.0156865, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8635471332786235124
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Head_Imp.mat b/Assets/Material/Characters/Toon/Head_Imp.mat
index 268877f7f9..2f7f123221 100644
--- a/Assets/Material/Characters/Toon/Head_Imp.mat
+++ b/Assets/Material/Characters/Toon/Head_Imp.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 1.6941177, g: 1.6941177, b: 1.6941177, a: 1}
     - _SpecularColor: {r: 4.0156865, g: 4.0156865, b: 4.0156865, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &6003867061829287575
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Head_Imp_Vandal.mat b/Assets/Material/Characters/Toon/Head_Imp_Vandal.mat
index a411522d62..efa297cee3 100644
--- a/Assets/Material/Characters/Toon/Head_Imp_Vandal.mat
+++ b/Assets/Material/Characters/Toon/Head_Imp_Vandal.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 1.6941177, g: 1.6941177, b: 1.6941177, a: 1}
     - _SpecularColor: {r: 4.0156865, g: 4.0156865, b: 4.0156865, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1959664285060799131
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Head_Mage_Boy.mat b/Assets/Material/Characters/Toon/Head_Mage_Boy.mat
index 600dd97203..37d2725c11 100644
--- a/Assets/Material/Characters/Toon/Head_Mage_Boy.mat
+++ b/Assets/Material/Characters/Toon/Head_Mage_Boy.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 6.7764707, g: 6.7764707, b: 6.7764707, a: 1}
     - _SpecularColor: {r: 4.0156865, g: 4.0156865, b: 4.0156865, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Head_Mage_Girl.mat b/Assets/Material/Characters/Toon/Head_Mage_Girl.mat
index 0a4b4c23cd..b8b8371f96 100644
--- a/Assets/Material/Characters/Toon/Head_Mage_Girl.mat
+++ b/Assets/Material/Characters/Toon/Head_Mage_Girl.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 1.6941177, g: 1.6941177, b: 1.6941177, a: 1}
     - _SpecularColor: {r: 2.0078433, g: 2.0078433, b: 2.0078433, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &6432967159316586611
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Head_Rogue_Boy.mat b/Assets/Material/Characters/Toon/Head_Rogue_Boy.mat
index 031833f200..16c76f1d7c 100644
--- a/Assets/Material/Characters/Toon/Head_Rogue_Boy.mat
+++ b/Assets/Material/Characters/Toon/Head_Rogue_Boy.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 3.3882353, g: 3.3882353, b: 3.3882353, a: 1}
     - _SpecularColor: {r: 2.0078433, g: 2.0078433, b: 2.0078433, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7718748373499372406
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Head_Rogue_Girl.mat b/Assets/Material/Characters/Toon/Head_Rogue_Girl.mat
index f9f13a2e19..8a2a579ca3 100644
--- a/Assets/Material/Characters/Toon/Head_Rogue_Girl.mat
+++ b/Assets/Material/Characters/Toon/Head_Rogue_Girl.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 3.3882349, g: 3.3882349, b: 3.3882349, a: 1}
     - _SpecularColor: {r: 2.6806288, g: 2.6806288, b: 2.6806288, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &2368008381429444337
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Head_Tank_Boy.mat b/Assets/Material/Characters/Toon/Head_Tank_Boy.mat
index be00ccd609..22bac70a50 100644
--- a/Assets/Material/Characters/Toon/Head_Tank_Boy.mat
+++ b/Assets/Material/Characters/Toon/Head_Tank_Boy.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 3.3882349, g: 3.3882349, b: 3.3882349, a: 1}
     - _SpecularColor: {r: 2.0078433, g: 2.0078433, b: 2.0078433, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Head_Tank_Girl.mat b/Assets/Material/Characters/Toon/Head_Tank_Girl.mat
index 412065a816..270270ac22 100644
--- a/Assets/Material/Characters/Toon/Head_Tank_Girl.mat
+++ b/Assets/Material/Characters/Toon/Head_Tank_Girl.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 3.3882349, g: 3.3882349, b: 3.3882349, a: 1}
     - _SpecularColor: {r: 2.0078435, g: 2.0078435, b: 2.0078435, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &35863977191553175
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Helmet_Imp.mat b/Assets/Material/Characters/Toon/Helmet_Imp.mat
index 730e6c9ad0..fa9e2eabe7 100644
--- a/Assets/Material/Characters/Toon/Helmet_Imp.mat
+++ b/Assets/Material/Characters/Toon/Helmet_Imp.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 7.999999, g: 7.999999, b: 7.999999, a: 1}
     - _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7096490025815888566
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Torso_Archer.mat b/Assets/Material/Characters/Toon/Torso_Archer.mat
index 32dab09fca..35cdb92ec8 100644
--- a/Assets/Material/Characters/Toon/Torso_Archer.mat
+++ b/Assets/Material/Characters/Toon/Torso_Archer.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
     - _SpecularColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1004630244625014647
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Torso_Boss.mat b/Assets/Material/Characters/Toon/Torso_Boss.mat
index fac62a817c..8b9658fd1d 100644
--- a/Assets/Material/Characters/Toon/Torso_Boss.mat
+++ b/Assets/Material/Characters/Toon/Torso_Boss.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 7.999999, g: 7.999999, b: 7.999999, a: 1}
     - _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Torso_Imp.mat b/Assets/Material/Characters/Toon/Torso_Imp.mat
index 046c9e209a..b702c2f27a 100644
--- a/Assets/Material/Characters/Toon/Torso_Imp.mat
+++ b/Assets/Material/Characters/Toon/Torso_Imp.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
     - _SpecularColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1826122873587557196
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Torso_Imp_Vandal.mat b/Assets/Material/Characters/Toon/Torso_Imp_Vandal.mat
index 42e545e749..d98009ff89 100644
--- a/Assets/Material/Characters/Toon/Torso_Imp_Vandal.mat
+++ b/Assets/Material/Characters/Toon/Torso_Imp_Vandal.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
     - _SpecularColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &3341475901199570861
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Torso_Mage_Boy.mat b/Assets/Material/Characters/Toon/Torso_Mage_Boy.mat
index c1423f628b..647e05a0a8 100644
--- a/Assets/Material/Characters/Toon/Torso_Mage_Boy.mat
+++ b/Assets/Material/Characters/Toon/Torso_Mage_Boy.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
     - _SpecularColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4394423527595315002
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Torso_Mage_Girl.mat b/Assets/Material/Characters/Toon/Torso_Mage_Girl.mat
index 1b30026b19..667e285243 100644
--- a/Assets/Material/Characters/Toon/Torso_Mage_Girl.mat
+++ b/Assets/Material/Characters/Toon/Torso_Mage_Girl.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
     - _SpecularColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Torso_Rogue.mat b/Assets/Material/Characters/Toon/Torso_Rogue.mat
index 0dee3dd948..2482f808f0 100644
--- a/Assets/Material/Characters/Toon/Torso_Rogue.mat
+++ b/Assets/Material/Characters/Toon/Torso_Rogue.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
     - _SpecularColor: {r: 3.9999995, g: 3.9999995, b: 3.9999995, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Torso_Tank.mat b/Assets/Material/Characters/Toon/Torso_Tank.mat
index 67e94c2070..23111e1d8a 100644
--- a/Assets/Material/Characters/Toon/Torso_Tank.mat
+++ b/Assets/Material/Characters/Toon/Torso_Tank.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 4, g: 4, b: 4, a: 1}
     - _SpecularColor: {r: 7.999999, g: 7.790575, b: 7.790575, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4071560837306374100
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Weapons_Archer.mat b/Assets/Material/Characters/Toon/Weapons_Archer.mat
index 0baa623238..fb7efbb825 100644
--- a/Assets/Material/Characters/Toon/Weapons_Archer.mat
+++ b/Assets/Material/Characters/Toon/Weapons_Archer.mat
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,6 +115,7 @@ Material:
     - _RimColor: {r: 8, g: 8, b: 8, a: 1}
     - _SpecularColor: {r: 50.196075, g: 50.196075, b: 50.196075, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1966549124743017704
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -126,4 +128,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Weapons_Imp.mat b/Assets/Material/Characters/Toon/Weapons_Imp.mat
index 43a9bb662c..17ce5b2841 100644
--- a/Assets/Material/Characters/Toon/Weapons_Imp.mat
+++ b/Assets/Material/Characters/Toon/Weapons_Imp.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 8, g: 8, b: 8, a: 1}
     - _SpecularColor: {r: 50.196075, g: 50.196075, b: 50.196075, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Weapons_Mage.mat b/Assets/Material/Characters/Toon/Weapons_Mage.mat
index babd34fb7a..4ef627cdde 100644
--- a/Assets/Material/Characters/Toon/Weapons_Mage.mat
+++ b/Assets/Material/Characters/Toon/Weapons_Mage.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -32,7 +32,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -114,3 +115,4 @@ Material:
     - _RimColor: {r: 8, g: 8, b: 8, a: 1}
     - _SpecularColor: {r: 50.196075, g: 50.196075, b: 50.196075, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Characters/Toon/Weapons_Rogue.mat b/Assets/Material/Characters/Toon/Weapons_Rogue.mat
index feded0ab52..c80cea4eee 100644
--- a/Assets/Material/Characters/Toon/Weapons_Rogue.mat
+++ b/Assets/Material/Characters/Toon/Weapons_Rogue.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 8, g: 8, b: 8, a: 1}
     - _SpecularColor: {r: 50.196075, g: 50.196075, b: 50.196075, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1909332514078085095
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Weapons_Tank.mat b/Assets/Material/Characters/Toon/Weapons_Tank.mat
index cffde3382e..2e5659d320 100644
--- a/Assets/Material/Characters/Toon/Weapons_Tank.mat
+++ b/Assets/Material/Characters/Toon/Weapons_Tank.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 2, g: 2, b: 2, a: 1}
     - _SpecularColor: {r: 12.549019, g: 12.549019, b: 12.549019, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &178387936753523055
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Characters/Toon/Weapons_VandalImp.mat b/Assets/Material/Characters/Toon/Weapons_VandalImp.mat
index 2f73efd007..8ded36e842 100644
--- a/Assets/Material/Characters/Toon/Weapons_VandalImp.mat
+++ b/Assets/Material/Characters/Toon/Weapons_VandalImp.mat
@@ -19,7 +19,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +102,7 @@ Material:
     - _RimColor: {r: 7.999999, g: 4.5919995, b: 4.5919995, a: 1}
     - _SpecularColor: {r: 50.196075, g: 50.196075, b: 50.196075, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8641722697758708521
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -113,4 +115,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Dungeon/M_BossFloor.mat b/Assets/Material/Dungeon/M_BossFloor.mat
index 38885cbd8d..88e8823e56 100644
--- a/Assets/Material/Dungeon/M_BossFloor.mat
+++ b/Assets/Material/Dungeon/M_BossFloor.mat
@@ -21,7 +21,8 @@ Material:
   m_DoubleSidedGI: 1
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -124,6 +125,7 @@ Material:
     - _EmissionColor: {r: 1, g: 0, b: 0, a: 1}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7826408804194725777
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -136,4 +138,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Dungeon/M_Door_01.mat b/Assets/Material/Dungeon/M_Door_01.mat
index a3e5d91d26..2f262ae40a 100644
--- a/Assets/Material/Dungeon/M_Door_01.mat
+++ b/Assets/Material/Dungeon/M_Door_01.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -25,7 +25,8 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -34,6 +35,7 @@ Material:
     RenderType: Opaque
   disabledShaderPasses:
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +103,7 @@ Material:
     m_Ints: []
     m_Floats:
     - _AlphaClip: 0
+    - _AlphaToMask: 0
     - _Blend: 0
     - _BumpScale: 1
     - _CastShadows: 0
@@ -146,3 +149,4 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Dungeon/M_Door_02.mat b/Assets/Material/Dungeon/M_Door_02.mat
index 4c3b755849..d3502512c8 100644
--- a/Assets/Material/Dungeon/M_Door_02.mat
+++ b/Assets/Material/Dungeon/M_Door_02.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -25,7 +25,8 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -34,6 +35,7 @@ Material:
     RenderType: Opaque
   disabledShaderPasses:
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -101,6 +103,7 @@ Material:
     m_Ints: []
     m_Floats:
     - _AlphaClip: 0
+    - _AlphaToMask: 0
     - _Blend: 0
     - _BumpScale: 1
     - _CastShadows: 0
@@ -146,3 +149,4 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999987, g: 0.19999987, b: 0.19999987, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Dungeon/M_DungeonBorder.mat b/Assets/Material/Dungeon/M_DungeonBorder.mat
index efdce6a88c..f235e9c3ac 100644
--- a/Assets/Material/Dungeon/M_DungeonBorder.mat
+++ b/Assets/Material/Dungeon/M_DungeonBorder.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -34,6 +34,7 @@ Material:
     RenderType: Opaque
   disabledShaderPasses:
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -144,3 +145,4 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Dungeon/M_Environment.mat b/Assets/Material/Dungeon/M_Environment.mat
index cee763dd89..49df4bd9fb 100644
--- a/Assets/Material/Dungeon/M_Environment.mat
+++ b/Assets/Material/Dungeon/M_Environment.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -33,7 +33,8 @@ Material:
   m_DoubleSidedGI: 1
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -136,3 +137,4 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Dungeon/M_FloorSwitch.mat b/Assets/Material/Dungeon/M_FloorSwitch.mat
index 085b4f4323..67b0070255 100644
--- a/Assets/Material/Dungeon/M_FloorSwitch.mat
+++ b/Assets/Material/Dungeon/M_FloorSwitch.mat
@@ -12,7 +12,8 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -21,6 +22,7 @@ Material:
     RenderType: Opaque
   disabledShaderPasses:
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -88,6 +90,7 @@ Material:
     m_Ints: []
     m_Floats:
     - _AlphaClip: 0
+    - _AlphaToMask: 0
     - _Blend: 0
     - _BumpScale: 1
     - _CastShadows: 0
@@ -129,6 +132,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &3490827651243550512
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -141,4 +145,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Material/Dungeon/M_Lava.mat b/Assets/Material/Dungeon/M_Lava.mat
index 6c2e35b649..d7f94de326 100644
--- a/Assets/Material/Dungeon/M_Lava.mat
+++ b/Assets/Material/Dungeon/M_Lava.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -25,7 +25,8 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -34,6 +35,7 @@ Material:
     RenderType: Opaque
   disabledShaderPasses:
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -145,3 +147,4 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/Material/Dungeon/M_SpiderWeb.mat b/Assets/Material/Dungeon/M_SpiderWeb.mat
index fbb2a4d763..0685e7e962 100644
--- a/Assets/Material/Dungeon/M_SpiderWeb.mat
+++ b/Assets/Material/Dungeon/M_SpiderWeb.mat
@@ -27,6 +27,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _METALLICGLOSSMAP
   - _NORMALMAP
   m_LightmapFlags: 2
@@ -38,6 +39,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -161,6 +163,7 @@ Material:
     - _RendererColor: {r: 1, g: 1, b: 1, a: 1}
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1321789954030154306
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -173,4 +176,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/Models/Animated.meta b/Assets/Models/Animated.meta
index 5a0c97cbdb..d52e4b928b 100644
--- a/Assets/Models/Animated.meta
+++ b/Assets/Models/Animated.meta
@@ -1,9 +1,5 @@
 fileFormatVersion: 2
-<<<<<<< HEAD:Assets/BossRoom/GameData/Action/Boss.meta
-guid: 3475ba239bdef5c41a29797d5db6bed5
-=======
 guid: d17afa65ef0bdf04aa0887465a3a1005
->>>>>>> origin/develop:Assets/BossRoom/Models/Animated.meta
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}
diff --git a/Assets/Prefabs/Actions/ClientAoeInput.prefab b/Assets/Prefabs/Actions/ClientAoeInput.prefab
index 3befcf157d..94116fba62 100644
--- a/Assets/Prefabs/Actions/ClientAoeInput.prefab
+++ b/Assets/Prefabs/Actions/ClientAoeInput.prefab
@@ -24,14 +24,15 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 2317072454108786653}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 519043390440476}
   - {fileID: 7786310081837396287}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &8447158110562487606
 MonoBehaviour:
@@ -47,6 +48,8 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_InRangeVisualization: {fileID: 4372974839826446078}
   m_OutOfRangeVisualization: {fileID: 3023808054957408081}
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_TargetAction: {fileID: -2762237389118783121, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
 --- !u!1 &3023808054957408081
 GameObject:
   m_ObjectHideFlags: 0
@@ -72,12 +75,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 3023808054957408081}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0.025, z: 0}
   m_LocalScale: {x: 0.125, y: 0.125, z: 0.125}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6459207307567452869}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!33 &2938808106645325272
 MeshFilter:
@@ -98,11 +102,15 @@ MeshRenderer:
   m_CastShadows: 0
   m_ReceiveShadows: 1
   m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
   m_MotionVectors: 1
   m_LightProbeUsage: 1
   m_ReflectionProbeUsage: 1
   m_RayTracingMode: 2
   m_RayTraceProcedural: 0
+  m_RayTracingAccelStructBuildFlagsOverride: 0
+  m_RayTracingAccelStructBuildFlags: 1
+  m_SmallMeshCulling: 1
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -153,12 +161,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 4372974839826446078}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0.025, z: 0}
   m_LocalScale: {x: 0.125, y: 0.125, z: 0.125}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6459207307567452869}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!33 &5292373250812076600
 MeshFilter:
@@ -179,11 +188,15 @@ MeshRenderer:
   m_CastShadows: 0
   m_ReceiveShadows: 1
   m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
   m_MotionVectors: 1
   m_LightProbeUsage: 1
   m_ReflectionProbeUsage: 1
   m_RayTracingMode: 2
   m_RayTraceProcedural: 0
+  m_RayTracingAccelStructBuildFlagsOverride: 0
+  m_RayTracingAccelStructBuildFlags: 1
+  m_SmallMeshCulling: 1
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
diff --git a/Assets/Prefabs/Character/PlayerAvatar.prefab b/Assets/Prefabs/Character/PlayerAvatar.prefab
index 9fd5c32458..ac931f2f00 100644
--- a/Assets/Prefabs/Character/PlayerAvatar.prefab
+++ b/Assets/Prefabs/Character/PlayerAvatar.prefab
@@ -35,7 +35,7 @@ Transform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!95 &1829276847453002016
 Animator:
-  serializedVersion: 5
+  serializedVersion: 7
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
@@ -49,6 +49,7 @@ Animator:
   m_ApplyRootMotion: 0
   m_LinearVelocityBlending: 0
   m_StabilizeFeet: 0
+  m_AnimatePhysics: 0
   m_WarningMessage: 
   m_HasTransformHierarchy: 1
   m_AllowConstantClipSamplingOptimization: 1
@@ -66,6 +67,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 9520a47fc61d5ab4ca99cdac2d574909, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_ClientVisualsAnimator: {fileID: 1829276847453002016}
   m_VisualizationConfiguration: {fileID: 11400000, guid: 9504973cdecd65749889771972fa0117, type: 2}
 --- !u!1001 &7831782662127126385
@@ -248,6 +250,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d99850df10e83c142b4b65527d7cea91, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
 --- !u!114 &3481187672596608374
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -260,6 +263,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: e363085af981a41fd816ab952a0a07c7, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
 --- !u!114 &4354133789489545025
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -272,6 +276,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: a46d628dbb19f12449867d14fa5268b0, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_CachedServerCharacter: {fileID: 741733315856861890}
 --- !u!114 &4781465086743528409
 MonoBehaviour:
@@ -285,7 +290,18 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 331c67f15523ad7419792662b9768f44, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_ServerCharacter: {fileID: 741733315856861890}
+  m_TargetAction: {fileID: -2762237389118783121, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Skill1Action: {fileID: 2701198716142841280, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Action1: {fileID: 916937064669491580, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Action2: {fileID: 2288820758043559878, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Action3: {fileID: 6071755229503605740, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Action5: {fileID: -1289729065238941167, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Action6: {fileID: -1072022056946843674, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Action7: {fileID: 5111210855846757706, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+  m_Action8: {fileID: -5605585424277066684, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_PhysicsWrapper: {fileID: 6116655102486013040}
 --- !u!114 &4887850889182527394
 MonoBehaviour:
@@ -299,6 +315,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: b7ee3f8e8fb4491495b03f890258082e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_CharacterName: 
 --- !u!114 &5043718152237111612
 MonoBehaviour:
@@ -312,6 +329,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: b9cdcc3c2393a2745a733ffa279642ba, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_PlayerAvatars: {fileID: 11400000, guid: 13c227b8a2f5f5f4a8c252835aaf648f, type: 2}
 --- !u!114 &4639653625902786935
 MonoBehaviour:
@@ -325,6 +343,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 99504426d7b854c33811fe398cf44a80, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   TransitionStateInfoList:
   - IsCrossFadeExit: 0
     Layer: 0
@@ -606,6 +625,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 119ee2e9b25694aa9b2f80b9a3d22c6e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_FeedbackPrefab: {fileID: 9137928905311479176, guid: 5d22c1d86e0e5604cbe14004bf924827, type: 3}
 --- !u!114 &2576537793715222015
 MonoBehaviour:
@@ -619,6 +639,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: cead4253912fb1241be383143c5f3b59, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_DisplayHealth: 1
   m_DisplayName: 1
   m_UIStatePrefab: {fileID: -1943162842029199943, guid: 2b07482491a17964380023240087ce16, type: 3}
@@ -630,7 +651,7 @@ MonoBehaviour:
   m_VerticalScreenOffset: 20
 --- !u!95 &4727018541459492655
 Animator:
-  serializedVersion: 5
+  serializedVersion: 7
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
@@ -644,6 +665,7 @@ Animator:
   m_ApplyRootMotion: 0
   m_LinearVelocityBlending: 0
   m_StabilizeFeet: 0
+  m_AnimatePhysics: 0
   m_WarningMessage: 
   m_HasTransformHierarchy: 1
   m_AllowConstantClipSamplingOptimization: 1
diff --git a/Assets/Prefabs/DebugCheatsManager.prefab b/Assets/Prefabs/DebugCheatsManager.prefab
index 636a7db81c..9f6a2cda68 100644
--- a/Assets/Prefabs/DebugCheatsManager.prefab
+++ b/Assets/Prefabs/DebugCheatsManager.prefab
@@ -45,13 +45,19 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GlobalObjectIdHash: 951099334
+  GlobalObjectIdHash: 3439787871
+  InScenePlacedSourceGlobalObjectIdHash: 0
+  DeferredDespawnTick: 0
+  Ownership: 0
   AlwaysReplicateAsRoot: 0
   SynchronizeTransform: 0
   ActiveSceneSynchronization: 0
   SceneMigrationSynchronization: 1
+  SpawnWithObservers: 1
   DontDestroyWithOwner: 0
   AutoObjectParentSync: 1
+  SyncOwnerTransformWhenParented: 1
+  AllowOwnerToParent: 0
 --- !u!114 &7241368247586282332
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -64,7 +70,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: ab1e76745edfc434ab8154ad27efc5fd, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_DebugCheatsPanel: {fileID: 0}
   m_EnemyPrefab: {fileID: 3713729372785093435, guid: 6cdd52f1fa2ed34469a487ae6477eded, type: 3}
   m_BossPrefab: {fileID: 3688950541947916326, guid: 365e94337fd10fe4ebde1906df413ac7, type: 3}
-  m_OpenWindowKeyCode: 47
+  m_ToggleCheatsAction: {fileID: -3765159069520908634, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
diff --git a/Assets/Prefabs/Game/BreakablePillar.prefab b/Assets/Prefabs/Game/BreakablePillar.prefab
index 7aee6489b7..c6b52761e1 100644
--- a/Assets/Prefabs/Game/BreakablePillar.prefab
+++ b/Assets/Prefabs/Game/BreakablePillar.prefab
@@ -13,6 +13,7 @@ GameObject:
   - component: {fileID: -8903857516321632127}
   - component: {fileID: 1460791283510277443}
   - component: {fileID: 6825752226794478105}
+  - component: {fileID: 3685607156052711833}
   m_Layer: 6
   m_Name: BreakablePillar
   m_TagString: Untagged
@@ -27,6 +28,7 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 884761565141663561}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
@@ -34,7 +36,6 @@ Transform:
   m_Children:
   - {fileID: 5054035021295717131}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &-8668463530818694599
 MonoBehaviour:
@@ -48,10 +49,19 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GlobalObjectIdHash: 951099334
+  GlobalObjectIdHash: 2025222722
+  InScenePlacedSourceGlobalObjectIdHash: 0
+  DeferredDespawnTick: 0
+  Ownership: 1
   AlwaysReplicateAsRoot: 0
+  SynchronizeTransform: 1
+  ActiveSceneSynchronization: 0
+  SceneMigrationSynchronization: 1
+  SpawnWithObservers: 1
   DontDestroyWithOwner: 0
   AutoObjectParentSync: 1
+  SyncOwnerTransformWhenParented: 1
+  AllowOwnerToParent: 0
 --- !u!114 &-8903857516321632127
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -64,8 +74,9 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: eb44a31731a459546bdf01f1af48173c, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_MaxHealth: {fileID: 0}
-  m_NetworkHealthState: {fileID: 0}
+  ShowTopMostFoldoutHeaderGroup: 1
+  m_MaxHealth: {fileID: 11400000, guid: 8e56e91693df2421190b5c79ce9630a6, type: 2}
+  m_NetworkHealthState: {fileID: 3685607156052711833}
   m_Collider: {fileID: 1460791283510277443}
   m_SpecialDamageFlags: 6
   m_BrokenPrefab: {fileID: 6418514439632820891, guid: 78436b90c00aaab49b4d522550dd9250, type: 3}
@@ -73,8 +84,6 @@ MonoBehaviour:
   m_BrokenPrefabPos: {fileID: 4505851899529102149}
   m_UnbrokenGameObjects:
   - {fileID: 3658718798844854089}
-  IsBroken:
-    m_InternalValue: 0
 --- !u!65 &1460791283510277443
 BoxCollider:
   m_ObjectHideFlags: 0
@@ -83,9 +92,17 @@ BoxCollider:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 884761565141663561}
   m_Material: {fileID: 0}
+  m_IncludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ExcludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_LayerOverridePriority: 0
   m_IsTrigger: 0
+  m_ProvidesContacts: 0
   m_Enabled: 1
-  serializedVersion: 2
+  serializedVersion: 3
   m_Size: {x: 3.54, y: 8.287147, z: 3.8}
   m_Center: {x: 1.18, y: 4.1465364, z: 2}
 --- !u!54 &6825752226794478105
@@ -95,20 +112,47 @@ Rigidbody:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 884761565141663561}
-  serializedVersion: 2
+  serializedVersion: 4
   m_Mass: 1
   m_Drag: 0
   m_AngularDrag: 0.05
+  m_CenterOfMass: {x: 0, y: 0, z: 0}
+  m_InertiaTensor: {x: 1, y: 1, z: 1}
+  m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_IncludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ExcludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ImplicitCom: 1
+  m_ImplicitTensor: 1
   m_UseGravity: 1
   m_IsKinematic: 0
   m_Interpolate: 0
   m_Constraints: 126
   m_CollisionDetection: 0
+--- !u!114 &3685607156052711833
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 884761565141663561}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 6733907396f36c44891916e5c62f25a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
+  HitPoints:
+    m_InternalValue: 0
 --- !u!1001 &2926384259182416435
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
+    serializedVersion: 3
     m_TransformParent: {fileID: 4505851899529102149}
     m_Modifications:
     - target: {fileID: 1899106884463111546, guid: db56f0a4295d95540b4d07fcd18c49e9, type: 3}
@@ -160,12 +204,15 @@ PrefabInstance:
       value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 8184890942973508939, guid: db56f0a4295d95540b4d07fcd18c49e9, type: 3}
-      propertyPath: m_Materials.Array.data[0]
+      propertyPath: 'm_Materials.Array.data[0]'
       value: 
       objectReference: {fileID: 2100000, guid: 08a6ed3e19879c844a1bb6d8f07e2653, type: 2}
     m_RemovedComponents:
     - {fileID: 0}
     - {fileID: 0}
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: db56f0a4295d95540b4d07fcd18c49e9, type: 3}
 --- !u!1 &3658718798844854089 stripped
 GameObject:
diff --git a/Assets/Prefabs/Game/BreakablePot.prefab b/Assets/Prefabs/Game/BreakablePot.prefab
index 0abf296629..75a0b47572 100644
--- a/Assets/Prefabs/Game/BreakablePot.prefab
+++ b/Assets/Prefabs/Game/BreakablePot.prefab
@@ -12,6 +12,7 @@ GameObject:
   - component: {fileID: -8668463530818694599}
   - component: {fileID: -8903857516321632127}
   - component: {fileID: 8991873088713291135}
+  - component: {fileID: 5185361255833847072}
   m_Layer: 6
   m_Name: BreakablePot
   m_TagString: Untagged
@@ -26,6 +27,7 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 884761565141663561}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
@@ -33,7 +35,6 @@ Transform:
   m_Children:
   - {fileID: 1927651668276376163}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &-8668463530818694599
 MonoBehaviour:
@@ -47,10 +48,19 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GlobalObjectIdHash: 951099334
+  GlobalObjectIdHash: 2007482658
+  InScenePlacedSourceGlobalObjectIdHash: 0
+  DeferredDespawnTick: 0
+  Ownership: 0
   AlwaysReplicateAsRoot: 0
+  SynchronizeTransform: 1
+  ActiveSceneSynchronization: 0
+  SceneMigrationSynchronization: 1
+  SpawnWithObservers: 1
   DontDestroyWithOwner: 0
   AutoObjectParentSync: 1
+  SyncOwnerTransformWhenParented: 1
+  AllowOwnerToParent: 0
 --- !u!114 &-8903857516321632127
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -63,8 +73,9 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: eb44a31731a459546bdf01f1af48173c, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_MaxHealth: {fileID: 0}
-  m_NetworkHealthState: {fileID: 0}
+  ShowTopMostFoldoutHeaderGroup: 1
+  m_MaxHealth: {fileID: 11400000, guid: 0ea073444920f455e9b4769e970d81d8, type: 2}
+  m_NetworkHealthState: {fileID: 5185361255833847072}
   m_Collider: {fileID: 8991873088713291135}
   m_SpecialDamageFlags: 0
   m_BrokenPrefab: {fileID: 1001931975397017578, guid: 03e282e700b05664daab32d4e7965212, type: 3}
@@ -72,8 +83,6 @@ MonoBehaviour:
   m_BrokenPrefabPos: {fileID: 1927651668276376163}
   m_UnbrokenGameObjects:
   - {fileID: 598843305552521647}
-  IsBroken:
-    m_InternalValue: 0
 --- !u!136 &8991873088713291135
 CapsuleCollider:
   m_ObjectHideFlags: 0
@@ -82,17 +91,42 @@ CapsuleCollider:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 884761565141663561}
   m_Material: {fileID: 0}
+  m_IncludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ExcludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_LayerOverridePriority: 0
   m_IsTrigger: 1
+  m_ProvidesContacts: 0
   m_Enabled: 1
+  serializedVersion: 2
   m_Radius: 1
   m_Height: 2
   m_Direction: 1
   m_Center: {x: 0, y: 1, z: 0}
+--- !u!114 &5185361255833847072
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 884761565141663561}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 6733907396f36c44891916e5c62f25a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
+  HitPoints:
+    m_InternalValue: 0
 --- !u!1001 &3811502052812393529
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
+    serializedVersion: 3
     m_TransformParent: {fileID: 4505851899529102149}
     m_Modifications:
     - target: {fileID: -2116509465241817417, guid: e5e46d03def7870439c2e42d5601394c, type: 3}
@@ -153,6 +187,9 @@ PrefabInstance:
       objectReference: {fileID: 0}
     m_RemovedComponents:
     - {fileID: -2116509465241817417, guid: e5e46d03def7870439c2e42d5601394c, type: 3}
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: e5e46d03def7870439c2e42d5601394c, type: 3}
 --- !u!1 &598843305552521647 stripped
 GameObject:
diff --git a/Assets/Prefabs/Game/EnemySpawner.prefab b/Assets/Prefabs/Game/EnemySpawner.prefab
index 0e18d957f9..a37b84602f 100644
--- a/Assets/Prefabs/Game/EnemySpawner.prefab
+++ b/Assets/Prefabs/Game/EnemySpawner.prefab
@@ -23,13 +23,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 155104353979914249}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: -0.126, y: 0, z: 3.961}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 6
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &572801228535962899
 GameObject:
@@ -54,13 +54,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 572801228535962899}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: 0.721057, y: 0, z: 3.167}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &1898120149362029613
 GameObject:
@@ -85,13 +85,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1898120149362029613}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: -0.87499994, y: 0, z: 1.73}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 8
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &2091269911110589480
 GameObject:
@@ -116,13 +116,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 2091269911110589480}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: 0.721057, y: 0, z: 1.73}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &2959670893143433028
 GameObject:
@@ -147,13 +147,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 2959670893143433028}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: -0.126, y: 0, z: 2.298}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 7
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &3496698763770893301
 GameObject:
@@ -178,13 +178,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 3496698763770893301}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: -1.722057, y: 0, z: 2.298}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 12
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &3529278057740772152
 GameObject:
@@ -209,13 +209,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 3529278057740772152}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: 0.72, y: 0, z: 4.495}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &5320772107039249662
 GameObject:
@@ -243,13 +243,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 5320772107039249662}
+  serializedVersion: 2
   m_LocalRotation: {x: 0.101853095, y: 0.6945488, z: -0.09773653, w: 0.7054613}
   m_LocalPosition: {x: -3.04, y: 4.15, z: 3.38}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 16.229, y: 89.137, z: 0.214}
 --- !u!108 &8359276894067931483
 Light:
@@ -259,9 +259,8 @@ Light:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 5320772107039249662}
   m_Enabled: 1
-  serializedVersion: 10
+  serializedVersion: 11
   m_Type: 0
-  m_Shape: 0
   m_Color: {r: 1, g: 0.38823533, b: 0.6023529, a: 1}
   m_Intensity: 226.45
   m_Range: 22.1
@@ -311,8 +310,12 @@ Light:
   m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
   m_UseBoundingSphereOverride: 0
   m_UseViewFrustumForShadowCasterCull: 1
+  m_ForceVisible: 0
   m_ShadowRadius: 0
   m_ShadowAngle: 0
+  m_LightUnit: 1
+  m_LuxAtDistance: 1
+  m_EnableSpotReflector: 1
 --- !u!114 &994603640378809307
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -341,14 +344,17 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_Version: 1
+  m_Version: 3
   m_UsePipelineSettings: 1
   m_AdditionalLightsShadowResolutionTier: 2
   m_LightLayerMask: 1
+  m_RenderingLayers: 1
   m_CustomShadowLayers: 0
   m_ShadowLayerMask: 1
+  m_ShadowRenderingLayers: 1
   m_LightCookieSize: {x: 1, y: 1}
   m_LightCookieOffset: {x: 0, y: 0}
+  m_SoftShadowQuality: 1
 --- !u!1 &6205854018081152875
 GameObject:
   m_ObjectHideFlags: 0
@@ -362,6 +368,7 @@ GameObject:
   - component: {fileID: 4844841199312666291}
   - component: {fileID: 4501025776099328933}
   - component: {fileID: 5343699662503375493}
+  - component: {fileID: 6564491022050697330}
   m_Layer: 6
   m_Name: EnemySpawner
   m_TagString: Untagged
@@ -376,6 +383,7 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 6205854018081152875}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
@@ -395,7 +403,6 @@ Transform:
   - {fileID: 3127061543440710862}
   - {fileID: 5949595974590154644}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &-1287160331463954971
 MonoBehaviour:
@@ -409,10 +416,19 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GlobalObjectIdHash: 951099334
+  GlobalObjectIdHash: 3580920066
+  InScenePlacedSourceGlobalObjectIdHash: 0
+  DeferredDespawnTick: 0
+  Ownership: 1
   AlwaysReplicateAsRoot: 0
+  SynchronizeTransform: 1
+  ActiveSceneSynchronization: 0
+  SceneMigrationSynchronization: 1
+  SpawnWithObservers: 1
   DontDestroyWithOwner: 0
   AutoObjectParentSync: 1
+  SyncOwnerTransformWhenParented: 1
+  AllowOwnerToParent: 0
 --- !u!114 &4844841199312666291
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -425,6 +441,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 49b962917cae99f48a2a598485996b8d, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_NetworkedPrefab: {fileID: 3713729372785093435, guid: 6cdd52f1fa2ed34469a487ae6477eded, type: 3}
   m_SpawnPositions:
   - {fileID: 1718014208199866548}
@@ -464,9 +481,10 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 9a7ed35fc071575449a96ece1cc1ae16, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
   m_BreakableElements: []
   m_DormantCooldown: 180
-  m_Breakable: {fileID: 5343699662503375493}
+  m_PortalBreakable: {fileID: 5343699662503375493}
   m_WaveSpawner: {fileID: 4844841199312666291}
 --- !u!114 &5343699662503375493
 MonoBehaviour:
@@ -480,8 +498,9 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: eb44a31731a459546bdf01f1af48173c, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_MaxHealth: {fileID: 0}
-  m_NetworkHealthState: {fileID: 0}
+  ShowTopMostFoldoutHeaderGroup: 1
+  m_MaxHealth: {fileID: 11400000, guid: 0ea073444920f455e9b4769e970d81d8, type: 2}
+  m_NetworkHealthState: {fileID: 6564491022050697330}
   m_Collider: {fileID: 0}
   m_SpecialDamageFlags: 0
   m_BrokenPrefab: {fileID: 0}
@@ -491,7 +510,20 @@ MonoBehaviour:
   - {fileID: 6584753279329625147}
   - {fileID: 3587901247331972367}
   - {fileID: 5320772107039249662}
-  IsBroken:
+--- !u!114 &6564491022050697330
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6205854018081152875}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 6733907396f36c44891916e5c62f25a0, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  ShowTopMostFoldoutHeaderGroup: 1
+  HitPoints:
     m_InternalValue: 0
 --- !u!1 &6584753279329625147
 GameObject:
@@ -518,13 +550,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 6584753279329625147}
+  serializedVersion: 2
   m_LocalRotation: {x: 0.0000000032984317, y: -0.7071068, z: 0.00000006991402, w: 0.7071067}
   m_LocalPosition: {x: -0.49, y: 1.8907726, z: 3.22}
   m_LocalScale: {x: 5.4186263, y: 7.5308495, z: 7.5308475}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0}
 --- !u!33 &3943268755573492112
 MeshFilter:
@@ -551,6 +583,9 @@ MeshRenderer:
   m_ReflectionProbeUsage: 1
   m_RayTracingMode: 2
   m_RayTraceProcedural: 0
+  m_RayTracingAccelStructBuildFlagsOverride: 0
+  m_RayTracingAccelStructBuildFlags: 1
+  m_SmallMeshCulling: 1
   m_RenderingLayerMask: 1
   m_RendererPriority: 0
   m_Materials:
@@ -599,13 +634,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 6585344981094142531}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: -0.875, y: 0, z: 3.167}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 9
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &8845616318696809149
 GameObject:
@@ -630,13 +665,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 8845616318696809149}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: -0.8760569, y: 0, z: 4.495}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 10
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1 &9017715703642230324
 GameObject:
@@ -661,19 +696,20 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 9017715703642230324}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068}
   m_LocalPosition: {x: -1.722057, y: 0, z: 3.961}
   m_LocalScale: {x: 1.3539857, y: 1.1857388, z: 1.2418212}
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 8727022540156222958}
-  m_RootOrder: 11
   m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0}
 --- !u!1001 &5856319002020040530
 PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
+    serializedVersion: 3
     m_TransformParent: {fileID: 8727022540156222958}
     m_Modifications:
     - target: {fileID: 6957808770263120477, guid: 4346e17a9c5d6ac4e88839800601d7ff, type: 3}
@@ -737,6 +773,9 @@ PrefabInstance:
       value: 0
       objectReference: {fileID: 0}
     m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 4346e17a9c5d6ac4e88839800601d7ff, type: 3}
 --- !u!1 &3587901247331972367 stripped
 GameObject:
diff --git a/Assets/Prefabs/GameCam/CMCameraPrefab.prefab b/Assets/Prefabs/GameCam/CMCameraPrefab.prefab
index c8dcf3875a..f311a615f2 100644
--- a/Assets/Prefabs/GameCam/CMCameraPrefab.prefab
+++ b/Assets/Prefabs/GameCam/CMCameraPrefab.prefab
@@ -1,79 +1,5 @@
 %YAML 1.1
 %TAG !u! tag:unity3d.com,2011:
---- !u!1 &1676734515771252290
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1676734515771252668}
-  - component: {fileID: 1676734515771252291}
-  m_Layer: 0
-  m_Name: MiddleRig
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &1676734515771252668
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734515771252290}
-  m_LocalRotation: {x: 0.3943448, y: 0.31044647, z: -0.14352979, w: 0.85294455}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children:
-  - {fileID: 1676734516866984547}
-  m_Father: {fileID: 1676734517288307197}
-  m_RootOrder: 1
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1676734515771252291
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734515771252290}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_ExcludedPropertiesInInspector:
-  - m_Script
-  - Header
-  - Extensions
-  - m_Priority
-  - m_Transitions
-  - m_Follow
-  - m_StandbyUpdate
-  - m_Lens
-  m_LockStageInInspector: 00000000
-  m_StreamingVersion: 20170927
-  m_Priority: 10
-  m_StandbyUpdate: 2
-  m_LookAt: {fileID: 0}
-  m_Follow: {fileID: 0}
-  m_Lens:
-    FieldOfView: 40
-    OrthographicSize: 10
-    NearClipPlane: 0.1
-    FarClipPlane: 5000
-    Dutch: 0
-    LensShift: {x: 0, y: 0}
-  m_Transitions:
-    m_BlendHint: 0
-    m_InheritPosition: 0
-    m_OnCameraLive:
-      m_PersistentCalls:
-        m_Calls: []
-  m_LegacyBlendHint: 0
-  m_ComponentOwner: {fileID: 1676734516866984547}
 --- !u!1 &1676734516302391371
 GameObject:
   m_ObjectHideFlags: 0
@@ -98,12 +24,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1676734516302391371}
+  serializedVersion: 2
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 2.45, y: 0, z: 0.48}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2966953081568086693}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!114 &1676734516302391364
 MonoBehaviour:
@@ -117,284 +44,11 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: e5eb80d8e62d9d145bb50fb783c0f731, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_PositionMode: 0
-  m_RotationMode: 0
-  m_UpdateMethod: 2
-  m_Targets: []
---- !u!1 &1676734516695783277
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1676734516695783279}
-  - component: {fileID: 1676734516695783278}
-  m_Layer: 0
-  m_Name: TopRig
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &1676734516695783279
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516695783277}
-  m_LocalRotation: {x: 0.3985757, y: 0.3097298, z: -0.14506967, w: 0.8509757}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children:
-  - {fileID: 1676734517587239784}
-  m_Father: {fileID: 1676734517288307197}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1676734516695783278
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516695783277}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_ExcludedPropertiesInInspector:
-  - m_Script
-  - Header
-  - Extensions
-  - m_Priority
-  - m_Transitions
-  - m_Follow
-  - m_StandbyUpdate
-  - m_Lens
-  m_LockStageInInspector: 00000000
-  m_StreamingVersion: 20170927
-  m_Priority: 10
-  m_StandbyUpdate: 2
-  m_LookAt: {fileID: 0}
-  m_Follow: {fileID: 0}
-  m_Lens:
-    FieldOfView: 40
-    OrthographicSize: 10
-    NearClipPlane: 0.1
-    FarClipPlane: 5000
-    Dutch: 0
-    LensShift: {x: 0, y: 0}
-  m_Transitions:
-    m_BlendHint: 0
-    m_InheritPosition: 0
-    m_OnCameraLive:
-      m_PersistentCalls:
-        m_Calls: []
-  m_LegacyBlendHint: 0
-  m_ComponentOwner: {fileID: 1676734517587239784}
---- !u!1 &1676734516724634597
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1676734516724634599}
-  - component: {fileID: 1676734516724634598}
-  m_Layer: 0
-  m_Name: BottomRig
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &1676734516724634599
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516724634597}
-  m_LocalRotation: {x: 0.38943532, y: 0.31126636, z: -0.14174287, w: 0.85519725}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children:
-  - {fileID: 1676734517611811567}
-  m_Father: {fileID: 1676734517288307197}
-  m_RootOrder: 2
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1676734516724634598
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516724634597}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_ExcludedPropertiesInInspector:
-  - m_Script
-  - Header
-  - Extensions
-  - m_Priority
-  - m_Transitions
-  - m_Follow
-  - m_StandbyUpdate
-  - m_Lens
-  m_LockStageInInspector: 00000000
-  m_StreamingVersion: 20170927
-  m_Priority: 10
-  m_StandbyUpdate: 2
-  m_LookAt: {fileID: 0}
-  m_Follow: {fileID: 0}
-  m_Lens:
-    FieldOfView: 40
-    OrthographicSize: 10
-    NearClipPlane: 0.1
-    FarClipPlane: 5000
-    Dutch: 0
-    LensShift: {x: 0, y: 0}
-  m_Transitions:
-    m_BlendHint: 0
-    m_InheritPosition: 0
-    m_OnCameraLive:
-      m_PersistentCalls:
-        m_Calls: []
-  m_LegacyBlendHint: 0
-  m_ComponentOwner: {fileID: 1676734517611811567}
---- !u!1 &1676734516866984546
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1676734516866984547}
-  - component: {fileID: 1676734516866984542}
-  - component: {fileID: 1676734516866984541}
-  - component: {fileID: 1676734516866984540}
-  m_Layer: 0
-  m_Name: cm
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &1676734516866984547
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516866984546}
-  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 1676734515771252668}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1676734516866984542
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516866984546}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
---- !u!114 &1676734516866984541
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516866984546}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 9384ab8608cdc3d479fe89cd51eed48f, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_BindingMode: 4
-  m_FollowOffset: {x: 0, y: 20, z: -15}
-  m_XDamping: 1
-  m_YDamping: 1
-  m_ZDamping: 1
-  m_AngularDampingMode: 0
-  m_PitchDamping: 0
-  m_YawDamping: 0
-  m_RollDamping: 0
-  m_AngularDamping: 0
-  m_Heading:
-    m_Definition: 2
-    m_VelocityFilterStrength: 4
-    m_Bias: 40
-  m_RecenterToTargetHeading:
-    m_enabled: 0
-    m_WaitTime: 1
-    m_RecenteringTime: 2
-    m_LegacyHeadingDefinition: -1
-    m_LegacyVelocityFilterStrength: -1
-  m_XAxis:
-    Value: 0
-    m_SpeedMode: 0
-    m_MaxSpeed: 300
-    m_AccelTime: 0.1
-    m_DecelTime: 0.1
-    m_InputAxisName: 
-    m_InputAxisValue: 0
-    m_InvertInput: 1
-    m_MinValue: -180
-    m_MaxValue: 180
-    m_Wrap: 1
-    m_Recentering:
-      m_enabled: 0
-      m_WaitTime: 1
-      m_RecenteringTime: 2
-      m_LegacyHeadingDefinition: -1
-      m_LegacyVelocityFilterStrength: -1
-  m_LegacyRadius: 3.4028235e+38
-  m_LegacyHeightOffset: 3.4028235e+38
-  m_LegacyHeadingBias: 3.4028235e+38
-  m_HeadingIsSlave: 1
---- !u!114 &1676734516866984540
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734516866984546}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_TrackedObjectOffset: {x: 0, y: 1, z: 0}
-  m_LookaheadTime: 0
-  m_LookaheadSmoothing: 0
-  m_LookaheadIgnoreY: 0
-  m_HorizontalDamping: 0
-  m_VerticalDamping: 0
-  m_ScreenX: 0.5
-  m_ScreenY: 0.55
-  m_DeadZoneWidth: 0
-  m_DeadZoneHeight: 0
-  m_SoftZoneWidth: 0.8
-  m_SoftZoneHeight: 0.8
-  m_BiasX: 0
-  m_BiasY: 0
-  m_CenterOnActivate: 1
+  PositionMode: 0
+  RotationMode: 0
+  UpdateMethod: 0
+  Targets: []
+  m_LegacyTargets: []
 --- !u!1 &1676734517288307075
 GameObject:
   m_ObjectHideFlags: 0
@@ -404,10 +58,14 @@ GameObject:
   serializedVersion: 6
   m_Component:
   - component: {fileID: 1676734517288307197}
-  - component: {fileID: 1676734517288307196}
+  - component: {fileID: 114669375565425622}
+  - component: {fileID: 2134312450369994339}
+  - component: {fileID: 7526749824992581565}
+  - component: {fileID: 9199614428061556971}
+  - component: {fileID: 2979079838363680315}
   m_Layer: 0
   m_Name: CMFreeLook
-  m_TagString: Untagged
+  m_TagString: CMCamera
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
@@ -419,17 +77,15 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1676734517288307075}
-  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -7.1918144, y: 20, z: -11.010667}
+  serializedVersion: 2
+  m_LocalRotation: {x: 0.39434484, y: 0.3104464, z: -0.14352977, w: 0.85294455}
+  m_LocalPosition: {x: -9.641814, y: 20, z: -11.490666}
   m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children:
-  - {fileID: 1676734516695783279}
-  - {fileID: 1676734515771252668}
-  - {fileID: 1676734516724634599}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
   m_Father: {fileID: 2966953081568086693}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1676734517288307196
+--- !u!114 &114669375565425622
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
@@ -438,350 +94,223 @@ MonoBehaviour:
   m_GameObject: {fileID: 1676734517288307075}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 319d2fe34a804e245819465c9505ea59, type: 3}
+  m_Script: {fileID: 11500000, guid: f9dfa5b682dcd46bda6128250e975f58, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_ExcludedPropertiesInInspector:
-  - m_Script
-  m_LockStageInInspector: 
-  m_StreamingVersion: 20170927
-  m_Priority: 10
-  m_StandbyUpdate: 2
-  m_LookAt: {fileID: 1676734516302391365}
-  m_Follow: {fileID: 1676734516302391365}
-  m_CommonLens: 1
-  m_Lens:
+  Priority:
+    Enabled: 1
+    m_Value: 10
+  OutputChannel: 1
+  StandbyUpdate: 2
+  m_StreamingVersion: 20241001
+  m_LegacyPriority: 0
+  Target:
+    TrackingTarget: {fileID: 1676734516302391365}
+    LookAtTarget: {fileID: 1676734516302391365}
+    CustomLookAtTarget: 0
+  Lens:
     FieldOfView: 40
     OrthographicSize: 10
     NearClipPlane: 0.1
     FarClipPlane: 5000
     Dutch: 0
-    LensShift: {x: 0, y: 0}
-  m_Transitions:
-    m_BlendHint: 0
-    m_InheritPosition: 0
-    m_OnCameraLive:
-      m_PersistentCalls:
-        m_Calls: []
-  m_LegacyBlendHint: 0
-  m_YAxis:
-    Value: 0.5
-    m_SpeedMode: 1
-    m_MaxSpeed: 5
-    m_AccelTime: 2
-    m_DecelTime: 2
-    m_InputAxisName: Mouse ScrollWheel
-    m_InputAxisValue: 0
-    m_InvertInput: 1
-    m_MinValue: 0
-    m_MaxValue: 1
-    m_Wrap: 0
-    m_Recentering:
-      m_enabled: 0
-      m_WaitTime: 1
-      m_RecenteringTime: 2
-      m_LegacyHeadingDefinition: -1
-      m_LegacyVelocityFilterStrength: -1
-  m_YAxisRecentering:
-    m_enabled: 0
-    m_WaitTime: 1
-    m_RecenteringTime: 2
-    m_LegacyHeadingDefinition: -1
-    m_LegacyVelocityFilterStrength: -1
-  m_XAxis:
-    Value: 0
-    m_SpeedMode: 0
-    m_MaxSpeed: 300
-    m_AccelTime: 0.1
-    m_DecelTime: 0.1
-    m_InputAxisName: 
-    m_InputAxisValue: 0
-    m_InvertInput: 1
-    m_MinValue: -180
-    m_MaxValue: 180
-    m_Wrap: 1
-    m_Recentering:
-      m_enabled: 0
-      m_WaitTime: 1
-      m_RecenteringTime: 2
-      m_LegacyHeadingDefinition: -1
-      m_LegacyVelocityFilterStrength: -1
-  m_Heading:
-    m_Definition: 2
-    m_VelocityFilterStrength: 4
-    m_Bias: 40
-  m_RecenterToTargetHeading:
-    m_enabled: 0
-    m_WaitTime: 1
-    m_RecenteringTime: 2
-    m_LegacyHeadingDefinition: -1
-    m_LegacyVelocityFilterStrength: -1
-  m_BindingMode: 4
-  m_SplineCurvature: 0.2
-  m_Orbits:
-  - m_Height: 35
-    m_Radius: 15
-  - m_Height: 20
-    m_Radius: 15
-  - m_Height: 5
-    m_Radius: 8
-  m_LegacyHeadingBias: 3.4028235e+38
-  m_Rigs:
-  - {fileID: 1676734516695783278}
-  - {fileID: 1676734515771252291}
-  - {fileID: 1676734516724634598}
---- !u!1 &1676734517587239791
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1676734517587239784}
-  - component: {fileID: 1676734517587239787}
-  - component: {fileID: 1676734517587239786}
-  - component: {fileID: 1676734517587239785}
-  m_Layer: 0
-  m_Name: cm
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &1676734517587239784
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517587239791}
-  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 1676734516695783279}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1676734517587239787
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517587239791}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
---- !u!114 &1676734517587239786
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517587239791}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 9384ab8608cdc3d479fe89cd51eed48f, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_BindingMode: 4
-  m_FollowOffset: {x: 0, y: 20, z: -15}
-  m_XDamping: 1
-  m_YDamping: 1
-  m_ZDamping: 1
-  m_AngularDampingMode: 0
-  m_PitchDamping: 0
-  m_YawDamping: 0
-  m_RollDamping: 0
-  m_AngularDamping: 0
-  m_Heading:
-    m_Definition: 2
-    m_VelocityFilterStrength: 4
-    m_Bias: 40
-  m_RecenterToTargetHeading:
-    m_enabled: 0
-    m_WaitTime: 1
-    m_RecenteringTime: 2
-    m_LegacyHeadingDefinition: -1
-    m_LegacyVelocityFilterStrength: -1
-  m_XAxis:
-    Value: 0
-    m_SpeedMode: 0
-    m_MaxSpeed: 300
-    m_AccelTime: 0.1
-    m_DecelTime: 0.1
-    m_InputAxisName: 
-    m_InputAxisValue: 0
-    m_InvertInput: 1
-    m_MinValue: -180
-    m_MaxValue: 180
-    m_Wrap: 1
-    m_Recentering:
-      m_enabled: 0
-      m_WaitTime: 1
-      m_RecenteringTime: 2
-      m_LegacyHeadingDefinition: -1
-      m_LegacyVelocityFilterStrength: -1
-  m_LegacyRadius: 3.4028235e+38
-  m_LegacyHeightOffset: 3.4028235e+38
-  m_LegacyHeadingBias: 3.4028235e+38
-  m_HeadingIsSlave: 1
---- !u!114 &1676734517587239785
+    ModeOverride: 0
+    PhysicalProperties:
+      GateFit: 2
+      SensorSize: {x: 21.946, y: 16.002}
+      LensShift: {x: 0, y: 0}
+      FocusDistance: 10
+      Iso: 200
+      ShutterSpeed: 0.005
+      Aperture: 16
+      BladeCount: 5
+      Curvature: {x: 2, y: 11}
+      BarrelClipping: 0.25
+      Anamorphism: 0
+  BlendHint: 0
+--- !u!114 &2134312450369994339
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517587239791}
+  m_GameObject: {fileID: 1676734517288307075}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3}
+  m_Script: {fileID: 11500000, guid: 3b5d7c088409d9a40b7b09aa707777f8, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_TrackedObjectOffset: {x: 0, y: 2, z: 0}
-  m_LookaheadTime: 0
-  m_LookaheadSmoothing: 0
-  m_LookaheadIgnoreY: 0
-  m_HorizontalDamping: 0
-  m_VerticalDamping: 0
-  m_ScreenX: 0.5
-  m_ScreenY: 0.5
-  m_DeadZoneWidth: 0
-  m_DeadZoneHeight: 0
-  m_SoftZoneWidth: 0.8
-  m_SoftZoneHeight: 0.8
-  m_BiasX: 0
-  m_BiasY: 0
-  m_CenterOnActivate: 1
---- !u!1 &1676734517611811566
-GameObject:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  serializedVersion: 6
-  m_Component:
-  - component: {fileID: 1676734517611811567}
-  - component: {fileID: 1676734517611811562}
-  - component: {fileID: 1676734517611811561}
-  - component: {fileID: 1676734517611811560}
-  m_Layer: 0
-  m_Name: cm
-  m_TagString: Untagged
-  m_Icon: {fileID: 0}
-  m_NavMeshLayer: 0
-  m_StaticEditorFlags: 0
-  m_IsActive: 1
---- !u!4 &1676734517611811567
-Transform:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517611811566}
-  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
-  m_Children: []
-  m_Father: {fileID: 1676734516724634599}
-  m_RootOrder: 0
-  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!114 &1676734517611811562
+  TargetOffset: {x: 0, y: 0, z: 0}
+  TrackerSettings:
+    BindingMode: 4
+    PositionDamping: {x: 1, y: 1, z: 1}
+    AngularDampingMode: 0
+    RotationDamping: {x: 0, y: 0, z: 0}
+    QuaternionDamping: 0
+  OrbitStyle: 1
+  Radius: 15
+  Orbits:
+    Top:
+      Radius: 15
+      Height: 35
+    Center:
+      Radius: 15
+      Height: 20
+    Bottom:
+      Radius: 8
+      Height: 5
+    SplineCurvature: 0.2
+  RecenteringTarget: 2
+  HorizontalAxis:
+    Value: 40
+    Center: 0
+    Range: {x: -180, y: 180}
+    Wrap: 1
+    Recentering:
+      Enabled: 0
+      Wait: 1
+      Time: 2
+    Restrictions: 0
+  VerticalAxis:
+    Value: 0.5
+    Center: 0.5
+    Range: {x: 0, y: 1}
+    Wrap: 0
+    Recentering:
+      Enabled: 0
+      Wait: 1
+      Time: 2
+    Restrictions: 0
+  RadialAxis:
+    Value: 1
+    Center: 1
+    Range: {x: 1, y: 1}
+    Wrap: 0
+    Recentering:
+      Enabled: 0
+      Wait: 1
+      Time: 2
+    Restrictions: 0
+--- !u!114 &7526749824992581565
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517611811566}
+  m_GameObject: {fileID: 1676734517288307075}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
+  m_Script: {fileID: 11500000, guid: f38bda98361e1de48a4ca2bd86ea3c17, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
---- !u!114 &1676734517611811561
+  Composition:
+    ScreenPosition: {x: 0, y: 0.050000012}
+    DeadZone:
+      Enabled: 1
+      Size: {x: 0, y: 0}
+    HardLimits:
+      Enabled: 1
+      Size: {x: 0.8, y: 0.8}
+      Offset: {x: 0, y: 0}
+  CenterOnActivate: 1
+  TargetOffset: {x: 0, y: 1, z: 0}
+  Damping: {x: 0, y: 0}
+  Lookahead:
+    Enabled: 0
+    Time: 0
+    Smoothing: 0
+    IgnoreY: 0
+--- !u!114 &9199614428061556971
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517611811566}
+  m_GameObject: {fileID: 1676734517288307075}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 9384ab8608cdc3d479fe89cd51eed48f, type: 3}
+  m_Script: {fileID: 11500000, guid: a076c17fe76165e4f8ed21498b877bf9, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_BindingMode: 4
-  m_FollowOffset: {x: 0, y: 20, z: -15}
-  m_XDamping: 1
-  m_YDamping: 1
-  m_ZDamping: 1
-  m_AngularDampingMode: 0
-  m_PitchDamping: 0
-  m_YawDamping: 0
-  m_RollDamping: 0
-  m_AngularDamping: 0
-  m_Heading:
-    m_Definition: 2
-    m_VelocityFilterStrength: 4
-    m_Bias: 40
-  m_RecenterToTargetHeading:
-    m_enabled: 0
-    m_WaitTime: 1
-    m_RecenteringTime: 2
-    m_LegacyHeadingDefinition: -1
-    m_LegacyVelocityFilterStrength: -1
-  m_XAxis:
-    Value: 0
-    m_SpeedMode: 0
-    m_MaxSpeed: 300
-    m_AccelTime: 0.1
-    m_DecelTime: 0.1
-    m_InputAxisName: 
-    m_InputAxisValue: 0
-    m_InvertInput: 1
-    m_MinValue: -180
-    m_MaxValue: 180
-    m_Wrap: 1
-    m_Recentering:
-      m_enabled: 0
-      m_WaitTime: 1
-      m_RecenteringTime: 2
-      m_LegacyHeadingDefinition: -1
-      m_LegacyVelocityFilterStrength: -1
-  m_LegacyRadius: 3.4028235e+38
-  m_LegacyHeightOffset: 3.4028235e+38
-  m_LegacyHeadingBias: 3.4028235e+38
-  m_HeadingIsSlave: 1
---- !u!114 &1676734517611811560
+  Modifiers:
+  - rid: 5233093796304257304
+  references:
+    version: 2
+    RefIds:
+    - rid: 5233093796304257304
+      type: {class: CinemachineFreeLookModifier/CompositionModifier, ns: Unity.Cinemachine, asm: Unity.Cinemachine}
+      data:
+        Composition:
+          Top:
+            ScreenPosition: {x: 0, y: 0}
+            DeadZone:
+              Enabled: 1
+              Size: {x: 0, y: 0}
+            HardLimits:
+              Enabled: 1
+              Size: {x: 0.8, y: 0.8}
+              Offset: {x: 0, y: 0}
+          Bottom:
+            ScreenPosition: {x: 0, y: 0.100000024}
+            DeadZone:
+              Enabled: 1
+              Size: {x: 0, y: 0}
+            HardLimits:
+              Enabled: 1
+              Size: {x: 0.8, y: 0.8}
+              Offset: {x: 0, y: 0}
+--- !u!114 &2979079838363680315
 MonoBehaviour:
   m_ObjectHideFlags: 0
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1676734517611811566}
+  m_GameObject: {fileID: 1676734517288307075}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3}
+  m_Script: {fileID: 11500000, guid: 89875cdc57c54474a8a74efd9b2a3b5d, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_TrackedObjectOffset: {x: 0, y: 0, z: 0}
-  m_LookaheadTime: 0
-  m_LookaheadSmoothing: 0
-  m_LookaheadIgnoreY: 0
-  m_HorizontalDamping: 0
-  m_VerticalDamping: 0
-  m_ScreenX: 0.5
-  m_ScreenY: 0.6
-  m_DeadZoneWidth: 0
-  m_DeadZoneHeight: 0
-  m_SoftZoneWidth: 0.8
-  m_SoftZoneHeight: 0.8
-  m_BiasX: 0
-  m_BiasY: 0
-  m_CenterOnActivate: 1
+  ScanRecursively: 1
+  SuppressInputWhileBlending: 1
+  IgnoreTimeScale: 0
+  m_ControllerManager:
+    Controllers:
+    - Name: Look Orbit X
+      Owner: {fileID: 2134312450369994339}
+      Enabled: 1
+      Input:
+        InputAction: {fileID: 0}
+        Gain: 1
+        CancelDeltaTime: 0
+      InputValue: 0
+      Driver:
+        AccelTime: 0.1
+        DecelTime: 0.1
+    - Name: Look Orbit Y
+      Owner: {fileID: 2134312450369994339}
+      Enabled: 1
+      Input:
+        InputAction: {fileID: -5536139033653354306, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
+        Gain: -50
+        CancelDeltaTime: 0
+      InputValue: 0
+      Driver:
+        AccelTime: 2
+        DecelTime: 2
+    - Name: Orbit Scale
+      Owner: {fileID: 2134312450369994339}
+      Enabled: 1
+      Input:
+        InputAction: {fileID: 0}
+        Gain: 1
+        CancelDeltaTime: 0
+      InputValue: 0
+      Driver:
+        AccelTime: 0
+        DecelTime: 0
+  PlayerIndex: -1
+  AutoEnableInputs: 1
 --- !u!1 &2167489802469618434
 GameObject:
   m_ObjectHideFlags: 0
@@ -805,12 +334,13 @@ Transform:
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 2167489802469618434}
+  serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 1676734517288307197}
   - {fileID: 1676734516302391365}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/Prefabs/UI/BossRoomHudCanvas.prefab b/Assets/Prefabs/UI/BossRoomHudCanvas.prefab
index 7fdb8470a8..e2bc245812 100644
--- a/Assets/Prefabs/UI/BossRoomHudCanvas.prefab
+++ b/Assets/Prefabs/UI/BossRoomHudCanvas.prefab
@@ -108,15 +108,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -317,15 +319,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -824,15 +828,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -958,15 +964,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1092,15 +1100,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1226,15 +1236,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1899,15 +1911,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -2209,15 +2223,15 @@ PrefabInstance:
       value: 7
       objectReference: {fileID: 0}
     - target: {fileID: 5291941401002571263, guid: df0d6828f44fdd64bb311a3f19236959, type: 3}
-      propertyPath: m_TextLabels.Array.data[4]
+      propertyPath: 'm_TextLabels.Array.data[4]'
       value: 
       objectReference: {fileID: 0}
     - target: {fileID: 5291941401002571263, guid: df0d6828f44fdd64bb311a3f19236959, type: 3}
-      propertyPath: m_TextLabels.Array.data[5]
+      propertyPath: 'm_TextLabels.Array.data[5]'
       value: 
       objectReference: {fileID: 0}
     - target: {fileID: 5291941401002571263, guid: df0d6828f44fdd64bb311a3f19236959, type: 3}
-      propertyPath: m_TextLabels.Array.data[6]
+      propertyPath: 'm_TextLabels.Array.data[6]'
       value: 
       objectReference: {fileID: 0}
     - target: {fileID: 5371176185845101923, guid: df0d6828f44fdd64bb311a3f19236959, type: 3}
@@ -2522,6 +2536,10 @@ PrefabInstance:
       propertyPath: m_EmotePanel
       value: 
       objectReference: {fileID: 5277713031219212455}
+    - target: {fileID: 9059929381720061998, guid: 334e483163a0ba54bb764e318223c9ba, type: 3}
+      propertyPath: m_ToggleEmoteBarAction
+      value: 
+      objectReference: {fileID: -248355375449215140, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
     - target: {fileID: 9059929381720062001, guid: 334e483163a0ba54bb764e318223c9ba, type: 3}
       propertyPath: m_Name
       value: Hero Action Bar
@@ -2652,14 +2670,58 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5277713031684110775}
     m_Modifications:
+    - target: {fileID: 277098652668227279, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 637141743512318501, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 649489175755438353, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 797167611908236020, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
       propertyPath: m_Canvas
       value: 
       objectReference: {fileID: 5277713031684110774}
+    - target: {fileID: 2421897982836340649, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 2679791807507173189, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 2885098433089441387, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
       propertyPath: m_Name
       value: CheatsPopupPanel
       objectReference: {fileID: 0}
+    - target: {fileID: 3858202051794728086, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 3944910749074775886, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 6254780512969792798, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 6271467218402269198, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 6524984927320345533, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 6903512172989931432, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7893676886333526174, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
       propertyPath: m_Pivot.x
       value: 0.5
@@ -2744,6 +2806,14 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8730681299727307797, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 8773562443087635893, guid: 8a7264ba4f271fa4fa6de65ef54333a7, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -2773,6 +2843,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5277713031684110775}
     m_Modifications:
+    - target: {fileID: 250046666732236924, guid: 8b2306d4cfca3b642afa5534b0ba275a, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 5210474333085558483, guid: 8b2306d4cfca3b642afa5534b0ba275a, type: 3}
       propertyPath: m_HeroName
       value: 
diff --git a/Assets/Prefabs/UI/CharacterSelectCanvas.prefab b/Assets/Prefabs/UI/CharacterSelectCanvas.prefab
index 037b9c120a..9484dfc79c 100644
--- a/Assets/Prefabs/UI/CharacterSelectCanvas.prefab
+++ b/Assets/Prefabs/UI/CharacterSelectCanvas.prefab
@@ -183,15 +183,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -317,15 +319,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 3
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -453,15 +457,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -592,15 +598,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 00000000
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -908,15 +916,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1042,15 +1052,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1385,15 +1397,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 00000000
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1595,15 +1609,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 3
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1729,15 +1745,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 3
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1886,6 +1904,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 5940892342300009070}
   m_TooltipText: Ability 3
   m_ActivateOnClick: 1
@@ -2192,15 +2211,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -2628,6 +2649,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 5940892342300009070}
   m_TooltipText: Ability 1
   m_ActivateOnClick: 1
@@ -2720,6 +2742,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 5940892342300009070}
   m_TooltipText: Ability 2
   m_ActivateOnClick: 1
@@ -2927,15 +2950,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 00000000
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -3061,15 +3086,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -3600,6 +3627,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5940892341490189322}
     m_Modifications:
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -128.157
@@ -3898,6 +3929,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5940892341490189322}
     m_Modifications:
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -56.959
@@ -4076,6 +4111,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5940892341490189322}
     m_Modifications:
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -56.959
@@ -4382,6 +4421,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5940892341490189322}
     m_Modifications:
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -64.078
@@ -4560,6 +4603,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5940892341490189322}
     m_Modifications:
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -64.079
@@ -4870,6 +4917,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5940892341490189322}
     m_Modifications:
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -64.078
@@ -5110,6 +5161,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 5940892341490189322}
     m_Modifications:
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -62.37
@@ -5296,6 +5351,10 @@ PrefabInstance:
       propertyPath: m_Enabled
       value: 1
       objectReference: {fileID: 0}
+    - target: {fileID: 463572819075978806, guid: ff848390065bf914fb60582f4d872815, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 857184778587777497, guid: ff848390065bf914fb60582f4d872815, type: 3}
       propertyPath: m_SizeDelta.x
       value: -83.065
diff --git a/Assets/Prefabs/UI/Hero Action Bar.prefab b/Assets/Prefabs/UI/Hero Action Bar.prefab
index f704047a95..89c284d689 100644
--- a/Assets/Prefabs/UI/Hero Action Bar.prefab	
+++ b/Assets/Prefabs/UI/Hero Action Bar.prefab	
@@ -28,9 +28,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929381734582209}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -107,9 +107,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929380243764539}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -186,9 +186,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929381413149715}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -265,9 +265,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929380544550687}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -344,9 +344,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929381734582209}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -425,11 +425,11 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 9059929380362573694}
   - {fileID: 6756708193988222877}
   m_Father: {fileID: 9059929381720062002}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -530,9 +530,11 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 0}
   m_TooltipText: 
   m_ActivateOnClick: 1
+  m_TooltipDelay: 0.5
 --- !u!1 &9059929380362573693
 GameObject:
   m_ObjectHideFlags: 0
@@ -561,9 +563,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929380243764539}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -642,11 +644,11 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 9059929380831878973}
   - {fileID: 6487434095397898390}
   m_Father: {fileID: 9059929381720062002}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -747,9 +749,11 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 0}
   m_TooltipText: 
   m_ActivateOnClick: 1
+  m_TooltipDelay: 0.5
 --- !u!1 &9059929380831878972
 GameObject:
   m_ObjectHideFlags: 0
@@ -778,9 +782,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929380544550687}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -859,11 +863,11 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 9059929381991440441}
   - {fileID: 7648382187687077328}
   m_Father: {fileID: 9059929381720062002}
-  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -964,9 +968,11 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 0}
   m_TooltipText: 
   m_ActivateOnClick: 1
+  m_TooltipDelay: 0.5
 --- !u!1 &9059929381720062001
 GameObject:
   m_ObjectHideFlags: 0
@@ -997,13 +1003,13 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 9059929380544550687}
   - {fileID: 9059929381734582209}
   - {fileID: 9059929380243764539}
   - {fileID: 9059929381413149715}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 1, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -1089,6 +1095,7 @@ MonoBehaviour:
   m_SpecialAction2Button: {fileID: 9059929380243764532}
   m_EmoteBarButton: {fileID: 9059929381413149708}
   m_EmotePanel: {fileID: 0}
+  m_ToggleEmoteBarAction: {fileID: 0}
 --- !u!1 &9059929381734582208
 GameObject:
   m_ObjectHideFlags: 0
@@ -1119,11 +1126,11 @@ RectTransform:
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 9059929380136398067}
   - {fileID: 6467281658954913184}
   m_Father: {fileID: 9059929381720062002}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -1224,9 +1231,11 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 0}
   m_TooltipText: 
   m_ActivateOnClick: 1
+  m_TooltipDelay: 0.5
 --- !u!1 &9059929381991440440
 GameObject:
   m_ObjectHideFlags: 0
@@ -1255,9 +1264,9 @@ RectTransform:
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9059929381413149715}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Prefabs/UI/MainMenu UI Canvas.prefab b/Assets/Prefabs/UI/MainMenu UI Canvas.prefab
index fc24b1b5a8..5750330c1b 100644
--- a/Assets/Prefabs/UI/MainMenu UI Canvas.prefab	
+++ b/Assets/Prefabs/UI/MainMenu UI Canvas.prefab	
@@ -359,15 +359,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 00000000
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -480,6 +482,10 @@ PrefabInstance:
       propertyPath: m_fontSizeMax
       value: 58
       objectReference: {fileID: 0}
+    - target: {fileID: 7721113380232533813, guid: addf3685293c35d48a673397c748f116, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7721113380319664578, guid: addf3685293c35d48a673397c748f116, type: 3}
       propertyPath: m_Name
       value: IP Start Button
@@ -736,6 +742,18 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 6068325059450104507}
     m_Modifications:
+    - target: {fileID: 301174889687357229, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 709593810350336946, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 785373375347833033, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 792957857740898001, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -772,6 +790,14 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 1131054124500818674, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 1583053172819472216, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 2234904744820987572, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0
@@ -812,6 +838,14 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 3422802895906220296, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 3523563153346996873, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 3632019498769524828, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -852,6 +886,18 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 4777870063691261607, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 4805371756271124143, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 5031063074198282838, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 5843186486647850782, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -868,6 +914,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6243726003260939195, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 6403041760458951094, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -886,7 +936,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6702871171647363808, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_Name
-      value: LobbyPopup
+      value: SessionPopup
       objectReference: {fileID: 0}
     - target: {fileID: 6702871171647363811, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_Pivot.x
@@ -992,6 +1042,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 7486709167611836872, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7579639325911904033, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -1012,6 +1066,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 7676773602323508701, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7878795380521772600, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -1028,6 +1086,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8349060408152716834, guid: 1bc4508935e434eb4867c367b55cca50, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -1058,9 +1120,13 @@ PrefabInstance:
       propertyPath: m_fontSizeMax
       value: 58
       objectReference: {fileID: 0}
+    - target: {fileID: 7721113380232533813, guid: addf3685293c35d48a673397c748f116, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7721113380319664578, guid: addf3685293c35d48a673397c748f116, type: 3}
       propertyPath: m_Name
-      value: Lobby Start Button
+      value: Session Start Button
       objectReference: {fileID: 0}
     - target: {fileID: 7721113380319664578, guid: addf3685293c35d48a673397c748f116, type: 3}
       propertyPath: m_IsActive
@@ -1203,6 +1269,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 79e7ca3e19eb99c4f97ff06a95ef7dac, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
+  m_PointAction: {fileID: -1959881153152325168, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_TooltipPopup: {fileID: 5331930138599208077}
   m_TooltipText: Unity Gaming Services ProjectID not set up. Click the Readme file
     in the Assets Folder within the Project window in-editor to follow "How to set
@@ -1222,6 +1289,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 6068325059450104507}
     m_Modifications:
+    - target: {fileID: 635758218034301578, guid: 0c512555bac5ad3428012496621d5f4c, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 2425020540045722527, guid: 0c512555bac5ad3428012496621d5f4c, type: 3}
       propertyPath: m_IPHostingUI
       value: 
@@ -1250,6 +1321,10 @@ PrefabInstance:
       propertyPath: m_JoinTabButtonTabBlockerTinter
       value: 
       objectReference: {fileID: 0}
+    - target: {fileID: 2632516940462403808, guid: 0c512555bac5ad3428012496621d5f4c, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 2837639234489633647, guid: 0c512555bac5ad3428012496621d5f4c, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -1406,6 +1481,14 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6221418847513183700, guid: 0c512555bac5ad3428012496621d5f4c, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 8477078941156091232, guid: 0c512555bac5ad3428012496621d5f4c, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 8636502446461490653, guid: 0c512555bac5ad3428012496621d5f4c, type: 3}
       propertyPath: m_AnchorMax.x
       value: 0
@@ -1436,6 +1519,10 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 6068325059450104507}
     m_Modifications:
+    - target: {fileID: 142567138735162684, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 305241932145850641, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -1456,14 +1543,46 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 420772079678045107, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 496999993872493682, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
       propertyPath: m_fontSize
       value: 50
       objectReference: {fileID: 0}
+    - target: {fileID: 496999993872493682, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 1198809863901728126, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 1724952364805774005, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
       propertyPath: m_fontSize
       value: 33
       objectReference: {fileID: 0}
+    - target: {fileID: 1724952364805774005, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 1887385345636018689, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 1958720994042495195, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 2267455651107791764, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
+    - target: {fileID: 3449200610800142136, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 4453893802180558433, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
       propertyPath: m_AnchoredPosition.y
       value: 58
@@ -1472,6 +1591,10 @@ PrefabInstance:
       propertyPath: m_fontSize
       value: 33
       objectReference: {fileID: 0}
+    - target: {fileID: 5306707511080244411, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 5924530127146065184, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
       propertyPath: m_Name
       value: IPPopup
@@ -1560,10 +1683,18 @@ PrefabInstance:
       propertyPath: m_LocalEulerAnglesHint.z
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 6456862980627209339, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7328528642576607773, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
       propertyPath: m_fontSize
       value: 50
       objectReference: {fileID: 0}
+    - target: {fileID: 7328528642576607773, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7353534715922753761, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
       propertyPath: m_AnchorMax.y
       value: 0
@@ -1604,6 +1735,10 @@ PrefabInstance:
       propertyPath: m_AnchoredPosition.y
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 8122071153592056310, guid: 4c4e3a02e746c204bb859d2a53a865e3, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []
@@ -1634,6 +1769,10 @@ PrefabInstance:
       propertyPath: m_fontSizeMax
       value: 58
       objectReference: {fileID: 0}
+    - target: {fileID: 7721113380232533813, guid: addf3685293c35d48a673397c748f116, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 7721113380319664578, guid: addf3685293c35d48a673397c748f116, type: 3}
       propertyPath: m_Name
       value: Profile Button
diff --git a/Assets/Prefabs/UI/NetworkSimulator.prefab b/Assets/Prefabs/UI/NetworkSimulator.prefab
index aca94770d8..768c8b48a5 100644
--- a/Assets/Prefabs/UI/NetworkSimulator.prefab
+++ b/Assets/Prefabs/UI/NetworkSimulator.prefab
@@ -108,15 +108,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -242,15 +244,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 0
+  m_TextWrappingMode: 0
   m_wordWrappingRatios: 0.4
   m_overflowMode: 1
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -301,7 +305,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0.000030517578, y: 0.0000076293945}
+  m_AnchoredPosition: {x: 0.000030517578, y: 0}
   m_SizeDelta: {x: -0.0000076293945, y: 44.06}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!1 &1187890238645865266
@@ -412,15 +416,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -771,7 +777,7 @@ MonoBehaviour:
   m_ScenariosButton: {fileID: 3849933660407801780}
   m_ScenariosButtonText: {fileID: 3849933660557125965}
   m_LagSpikeDuration: {fileID: 8516948734797190670}
-  m_OpenWindowKeyCode: 9
+  m_ToggleNetworkSimulatorAction: {fileID: 34288948611290012, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
   m_ConnectionsCycleConfigurations:
   - m_ClassPreset:
       rid: 3384652154820362241
@@ -811,7 +817,7 @@ MonoBehaviour:
     - rid: 3384652154820362242
       type: {class: NetworkSimulatorPreset, ns: Unity.Multiplayer.Tools.NetworkSimulator.Runtime, asm: Unity.Multiplayer.Tools.NetworkSimulator.Runtime}
       data:
-        k__BackingField: Home Broadband [WIFI, Cable, Console, PC]
+        k__BackingField: 'Home Broadband [WIFI, Cable, Console, PC]'
         k__BackingField: Typical of desktop and console platforms (and
           generally speaking most mobile players too).
         k__BackingField: 32
@@ -821,7 +827,7 @@ MonoBehaviour:
     - rid: 3384652154820362244
       type: {class: NetworkSimulatorPreset, ns: Unity.Multiplayer.Tools.NetworkSimulator.Runtime, asm: Unity.Multiplayer.Tools.NetworkSimulator.Runtime}
       data:
-        k__BackingField: Mobile 5G ['20]
+        k__BackingField: 'Mobile 5G [''20]'
         k__BackingField: In many places, expect this to be 'as good
           as' or 'better than' home broadband.
         k__BackingField: 30
@@ -1011,15 +1017,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 0
+  m_TextWrappingMode: 0
   m_wordWrappingRatios: 0.4
   m_overflowMode: 1
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1274,15 +1282,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 0
+  m_TextWrappingMode: 0
   m_wordWrappingRatios: 0.4
   m_overflowMode: 1
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 1
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1536,7 +1546,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
-  m_AnchoredPosition: {x: 0.000030517578, y: 0}
+  m_AnchoredPosition: {x: 0.000030517578, y: -0.000022888184}
   m_SizeDelta: {x: -0.0000076293945, y: 44.06}
   m_Pivot: {x: 0.5, y: 1}
 --- !u!1 &3220895239932877001
@@ -1647,15 +1657,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1781,15 +1793,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 0
+  m_TextWrappingMode: 3
   m_wordWrappingRatios: 0.4
   m_overflowMode: 1
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 1
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1935,6 +1949,7 @@ MonoBehaviour:
   m_ItemText: {fileID: 5108426573990114642}
   m_ItemImage: {fileID: 0}
   m_Value: 0
+  m_MultiSelect: 0
   m_Options:
     m_Options: []
   m_OnValueChanged:
@@ -2656,15 +2671,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -3286,7 +3303,7 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   m_PresetAsset: {fileID: 0}
   m_PresetReference:
-    rid: 6605000672329859073
+    rid: 2061385516771705142
   m_Scenario:
     rid: -2
   m_IsScenarioSettingsFolded: 1
@@ -3296,7 +3313,7 @@ MonoBehaviour:
     RefIds:
     - rid: -2
       type: {class: , ns: , asm: }
-    - rid: 6605000672329859073
+    - rid: 2061385516771705142
       type: {class: NetworkSimulatorPreset, ns: Unity.Multiplayer.Tools.NetworkSimulator.Runtime, asm: Unity.Multiplayer.Tools.NetworkSimulator.Runtime}
       data:
         k__BackingField: None
@@ -3709,15 +3726,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -3843,15 +3862,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -4129,10 +4150,13 @@ MonoBehaviour:
   m_GlobalFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
   m_OnFocusSelectAll: 1
   m_ResetOnDeActivation: 1
+  m_KeepTextSelectionVisible: 0
   m_RestoreOriginalTextOnEscape: 1
   m_isRichTextEditingAllowed: 0
   m_LineLimit: 0
+  isAlert: 0
   m_InputValidator: {fileID: 0}
+  m_ShouldActivateOnSelect: 1
 --- !u!1 &7571868317983907511
 GameObject:
   m_ObjectHideFlags: 0
@@ -4614,15 +4638,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -4768,6 +4794,7 @@ MonoBehaviour:
   m_ItemText: {fileID: 2572370505331673721}
   m_ItemImage: {fileID: 0}
   m_Value: 0
+  m_MultiSelect: 0
   m_Options:
     m_Options: []
   m_OnValueChanged:
@@ -4798,6 +4825,10 @@ PrefabInstance:
       propertyPath: m_enableAutoSizing
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5700619323420510958, guid: 2f2de97a89d7bef42919fd16c2f87f10, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 5700619323420510961, guid: 2f2de97a89d7bef42919fd16c2f87f10, type: 3}
       propertyPath: m_AnchorMax.x
       value: 1
@@ -4964,6 +4995,10 @@ PrefabInstance:
       propertyPath: m_fontSize
       value: 36
       objectReference: {fileID: 0}
+    - target: {fileID: 5700619323420510958, guid: 2f2de97a89d7bef42919fd16c2f87f10, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 5700619323602338836, guid: 2f2de97a89d7bef42919fd16c2f87f10, type: 3}
       propertyPath: m_Type
       value: 1
@@ -5106,6 +5141,10 @@ PrefabInstance:
       propertyPath: m_enableAutoSizing
       value: 0
       objectReference: {fileID: 0}
+    - target: {fileID: 5700619323420510958, guid: 2f2de97a89d7bef42919fd16c2f87f10, type: 3}
+      propertyPath: 'm_ActiveFontFeatures.Array.data[0]'
+      value: 1801810542
+      objectReference: {fileID: 0}
     - target: {fileID: 5700619323420510961, guid: 2f2de97a89d7bef42919fd16c2f87f10, type: 3}
       propertyPath: m_AnchorMax.x
       value: 1
diff --git a/Assets/Prefabs/UI/LobbyUI.prefab b/Assets/Prefabs/UI/SessionUI.prefab
similarity index 98%
rename from Assets/Prefabs/UI/LobbyUI.prefab
rename to Assets/Prefabs/UI/SessionUI.prefab
index 8f465cab98..8574296e7f 100644
--- a/Assets/Prefabs/UI/LobbyUI.prefab
+++ b/Assets/Prefabs/UI/SessionUI.prefab
@@ -35,7 +35,6 @@ RectTransform:
   - {fileID: 2975638553292857375}
   - {fileID: 860301207315940462}
   m_Father: {fileID: 2670926649685416499}
-  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -100,7 +99,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 282255004005152861}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -191,7 +189,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6702871171647363811}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -249,7 +246,7 @@ GameObject:
   - component: {fileID: 8582247561407215177}
   - component: {fileID: 4897371851934052143}
   m_Layer: 5
-  m_Name: Lobby Name Input Field
+  m_Name: Session Name Input Field
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -270,7 +267,6 @@ RectTransform:
   - {fileID: 829917324121296096}
   - {fileID: 720719179126197865}
   m_Father: {fileID: 2963858370021784928}
-  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -428,7 +424,6 @@ RectTransform:
   m_Children:
   - {fileID: 192539373152864728}
   m_Father: {fileID: 7760409132803330506}
-  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -541,7 +536,7 @@ GameObject:
   - component: {fileID: 5370165130166260100}
   - component: {fileID: 2349919044805767479}
   m_Layer: 5
-  m_Name: LobbyCreationUI
+  m_Name: SessionCreationUI
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -565,7 +560,6 @@ RectTransform:
   - {fileID: 3851624040064246431}
   - {fileID: 4250182236641786634}
   m_Father: {fileID: 244032492905947229}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -584,7 +578,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: a2f076764a76c434dbd08324243a9f2c, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_LobbyNameInputField: {fileID: 4897371851934052143}
+  m_SessionNameInputField: {fileID: 4897371851934052143}
   m_LoadingIndicatorObject: {fileID: 6560854408492732499}
   m_IsPrivate: {fileID: 8780206513702589119}
   m_CanvasGroup: {fileID: 2349919044805767479}
@@ -631,7 +625,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3521129445966426109}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -709,15 +702,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -766,7 +761,6 @@ RectTransform:
   - {fileID: 2963858370021784928}
   - {fileID: 2670926649685416499}
   m_Father: {fileID: 6702871171647363811}
-  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -804,7 +798,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3851624040064246431}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -887,7 +880,6 @@ RectTransform:
   - {fileID: 4703333743537879339}
   - {fileID: 5883034356418507601}
   m_Father: {fileID: 7760409132803330506}
-  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -1048,7 +1040,6 @@ RectTransform:
   - {fileID: 8655946376249523884}
   - {fileID: 4128780992227299448}
   m_Father: {fileID: 7721874466928087582}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
@@ -1139,7 +1130,7 @@ MonoBehaviour:
       m_Calls:
       - m_Target: {fileID: 1722388064424237406}
         m_TargetAssemblyTypeName: BossRoom.Scripts.Client.UI.LobbyUIMediator, Unity.Multiplayer.Samples.BossRoom.Client
-        m_MethodName: ToggleJoinLobbyUI
+        m_MethodName: ToggleJoinSessionUI
         m_Mode: 1
         m_Arguments:
           m_ObjectArgument: {fileID: 0}
@@ -1180,7 +1171,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 282255004005152861}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -1215,7 +1205,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: 'Create Lobby
+  m_text: 'Create Session
 
 '
   m_isRightToLeft: 0
@@ -1260,15 +1250,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1317,7 +1309,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 4996778416574021528}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -1352,7 +1343,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: Lobby List
+  m_text: Session List
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 1a8c97d4cbe5134499b26527f8609c7e, type: 2}
   m_sharedMaterial: {fileID: -466885322316925189, guid: 1a8c97d4cbe5134499b26527f8609c7e, type: 2}
@@ -1395,15 +1386,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1453,7 +1446,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 4996778416574021528}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -1544,7 +1536,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2975638553292857375}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -1592,7 +1583,7 @@ MonoBehaviour:
     m_HorizontalOverflow: 0
     m_VerticalOverflow: 0
     m_LineSpacing: 1
-  m_Text: Enter lobby code...
+  m_Text: Enter join code...
 --- !u!1 &3284084329833472941
 GameObject:
   m_ObjectHideFlags: 0
@@ -1626,7 +1617,6 @@ RectTransform:
   - {fileID: 4996778416574021528}
   - {fileID: 282255004005152861}
   m_Father: {fileID: 6702871171647363811}
-  m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -1707,7 +1697,6 @@ RectTransform:
   - {fileID: 4078412745237413509}
   - {fileID: 2417806726195885171}
   m_Father: {fileID: 7721874466928087582}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
@@ -1798,7 +1787,7 @@ MonoBehaviour:
       m_Calls:
       - m_Target: {fileID: 1722388064424237406}
         m_TargetAssemblyTypeName: BossRoom.Scripts.Client.UI.LobbyUIMediator, Unity.Multiplayer.Samples.BossRoom.Client
-        m_MethodName: ToggleCreateLobbyUI
+        m_MethodName: ToggleCreateSessionUI
         m_Mode: 1
         m_Arguments:
           m_ObjectArgument: {fileID: 0}
@@ -1839,7 +1828,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 860301207315940462}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -1917,15 +1905,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -1974,7 +1964,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6263258808166174538}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -2052,15 +2041,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -2109,7 +2100,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6263258808166174538}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0.5}
   m_AnchorMax: {x: 0, y: 0.5}
@@ -2185,7 +2175,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2975638553292857375}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -2264,7 +2253,6 @@ RectTransform:
   m_Children:
   - {fileID: 2234904744820987572}
   m_Father: {fileID: 514912694380149792}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -2303,7 +2291,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3521129445966426109}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -2436,7 +2423,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 282255004005152861}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -2528,7 +2514,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6702871171647363811}
-  m_RootOrder: 5
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 1, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -2666,7 +2651,6 @@ RectTransform:
   - {fileID: 5444621218174688333}
   - {fileID: 3902557823681792741}
   m_Father: {fileID: 5226752220064165541}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -2741,7 +2725,9 @@ Canvas:
   m_OverrideSorting: 0
   m_OverridePixelPerfect: 0
   m_SortingBucketNormalizedSize: 0
+  m_VertexColorAlwaysGammaSpace: 0
   m_AdditionalShaderChannelsFlag: 25
+  m_UpdateRectTransformForStandalone: 0
   m_SortingLayerID: 0
   m_SortingOrder: 0
   m_TargetDisplay: 0
@@ -2793,7 +2779,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3521129445966426109}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -2871,15 +2856,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -2929,7 +2916,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 7760409132803330506}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -3061,7 +3047,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6702871171647363811}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -3137,7 +3122,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2670926649685416499}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -3194,7 +3178,7 @@ GameObject:
   - component: {fileID: 5318024624199095249}
   - component: {fileID: 785373375347833033}
   m_Layer: 5
-  m_Name: EmptyLobbyList (TMP)
+  m_Name: EmptySessionList (TMP)
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -3213,7 +3197,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 9204749279882807884}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -3248,7 +3231,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: no lobbies
+  m_text: no sessions
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 1a8c97d4cbe5134499b26527f8609c7e, type: 2}
   m_sharedMaterial: {fileID: -466885322316925189, guid: 1a8c97d4cbe5134499b26527f8609c7e, type: 2}
@@ -3291,15 +3274,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -3348,7 +3333,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3632019498769524828}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -3426,15 +3410,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -3465,7 +3451,7 @@ GameObject:
   - component: {fileID: 2752597813987140551}
   - component: {fileID: 8736528447829798099}
   m_Layer: 5
-  m_Name: Create Lobby Button
+  m_Name: Create Session Button
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -3485,7 +3471,6 @@ RectTransform:
   m_Children:
   - {fileID: 8681644285067859282}
   m_Father: {fileID: 2963858370021784928}
-  m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -3617,7 +3602,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3632019498769524828}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -3695,15 +3679,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -3752,7 +3738,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6263258808166174538}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0.5}
   m_AnchorMax: {x: 0, y: 0.5}
@@ -3828,7 +3813,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2963858370021784928}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -3904,7 +3888,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3851624040064246431}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -3952,7 +3935,7 @@ MonoBehaviour:
     m_HorizontalOverflow: 0
     m_VerticalOverflow: 0
     m_LineSpacing: 1
-  m_Text: Enter your lobby name...
+  m_Text: Enter your Session name...
 --- !u!1 &6616621817421405779
 GameObject:
   m_ObjectHideFlags: 0
@@ -3964,7 +3947,7 @@ GameObject:
   - component: {fileID: 6263258808166174538}
   - component: {fileID: 8780206513702589119}
   m_Layer: 5
-  m_Name: Private Lobby Toggle
+  m_Name: Private Session Toggle
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -3986,7 +3969,6 @@ RectTransform:
   - {fileID: 1076487188656558799}
   - {fileID: 3606018944305289553}
   m_Father: {fileID: 2963858370021784928}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0.5, y: 0.5}
   m_AnchorMax: {x: 0.5, y: 0.5}
@@ -4055,7 +4037,7 @@ GameObject:
   - component: {fileID: 6702871171647363810}
   - component: {fileID: 6889764071769254414}
   m_Layer: 5
-  m_Name: LobbyUI
+  m_Name: SessionUI
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -4081,7 +4063,6 @@ RectTransform:
   - {fileID: 4279823075853654326}
   - {fileID: 1176249261847584693}
   m_Father: {fileID: 0}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -4101,8 +4082,8 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_CanvasGroup: {fileID: 6889764071769254414}
-  m_LobbyJoiningUI: {fileID: 3432713757992463987}
-  m_LobbyCreationUI: {fileID: 5370165130166260100}
+  m_SessionJoiningUI: {fileID: 3432713757992463987}
+  m_SessionCreationUI: {fileID: 5370165130166260100}
   m_JoinToggleHighlight: {fileID: 6752777071945805011}
   m_JoinToggleTabBlocker: {fileID: 4806072236846957327}
   m_CreateToggleHighlight: {fileID: 4585101913867269799}
@@ -4171,7 +4152,7 @@ GameObject:
   - component: {fileID: 3432713757992463987}
   - component: {fileID: 5782144806807453527}
   m_Layer: 5
-  m_Name: LobbyJoiningUI
+  m_Name: SessionJoiningUI
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -4194,7 +4175,6 @@ RectTransform:
   - {fileID: 5226752220064165541}
   - {fileID: 7760409132803330506}
   m_Father: {fileID: 244032492905947229}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -4213,11 +4193,11 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 5badc8e4e5a84afeae84746e5199ebaf, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_LobbyListItemPrototype: {fileID: 6844302749700945984}
+  m_SessionListItemPrototype: {fileID: 6844302749700945984}
   m_JoinCodeField: {fileID: 8248007993983070476}
   m_CanvasGroup: {fileID: 5782144806807453527}
-  m_EmptyLobbyListLabel: {fileID: 785373375347833033}
-  m_JoinLobbyButton: {fileID: 2758534323255991562}
+  m_EmptySessionListLabel: {fileID: 785373375347833033}
+  m_JoinSessionButton: {fileID: 2758534323255991562}
 --- !u!225 &5782144806807453527
 CanvasGroup:
   m_ObjectHideFlags: 0
@@ -4261,7 +4241,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2963858370021784928}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -4296,7 +4275,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: 'Create a new lobby...
+  m_text: 'Create a new Session...
 
 '
   m_isRightToLeft: 0
@@ -4341,15 +4320,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 0
+  m_TextWrappingMode: 0
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -4400,7 +4381,6 @@ RectTransform:
   m_Children:
   - {fileID: 7349595981541475631}
   m_Father: {fileID: 5226752220064165541}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 1, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -4506,7 +4486,7 @@ GameObject:
   - component: {fileID: 453327300698636041}
   - component: {fileID: 3771175507069267251}
   m_Layer: 5
-  m_Name: LobbyList
+  m_Name: SessionList
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -4526,7 +4506,6 @@ RectTransform:
   m_Children:
   - {fileID: 3632019498769524828}
   m_Father: {fileID: 9204749279882807884}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -4604,7 +4583,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 6403041760458951094}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -4682,15 +4660,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -4719,7 +4699,7 @@ GameObject:
   - component: {fileID: 5226752220064165541}
   - component: {fileID: 8781373074404198200}
   m_Layer: 5
-  m_Name: LobbiesPanel
+  m_Name: SessionsPanel
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -4740,7 +4720,6 @@ RectTransform:
   - {fileID: 9204749279882807884}
   - {fileID: 514912694380149792}
   m_Father: {fileID: 2670926649685416499}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -4810,7 +4789,6 @@ RectTransform:
   m_Children:
   - {fileID: 5472588618955582370}
   m_Father: {fileID: 7760409132803330506}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -4942,7 +4920,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 4250182236641786634}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -5020,15 +4997,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -5077,7 +5056,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 2670926649685416499}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 1, y: 1}
@@ -5112,7 +5090,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: Join an existing lobby...
+  m_text: Join an existing Session...
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 9641ce046d2227445b9684161a165f68, type: 2}
   m_sharedMaterial: {fileID: -4106257185398102161, guid: 9641ce046d2227445b9684161a165f68, type: 2}
@@ -5155,15 +5133,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 0
+  m_TextWrappingMode: 0
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -5214,7 +5194,6 @@ RectTransform:
   - {fileID: 792957857740898001}
   - {fileID: 7210379632491551496}
   m_Father: {fileID: 6702871171647363811}
-  m_RootOrder: 2
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
@@ -5278,7 +5257,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 3632019498769524828}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -5356,15 +5334,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 1
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
@@ -5413,7 +5393,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 7349595981541475631}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -5468,7 +5447,7 @@ GameObject:
   m_Component:
   - component: {fileID: 9087430833360061411}
   m_Layer: 5
-  m_Name: LobbyTypeContainer_TK
+  m_Name: SessionTypeContainer_TK
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -5487,7 +5466,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 7760409132803330506}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 1}
   m_AnchorMax: {x: 0, y: 1}
@@ -5509,7 +5487,7 @@ GameObject:
   - component: {fileID: 6432751663401761397}
   - component: {fileID: 4034168928220429643}
   m_Layer: 5
-  m_Name: LobbyListItemUI Prototype
+  m_Name: SessionListItemUI Prototype
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -5531,7 +5509,6 @@ RectTransform:
   - {fileID: 7878795380521772600}
   - {fileID: 4492811537154015470}
   m_Father: {fileID: 3902557823681792741}
-  m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
@@ -5550,8 +5527,8 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 83ebc4f31452e4fc1b11263aed913c99, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_lobbyNameText: {fileID: 1583053172819472216}
-  m_lobbyCountText: {fileID: 1131054124500818674}
+  m_SessionNameText: {fileID: 1583053172819472216}
+  m_SessionCountText: {fileID: 1131054124500818674}
 --- !u!222 &1731687845091873337
 CanvasRenderer:
   m_ObjectHideFlags: 0
@@ -5704,7 +5681,6 @@ RectTransform:
   m_ConstrainProportionsScale: 0
   m_Children: []
   m_Father: {fileID: 4996778416574021528}
-  m_RootOrder: 1
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 1}
@@ -5769,6 +5745,7 @@ PrefabInstance:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Modification:
+    serializedVersion: 3
     m_TransformParent: {fileID: 6702871171647363811}
     m_Modifications:
     - target: {fileID: 921942742702944666, guid: 996cbd343fa869b408f74acb84aed786, type: 3}
@@ -5860,6 +5837,9 @@ PrefabInstance:
       value: LoadingSpinner
       objectReference: {fileID: 0}
     m_RemovedComponents: []
+    m_RemovedGameObjects: []
+    m_AddedGameObjects: []
+    m_AddedComponents: []
   m_SourcePrefab: {fileID: 100100000, guid: 996cbd343fa869b408f74acb84aed786, type: 3}
 --- !u!224 &1176249261847584693 stripped
 RectTransform:
diff --git a/Assets/Prefabs/UI/LobbyUI.prefab.meta b/Assets/Prefabs/UI/SessionUI.prefab.meta
similarity index 100%
rename from Assets/Prefabs/UI/LobbyUI.prefab.meta
rename to Assets/Prefabs/UI/SessionUI.prefab.meta
diff --git a/Assets/Readme.asset b/Assets/Readme.asset
deleted file mode 100644
index c4a66551a8..0000000000
--- a/Assets/Readme.asset
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bc84032ccd602f06302a2b509412634709d51faaeace1f426b041cd6a863f592
-size 2533
diff --git a/Assets/Scenes/BossRoom.unity b/Assets/Scenes/BossRoom.unity
index 43d9c7b236..25e70f0469 100644
--- a/Assets/Scenes/BossRoom.unity
+++ b/Assets/Scenes/BossRoom.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c8fd7364ea33eec42ccd63498e270396c9b2ab90b9bd4bd9128fd68841e899de
-size 423109
+oid sha256:3a002e0d85e334bfd3b283e702fce926d0c8d2201d741d767d2842f3344f01c1
+size 427987
diff --git a/Assets/Scenes/BossRoom/DungeonBossRoom.unity b/Assets/Scenes/BossRoom/DungeonBossRoom.unity
index 7f190c77d7..fe8d29767c 100644
--- a/Assets/Scenes/BossRoom/DungeonBossRoom.unity
+++ b/Assets/Scenes/BossRoom/DungeonBossRoom.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:d0f0ddaaf10020f714dc598e2ffd877f0d57cb6e01a70b5bf5725aa95836ee06
-size 335325
+oid sha256:62fb49820dd395603c4ed3c6a3eed0497fafd4e799b58d630eb996c84e9e78e1
+size 340011
diff --git a/Assets/Scenes/BossRoom/DungeonEntrance.unity b/Assets/Scenes/BossRoom/DungeonEntrance.unity
index 1dab8e20e6..3428b1fbc9 100644
--- a/Assets/Scenes/BossRoom/DungeonEntrance.unity
+++ b/Assets/Scenes/BossRoom/DungeonEntrance.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c544a225b24708e42ffe92d2ab9282608236c7a1ba6d984ef64a88f90978557d
-size 33086
+oid sha256:2e754825749cbdff6a94176d031686e9ba6918b5fd9b89937e30bc7120d90998
+size 35122
diff --git a/Assets/Scenes/BossRoom/DungeonTransition.unity b/Assets/Scenes/BossRoom/DungeonTransition.unity
index f6baab5cd3..ef71645a6d 100644
--- a/Assets/Scenes/BossRoom/DungeonTransition.unity
+++ b/Assets/Scenes/BossRoom/DungeonTransition.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:fd06bcd32ee6eddef987ad17d127ff54710fc0b83e8b65246741f31965c6f9eb
-size 26310
+oid sha256:c9ddbb20b51266d5d0bca5e4ca52df58929a8af4a84f736c129e629f96291382
+size 28071
diff --git a/Assets/Scenes/CharSelect.unity b/Assets/Scenes/CharSelect.unity
index 927dab2cda..ed6534642f 100644
--- a/Assets/Scenes/CharSelect.unity
+++ b/Assets/Scenes/CharSelect.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:fe57cffed60d9bfe7f42257a90c3d6a2240755dcaa4e10ae0c745f6fb4aecd66
-size 45820
+oid sha256:b0a1012444ca7683272cb5372585c2c7917395ef9691159dd85bce962b36e772
+size 50035
diff --git a/Assets/Scenes/MainMenu.unity b/Assets/Scenes/MainMenu.unity
index f08b37c043..4d8a388453 100644
--- a/Assets/Scenes/MainMenu.unity
+++ b/Assets/Scenes/MainMenu.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:2f42f44e58e165cddd54ae1a554ec6e13212353e3fbc04756771b9e70f3cf371
-size 71441
+oid sha256:cdaca1553f6a56d171dd72e4d8c51a3d22e5e4eaaff8def9c6ef3a7cde259a37
+size 73659
diff --git a/Assets/Scenes/PostGame.unity b/Assets/Scenes/PostGame.unity
index 26deb420a2..d51f9a4153 100644
--- a/Assets/Scenes/PostGame.unity
+++ b/Assets/Scenes/PostGame.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:7c1bbe694d33663c96391988b7b4e69027a71307724e12e85752bcd162542834
-size 34942
+oid sha256:9f6d043b0d737b156218d82153c0068bda1b8af7cf40d1acdf13adc7356e6ae8
+size 34859
diff --git a/Assets/Scenes/Startup.unity b/Assets/Scenes/Startup.unity
index 3f2050f35b..c819bfefd5 100644
--- a/Assets/Scenes/Startup.unity
+++ b/Assets/Scenes/Startup.unity
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:ea9671f269c2d6dba887663ac41841dc02c4d22d34e302dfcc6cba4c458a3cf1
-size 60038
+oid sha256:127974d557ea582f65053f54c1434fd719f74af4ad1fada904afe2a11227e99a
+size 61395
diff --git a/Assets/Scripts/ApplicationLifecycle/ApplicationController.cs b/Assets/Scripts/ApplicationLifecycle/ApplicationController.cs
index 499701fc2c..772b880b0c 100644
--- a/Assets/Scripts/ApplicationLifecycle/ApplicationController.cs
+++ b/Assets/Scripts/ApplicationLifecycle/ApplicationController.cs
@@ -7,7 +7,7 @@
 using Unity.BossRoom.Infrastructure;
 using Unity.BossRoom.UnityServices;
 using Unity.BossRoom.UnityServices.Auth;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.BossRoom.Utils;
 using Unity.Netcode;
 using UnityEngine;
@@ -29,8 +29,8 @@ public class ApplicationController : LifetimeScope
         [SerializeField]
         NetworkManager m_NetworkManager;
 
-        LocalLobby m_LocalLobby;
-        LobbyServiceFacade m_LobbyServiceFacade;
+        LocalSession m_LocalSession;
+        MultiplayerServicesFacade m_MultiplayerServicesFacade;
 
         IDisposable m_Subscriptions;
 
@@ -41,47 +41,47 @@ protected override void Configure(IContainerBuilder builder)
             builder.RegisterComponent(m_ConnectionManager);
             builder.RegisterComponent(m_NetworkManager);
 
-            //the following singletons represent the local representations of the lobby that we're in and the user that we are
-            //they can persist longer than the lifetime of the UI in MainMenu where we set up the lobby that we create or join
-            builder.Register(Lifetime.Singleton);
-            builder.Register(Lifetime.Singleton);
+            // The following singletons represent the local representations of the Session that we're in and the user that we are
+            // They can persist longer than the lifetime of the UI in MainMenu where we set up the Session that we create or join
+            builder.Register(Lifetime.Singleton);
+            builder.Register(Lifetime.Singleton);
 
             builder.Register(Lifetime.Singleton);
 
             builder.Register(Lifetime.Singleton);
 
-            //these message channels are essential and persist for the lifetime of the lobby and relay services
+            // These message channels are essential and persist for the lifetime of the Session and relay services
             // Registering as instance to prevent code stripping on iOS
             builder.RegisterInstance(new MessageChannel()).AsImplementedInterfaces();
             builder.RegisterInstance(new MessageChannel()).AsImplementedInterfaces();
             builder.RegisterInstance(new MessageChannel()).AsImplementedInterfaces();
             builder.RegisterInstance(new MessageChannel()).AsImplementedInterfaces();
 
-            //these message channels are essential and persist for the lifetime of the lobby and relay services
-            //they are networked so that the clients can subscribe to those messages that are published by the server
+            // These message channels are essential and persist for the lifetime of the Session and relay services
+            // They are networked so that the clients can subscribe to those messages that are published by the server
             builder.RegisterComponent(new NetworkedMessageChannel()).AsImplementedInterfaces();
             builder.RegisterComponent(new NetworkedMessageChannel()).AsImplementedInterfaces();
 #if UNITY_EDITOR || DEVELOPMENT_BUILD
             builder.RegisterComponent(new NetworkedMessageChannel()).AsImplementedInterfaces();
 #endif
 
-            //this message channel is essential and persists for the lifetime of the lobby and relay services
+            // This message channel is essential and persists for the lifetime of the Session and relay services
             builder.RegisterInstance(new MessageChannel()).AsImplementedInterfaces();
 
-            //buffered message channels hold the latest received message in buffer and pass to any new subscribers
-            builder.RegisterInstance(new BufferedMessageChannel()).AsImplementedInterfaces();
+            // Buffered message channels hold the latest received message in buffer and pass to any new subscribers
+            builder.RegisterInstance(new BufferedMessageChannel()).AsImplementedInterfaces();
 
-            //all the lobby service stuff, bound here so that it persists through scene loads
+            // All the Session service stuff, bound here so that it persists through scene loads
             builder.Register(Lifetime.Singleton); //a manager entity that allows us to do anonymous authentication with unity services
 
-            //LobbyServiceFacade is registered as entrypoint because it wants a callback after container is built to do it's initialization
-            builder.RegisterEntryPoint(Lifetime.Singleton).AsSelf();
+            // MultiplayerServicesFacade is registered as entrypoint because it wants a callback after container is built to do it's initialization
+            builder.RegisterEntryPoint(Lifetime.Singleton).AsSelf();
         }
 
         private void Start()
         {
-            m_LocalLobby = Container.Resolve();
-            m_LobbyServiceFacade = Container.Resolve();
+            m_LocalSession = Container.Resolve();
+            m_MultiplayerServicesFacade = Container.Resolve();
 
             var quitApplicationSub = Container.Resolve>();
 
@@ -103,24 +103,24 @@ protected override void OnDestroy()
                 m_Subscriptions.Dispose();
             }
 
-            if (m_LobbyServiceFacade != null)
+            if (m_MultiplayerServicesFacade != null)
             {
-                m_LobbyServiceFacade.EndTracking();
+                m_MultiplayerServicesFacade.EndTracking();
             }
 
             base.OnDestroy();
         }
 
         /// 
-        ///     In builds, if we are in a lobby and try to send a Leave request on application quit, it won't go through if we're quitting on the same frame.
+        ///     In builds, if we are in a Session and try to send a Leave request on application quit, it won't go through if we're quitting on the same frame.
         ///     So, we need to delay just briefly to let the request happen (though we don't need to wait for the result).
         /// 
         private IEnumerator LeaveBeforeQuit()
         {
-            // We want to quit anyways, so if anything happens while trying to leave the Lobby, log the exception then carry on
+            // We want to quit anyways, so if anything happens while trying to leave the Session, log the exception then carry on
             try
             {
-                m_LobbyServiceFacade.EndTracking();
+                m_MultiplayerServicesFacade.EndTracking();
             }
             catch (Exception e)
             {
@@ -135,7 +135,7 @@ private bool OnWantToQuit()
         {
             Application.wantsToQuit -= OnWantToQuit;
 
-            var canQuit = m_LocalLobby != null && string.IsNullOrEmpty(m_LocalLobby.LobbyID);
+            var canQuit = m_LocalSession != null && string.IsNullOrEmpty(m_LocalSession.SessionID);
             if (!canQuit)
             {
                 StartCoroutine(LeaveBeforeQuit());
diff --git a/Assets/Scripts/ApplicationLifecycle/Unity.BossRoom.ApplicationLifecycle.asmdef b/Assets/Scripts/ApplicationLifecycle/Unity.BossRoom.ApplicationLifecycle.asmdef
index bee46c4feb..c52c9e7de2 100644
--- a/Assets/Scripts/ApplicationLifecycle/Unity.BossRoom.ApplicationLifecycle.asmdef
+++ b/Assets/Scripts/ApplicationLifecycle/Unity.BossRoom.ApplicationLifecycle.asmdef
@@ -11,8 +11,7 @@
         "Unity.Multiplayer.Samples.Utilities",
         "Unity.BossRoom.Utils",
         "Unity.BossRoom.ConnectionManagement",
-        "VContainer",
-        "VContainer.EnableCodeGen"
+        "VContainer"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/Assets/Scripts/CameraUtils/CameraController.cs b/Assets/Scripts/CameraUtils/CameraController.cs
index 802e4e0e56..45eface2ac 100644
--- a/Assets/Scripts/CameraUtils/CameraController.cs
+++ b/Assets/Scripts/CameraUtils/CameraController.cs
@@ -1,4 +1,4 @@
-using Cinemachine;
+using Unity.Cinemachine;
 using UnityEngine;
 using UnityEngine.Assertions;
 
@@ -6,26 +6,36 @@ namespace Unity.BossRoom.CameraUtils
 {
     public class CameraController : MonoBehaviour
     {
-        private CinemachineFreeLook m_MainCamera;
+        const string k_CMCameraTag = "CMCamera";
 
         void Start()
         {
             AttachCamera();
         }
 
-        private void AttachCamera()
+        void AttachCamera()
         {
-            m_MainCamera = GameObject.FindObjectOfType();
-            Assert.IsNotNull(m_MainCamera, "CameraController.AttachCamera: Couldn't find gameplay freelook camera");
+            var cinemachineCameraGameObject = GameObject.FindGameObjectWithTag(k_CMCameraTag);
+            Assert.IsNotNull(cinemachineCameraGameObject);
 
-            if (m_MainCamera)
+            var cinemachineCamera = cinemachineCameraGameObject.GetComponent();
+            Assert.IsNotNull(cinemachineCamera, "CameraController.AttachCamera: Couldn't find gameplay CinemachineCamera");
+
+            if (cinemachineCamera != null)
             {
                 // camera body / aim
-                m_MainCamera.Follow = transform;
-                m_MainCamera.LookAt = transform;
+                cinemachineCamera.Follow = transform;
+                cinemachineCamera.LookAt = transform;
+            }
+
+            var cinemachineOrbitalFollow = cinemachineCameraGameObject.GetComponent();
+            Assert.IsNotNull(cinemachineOrbitalFollow, "CameraController.AttachCamera: Couldn't find gameplay CinemachineOrbitalFollow");
+
+            if (cinemachineOrbitalFollow != null)
+            {
                 // default rotation / zoom
-                m_MainCamera.m_Heading.m_Bias = 40f;
-                m_MainCamera.m_YAxis.Value = 0.5f;
+                cinemachineOrbitalFollow.HorizontalAxis.Value = 40f;
+                cinemachineOrbitalFollow.VerticalAxis.Value = 0.5f;
             }
         }
     }
diff --git a/Assets/Scripts/CameraUtils/Unity.BossRoom.CameraUtils.asmdef b/Assets/Scripts/CameraUtils/Unity.BossRoom.CameraUtils.asmdef
index ea57eaeb29..7ebc5de67a 100644
--- a/Assets/Scripts/CameraUtils/Unity.BossRoom.CameraUtils.asmdef
+++ b/Assets/Scripts/CameraUtils/Unity.BossRoom.CameraUtils.asmdef
@@ -2,7 +2,7 @@
     "name": "Unity.BossRoom.CameraUtils",
     "rootNamespace": "",
     "references": [
-        "Cinemachine"
+        "Unity.Cinemachine"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
@@ -13,4 +13,4 @@
     "defineConstraints": [],
     "versionDefines": [],
     "noEngineReferences": false
-}
+}
\ No newline at end of file
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionManager.cs b/Assets/Scripts/ConnectionManagement/ConnectionManager.cs
index 22068b3753..813618b54b 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionManager.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionManager.cs
@@ -93,8 +93,7 @@ void Start()
 
             m_CurrentState = m_Offline;
 
-            NetworkManager.OnClientConnectedCallback += OnClientConnectedCallback;
-            NetworkManager.OnClientDisconnectCallback += OnClientDisconnectCallback;
+            NetworkManager.OnConnectionEvent += OnConnectionEvent;
             NetworkManager.OnServerStarted += OnServerStarted;
             NetworkManager.ConnectionApprovalCallback += ApprovalCheck;
             NetworkManager.OnTransportFailure += OnTransportFailure;
@@ -103,8 +102,7 @@ void Start()
 
         void OnDestroy()
         {
-            NetworkManager.OnClientConnectedCallback -= OnClientConnectedCallback;
-            NetworkManager.OnClientDisconnectCallback -= OnClientDisconnectCallback;
+            NetworkManager.OnConnectionEvent -= OnConnectionEvent;
             NetworkManager.OnServerStarted -= OnServerStarted;
             NetworkManager.ConnectionApprovalCallback -= ApprovalCheck;
             NetworkManager.OnTransportFailure -= OnTransportFailure;
@@ -123,14 +121,17 @@ internal void ChangeState(ConnectionState nextState)
             m_CurrentState.Enter();
         }
 
-        void OnClientDisconnectCallback(ulong clientId)
+        void OnConnectionEvent(NetworkManager networkManager, ConnectionEventData connectionEventData)
         {
-            m_CurrentState.OnClientDisconnect(clientId);
-        }
-
-        void OnClientConnectedCallback(ulong clientId)
-        {
-            m_CurrentState.OnClientConnected(clientId);
+            switch (connectionEventData.EventType)
+            {
+                case ConnectionEvent.ClientConnected:
+                    m_CurrentState.OnClientConnected(connectionEventData.ClientId);
+                    break;
+                case ConnectionEvent.ClientDisconnected:
+                    m_CurrentState.OnClientDisconnect(connectionEventData.ClientId);
+                    break;
+            }
         }
 
         void OnServerStarted()
@@ -153,9 +154,9 @@ void OnServerStopped(bool _) // we don't need this parameter as the ConnectionSt
             m_CurrentState.OnServerStopped();
         }
 
-        public void StartClientLobby(string playerName)
+        public void StartClientSession(string playerName)
         {
-            m_CurrentState.StartClientLobby(playerName);
+            m_CurrentState.StartClientSession(playerName);
         }
 
         public void StartClientIp(string playerName, string ipaddress, int port)
@@ -163,9 +164,9 @@ public void StartClientIp(string playerName, string ipaddress, int port)
             m_CurrentState.StartClientIP(playerName, ipaddress, port);
         }
 
-        public void StartHostLobby(string playerName)
+        public void StartHostSession(string playerName)
         {
-            m_CurrentState.StartHostLobby(playerName);
+            m_CurrentState.StartHostSession(playerName);
         }
 
         public void StartHostIp(string playerName, string ipaddress, int port)
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionMethod.cs b/Assets/Scripts/ConnectionManagement/ConnectionMethod.cs
index 3a0b6087d0..1e343fa01e 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionMethod.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionMethod.cs
@@ -1,19 +1,16 @@
-using System;
 using System.Threading.Tasks;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.BossRoom.Utils;
 using Unity.Netcode.Transports.UTP;
-using Unity.Networking.Transport.Relay;
 using Unity.Services.Authentication;
 using Unity.Services.Core;
-using Unity.Services.Relay;
-using Unity.Services.Relay.Models;
 using UnityEngine;
 
 namespace Unity.BossRoom.ConnectionManagement
 {
     /// 
-    /// ConnectionMethod contains all setup needed to setup NGO to be ready to start a connection, either host or client side.
+    /// ConnectionMethod contains all setup needed to setup NGO to be ready to start a connection, either host or client
+    /// side.
     /// Please override this abstract class to add a new transport or way of connecting.
     /// 
     public abstract class ConnectionMethodBase
@@ -21,20 +18,18 @@ public abstract class ConnectionMethodBase
         protected ConnectionManager m_ConnectionManager;
         readonly ProfileManager m_ProfileManager;
         protected readonly string m_PlayerName;
-        protected const string k_DtlsConnType = "dtls";
 
         /// 
         /// Setup the host connection prior to starting the NetworkManager
         /// 
         /// 
-        public abstract Task SetupHostConnectionAsync();
-
+        public abstract void SetupHostConnection();
 
         /// 
         /// Setup the client connection prior to starting the NetworkManager
         /// 
         /// 
-        public abstract Task SetupClientConnectionAsync();
+        public abstract void SetupClientConnection();
 
         /// 
         /// Setup the client for reconnection prior to reconnecting
@@ -54,7 +49,7 @@ public ConnectionMethodBase(ConnectionManager connectionManager, ProfileManager
 
         protected void SetConnectionPayload(string playerId, string playerName)
         {
-            var payload = JsonUtility.ToJson(new ConnectionPayload()
+            var payload = JsonUtility.ToJson(new ConnectionPayload
             {
                 playerId = playerId,
                 playerName = playerName,
@@ -100,20 +95,20 @@ public ConnectionMethodIP(string ip, ushort port, ConnectionManager connectionMa
             m_ConnectionManager = connectionManager;
         }
 
-        public override async Task SetupClientConnectionAsync()
+        public override void SetupClientConnection()
         {
             SetConnectionPayload(GetPlayerId(), m_PlayerName);
             var utp = (UnityTransport)m_ConnectionManager.NetworkManager.NetworkConfig.NetworkTransport;
             utp.SetConnectionData(m_Ipaddress, m_Port);
         }
 
-        public override async Task<(bool success, bool shouldTryAgain)> SetupClientReconnectionAsync()
+        public override Task<(bool success, bool shouldTryAgain)> SetupClientReconnectionAsync()
         {
             // Nothing to do here
-            return (true, true);
+            return Task.FromResult((true, true));
         }
 
-        public override async Task SetupHostConnectionAsync()
+        public override void SetupHostConnection()
         {
             SetConnectionPayload(GetPlayerId(), m_PlayerName); // Need to set connection payload for host as well, as host is a client too
             var utp = (UnityTransport)m_ConnectionManager.NetworkManager.NetworkConfig.NetworkTransport;
@@ -122,90 +117,51 @@ public override async Task SetupHostConnectionAsync()
     }
 
     /// 
-    /// UTP's Relay connection setup using the Lobby integration
+    /// UTP's Relay connection setup using the Session integration
     /// 
     class ConnectionMethodRelay : ConnectionMethodBase
     {
-        LobbyServiceFacade m_LobbyServiceFacade;
-        LocalLobby m_LocalLobby;
+        MultiplayerServicesFacade m_MultiplayerServicesFacade;
 
-        public ConnectionMethodRelay(LobbyServiceFacade lobbyServiceFacade, LocalLobby localLobby, ConnectionManager connectionManager, ProfileManager profileManager, string playerName)
+        public ConnectionMethodRelay(MultiplayerServicesFacade multiplayerServicesFacade,
+            ConnectionManager connectionManager,
+            ProfileManager profileManager,
+            string playerName)
             : base(connectionManager, profileManager, playerName)
         {
-            m_LobbyServiceFacade = lobbyServiceFacade;
-            m_LocalLobby = localLobby;
+            m_MultiplayerServicesFacade = multiplayerServicesFacade;
             m_ConnectionManager = connectionManager;
         }
 
-        public override async Task SetupClientConnectionAsync()
+        public override void SetupClientConnection()
         {
-            Debug.Log("Setting up Unity Relay client");
-
             SetConnectionPayload(GetPlayerId(), m_PlayerName);
-
-            if (m_LobbyServiceFacade.CurrentUnityLobby == null)
-            {
-                throw new Exception("Trying to start relay while Lobby isn't set");
-            }
-
-            Debug.Log($"Setting Unity Relay client with join code {m_LocalLobby.RelayJoinCode}");
-
-            // Create client joining allocation from join code
-            var joinedAllocation = await RelayService.Instance.JoinAllocationAsync(m_LocalLobby.RelayJoinCode);
-            Debug.Log($"client: {joinedAllocation.ConnectionData[0]} {joinedAllocation.ConnectionData[1]}, " +
-                $"host: {joinedAllocation.HostConnectionData[0]} {joinedAllocation.HostConnectionData[1]}, " +
-                $"client: {joinedAllocation.AllocationId}");
-
-            await m_LobbyServiceFacade.UpdatePlayerDataAsync(joinedAllocation.AllocationId.ToString(), m_LocalLobby.RelayJoinCode);
-
-            // Configure UTP with allocation
-            var utp = (UnityTransport)m_ConnectionManager.NetworkManager.NetworkConfig.NetworkTransport;
-            utp.SetRelayServerData(new RelayServerData(joinedAllocation, k_DtlsConnType));
         }
 
         public override async Task<(bool success, bool shouldTryAgain)> SetupClientReconnectionAsync()
         {
-            if (m_LobbyServiceFacade.CurrentUnityLobby == null)
+            if (m_MultiplayerServicesFacade.CurrentUnitySession == null)
             {
-                Debug.Log("Lobby does not exist anymore, stopping reconnection attempts.");
+                Debug.Log("Session does not exist anymore, stopping reconnection attempts.");
                 return (false, false);
             }
 
-            // When using Lobby with Relay, if a user is disconnected from the Relay server, the server will notify the
-            // Lobby service and mark the user as disconnected, but will not remove them from the lobby. They then have
+            // When using Session with Relay, if a user is disconnected from the Relay server, the server will notify the
+            // Session service and mark the user as disconnected, but will not remove them from the Session. They then have
             // some time to attempt to reconnect (defined by the "Disconnect removal time" parameter on the dashboard),
-            // after which they will be removed from the lobby completely.
-            // See https://docs.unity.com/lobby/reconnect-to-lobby.html
-            var lobby = await m_LobbyServiceFacade.ReconnectToLobbyAsync();
-            var success = lobby != null;
-            Debug.Log(success ? "Successfully reconnected to Lobby." : "Failed to reconnect to Lobby.");
-            return (success, true); // return a success if reconnecting to lobby returns a lobby
+            // after which they will be removed from the Session completely.
+            // See https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual/join-session#Reconnect_to_a_session
+            var session = await m_MultiplayerServicesFacade.ReconnectToSessionAsync();
+            var success = session != null;
+            Debug.Log(success ? "Successfully reconnected to Session." : "Failed to reconnect to Session.");
+            return (success, true); // return a success if reconnecting to session returns a session
         }
 
-        public override async Task SetupHostConnectionAsync()
+        public override void SetupHostConnection()
         {
             Debug.Log("Setting up Unity Relay host");
 
             SetConnectionPayload(GetPlayerId(), m_PlayerName); // Need to set connection payload for host as well, as host is a client too
-
-            // Create relay allocation
-            Allocation hostAllocation = await RelayService.Instance.CreateAllocationAsync(m_ConnectionManager.MaxConnectedPlayers, region: null);
-            var joinCode = await RelayService.Instance.GetJoinCodeAsync(hostAllocation.AllocationId);
-
-            Debug.Log($"server: connection data: {hostAllocation.ConnectionData[0]} {hostAllocation.ConnectionData[1]}, " +
-                $"allocation ID:{hostAllocation.AllocationId}, region:{hostAllocation.Region}");
-
-            m_LocalLobby.RelayJoinCode = joinCode;
-
-            // next line enables lobby and relay services integration
-            await m_LobbyServiceFacade.UpdateLobbyDataAndUnlockAsync();
-            await m_LobbyServiceFacade.UpdatePlayerDataAsync(hostAllocation.AllocationIdBytes.ToString(), joinCode);
-
-            // Setup UTP with relay connection info
-            var utp = (UnityTransport)m_ConnectionManager.NetworkManager.NetworkConfig.NetworkTransport;
-            utp.SetRelayServerData(new RelayServerData(hostAllocation, k_DtlsConnType)); // This is with DTLS enabled for a secure connection
-
-            Debug.Log($"Created relay allocation with join code {m_LocalLobby.RelayJoinCode}");
         }
     }
 }
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectedState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectedState.cs
index 9d4e0e0f1a..0ac5e31de0 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectedState.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectedState.cs
@@ -1,4 +1,4 @@
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using UnityEngine;
 using VContainer;
 
@@ -11,13 +11,13 @@ namespace Unity.BossRoom.ConnectionManagement
     class ClientConnectedState : OnlineState
     {
         [Inject]
-        protected LobbyServiceFacade m_LobbyServiceFacade;
+        protected MultiplayerServicesFacade m_MultiplayerServicesFacade;
 
         public override void Enter()
         {
-            if (m_LobbyServiceFacade.CurrentUnityLobby != null)
+            if (m_MultiplayerServicesFacade.CurrentUnitySession != null)
             {
-                m_LobbyServiceFacade.BeginTracking();
+                m_MultiplayerServicesFacade.BeginTracking();
             }
         }
 
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectingState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectingState.cs
index fc2fd12e4b..8f2d6625ab 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectingState.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectingState.cs
@@ -51,21 +51,22 @@ void StartingClientFailed()
                 var connectStatus = JsonUtility.FromJson(disconnectReason);
                 m_ConnectStatusPublisher.Publish(connectStatus);
             }
+
             m_ConnectionManager.ChangeState(m_ConnectionManager.m_Offline);
         }
 
-
-        internal async Task ConnectClientAsync()
+        internal void ConnectClientAsync()
         {
             try
             {
-                // Setup NGO with current connection method
-                await m_ConnectionMethod.SetupClientConnectionAsync();
+                m_ConnectionMethod.SetupClientConnection();
 
-                // NGO's StartClient launches everything
-                if (!m_ConnectionManager.NetworkManager.StartClient())
+                if (m_ConnectionMethod is ConnectionMethodIP)
                 {
-                    throw new Exception("NetworkManager StartClient failed");
+                    if (!m_ConnectionManager.NetworkManager.StartClient())
+                    {
+                        throw new Exception("NetworkManager StartClient failed");
+                    }
                 }
             }
             catch (Exception e)
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/ClientReconnectingState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/ClientReconnectingState.cs
index 3b7d0397e8..48689712a2 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionState/ClientReconnectingState.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionState/ClientReconnectingState.cs
@@ -108,8 +108,8 @@ IEnumerator ReconnectCoroutine()
             m_ReconnectMessagePublisher.Publish(new ReconnectMessage(m_NbAttempts, m_ConnectionManager.NbReconnectAttempts));
 
             // If first attempt, wait some time before attempting to reconnect to give time to services to update
-            // (i.e. if in a Lobby and the host shuts down unexpectedly, this will give enough time for the lobby to be
-            // properly deleted so that we don't reconnect to an empty lobby
+            // (i.e. if in a Session and the host shuts down unexpectedly, this will give enough time for the Session to be
+            // properly deleted so that we don't reconnect to an empty Session
             if (m_NbAttempts == 0)
             {
                 yield return new WaitForSeconds(k_TimeBeforeFirstAttempt);
@@ -122,8 +122,7 @@ IEnumerator ReconnectCoroutine()
             if (!reconnectingSetupTask.IsFaulted && reconnectingSetupTask.Result.success)
             {
                 // If this fails, the OnClientDisconnect callback will be invoked by Netcode
-                var connectingTask = ConnectClientAsync();
-                yield return new WaitUntil(() => connectingTask.IsCompleted);
+                ConnectClientAsync();
             }
             else
             {
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/ConnectionState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/ConnectionState.cs
index eed9a87dad..a7d8eecc58 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionState/ConnectionState.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionState/ConnectionState.cs
@@ -28,11 +28,11 @@ public virtual void OnServerStarted() { }
 
         public virtual void StartClientIP(string playerName, string ipaddress, int port) { }
 
-        public virtual void StartClientLobby(string playerName) { }
+        public virtual void StartClientSession(string playerName) { }
 
         public virtual void StartHostIP(string playerName, string ipaddress, int port) { }
 
-        public virtual void StartHostLobby(string playerName) { }
+        public virtual void StartHostSession(string playerName) { }
 
         public virtual void OnUserRequestedShutdown() { }
 
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs
index b0645e21eb..7227fddba2 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionState/HostingState.cs
@@ -1,6 +1,6 @@
 using System;
 using Unity.BossRoom.Infrastructure;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.Multiplayer.Samples.BossRoom;
 using Unity.Multiplayer.Samples.Utilities;
 using Unity.Netcode;
@@ -16,7 +16,7 @@ namespace Unity.BossRoom.ConnectionManagement
     class HostingState : OnlineState
     {
         [Inject]
-        LobbyServiceFacade m_LobbyServiceFacade;
+        MultiplayerServicesFacade m_MultiplayerServicesFacade;
         [Inject]
         IPublisher m_ConnectionEventPublisher;
 
@@ -29,9 +29,9 @@ public override void Enter()
             //may do this differently.
             SceneLoaderWrapper.Instance.LoadScene("CharSelect", useNetworkSceneManager: true);
 
-            if (m_LobbyServiceFacade.CurrentUnityLobby != null)
+            if (m_MultiplayerServicesFacade.CurrentUnitySession != null)
             {
-                m_LobbyServiceFacade.BeginTracking();
+                m_MultiplayerServicesFacade.BeginTracking();
             }
         }
 
@@ -139,9 +139,9 @@ public override void ApprovalCheck(NetworkManager.ConnectionApprovalRequest requ
 
             response.Approved = false;
             response.Reason = JsonUtility.ToJson(gameReturnStatus);
-            if (m_LobbyServiceFacade.CurrentUnityLobby != null)
+            if (m_MultiplayerServicesFacade.CurrentUnitySession != null)
             {
-                m_LobbyServiceFacade.RemovePlayerFromLobbyAsync(connectionPayload.playerId);
+                m_MultiplayerServicesFacade.RemovePlayerFromSessionAsync(connectionPayload.playerId);
             }
         }
 
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs
index 34dc047df0..cc224d872c 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs
@@ -1,6 +1,6 @@
 using System;
 using Unity.BossRoom.ConnectionManagement;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.BossRoom.Utils;
 using Unity.Multiplayer.Samples.Utilities;
 using UnityEngine;
@@ -16,17 +16,17 @@ namespace UUnity.BossRoom.ConnectionManagement
     class OfflineState : ConnectionState
     {
         [Inject]
-        LobbyServiceFacade m_LobbyServiceFacade;
+        MultiplayerServicesFacade m_MultiplayerServicesFacade;
         [Inject]
         ProfileManager m_ProfileManager;
         [Inject]
-        LocalLobby m_LocalLobby;
+        LocalSession m_LocalSession;
 
         const string k_MainMenuSceneName = "MainMenu";
 
         public override void Enter()
         {
-            m_LobbyServiceFacade.EndTracking();
+            m_MultiplayerServicesFacade.EndTracking();
             m_ConnectionManager.NetworkManager.Shutdown();
             if (SceneManager.GetActiveScene().name != k_MainMenuSceneName)
             {
@@ -43,9 +43,9 @@ public override void StartClientIP(string playerName, string ipaddress, int port
             m_ConnectionManager.ChangeState(m_ConnectionManager.m_ClientConnecting.Configure(connectionMethod));
         }
 
-        public override void StartClientLobby(string playerName)
+        public override void StartClientSession(string playerName)
         {
-            var connectionMethod = new ConnectionMethodRelay(m_LobbyServiceFacade, m_LocalLobby, m_ConnectionManager, m_ProfileManager, playerName);
+            var connectionMethod = new ConnectionMethodRelay(m_MultiplayerServicesFacade, m_ConnectionManager, m_ProfileManager, playerName);
             m_ConnectionManager.m_ClientReconnecting.Configure(connectionMethod);
             m_ConnectionManager.ChangeState(m_ConnectionManager.m_ClientConnecting.Configure(connectionMethod));
         }
@@ -56,9 +56,9 @@ public override void StartHostIP(string playerName, string ipaddress, int port)
             m_ConnectionManager.ChangeState(m_ConnectionManager.m_StartingHost.Configure(connectionMethod));
         }
 
-        public override void StartHostLobby(string playerName)
+        public override void StartHostSession(string playerName)
         {
-            var connectionMethod = new ConnectionMethodRelay(m_LobbyServiceFacade, m_LocalLobby, m_ConnectionManager, m_ProfileManager, playerName);
+            var connectionMethod = new ConnectionMethodRelay(m_MultiplayerServicesFacade, m_ConnectionManager, m_ProfileManager, playerName);
             m_ConnectionManager.ChangeState(m_ConnectionManager.m_StartingHost.Configure(connectionMethod));
         }
     }
diff --git a/Assets/Scripts/ConnectionManagement/ConnectionState/StartingHostState.cs b/Assets/Scripts/ConnectionManagement/ConnectionState/StartingHostState.cs
index 9008ade098..502e5f5cdc 100644
--- a/Assets/Scripts/ConnectionManagement/ConnectionState/StartingHostState.cs
+++ b/Assets/Scripts/ConnectionManagement/ConnectionState/StartingHostState.cs
@@ -1,6 +1,6 @@
 using System;
 using Unity.BossRoom.Infrastructure;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.Multiplayer.Samples.BossRoom;
 using Unity.Netcode;
 using UnityEngine;
@@ -15,9 +15,9 @@ namespace Unity.BossRoom.ConnectionManagement
     class StartingHostState : OnlineState
     {
         [Inject]
-        LobbyServiceFacade m_LobbyServiceFacade;
+        MultiplayerServicesFacade m_MultiplayerServicesFacade;
         [Inject]
-        LocalLobby m_LocalLobby;
+        LocalSession m_LocalSession;
         ConnectionMethodBase m_ConnectionMethod;
 
         public StartingHostState Configure(ConnectionMethodBase baseConnectionMethod)
@@ -43,6 +43,7 @@ public override void ApprovalCheck(NetworkManager.ConnectionApprovalRequest requ
         {
             var connectionData = request.Payload;
             var clientId = request.ClientNetworkId;
+
             // This happens when starting as a host, before the end of the StartHost call. In that case, we simply approve ourselves.
             if (clientId == m_ConnectionManager.NetworkManager.LocalClientId)
             {
@@ -63,16 +64,19 @@ public override void OnServerStopped()
             StartHostFailed();
         }
 
-        async void StartHost()
+        void StartHost()
         {
             try
             {
-                await m_ConnectionMethod.SetupHostConnectionAsync();
+                m_ConnectionMethod.SetupHostConnection();
 
-                // NGO's StartHost launches everything
-                if (!m_ConnectionManager.NetworkManager.StartHost())
+                if (m_ConnectionMethod is ConnectionMethodIP)
                 {
-                    StartHostFailed();
+                    // NGO's StartHost launches everything
+                    if (!m_ConnectionManager.NetworkManager.StartHost())
+                    {
+                        StartHostFailed();
+                    }
                 }
             }
             catch (Exception)
diff --git a/Assets/Scripts/ConnectionManagement/Unity.BossRoom.ConnectionManagement.asmdef b/Assets/Scripts/ConnectionManagement/Unity.BossRoom.ConnectionManagement.asmdef
index 0d83eed239..38d9fd85d9 100644
--- a/Assets/Scripts/ConnectionManagement/Unity.BossRoom.ConnectionManagement.asmdef
+++ b/Assets/Scripts/ConnectionManagement/Unity.BossRoom.ConnectionManagement.asmdef
@@ -9,10 +9,9 @@
         "Unity.Services.Core",
         "Unity.Services.Authentication",
         "Unity.BossRoom.Utils",
-        "Unity.Services.Lobbies",
         "Unity.Networking.Transport",
         "VContainer",
-        "Unity.Services.Relay"
+        "Unity.Services.Multiplayer"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
@@ -23,4 +22,4 @@
     "defineConstraints": [],
     "versionDefines": [],
     "noEngineReferences": false
-}
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/Readme/Readme.cs b/Assets/Scripts/Editor/Readme/Readme.cs
deleted file mode 100644
index b661fe152f..0000000000
--- a/Assets/Scripts/Editor/Readme/Readme.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using UnityEngine;
-
-namespace Unity.BossRoom.Editor
-{
-    /// 
-    /// Custom readme class based on the readme created for URP. For more context, see:
-    /// https://github.com/Unity-Technologies/Graphics/tree/master/com.unity.template-universal
-    /// 
-    [CreateAssetMenu]
-    public class Readme : ScriptableObject
-    {
-        public Texture2D icon;
-        public string title;
-        public Section[] sections;
-        public bool loadedLayout;
-
-        [Serializable]
-        public class Section
-        {
-            public string heading;
-            public string text;
-            public string linkText;
-            public string url;
-        }
-    }
-}
diff --git a/Assets/Scripts/Editor/Readme/Readme.cs.meta b/Assets/Scripts/Editor/Readme/Readme.cs.meta
deleted file mode 100644
index 5ad628cfa0..0000000000
--- a/Assets/Scripts/Editor/Readme/Readme.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 5ce0e387261ddc34ba81ca7f2f1f7f73
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences:
-  - icon: {fileID: 2800000, guid: d4743ba2e2a59f946b2125c074582ce7, type: 3}
-  executionOrder: 0
-  icon: {fileID: 2800000, guid: a186f8a87ca4f4d3aa864638ad5dfb65, type: 3}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Assets/Scripts/Editor/Readme/ReadmeEditor.cs b/Assets/Scripts/Editor/Readme/ReadmeEditor.cs
deleted file mode 100644
index e5a6261831..0000000000
--- a/Assets/Scripts/Editor/Readme/ReadmeEditor.cs
+++ /dev/null
@@ -1,187 +0,0 @@
-using UnityEngine;
-using UnityEditor;
-using System;
-using System.IO;
-using System.Reflection;
-
-namespace Unity.BossRoom.Editor
-{
-    /// 
-    /// Custom readme editor window based on the readme created for URP. For more context, see:
-    /// https://github.com/Unity-Technologies/Graphics/tree/master/com.unity.template-universal
-    /// 
-    [CustomEditor(typeof(Readme))]
-    [InitializeOnLoad]
-    public class ReadmeEditor : UnityEditor.Editor
-    {
-        const string k_ShowedReadmeSessionStateName = "ReadmeEditor.showedReadme";
-
-        const float k_Space = 16f;
-
-        bool m_Initialized;
-
-        [SerializeField]
-        GUIStyle m_LinkStyle;
-
-        GUIStyle LinkStyle
-        {
-            get { return m_LinkStyle; }
-        }
-
-        [SerializeField]
-        GUIStyle m_TitleStyle;
-
-        GUIStyle TitleStyle
-        {
-            get { return m_TitleStyle; }
-        }
-
-        [SerializeField]
-        GUIStyle m_HeadingStyle;
-
-        GUIStyle HeadingStyle
-        {
-            get { return m_HeadingStyle; }
-        }
-
-        [SerializeField]
-        GUIStyle m_BodyStyle;
-
-        GUIStyle BodyStyle
-        {
-            get { return m_BodyStyle; }
-        }
-
-        static ReadmeEditor()
-        {
-            EditorApplication.delayCall += SelectReadmeAutomatically;
-        }
-
-        static void SelectReadmeAutomatically()
-        {
-            if (!SessionState.GetBool(k_ShowedReadmeSessionStateName, false))
-            {
-                var readme = SelectReadme();
-                SessionState.SetBool(k_ShowedReadmeSessionStateName, true);
-
-                if (readme && !readme.loadedLayout)
-                {
-                    LoadLayout();
-                    readme.loadedLayout = true;
-                }
-            }
-        }
-
-        static void LoadLayout()
-        {
-            var assembly = typeof(EditorApplication).Assembly;
-            var windowLayoutType = assembly.GetType("UnityEditor.WindowLayout", true);
-            var method = windowLayoutType.GetMethod("LoadWindowLayout", BindingFlags.Public | BindingFlags.Static);
-            method?.Invoke(null, new object[] { Path.Combine(Application.dataPath, "TutorialInfo/Layout.wlt"), false });
-        }
-
-        [MenuItem("Boss Room/Show Sample Instructions")]
-        static Readme SelectReadme()
-        {
-            var ids = AssetDatabase.FindAssets("Readme t:Readme");
-            if (ids.Length == 1)
-            {
-                var readmeObject = AssetDatabase.LoadMainAssetAtPath(AssetDatabase.GUIDToAssetPath(ids[0]));
-
-                Selection.objects = new UnityEngine.Object[] { readmeObject };
-
-                return (Readme)readmeObject;
-            }
-            else
-            {
-                Debug.Log("Couldn't find a readme");
-                return null;
-            }
-        }
-
-        protected override void OnHeaderGUI()
-        {
-            var readme = (Readme)target;
-            Init();
-
-            var iconWidth = Mathf.Min(EditorGUIUtility.currentViewWidth / 3f - 20f, 128f);
-
-            GUILayout.BeginHorizontal("In BigTitle");
-            {
-                GUILayout.Label(readme.icon, GUILayout.Width(iconWidth), GUILayout.Height(iconWidth));
-                GUILayout.Label(readme.title, TitleStyle);
-            }
-            GUILayout.EndHorizontal();
-        }
-
-        public override void OnInspectorGUI()
-        {
-            var readme = (Readme)target;
-            Init();
-
-            foreach (var section in readme.sections)
-            {
-                if (!string.IsNullOrEmpty(section.heading))
-                {
-                    GUILayout.Label(section.heading, HeadingStyle);
-                }
-
-                if (!string.IsNullOrEmpty(section.text))
-                {
-                    GUILayout.Label(section.text, BodyStyle);
-                }
-
-                if (!string.IsNullOrEmpty(section.linkText))
-                {
-                    if (LinkLabel(new GUIContent(section.linkText)))
-                    {
-                        Application.OpenURL(section.url);
-                    }
-                }
-
-                GUILayout.Space(k_Space);
-            }
-        }
-
-
-
-        void Init()
-        {
-            if (m_Initialized)
-                return;
-            m_BodyStyle = new GUIStyle(EditorStyles.label);
-            m_BodyStyle.wordWrap = true;
-            m_BodyStyle.fontSize = 14;
-
-            m_TitleStyle = new GUIStyle(m_BodyStyle);
-            m_TitleStyle.fontSize = 26;
-
-            m_HeadingStyle = new GUIStyle(m_BodyStyle);
-            m_HeadingStyle.fontSize = 18;
-
-            m_LinkStyle = new GUIStyle(m_BodyStyle);
-            m_LinkStyle.wordWrap = false;
-
-            // Match selection color which works nicely for both light and dark skins
-            m_LinkStyle.normal.textColor = new Color(0x00 / 255f, 0x78 / 255f, 0xDA / 255f, 1f);
-            m_LinkStyle.stretchWidth = false;
-
-            m_Initialized = true;
-        }
-
-        bool LinkLabel(GUIContent label, params GUILayoutOption[] options)
-        {
-            var position = GUILayoutUtility.GetRect(label, LinkStyle, options);
-
-            Handles.BeginGUI();
-            Handles.color = LinkStyle.normal.textColor;
-            Handles.DrawLine(new Vector3(position.xMin, position.yMax), new Vector3(position.xMax, position.yMax));
-            Handles.color = Color.white;
-            Handles.EndGUI();
-
-            EditorGUIUtility.AddCursorRect(position, MouseCursor.Link);
-
-            return GUI.Button(position, label, LinkStyle);
-        }
-    }
-}
diff --git a/Assets/Scripts/Gameplay/Action/ActionUtils.cs b/Assets/Scripts/Gameplay/Action/ActionUtils.cs
index 19ed37412d..b3d39dc6a7 100644
--- a/Assets/Scripts/Gameplay/Action/ActionUtils.cs
+++ b/Assets/Scripts/Gameplay/Action/ActionUtils.cs
@@ -30,20 +30,35 @@ public static class ActionUtils
         const float k_VeryCloseTeleportRange = k_CloseDistanceOffset + 1;
 
         /// 
-        /// Does a melee foe hit detect.
+        /// Detects friends and/or foes near us.
         /// 
-        /// true if the attacker is an NPC (and therefore should hit PCs). False for the reverse.
+        /// true if we should detect PCs
+        /// true if we should detect NPCs
         /// The collider of the attacking GameObject.
-        /// The range in meters to check for foes.
+        /// The range in meters to check.
+        /// The radius in meters to check.
         /// Place an uninitialized RayCastHit[] ref in here. It will be set to the results array. 
-        /// 
-        /// This method does not alloc. It returns a maximum of 4 results. Consume the results immediately, as the array will be overwritten with
-        /// the next similar query.
-        /// 
-        /// Total number of foes encountered. 
-        public static int DetectMeleeFoe(bool isNPC, Collider attacker, float range, out RaycastHit[] results)
+        /// 
+        public static int DetectNearbyEntitiesUseSphere(bool wantPcs, bool wantNpcs, Collider attacker, float range, float radius, out RaycastHit[] results)
         {
-            return DetectNearbyEntities(isNPC, !isNPC, attacker, range, out results);
+            var myBounds = attacker.bounds;
+
+            if (s_PCLayer == -1)
+                s_PCLayer = LayerMask.NameToLayer("PCs");
+            if (s_NpcLayer == -1)
+                s_NpcLayer = LayerMask.NameToLayer("NPCs");
+
+            int mask = 0;
+            if (wantPcs)
+                mask |= (1 << s_PCLayer);
+            if (wantNpcs)
+                mask |= (1 << s_NpcLayer);
+
+            int numResults = Physics.SphereCastNonAlloc(attacker.transform.position, radius,
+                attacker.transform.forward, s_Hits, range, mask);
+
+            results = s_Hits;
+            return numResults;
         }
 
         /// 
diff --git a/Assets/Scripts/Gameplay/Action/ConcreteActions/AOEAction.cs b/Assets/Scripts/Gameplay/Action/ConcreteActions/AOEAction.cs
index ac32fa0721..4550d810ab 100644
--- a/Assets/Scripts/Gameplay/Action/ConcreteActions/AOEAction.cs
+++ b/Assets/Scripts/Gameplay/Action/ConcreteActions/AOEAction.cs
@@ -69,7 +69,7 @@ private void PerformAoE(ServerCharacter parent)
                 if (enemy != null)
                 {
                     // actually deal the damage
-                    enemy.ReceiveHP(parent, -Config.Amount);
+                    enemy.ReceiveHitPoints(parent, -Config.Amount);
                 }
             }
         }
diff --git a/Assets/Scripts/Gameplay/Action/ConcreteActions/DashAttackAction.cs b/Assets/Scripts/Gameplay/Action/ConcreteActions/DashAttackAction.cs
index 4cde3d5229..e8cb8b6709 100644
--- a/Assets/Scripts/Gameplay/Action/ConcreteActions/DashAttackAction.cs
+++ b/Assets/Scripts/Gameplay/Action/ConcreteActions/DashAttackAction.cs
@@ -98,12 +98,12 @@ private void PerformMeleeAttack(ServerCharacter parent)
             // perform a typical melee-hit. But note that we are using the Radius field for range, not the Range field!
             IDamageable foe = MeleeAction.GetIdealMeleeFoe(Config.IsFriendly ^ parent.IsNpc,
                 parent.physicsWrapper.DamageCollider,
-                                                            Config.Radius,
+                                                            Config.Radius, 0.0f,
                                                             (Data.TargetIds != null && Data.TargetIds.Length > 0 ? Data.TargetIds[0] : 0));
 
             if (foe != null)
             {
-                foe.ReceiveHP(parent, -Config.Amount);
+                foe.ReceiveHitPoints(parent, -Config.Amount);
             }
         }
 
diff --git a/Assets/Scripts/Gameplay/Action/ConcreteActions/FXProjectileTargetedAction.cs b/Assets/Scripts/Gameplay/Action/ConcreteActions/FXProjectileTargetedAction.cs
index 2cbf68078a..112ffe3ca6 100644
--- a/Assets/Scripts/Gameplay/Action/ConcreteActions/FXProjectileTargetedAction.cs
+++ b/Assets/Scripts/Gameplay/Action/ConcreteActions/FXProjectileTargetedAction.cs
@@ -74,7 +74,7 @@ public override bool OnUpdate(ServerCharacter clientCharacter)
                 m_ImpactedTarget = true;
                 if (m_DamageableTarget != null)
                 {
-                    m_DamageableTarget.ReceiveHP(clientCharacter, -Config.Projectiles[0].Damage);
+                    m_DamageableTarget.ReceiveHitPoints(clientCharacter, -Config.Projectiles[0].Damage);
                 }
             }
             return true;
diff --git a/Assets/Scripts/Gameplay/Action/ConcreteActions/MeleeAction.cs b/Assets/Scripts/Gameplay/Action/ConcreteActions/MeleeAction.cs
index b19f26b9d0..6d21b62fa1 100644
--- a/Assets/Scripts/Gameplay/Action/ConcreteActions/MeleeAction.cs
+++ b/Assets/Scripts/Gameplay/Action/ConcreteActions/MeleeAction.cs
@@ -72,7 +72,7 @@ public override bool OnUpdate(ServerCharacter clientCharacter)
                 var foe = DetectFoe(clientCharacter, m_ProvisionalTarget);
                 if (foe != null)
                 {
-                    foe.ReceiveHP(clientCharacter, -Config.Amount);
+                    foe.ReceiveHitPoints(clientCharacter, -Config.Amount);
                 }
             }
 
@@ -85,7 +85,7 @@ public override bool OnUpdate(ServerCharacter clientCharacter)
         /// 
         private IDamageable DetectFoe(ServerCharacter parent, ulong foeHint = 0)
         {
-            return GetIdealMeleeFoe(Config.IsFriendly ^ parent.IsNpc, parent.physicsWrapper.DamageCollider, Config.Range, foeHint);
+            return GetIdealMeleeFoe(Config.IsFriendly ^ parent.IsNpc, parent.physicsWrapper.DamageCollider, Config.Range, Config.Radius, foeHint);
         }
 
         /// 
@@ -96,25 +96,48 @@ private IDamageable DetectFoe(ServerCharacter parent, ulong foeHint = 0)
         /// true if the attacker is an NPC (and therefore should hit PCs). False for the reverse.
         /// The collider of the attacking GameObject.
         /// The range in meters to check for foes.
+        /// The radius in meters to check for foes.
         /// The NetworkObjectId of our preferred foe, or 0 if no preference
         /// ideal target's IDamageable, or null if no valid target found
-        public static IDamageable GetIdealMeleeFoe(bool isNPC, Collider ourCollider, float meleeRange, ulong preferredTargetNetworkId)
+        /// 
+        /// If a Radius value is set (greater than 0), collision checking will be done with a Sphere the size of the Radius, not the size of the Box.
+        /// Also, if multiple targets collide as a result, the target with the highest total damage is prioritized.
+        /// 
+        public static IDamageable GetIdealMeleeFoe(bool isNPC, Collider ourCollider, float meleeRange, float meleeRadius, ulong preferredTargetNetworkId)
         {
             RaycastHit[] results;
-            int numResults = ActionUtils.DetectMeleeFoe(isNPC, ourCollider, meleeRange, out results);
+            int numResults = 0.0f < meleeRadius
+                ? ActionUtils.DetectNearbyEntitiesUseSphere(isNPC, !isNPC, ourCollider, meleeRange, meleeRadius, out results)
+                : ActionUtils.DetectNearbyEntities(isNPC, !isNPC, ourCollider, meleeRange, out results);
 
             IDamageable foundFoe = null;
 
             //everything that got hit by the raycast should have an IDamageable component, so we can retrieve that and see if they're appropriate targets.
             //we always prefer the hinted foe. If he's still in range, he should take the damage, because he's who the client visualization
             //system will play the hit-react on (in case there's any ambiguity).
+            //if that is not the case, we prioritize the target with the highest total damage.
+            int maxDamage = int.MinValue;
+
             for (int i = 0; i < numResults; i++)
             {
                 var damageable = results[i].collider.GetComponent();
-                if (damageable != null && damageable.IsDamageable() &&
-                    (damageable.NetworkObjectId == preferredTargetNetworkId || foundFoe == null))
+                if (damageable == null || !damageable.IsDamageable())
+                {
+                    continue;
+                }
+
+                if (damageable.NetworkObjectId == preferredTargetNetworkId)
+                {
+                    foundFoe = damageable;
+                    maxDamage = int.MaxValue;
+                    continue;
+                }
+
+                var totalDamage = damageable.GetTotalDamage();
+                if (foundFoe == null || maxDamage < totalDamage)
                 {
                     foundFoe = damageable;
+                    maxDamage = totalDamage;
                 }
             }
 
diff --git a/Assets/Scripts/Gameplay/Action/ConcreteActions/TrampleAction.cs b/Assets/Scripts/Gameplay/Action/ConcreteActions/TrampleAction.cs
index 70fd601ab6..a290037e69 100644
--- a/Assets/Scripts/Gameplay/Action/ConcreteActions/TrampleAction.cs
+++ b/Assets/Scripts/Gameplay/Action/ConcreteActions/TrampleAction.cs
@@ -172,7 +172,7 @@ private void CollideWithVictim(ServerCharacter parent, ServerCharacter victim)
 
                 if (victim.gameObject.TryGetComponent(out IDamageable damageable))
                 {
-                    damageable.ReceiveHP(parent, -damage);
+                    damageable.ReceiveHitPoints(parent, -damage);
                 }
             }
 
@@ -209,7 +209,7 @@ private void Collide(ServerCharacter parent, Collider collider)
                 var damageable = collider.gameObject.GetComponent();
                 if (damageable != null)
                 {
-                    damageable.ReceiveHP(parent, -Config.SplashDamage);
+                    damageable.ReceiveHitPoints(parent, -Config.SplashDamage);
 
                     // lastly, a special case: if the trampler runs into certain breakables, they are stunned!
                     if ((damageable.GetSpecialDamageFlags() & IDamageable.SpecialDamageFlags.StunOnTrample) == IDamageable.SpecialDamageFlags.StunOnTrample)
diff --git a/Assets/Scripts/Gameplay/Action/Input/AoeActionInput.cs b/Assets/Scripts/Gameplay/Action/Input/AoeActionInput.cs
index 68a6ee1dba..9e6b6b0e7f 100644
--- a/Assets/Scripts/Gameplay/Action/Input/AoeActionInput.cs
+++ b/Assets/Scripts/Gameplay/Action/Input/AoeActionInput.cs
@@ -1,6 +1,7 @@
 using Unity.BossRoom.Gameplay.GameplayObjects;
 using UnityEngine;
 using UnityEngine.AI;
+using UnityEngine.InputSystem;
 
 namespace Unity.BossRoom.Gameplay.Actions
 {
@@ -19,6 +20,12 @@ public class AoeActionInput : BaseActionInput
         [SerializeField]
         GameObject m_OutOfRangeVisualization;
 
+        [SerializeField]
+        InputActionReference m_PointAction;
+
+        [SerializeField]
+        InputActionReference m_TargetAction;
+
         Camera m_Camera;
 
         //The general action system works on MouseDown events (to support Charged Actions), but that means that if we only wait for
@@ -44,7 +51,8 @@ void Start()
 
         void Update()
         {
-            if (PlaneRaycast(k_Plane, m_Camera.ScreenPointToRay(Input.mousePosition), out Vector3 pointOnPlane) &&
+            // TODO: convert to mouse position using new input system
+            if (PlaneRaycast(k_Plane, m_Camera.ScreenPointToRay(m_PointAction.action.ReadValue()), out Vector3 pointOnPlane) &&
                 NavMesh.SamplePosition(pointOnPlane, out m_NavMeshHit, 2f, NavMesh.AllAreas))
             {
                 transform.position = m_NavMeshHit.position;
@@ -56,12 +64,12 @@ void Update()
             m_OutOfRangeVisualization.SetActive(!isInRange);
 
             // wait for the player to click down and then release the mouse button before actually taking the input
-            if (Input.GetMouseButtonDown(0))
+            if (m_TargetAction.action.WasPressedThisFrame())
             {
                 m_ReceivedMouseDownEvent = true;
             }
 
-            if (Input.GetMouseButtonUp(0) && m_ReceivedMouseDownEvent)
+            if (m_TargetAction.action.WasReleasedThisFrame() && m_ReceivedMouseDownEvent)
             {
                 if (isInRange)
                 {
@@ -74,6 +82,7 @@ void Update()
                     };
                     m_SendInput(data);
                 }
+
                 Destroy(gameObject);
                 return;
             }
diff --git a/Assets/Scripts/Gameplay/Configuration/NameGenerationData.cs b/Assets/Scripts/Gameplay/Configuration/NameGenerationData.cs
index 141ba18176..6eb68de73b 100644
--- a/Assets/Scripts/Gameplay/Configuration/NameGenerationData.cs
+++ b/Assets/Scripts/Gameplay/Configuration/NameGenerationData.cs
@@ -1,4 +1,3 @@
-using System;
 using UnityEngine;
 using Random = UnityEngine.Random;
 
@@ -19,8 +18,8 @@ public class NameGenerationData : ScriptableObject
 
         public string GenerateName()
         {
-            var firstWord = FirstWordList[Random.Range(0, FirstWordList.Length - 1)];
-            var secondWord = SecondWordList[Random.Range(0, SecondWordList.Length - 1)];
+            var firstWord = FirstWordList[Random.Range(0, FirstWordList.Length)];
+            var secondWord = SecondWordList[Random.Range(0, SecondWordList.Length)];
 
             return firstWord + " " + secondWord;
         }
diff --git a/Assets/Scripts/Gameplay/Configuration/VisualizationConfiguration.cs b/Assets/Scripts/Gameplay/Configuration/VisualizationConfiguration.cs
index 26b20bdfd8..193a6ebf68 100644
--- a/Assets/Scripts/Gameplay/Configuration/VisualizationConfiguration.cs
+++ b/Assets/Scripts/Gameplay/Configuration/VisualizationConfiguration.cs
@@ -57,14 +57,14 @@ public class VisualizationConfiguration : ScriptableObject
 
 
         // These are maintained by our OnValidate(). Code refers to these hashed values, not the string versions!
-        [SerializeField] [HideInInspector] public int AliveStateTriggerID;
-        [SerializeField] [HideInInspector] public int FaintedStateTriggerID;
-        [SerializeField] [HideInInspector] public int DeadStateTriggerID;
-        [SerializeField] [HideInInspector] public int AnticipateMoveTriggerID;
-        [SerializeField] [HideInInspector] public int EntryDeathTriggerID;
-        [SerializeField] [HideInInspector] public int EntryFaintedTriggerID;
-        [SerializeField] [HideInInspector] public int SpeedVariableID;
-        [SerializeField] [HideInInspector] public int BaseNodeTagID;
+        [SerializeField][HideInInspector] public int AliveStateTriggerID;
+        [SerializeField][HideInInspector] public int FaintedStateTriggerID;
+        [SerializeField][HideInInspector] public int DeadStateTriggerID;
+        [SerializeField][HideInInspector] public int AnticipateMoveTriggerID;
+        [SerializeField][HideInInspector] public int EntryDeathTriggerID;
+        [SerializeField][HideInInspector] public int EntryFaintedTriggerID;
+        [SerializeField][HideInInspector] public int SpeedVariableID;
+        [SerializeField][HideInInspector] public int BaseNodeTagID;
 
         void OnValidate()
         {
diff --git a/Assets/Scripts/Gameplay/DebugCheats/DebugCheatsManager.cs b/Assets/Scripts/Gameplay/DebugCheats/DebugCheatsManager.cs
index 2c170dda4f..b57f0ea79f 100644
--- a/Assets/Scripts/Gameplay/DebugCheats/DebugCheatsManager.cs
+++ b/Assets/Scripts/Gameplay/DebugCheats/DebugCheatsManager.cs
@@ -7,6 +7,7 @@
 using Unity.Multiplayer.Samples.Utilities;
 using Unity.Netcode;
 using UnityEngine;
+using UnityEngine.InputSystem;
 using VContainer;
 
 namespace Unity.BossRoom.DebugCheats
@@ -30,7 +31,7 @@ public class DebugCheatsManager : NetworkBehaviour
         NetworkObject m_BossPrefab;
 
         [SerializeField]
-        KeyCode m_OpenWindowKeyCode = KeyCode.Slash;
+        InputActionReference m_ToggleCheatsAction;
 
         SwitchedDoor m_SwitchedDoor;
 
@@ -40,38 +41,32 @@ SwitchedDoor SwitchedDoor
             {
                 if (m_SwitchedDoor == null)
                 {
-                    m_SwitchedDoor = FindObjectOfType();
+                    m_SwitchedDoor = FindAnyObjectByType();
                 }
+
                 return m_SwitchedDoor;
             }
         }
 
-        const int k_NbTouchesToOpenWindow = 4;
-
         bool m_DestroyPortalsOnNextToggle = true;
 
         [Inject]
         IPublisher m_CheatUsedMessagePublisher;
 
-        void Update()
+        void Start()
         {
-            if (Input.touchCount == k_NbTouchesToOpenWindow && AnyTouchDown() ||
-                m_OpenWindowKeyCode != KeyCode.None && Input.GetKeyDown(m_OpenWindowKeyCode))
-            {
-                m_DebugCheatsPanel.SetActive(!m_DebugCheatsPanel.activeSelf);
-            }
+            m_ToggleCheatsAction.action.performed += OnToggleCheatsActionPerformed;
         }
 
-        static bool AnyTouchDown()
+        public override void OnDestroy()
         {
-            foreach (var touch in Input.touches)
-            {
-                if (touch.phase == TouchPhase.Began)
-                {
-                    return true;
-                }
-            }
-            return false;
+            base.OnDestroy();
+            m_ToggleCheatsAction.action.performed -= OnToggleCheatsActionPerformed;
+        }
+
+        void OnToggleCheatsActionPerformed(InputAction.CallbackContext obj)
+        {
+            m_DebugCheatsPanel.SetActive(!m_DebugCheatsPanel.activeSelf);
         }
 
         public void SpawnEnemy()
@@ -158,7 +153,7 @@ void ServerKillTargetRpc(RpcParams serverRpcParams = default)
                     var damageable = obj.GetComponent();
                     if (damageable != null && damageable.IsDamageable())
                     {
-                        damageable.ReceiveHP(playerServerCharacter, int.MinValue);
+                        damageable.ReceiveHitPoints(playerServerCharacter, int.MinValue);
                         PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "KillTarget");
                     }
                     else
@@ -166,23 +161,23 @@ void ServerKillTargetRpc(RpcParams serverRpcParams = default)
                         UnityEngine.Debug.Log($"Target {targetId} has no IDamageable component or cannot be damaged.");
                     }
                 }
-
             }
         }
 
         [Rpc(SendTo.Server, RequireOwnership = false)]
         void ServerKillAllEnemiesRpc(RpcParams serverRpcParams = default)
         {
-            foreach (var serverCharacter in FindObjectsOfType())
+            foreach (var serverCharacter in FindObjectsByType(FindObjectsSortMode.None))
             {
                 if (serverCharacter.IsNpc && serverCharacter.LifeState == LifeState.Alive)
                 {
                     if (serverCharacter.gameObject.TryGetComponent(out IDamageable damageable))
                     {
-                        damageable.ReceiveHP(null, -serverCharacter.HitPoints);
+                        damageable.ReceiveHitPoints(null, -serverCharacter.HitPoints);
                     }
                 }
             }
+
             PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "KillAllEnemies");
         }
 
@@ -214,9 +209,10 @@ void ServerHealPlayerRpc(RpcParams serverRpcParams = default)
                 {
                     if (playerServerCharacter.gameObject.TryGetComponent(out IDamageable damageable))
                     {
-                        damageable.ReceiveHP(null, baseHp);
+                        damageable.ReceiveHitPoints(null, baseHp);
                     }
                 }
+
                 PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "HealPlayer");
             }
         }
@@ -233,6 +229,7 @@ void ServerToggleSuperSpeedRpc(RpcParams serverRpcParams = default)
                     break;
                 }
             }
+
             PublishCheatUsedMessage(clientId, "ToggleSuperSpeed");
         }
 
@@ -248,6 +245,7 @@ void ServerToggleTeleportModeRpc(RpcParams serverRpcParams = default)
                     break;
                 }
             }
+
             PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "ToggleTeleportMode");
         }
 
@@ -268,7 +266,7 @@ void ServerToggleDoorRpc(RpcParams serverRpcParams = default)
         [Rpc(SendTo.Server, RequireOwnership = false)]
         void ServerTogglePortalsRpc(RpcParams serverRpcParams = default)
         {
-            foreach (var portal in FindObjectsOfType())
+            foreach (var portal in FindObjectsByType(FindObjectsSortMode.None))
             {
                 if (m_DestroyPortalsOnNextToggle)
                 {
diff --git a/Assets/Scripts/Gameplay/DebugCheats/Unity.BossRoom.DebugCheats.asmdef b/Assets/Scripts/Gameplay/DebugCheats/Unity.BossRoom.DebugCheats.asmdef
index 18af0fb3c4..00b9c150d1 100644
--- a/Assets/Scripts/Gameplay/DebugCheats/Unity.BossRoom.DebugCheats.asmdef
+++ b/Assets/Scripts/Gameplay/DebugCheats/Unity.BossRoom.DebugCheats.asmdef
@@ -8,7 +8,7 @@
         "Unity.BossRoom.ConnectionManagement",
         "Unity.Multiplayer.Samples.Utilities",
         "VContainer",
-        "VContainer.EnableCodeGen"
+        "Unity.InputSystem"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/Assets/Scripts/Gameplay/GameState/ClientCharSelectState.cs b/Assets/Scripts/Gameplay/GameState/ClientCharSelectState.cs
index 199517d27b..930af4bec1 100644
--- a/Assets/Scripts/Gameplay/GameState/ClientCharSelectState.cs
+++ b/Assets/Scripts/Gameplay/GameState/ClientCharSelectState.cs
@@ -25,7 +25,10 @@ public class ClientCharSelectState : GameStateBehaviour
         [SerializeField]
         NetcodeHooks m_NetcodeHooks;
 
-        public override GameState ActiveState { get { return GameState.CharSelect; } }
+        public override GameState ActiveState
+        {
+            get { return GameState.CharSelect; }
+        }
 
         [SerializeField]
         NetworkCharSelection m_NetworkCharSelection;
@@ -38,9 +41,9 @@ public class ClientCharSelectState : GameStateBehaviour
         [Tooltip("This is triggered when the player presses the \"Ready\" button")]
         string m_AnimationTriggerOnCharChosen = "BeginRevive";
 
-        [Header("Lobby Seats")]
+        [Header("Session Seats")]
         [SerializeField]
-        [Tooltip("Collection of 8 portrait-boxes, one for each potential lobby member")]
+        [Tooltip("Collection of 8 portrait-boxes, one for each potential session member")]
         List m_PlayerSeats;
 
         [System.Serializable]
@@ -49,6 +52,7 @@ public class ColorAndIndicator
             public Sprite Indicator;
             public Color Color;
         }
+
         [Tooltip("Representational information for each player")]
         public ColorAndIndicator[] m_IdentifiersForEachPlayerNumber;
 
@@ -60,7 +64,7 @@ public class ColorAndIndicator
         [Tooltip("Text element for the Ready button")]
         TextMeshProUGUI m_ReadyButtonText;
 
-        [Header("UI Elements for different lobby modes")]
+        [Header("UI Elements for different session modes")]
         [SerializeField]
         [Tooltip("UI elements to turn on when the player hasn't chosen their seat yet. Turned off otherwise!")]
         List m_UIElementsForNoSeatChosen;
@@ -70,8 +74,8 @@ public class ColorAndIndicator
         List m_UIElementsForSeatChosen;
 
         [SerializeField]
-        [Tooltip("UI elements to turn on when the lobby is closed (and game is about to start). Turned off otherwise!")]
-        List m_UIElementsForLobbyEnding;
+        [Tooltip("UI elements to turn on when the session is closed (and game is about to start). Turned off otherwise!")]
+        List m_UIElementsForSessionEnding;
 
         [SerializeField]
         [Tooltip("UI elements to turn on when there's been a fatal error (and the client cannot proceed). Turned off otherwise!")]
@@ -95,20 +99,20 @@ public class ColorAndIndicator
         Dictionary m_SpawnedCharacterGraphics = new Dictionary();
 
         /// 
-        /// Conceptual modes or stages that the lobby can be in. We don't actually
-        /// bother to keep track of what LobbyMode we're in at any given time; it's just
+        /// Conceptual modes or stages that the session can be in. We don't actually
+        /// bother to keep track of what SessionMode we're in at any given time; it's just
         /// an abstraction that makes it easier to configure which UI elements should
-        /// be enabled/disabled in each stage of the lobby.
+        /// be enabled/disabled in each stage of the session.
         /// 
-        enum LobbyMode
+        enum SessionMode
         {
             ChooseSeat, // "Choose your seat!" stage
             SeatChosen, // "Waiting for other players!" stage
-            LobbyEnding, // "Get ready! Game is starting!" stage
+            SessionEnding, // "Get ready! Game is starting!" stage
             FatalError, // "Fatal Error" stage
         }
 
-        Dictionary> m_LobbyUIElementsByMode;
+        Dictionary> m_SessionUIElementsByMode;
 
         [Inject]
         ConnectionManager m_ConnectionManager;
@@ -121,12 +125,12 @@ protected override void Awake()
             m_NetcodeHooks.OnNetworkSpawnHook += OnNetworkSpawn;
             m_NetcodeHooks.OnNetworkDespawnHook += OnNetworkDespawn;
 
-            m_LobbyUIElementsByMode = new Dictionary>()
+            m_SessionUIElementsByMode = new Dictionary>()
             {
-                { LobbyMode.ChooseSeat, m_UIElementsForNoSeatChosen },
-                { LobbyMode.SeatChosen, m_UIElementsForSeatChosen },
-                { LobbyMode.LobbyEnding, m_UIElementsForLobbyEnding },
-                { LobbyMode.FatalError, m_UIElementsForFatalError },
+                { SessionMode.ChooseSeat, m_UIElementsForNoSeatChosen },
+                { SessionMode.SeatChosen, m_UIElementsForSeatChosen },
+                { SessionMode.SessionEnding, m_UIElementsForSessionEnding },
+                { SessionMode.FatalError, m_UIElementsForFatalError },
             };
         }
 
@@ -148,7 +152,7 @@ protected override void Start()
                 m_PlayerSeats[i].Initialize(i);
             }
 
-            ConfigureUIForLobbyMode(LobbyMode.ChooseSeat);
+            ConfigureUIForSessionMode(SessionMode.ChooseSeat);
             UpdateCharacterSelection(NetworkCharSelection.SeatState.Inactive);
         }
 
@@ -156,8 +160,8 @@ void OnNetworkDespawn()
         {
             if (m_NetworkCharSelection)
             {
-                m_NetworkCharSelection.IsLobbyClosed.OnValueChanged -= OnLobbyClosedChanged;
-                m_NetworkCharSelection.LobbyPlayers.OnListChanged -= OnLobbyPlayerStateChanged;
+                m_NetworkCharSelection.IsSessionClosed.OnValueChanged -= OnSessionClosedChanged;
+                m_NetworkCharSelection.sessionPlayers.OnListChanged -= OnSessionPlayerStateChanged;
             }
         }
 
@@ -169,8 +173,8 @@ void OnNetworkSpawn()
             }
             else
             {
-                m_NetworkCharSelection.IsLobbyClosed.OnValueChanged += OnLobbyClosedChanged;
-                m_NetworkCharSelection.LobbyPlayers.OnListChanged += OnLobbyPlayerStateChanged;
+                m_NetworkCharSelection.IsSessionClosed.OnValueChanged += OnSessionClosedChanged;
+                m_NetworkCharSelection.sessionPlayers.OnListChanged += OnSessionPlayerStateChanged;
             }
         }
 
@@ -185,24 +189,24 @@ void OnAssignedPlayerNumber(int playerNum)
 
         void UpdatePlayerCount()
         {
-            int count = m_NetworkCharSelection.LobbyPlayers.Count;
+            int count = m_NetworkCharSelection.sessionPlayers.Count;
             var pstr = (count > 1) ? "players" : "player";
             m_NumPlayersText.text = "" + count + " " + pstr + " connected";
         }
 
         /// 
-        /// Called by the server when any of the seats in the lobby have changed. (Including ours!)
+        /// Called by the server when any of the seats in the session have changed. (Including ours!)
         /// 
-        void OnLobbyPlayerStateChanged(NetworkListEvent changeEvent)
+        void OnSessionPlayerStateChanged(NetworkListEvent changeEvent)
         {
             UpdateSeats();
             UpdatePlayerCount();
 
             // now let's find our local player in the list and update the character/info box appropriately
             int localPlayerIdx = -1;
-            for (int i = 0; i < m_NetworkCharSelection.LobbyPlayers.Count; ++i)
+            for (int i = 0; i < m_NetworkCharSelection.sessionPlayers.Count; ++i)
             {
-                if (m_NetworkCharSelection.LobbyPlayers[i].ClientId == NetworkManager.Singleton.LocalClientId)
+                if (m_NetworkCharSelection.sessionPlayers[i].ClientId == NetworkManager.Singleton.LocalClientId)
                 {
                     localPlayerIdx = i;
                     break;
@@ -211,27 +215,28 @@ void OnLobbyPlayerStateChanged(NetworkListEvent
         /// Internal utility that sets the character-graphics and class-info box based on
-        /// our chosen seat. It also triggers a LobbyMode change when it notices that our seat-state
+        /// our chosen seat. It also triggers a SessionMode change when it notices that our seat-state
         /// is LockedIn.
         /// 
         /// Our current seat state
@@ -271,12 +276,13 @@ void UpdateCharacterSelection(NetworkCharSelection.SeatState state, int seatIdx
                         m_ClassInfoBox.ConfigureForClass(m_NetworkCharSelection.AvatarConfiguration[seatIdx].CharacterClass);
                     }
                 }
+
                 if (state == NetworkCharSelection.SeatState.LockedIn && !m_HasLocalPlayerLockedIn)
                 {
                     // the local player has locked in their seat choice! Rearrange the UI appropriately
                     // the character should act excited
                     m_CurrentCharacterGraphicsAnimator.SetTrigger(m_AnimationTriggerOnCharChosen);
-                    ConfigureUIForLobbyMode(m_NetworkCharSelection.IsLobbyClosed.Value ? LobbyMode.LobbyEnding : LobbyMode.SeatChosen);
+                    ConfigureUIForSessionMode(m_NetworkCharSelection.IsSessionClosed.Value ? SessionMode.SessionEnding : SessionMode.SeatChosen);
                     m_HasLocalPlayerLockedIn = true;
                 }
                 else if (m_HasLocalPlayerLockedIn && state == NetworkCharSelection.SeatState.Active)
@@ -284,7 +290,7 @@ void UpdateCharacterSelection(NetworkCharSelection.SeatState state, int seatIdx
                     // reset character seats if locked in choice was unselected
                     if (m_HasLocalPlayerLockedIn)
                     {
-                        ConfigureUIForLobbyMode(LobbyMode.ChooseSeat);
+                        ConfigureUIForSessionMode(SessionMode.ChooseSeat);
                         m_ClassInfoBox.SetLockedIn(false);
                         m_HasLocalPlayerLockedIn = false;
                     }
@@ -297,7 +303,7 @@ void UpdateCharacterSelection(NetworkCharSelection.SeatState state, int seatIdx
         }
 
         /// 
-        /// Internal utility that sets the graphics for the eight lobby-seats (based on their current networked state)
+        /// Internal utility that sets the graphics for the eight session-seats (based on their current networked state)
         /// 
         void UpdateSeats()
         {
@@ -305,8 +311,8 @@ void UpdateSeats()
             // Once they have chosen their class (by "locking in" their seat), other players in that seat are kicked out.
             // But until a seat is locked in, we need to display each seat as being used by the latest player to choose it.
             // So we go through all players and figure out who should visually be shown as sitting in that seat.
-            NetworkCharSelection.LobbyPlayerState[] curSeats = new NetworkCharSelection.LobbyPlayerState[m_PlayerSeats.Count];
-            foreach (NetworkCharSelection.LobbyPlayerState playerState in m_NetworkCharSelection.LobbyPlayers)
+            NetworkCharSelection.SessionPlayerState[] curSeats = new NetworkCharSelection.SessionPlayerState[m_PlayerSeats.Count];
+            foreach (NetworkCharSelection.SessionPlayerState playerState in m_NetworkCharSelection.sessionPlayers)
             {
                 if (playerState.SeatIdx == -1 || playerState.SeatState == NetworkCharSelection.SeatState.Inactive)
                     continue; // this player isn't seated at all!
@@ -326,37 +332,37 @@ void UpdateSeats()
         }
 
         /// 
-        /// Called by the server when the lobby closes (because all players are seated and locked in)
+        /// Called by the server when the session closes (because all players are seated and locked in)
         /// 
-        void OnLobbyClosedChanged(bool wasLobbyClosed, bool isLobbyClosed)
+        void OnSessionClosedChanged(bool wasSessionClosed, bool isSessionClosed)
         {
-            if (isLobbyClosed)
+            if (isSessionClosed)
             {
-                ConfigureUIForLobbyMode(LobbyMode.LobbyEnding);
+                ConfigureUIForSessionMode(SessionMode.SessionEnding);
             }
             else
             {
                 if (m_LastSeatSelected == -1)
                 {
-                    ConfigureUIForLobbyMode(LobbyMode.ChooseSeat);
+                    ConfigureUIForSessionMode(SessionMode.ChooseSeat);
                 }
                 else
                 {
-                    ConfigureUIForLobbyMode(LobbyMode.SeatChosen);
+                    ConfigureUIForSessionMode(SessionMode.SeatChosen);
                     m_ClassInfoBox.ConfigureForClass(m_NetworkCharSelection.AvatarConfiguration[m_LastSeatSelected].CharacterClass);
                 }
             }
         }
 
         /// 
-        /// Turns on the UI elements for a specified "lobby mode", and turns off UI elements for all other modes.
-        /// It can also disable/enable the lobby seats and the "Ready" button if they are inappropriate for the
+        /// Turns on the UI elements for a specified "session mode", and turns off UI elements for all other modes.
+        /// It can also disable/enable the session seats and the "Ready" button if they are inappropriate for the
         /// given mode.
         /// 
-        void ConfigureUIForLobbyMode(LobbyMode mode)
+        void ConfigureUIForSessionMode(SessionMode mode)
         {
             // first the easy bit: turn off all the inappropriate ui elements, and turn the appropriate ones on!
-            foreach (var list in m_LobbyUIElementsByMode.Values)
+            foreach (var list in m_SessionUIElementsByMode.Values)
             {
                 foreach (var uiElement in list)
                 {
@@ -364,36 +370,38 @@ void ConfigureUIForLobbyMode(LobbyMode mode)
                 }
             }
 
-            foreach (var uiElement in m_LobbyUIElementsByMode[mode])
+            foreach (var uiElement in m_SessionUIElementsByMode[mode])
             {
                 uiElement.SetActive(true);
             }
 
-            // that finishes the easy bit. Next, each lobby mode might also need to configure the lobby seats and class-info box.
+            // that finishes the easy bit. Next, each session mode might also need to configure the session seats and class-info box.
             bool isSeatsDisabledInThisMode = false;
             switch (mode)
             {
-                case LobbyMode.ChooseSeat:
+                case SessionMode.ChooseSeat:
                     if (m_LastSeatSelected == -1)
                     {
                         if (m_CurrentCharacterGraphics)
                         {
                             m_CurrentCharacterGraphics.gameObject.SetActive(false);
                         }
+
                         m_ClassInfoBox.ConfigureForNoSelection();
                     }
+
                     m_ReadyButtonText.text = "READY!";
                     break;
-                case LobbyMode.SeatChosen:
+                case SessionMode.SeatChosen:
                     isSeatsDisabledInThisMode = true;
                     m_ClassInfoBox.SetLockedIn(true);
                     m_ReadyButtonText.text = "UNREADY";
                     break;
-                case LobbyMode.FatalError:
+                case SessionMode.FatalError:
                     isSeatsDisabledInThisMode = true;
                     m_ClassInfoBox.ConfigureForNoSelection();
                     break;
-                case LobbyMode.LobbyEnding:
+                case SessionMode.SessionEnding:
                     isSeatsDisabledInThisMode = true;
                     m_ClassInfoBox.ConfigureForNoSelection();
                     break;
@@ -405,7 +413,6 @@ void ConfigureUIForLobbyMode(LobbyMode mode)
                 // disable interaction if seat is already locked or all seats disabled
                 seat.SetDisableInteraction(seat.IsLocked() || isSeatsDisabledInThisMode);
             }
-
         }
 
         /// 
@@ -442,6 +449,5 @@ GameObject GetCharacterGraphics(Avatar avatar)
 
             return characterGraphics;
         }
-
     }
 }
diff --git a/Assets/Scripts/Gameplay/GameState/ClientMainMenuState.cs b/Assets/Scripts/Gameplay/GameState/ClientMainMenuState.cs
index 53da328aed..07a39cced2 100644
--- a/Assets/Scripts/Gameplay/GameState/ClientMainMenuState.cs
+++ b/Assets/Scripts/Gameplay/GameState/ClientMainMenuState.cs
@@ -2,10 +2,9 @@
 using Unity.BossRoom.Gameplay.Configuration;
 using Unity.BossRoom.Gameplay.UI;
 using Unity.BossRoom.UnityServices.Auth;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.BossRoom.Utils;
 using Unity.Services.Authentication;
-using Unity.Services.Core;
 using UnityEngine;
 using UnityEngine.UI;
 using VContainer;
@@ -27,11 +26,11 @@ public class ClientMainMenuState : GameStateBehaviour
         [SerializeField]
         NameGenerationData m_NameGenerationData;
         [SerializeField]
-        LobbyUIMediator m_LobbyUIMediator;
+        SessionUIMediator m_SessionUIMediator;
         [SerializeField]
         IPUIMediator m_IPUIMediator;
         [SerializeField]
-        Button m_LobbyButton;
+        Button m_SessionButton;
         [SerializeField]
         GameObject m_SignInSpinner;
         [SerializeField]
@@ -42,9 +41,9 @@ public class ClientMainMenuState : GameStateBehaviour
         [Inject]
         AuthenticationServiceFacade m_AuthServiceFacade;
         [Inject]
-        LocalLobbyUser m_LocalUser;
+        LocalSessionUser m_LocalUser;
         [Inject]
-        LocalLobby m_LocalLobby;
+        LocalSession m_LocalSession;
         [Inject]
         ProfileManager m_ProfileManager;
 
@@ -52,8 +51,8 @@ protected override void Awake()
         {
             base.Awake();
 
-            m_LobbyButton.interactable = false;
-            m_LobbyUIMediator.Hide();
+            m_SessionButton.interactable = false;
+            m_SessionUIMediator.Hide();
 
             if (string.IsNullOrEmpty(Application.cloudProjectId))
             {
@@ -68,11 +67,11 @@ protected override void Configure(IContainerBuilder builder)
         {
             base.Configure(builder);
             builder.RegisterComponent(m_NameGenerationData);
-            builder.RegisterComponent(m_LobbyUIMediator);
+            builder.RegisterComponent(m_SessionUIMediator);
             builder.RegisterComponent(m_IPUIMediator);
         }
 
-        private async void TrySignIn()
+        async void TrySignIn()
         {
             try
             {
@@ -89,9 +88,9 @@ private async void TrySignIn()
             }
         }
 
-        private void OnAuthSignIn()
+        void OnAuthSignIn()
         {
-            m_LobbyButton.interactable = true;
+            m_SessionButton.interactable = true;
             m_UGSSetupTooltipDetector.enabled = false;
             m_SignInSpinner.SetActive(false);
 
@@ -99,15 +98,15 @@ private void OnAuthSignIn()
 
             m_LocalUser.ID = AuthenticationService.Instance.PlayerId;
 
-            // The local LobbyUser object will be hooked into UI before the LocalLobby is populated during lobby join, so the LocalLobby must know about it already when that happens.
-            m_LocalLobby.AddUser(m_LocalUser);
+            // The local SessionUser object will be hooked into UI before the LocalSession is populated during session join, so the LocalSession must know about it already when that happens.
+            m_LocalSession.AddUser(m_LocalUser);
         }
 
-        private void OnSignInFailed()
+        void OnSignInFailed()
         {
-            if (m_LobbyButton)
+            if (m_SessionButton)
             {
-                m_LobbyButton.interactable = false;
+                m_SessionButton.interactable = false;
                 m_UGSSetupTooltipDetector.enabled = true;
             }
 
@@ -125,30 +124,30 @@ protected override void OnDestroy()
 
         async void OnProfileChanged()
         {
-            m_LobbyButton.interactable = false;
+            m_SessionButton.interactable = false;
             m_SignInSpinner.SetActive(true);
             await m_AuthServiceFacade.SwitchProfileAndReSignInAsync(m_ProfileManager.Profile);
 
-            m_LobbyButton.interactable = true;
+            m_SessionButton.interactable = true;
             m_SignInSpinner.SetActive(false);
 
             Debug.Log($"Signed in. Unity Player ID {AuthenticationService.Instance.PlayerId}");
 
-            // Updating LocalUser and LocalLobby
-            m_LocalLobby.RemoveUser(m_LocalUser);
+            // Updating LocalUser and LocalSession
+            m_LocalSession.RemoveUser(m_LocalUser);
             m_LocalUser.ID = AuthenticationService.Instance.PlayerId;
-            m_LocalLobby.AddUser(m_LocalUser);
+            m_LocalSession.AddUser(m_LocalUser);
         }
 
         public void OnStartClicked()
         {
-            m_LobbyUIMediator.ToggleJoinLobbyUI();
-            m_LobbyUIMediator.Show();
+            m_SessionUIMediator.ToggleJoinSessionUI();
+            m_SessionUIMediator.Show();
         }
 
         public void OnDirectIPClicked()
         {
-            m_LobbyUIMediator.Hide();
+            m_SessionUIMediator.Hide();
             m_IPUIMediator.Show();
         }
 
diff --git a/Assets/Scripts/Gameplay/GameState/NetworkCharSelection.cs b/Assets/Scripts/Gameplay/GameState/NetworkCharSelection.cs
index ddc3990192..b3d0f1d2d7 100644
--- a/Assets/Scripts/Gameplay/GameState/NetworkCharSelection.cs
+++ b/Assets/Scripts/Gameplay/GameState/NetworkCharSelection.cs
@@ -18,7 +18,7 @@ public enum SeatState : byte
         }
 
         /// 
-        /// Describes one of the players in the lobby, and their current character-select status.
+        /// Describes one of the players in the session, and their current character-select status.
         /// 
         /// 
         /// Putting FixedString inside an INetworkSerializeByMemcpy struct is not recommended because it will lose the
@@ -26,7 +26,7 @@ public enum SeatState : byte
         /// or through INetworkSerializable will use 4 bytes of bandwidth, but inside an INetworkSerializeByMemcpy, that
         /// same empty value would consume 132 bytes of bandwidth. 
         /// 
-        public struct LobbyPlayerState : INetworkSerializable, IEquatable
+        public struct SessionPlayerState : INetworkSerializable, IEquatable
         {
             public ulong ClientId;
 
@@ -39,7 +39,7 @@ public struct LobbyPlayerState : INetworkSerializable, IEquatable(BufferSerializer serializer) where T : IReade
                 serializer.SerializeValue(ref LastChangeTime);
             }
 
-            public bool Equals(LobbyPlayerState other)
+            public bool Equals(SessionPlayerState other)
             {
                 return ClientId == other.ClientId &&
                        m_PlayerName.Equals(other.m_PlayerName) &&
@@ -78,27 +78,27 @@ public bool Equals(LobbyPlayerState other)
             }
         }
 
-        private NetworkList m_LobbyPlayers;
+        private NetworkList m_SessionPlayers;
 
         public Avatar[] AvatarConfiguration;
 
         private void Awake()
         {
-            m_LobbyPlayers = new NetworkList();
+            m_SessionPlayers = new NetworkList();
         }
 
         /// 
-        /// Current state of all players in the lobby.
+        /// Current state of all players in the session.
         /// 
-        public NetworkList LobbyPlayers => m_LobbyPlayers;
+        public NetworkList sessionPlayers => m_SessionPlayers;
 
         /// 
-        /// When this becomes true, the lobby is closed and in process of terminating (switching to gameplay).
+        /// When this becomes true, the session is closed and in process of terminating (switching to gameplay).
         /// 
-        public NetworkVariable IsLobbyClosed { get; } = new NetworkVariable(false);
+        public NetworkVariable IsSessionClosed { get; } = new NetworkVariable(false);
 
         /// 
-        /// Server notification when a client requests a different lobby-seat, or locks in their seat choice
+        /// Server notification when a client requests a different session-seat, or locks in their seat choice
         /// 
         public event Action OnClientChangedSeat;
 
diff --git a/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs b/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs
index 3eb16ad6d4..ca0610fd15 100644
--- a/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs
+++ b/Assets/Scripts/Gameplay/GameState/ServerBossRoomState.cs
@@ -79,7 +79,7 @@ void OnNetworkSpawn()
             m_PersistentGameState.Reset();
             m_LifeStateChangedEventMessageSubscriber.Subscribe(OnLifeStateChangedEventMessage);
 
-            NetworkManager.Singleton.OnClientDisconnectCallback += OnClientDisconnect;
+            NetworkManager.Singleton.OnConnectionEvent += OnConnectionEvent;
             NetworkManager.Singleton.SceneManager.OnLoadEventCompleted += OnLoadEventCompleted;
             NetworkManager.Singleton.SceneManager.OnSynchronizeComplete += OnSynchronizeComplete;
 
@@ -93,7 +93,7 @@ void OnNetworkDespawn()
                 m_LifeStateChangedEventMessageSubscriber.Unsubscribe(OnLifeStateChangedEventMessage);
             }
 
-            NetworkManager.Singleton.OnClientDisconnectCallback -= OnClientDisconnect;
+            NetworkManager.Singleton.OnConnectionEvent -= OnConnectionEvent;
             NetworkManager.Singleton.SceneManager.OnLoadEventCompleted -= OnLoadEventCompleted;
             NetworkManager.Singleton.SceneManager.OnSynchronizeComplete -= OnSynchronizeComplete;
         }
@@ -138,12 +138,15 @@ void OnLoadEventCompleted(string sceneName, LoadSceneMode loadSceneMode, List GameState.CharSelect;
         public NetworkCharSelection networkCharSelection { get; private set; }
 
-        Coroutine m_WaitToEndLobbyCoroutine;
+        Coroutine m_WaitToEndSessionCoroutine;
 
         [Inject]
         ConnectionManager m_ConnectionManager;
@@ -50,13 +50,13 @@ protected override void OnDestroy()
 
         void OnClientChangedSeat(ulong clientId, int newSeatIdx, bool lockedIn)
         {
-            int idx = FindLobbyPlayerIdx(clientId);
+            int idx = FindSessionPlayerIdx(clientId);
             if (idx == -1)
             {
-                throw new Exception($"OnClientChangedSeat: client ID {clientId} is not a lobby player and cannot change seats! Shouldn't be here!");
+                throw new Exception($"OnClientChangedSeat: client ID {clientId} is not a Session player and cannot change seats! Shouldn't be here!");
             }
 
-            if (networkCharSelection.IsLobbyClosed.Value)
+            if (networkCharSelection.IsSessionClosed.Value)
             {
                 // The user tried to change their class after everything was locked in... too late! Discard this choice
                 return;
@@ -70,15 +70,15 @@ void OnClientChangedSeat(ulong clientId, int newSeatIdx, bool lockedIn)
             else
             {
                 // see if someone has already locked-in that seat! If so, too late... discard this choice
-                foreach (NetworkCharSelection.LobbyPlayerState playerInfo in networkCharSelection.LobbyPlayers)
+                foreach (NetworkCharSelection.SessionPlayerState playerInfo in networkCharSelection.sessionPlayers)
                 {
                     if (playerInfo.ClientId != clientId && playerInfo.SeatIdx == newSeatIdx && playerInfo.SeatState == NetworkCharSelection.SeatState.LockedIn)
                     {
                         // somebody already locked this choice in. Stop!
                         // Instead of granting lock request, change this player to Inactive state.
-                        networkCharSelection.LobbyPlayers[idx] = new NetworkCharSelection.LobbyPlayerState(clientId,
-                            networkCharSelection.LobbyPlayers[idx].PlayerName,
-                            networkCharSelection.LobbyPlayers[idx].PlayerNumber,
+                        networkCharSelection.sessionPlayers[idx] = new NetworkCharSelection.SessionPlayerState(clientId,
+                            networkCharSelection.sessionPlayers[idx].PlayerName,
+                            networkCharSelection.sessionPlayers[idx].PlayerNumber,
                             NetworkCharSelection.SeatState.Inactive);
 
                         // then early out
@@ -87,9 +87,9 @@ void OnClientChangedSeat(ulong clientId, int newSeatIdx, bool lockedIn)
                 }
             }
 
-            networkCharSelection.LobbyPlayers[idx] = new NetworkCharSelection.LobbyPlayerState(clientId,
-                networkCharSelection.LobbyPlayers[idx].PlayerName,
-                networkCharSelection.LobbyPlayers[idx].PlayerNumber,
+            networkCharSelection.sessionPlayers[idx] = new NetworkCharSelection.SessionPlayerState(clientId,
+                networkCharSelection.sessionPlayers[idx].PlayerName,
+                networkCharSelection.sessionPlayers[idx].PlayerNumber,
                 lockedIn ? NetworkCharSelection.SeatState.LockedIn : NetworkCharSelection.SeatState.Active,
                 newSeatIdx,
                 Time.time);
@@ -98,31 +98,31 @@ void OnClientChangedSeat(ulong clientId, int newSeatIdx, bool lockedIn)
             {
                 // to help the clients visually keep track of who's in what seat, we'll "kick out" any other players
                 // who were also in that seat. (Those players didn't click "Ready!" fast enough, somebody else took their seat!)
-                for (int i = 0; i < networkCharSelection.LobbyPlayers.Count; ++i)
+                for (int i = 0; i < networkCharSelection.sessionPlayers.Count; ++i)
                 {
-                    if (networkCharSelection.LobbyPlayers[i].SeatIdx == newSeatIdx && i != idx)
+                    if (networkCharSelection.sessionPlayers[i].SeatIdx == newSeatIdx && i != idx)
                     {
                         // change this player to Inactive state.
-                        networkCharSelection.LobbyPlayers[i] = new NetworkCharSelection.LobbyPlayerState(
-                            networkCharSelection.LobbyPlayers[i].ClientId,
-                            networkCharSelection.LobbyPlayers[i].PlayerName,
-                            networkCharSelection.LobbyPlayers[i].PlayerNumber,
+                        networkCharSelection.sessionPlayers[i] = new NetworkCharSelection.SessionPlayerState(
+                            networkCharSelection.sessionPlayers[i].ClientId,
+                            networkCharSelection.sessionPlayers[i].PlayerName,
+                            networkCharSelection.sessionPlayers[i].PlayerNumber,
                             NetworkCharSelection.SeatState.Inactive);
                     }
                 }
             }
 
-            CloseLobbyIfReady();
+            CloseSessionIfReady();
         }
 
         /// 
-        /// Returns the index of a client in the master LobbyPlayer list, or -1 if not found
+        /// Returns the index of a client in the master SessionPlayer list, or -1 if not found
         /// 
-        int FindLobbyPlayerIdx(ulong clientId)
+        int FindSessionPlayerIdx(ulong clientId)
         {
-            for (int i = 0; i < networkCharSelection.LobbyPlayers.Count; ++i)
+            for (int i = 0; i < networkCharSelection.sessionPlayers.Count; ++i)
             {
-                if (networkCharSelection.LobbyPlayers[i].ClientId == clientId)
+                if (networkCharSelection.sessionPlayers[i].ClientId == clientId)
                     return i;
             }
             return -1;
@@ -130,41 +130,41 @@ int FindLobbyPlayerIdx(ulong clientId)
 
         /// 
         /// Looks through all our connections and sees if everyone has locked in their choice;
-        /// if so, we lock in the whole lobby, save state, and begin the transition to gameplay
+        /// if so, we lock in the whole Session, save state, and begin the transition to gameplay
         /// 
-        void CloseLobbyIfReady()
+        void CloseSessionIfReady()
         {
-            foreach (NetworkCharSelection.LobbyPlayerState playerInfo in networkCharSelection.LobbyPlayers)
+            foreach (NetworkCharSelection.SessionPlayerState playerInfo in networkCharSelection.sessionPlayers)
             {
                 if (playerInfo.SeatState != NetworkCharSelection.SeatState.LockedIn)
                     return; // nope, at least one player isn't locked in yet!
             }
 
             // everybody's ready at the same time! Lock it down!
-            networkCharSelection.IsLobbyClosed.Value = true;
+            networkCharSelection.IsSessionClosed.Value = true;
 
             // remember our choices so the next scene can use the info
-            SaveLobbyResults();
+            SaveSessionResults();
 
             // Delay a few seconds to give the UI time to react, then switch scenes
-            m_WaitToEndLobbyCoroutine = StartCoroutine(WaitToEndLobby());
+            m_WaitToEndSessionCoroutine = StartCoroutine(WaitToEndSession());
         }
 
         /// 
-        /// Cancels the process of closing the lobby, so that if a new player joins, they are able to chose a character.
+        /// Cancels the process of closing the Session, so that if a new player joins, they are able to choose a character.
         /// 
-        void CancelCloseLobby()
+        void CancelCloseSession()
         {
-            if (m_WaitToEndLobbyCoroutine != null)
+            if (m_WaitToEndSessionCoroutine != null)
             {
-                StopCoroutine(m_WaitToEndLobbyCoroutine);
+                StopCoroutine(m_WaitToEndSessionCoroutine);
             }
-            networkCharSelection.IsLobbyClosed.Value = false;
+            networkCharSelection.IsSessionClosed.Value = false;
         }
 
-        void SaveLobbyResults()
+        void SaveSessionResults()
         {
-            foreach (NetworkCharSelection.LobbyPlayerState playerInfo in networkCharSelection.LobbyPlayers)
+            foreach (NetworkCharSelection.SessionPlayerState playerInfo in networkCharSelection.sessionPlayers)
             {
                 var playerNetworkObject = NetworkManager.Singleton.SpawnManager.GetPlayerNetworkObject(playerInfo.ClientId);
 
@@ -178,17 +178,17 @@ void SaveLobbyResults()
             }
         }
 
-        IEnumerator WaitToEndLobby()
+        IEnumerator WaitToEndSession()
         {
             yield return new WaitForSeconds(3);
             SceneLoaderWrapper.Instance.LoadScene("BossRoom", useNetworkSceneManager: true);
         }
 
-        public void OnNetworkDespawn()
+        void OnNetworkDespawn()
         {
             if (NetworkManager.Singleton)
             {
-                NetworkManager.Singleton.OnClientDisconnectCallback -= OnClientDisconnectCallback;
+                NetworkManager.Singleton.OnConnectionEvent -= OnConnectionEvent;
                 NetworkManager.Singleton.SceneManager.OnSceneEvent -= OnSceneEvent;
             }
             if (networkCharSelection)
@@ -197,7 +197,7 @@ public void OnNetworkDespawn()
             }
         }
 
-        public void OnNetworkSpawn()
+        void OnNetworkSpawn()
         {
             if (!NetworkManager.Singleton.IsServer)
             {
@@ -205,7 +205,7 @@ public void OnNetworkSpawn()
             }
             else
             {
-                NetworkManager.Singleton.OnClientDisconnectCallback += OnClientDisconnectCallback;
+                NetworkManager.Singleton.OnConnectionEvent += OnConnectionEvent;
                 networkCharSelection.OnClientChangedSeat += OnClientChangedSeat;
 
                 NetworkManager.Singleton.SceneManager.OnSceneEvent += OnSceneEvent;
@@ -216,7 +216,7 @@ void OnSceneEvent(SceneEvent sceneEvent)
         {
             // We need to filter out the event that are not a client has finished loading the scene
             if (sceneEvent.SceneEventType != SceneEventType.LoadComplete) return;
-            // When the client finishes loading the Lobby Map, we will need to Seat it
+            // When the client finishes loading the Session Map, we will need to Seat it
             SeatNewPlayer(sceneEvent.ClientId);
         }
 
@@ -229,14 +229,14 @@ int GetAvailablePlayerNumber()
                     return possiblePlayerNumber;
                 }
             }
-            // we couldn't get a Player# for this person... which means the lobby is full!
+            // we couldn't get a Player# for this person... which means the Session is full!
             return -1;
         }
 
         bool IsPlayerNumberAvailable(int playerNumber)
         {
             bool found = false;
-            foreach (NetworkCharSelection.LobbyPlayerState playerState in networkCharSelection.LobbyPlayers)
+            foreach (NetworkCharSelection.SessionPlayerState playerState in networkCharSelection.sessionPlayers)
             {
                 if (playerState.PlayerNumber == playerNumber)
                 {
@@ -250,10 +250,10 @@ bool IsPlayerNumberAvailable(int playerNumber)
 
         void SeatNewPlayer(ulong clientId)
         {
-            // If lobby is closing and waiting to start the game, cancel to allow that new player to select a character
-            if (networkCharSelection.IsLobbyClosed.Value)
+            // If Session is closing and waiting to start the game, cancel to allow that new player to select a character
+            if (networkCharSelection.IsSessionClosed.Value)
             {
-                CancelCloseLobby();
+                CancelCloseSession();
             }
 
             SessionPlayerData? sessionPlayerData = SessionManager.Instance.GetPlayerData(clientId);
@@ -271,27 +271,30 @@ void SeatNewPlayer(ulong clientId)
                     throw new Exception($"we shouldn't be here, connection approval should have refused this connection already for client ID {clientId} and player num {playerData.PlayerNumber}");
                 }
 
-                networkCharSelection.LobbyPlayers.Add(new NetworkCharSelection.LobbyPlayerState(clientId, playerData.PlayerName, playerData.PlayerNumber, NetworkCharSelection.SeatState.Inactive));
+                networkCharSelection.sessionPlayers.Add(new NetworkCharSelection.SessionPlayerState(clientId, playerData.PlayerName, playerData.PlayerNumber, NetworkCharSelection.SeatState.Inactive));
                 SessionManager.Instance.SetPlayerData(clientId, playerData);
             }
         }
 
-        void OnClientDisconnectCallback(ulong clientId)
+        void OnConnectionEvent(NetworkManager networkManager, ConnectionEventData connectionEventData)
         {
-            // clear this client's PlayerNumber and any associated visuals (so other players know they're gone).
-            for (int i = 0; i < networkCharSelection.LobbyPlayers.Count; ++i)
+            if (connectionEventData.EventType == ConnectionEvent.ClientDisconnected)
             {
-                if (networkCharSelection.LobbyPlayers[i].ClientId == clientId)
+                // clear this client's PlayerNumber and any associated visuals (so other players know they're gone).
+                for (int i = 0; i < networkCharSelection.sessionPlayers.Count; ++i)
                 {
-                    networkCharSelection.LobbyPlayers.RemoveAt(i);
-                    break;
+                    if (networkCharSelection.sessionPlayers[i].ClientId == connectionEventData.ClientId)
+                    {
+                        networkCharSelection.sessionPlayers.RemoveAt(i);
+                        break;
+                    }
                 }
-            }
 
-            if (!networkCharSelection.IsLobbyClosed.Value)
-            {
-                // If the lobby is not already closing, close if the remaining players are all ready
-                CloseLobbyIfReady();
+                if (!networkCharSelection.IsSessionClosed.Value)
+                {
+                    // If the Session is not already closing, close if the remaining players are all ready
+                    CloseSessionIfReady();
+                }
             }
         }
     }
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/Breakable.cs b/Assets/Scripts/Gameplay/GameplayObjects/Breakable.cs
index 246811311c..169654cfbb 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/Breakable.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/Breakable.cs
@@ -32,29 +32,31 @@ public class Breakable : NetworkBehaviour, IDamageable, ITargetable
 
         [Header("Visualization")]
         [SerializeField]
-        private GameObject m_BrokenPrefab;
+        GameObject m_BrokenPrefab;
 
         [SerializeField]
         [Tooltip("If set, will be used instead of BrokenPrefab when new players join, skipping transition effects.")]
-        private GameObject m_PrebrokenPrefab;
+        GameObject m_PrebrokenPrefab;
 
         [SerializeField]
         [Tooltip("We use this transform's position and rotation when creating the prefab. (Defaults to self)")]
-        private Transform m_BrokenPrefabPos;
+        Transform m_BrokenPrefabPos;
 
         [SerializeField]
-        private GameObject[] m_UnbrokenGameObjects;
+        GameObject[] m_UnbrokenGameObjects;
 
         /// 
         /// Is the item broken or not?
         /// 
-        public NetworkVariable IsBroken;
+        public bool IsBroken => m_NetworkHealthState.HitPoints.Value == 0;
 
-        public bool IsNpc { get { return true; } }
+        public event Action Broken;
 
-        public bool IsValidTarget { get { return !IsBroken.Value; } }
+        public bool IsNpc => true;
 
-        private GameObject m_CurrentBrokenVisualization;
+        public bool IsValidTarget => !IsBroken;
+
+        GameObject m_CurrentBrokenVisualization;
 
         public override void OnNetworkSpawn()
         {
@@ -68,9 +70,12 @@ public override void OnNetworkSpawn()
 
             if (IsClient)
             {
-                IsBroken.OnValueChanged += OnBreakableStateChanged;
+                if (m_NetworkHealthState)
+                {
+                    m_NetworkHealthState.HitPoints.OnValueChanged += OnHPChanged;
+                }
 
-                if (IsBroken.Value == true)
+                if (IsBroken)
                 {
                     PerformBreakVisualization(true);
                 }
@@ -79,15 +84,15 @@ public override void OnNetworkSpawn()
 
         public override void OnNetworkDespawn()
         {
-            if (IsClient)
+            if (IsClient && m_NetworkHealthState)
             {
-                IsBroken.OnValueChanged -= OnBreakableStateChanged;
+                m_NetworkHealthState.HitPoints.OnValueChanged -= OnHPChanged;
             }
         }
 
-        public void ReceiveHP(ServerCharacter inflicter, int HP)
+        public void ReceiveHitPoints(ServerCharacter inflicter, int hitPoints)
         {
-            if (HP < 0)
+            if (hitPoints < 0)
             {
                 if (inflicter && !inflicter.IsNpc)
                 {
@@ -99,37 +104,27 @@ public void ReceiveHP(ServerCharacter inflicter, int HP)
                     }
                 }
 
-                if (m_NetworkHealthState)
+                if (m_NetworkHealthState && m_MaxHealth)
                 {
                     m_NetworkHealthState.HitPoints.Value =
-                        Mathf.Clamp(m_NetworkHealthState.HitPoints.Value + HP, 0, m_MaxHealth.Value);
-                    if (m_NetworkHealthState.HitPoints.Value <= 0)
-                    {
-                        Break();
-                    }
-                }
-                else
-                {
-                    //any damage at all is enough to slay me.
-                    Break();
+                        Mathf.Clamp(m_NetworkHealthState.HitPoints.Value + hitPoints, 0, m_MaxHealth.Value);
                 }
             }
         }
 
-        private void Break()
+        public int GetTotalDamage()
         {
-            IsBroken.Value = true;
-            if (m_Collider)
-                m_Collider.enabled = false;
+            return Math.Max(0, m_MaxHealth.Value - m_NetworkHealthState.HitPoints.Value);
+        }
+
+        public void Break()
+        {
+            m_NetworkHealthState.HitPoints.Value = 0;
         }
 
         public void Unbreak()
         {
-            IsBroken.Value = false;
-            if (m_Collider)
-                m_Collider.enabled = true;
-            if (m_MaxHealth && m_NetworkHealthState)
-                m_NetworkHealthState.HitPoints.Value = m_MaxHealth.Value;
+            m_NetworkHealthState.HitPoints.Value = m_MaxHealth.Value;
         }
 
         public IDamageable.SpecialDamageFlags GetSpecialDamageFlags()
@@ -140,22 +135,31 @@ public IDamageable.SpecialDamageFlags GetSpecialDamageFlags()
         public bool IsDamageable()
         {
             // you can damage this breakable until it's broken!
-            return !IsBroken.Value;
+            return !IsBroken;
         }
 
-        private void OnBreakableStateChanged(bool wasBroken, bool isBroken)
+        void OnHPChanged(int previousValue, int newValue)
         {
-            if (!wasBroken && isBroken)
+            if (IsServer)
             {
+                if (m_Collider)
+                {
+                    m_Collider.enabled = !IsBroken;
+                }
+            }
+
+            if (previousValue > 0 && newValue >= 0)
+            {
+                Broken?.Invoke();
                 PerformBreakVisualization(false);
             }
-            else if (wasBroken && !isBroken)
+            else if (previousValue == 0 && newValue > 0)
             {
                 PerformUnbreakVisualization();
             }
         }
 
-        private void PerformBreakVisualization(bool onStart)
+        void PerformBreakVisualization(bool onStart)
         {
             foreach (var unbrokenGameObject in m_UnbrokenGameObjects)
             {
@@ -175,12 +179,13 @@ private void PerformBreakVisualization(bool onStart)
             }
         }
 
-        private void PerformUnbreakVisualization()
+        void PerformUnbreakVisualization()
         {
             if (m_CurrentBrokenVisualization)
             {
                 Destroy(m_CurrentBrokenVisualization);
             }
+
             foreach (var unbrokenGameObject in m_UnbrokenGameObjects)
             {
                 if (unbrokenGameObject)
@@ -191,7 +196,7 @@ private void PerformUnbreakVisualization()
         }
 
 #if UNITY_EDITOR
-        private void OnValidate()
+        void OnValidate()
         {
             if (!m_Collider)
                 m_Collider = GetComponent();
@@ -202,7 +207,4 @@ private void OnValidate()
         }
 #endif
     }
-
-
 }
-
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/Character/ServerCharacter.cs b/Assets/Scripts/Gameplay/GameplayObjects/Character/ServerCharacter.cs
index 3edac2f84b..623af424e8 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/Character/ServerCharacter.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/Character/ServerCharacter.cs
@@ -1,3 +1,4 @@
+using System;
 using System.Collections;
 using Unity.BossRoom.ConnectionManagement;
 using Unity.BossRoom.Gameplay.Actions;
@@ -156,6 +157,7 @@ public override void OnNetworkSpawn()
                 NetLifeState.LifeState.OnValueChanged += OnLifeStateChanged;
                 m_DamageReceiver.DamageReceived += ReceiveHP;
                 m_DamageReceiver.CollisionEntered += CollisionEntered;
+                m_DamageReceiver.GetTotalDamageFunc += GetTotalDamage;
 
                 if (IsNpc)
                 {
@@ -179,6 +181,7 @@ public override void OnNetworkDespawn()
             {
                 m_DamageReceiver.DamageReceived -= ReceiveHP;
                 m_DamageReceiver.CollisionEntered -= CollisionEntered;
+                m_DamageReceiver.GetTotalDamageFunc -= GetTotalDamage;
             }
         }
 
@@ -393,6 +396,11 @@ void CollisionEntered(Collision collision)
             }
         }
 
+        int GetTotalDamage()
+        {
+            return Math.Max(0, CharacterClass.BaseHP.Value - HitPoints);
+        }
+
         /// 
         /// This character's AIBrain. Will be null if this is not an NPC.
         /// 
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/DamageReceiver.cs b/Assets/Scripts/Gameplay/GameplayObjects/DamageReceiver.cs
index cc4e95c6c6..ad8e8d971c 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/DamageReceiver.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/DamageReceiver.cs
@@ -11,17 +11,29 @@ public class DamageReceiver : NetworkBehaviour, IDamageable
 
         public event Action CollisionEntered;
 
+        public event Func GetTotalDamageFunc;
+
         [SerializeField]
         NetworkLifeState m_NetworkLifeState;
 
-        public void ReceiveHP(ServerCharacter inflicter, int HP)
+        public void ReceiveHitPoints(ServerCharacter inflicter, int hitPoints)
         {
             if (IsDamageable())
             {
-                DamageReceived?.Invoke(inflicter, HP);
+                DamageReceived?.Invoke(inflicter, hitPoints);
             }
         }
 
+        public int GetTotalDamage()
+        {
+            if (!IsDamageable())
+            {
+                return 0;
+            }
+
+            return GetTotalDamageFunc?.Invoke() ?? 0;
+        }
+
         public IDamageable.SpecialDamageFlags GetSpecialDamageFlags()
         {
             return IDamageable.SpecialDamageFlags.None;
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/EnemyPortal.cs b/Assets/Scripts/Gameplay/GameplayObjects/EnemyPortal.cs
index ffed31f2f0..b63de4e1bc 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/EnemyPortal.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/EnemyPortal.cs
@@ -4,6 +4,7 @@
 using Unity.Netcode;
 using UnityEngine;
 using UnityEngine.Assertions;
+using UnityEngine.Serialization;
 
 namespace Unity.BossRoom.Gameplay.GameplayObjects
 {
@@ -31,11 +32,11 @@ public class EnemyPortal : NetworkBehaviour, ITargetable
         float m_DormantCooldown;
 
         [SerializeField]
-        Breakable m_Breakable;
+        Breakable m_PortalBreakable;
 
-        public bool IsNpc { get { return true; } }
+        public bool IsNpc => true;
 
-        public bool IsValidTarget { get { return !m_Breakable.IsBroken.Value; } }
+        public bool IsValidTarget => !m_PortalBreakable.IsBroken;
 
         // cached reference to our components
         [SerializeField]
@@ -54,7 +55,7 @@ public override void OnNetworkSpawn()
 
             foreach (var breakable in m_BreakableElements)
             {
-                breakable.IsBroken.OnValueChanged += OnBreakableBroken;
+                breakable.Broken += OnBreakableBroken;
             }
 
             MaintainState();
@@ -68,29 +69,37 @@ public override void OnNetworkDespawn()
             foreach (var breakable in m_BreakableElements)
             {
                 if (breakable)
-                    breakable.IsBroken.OnValueChanged -= OnBreakableBroken;
+                {
+                    breakable.Broken -= OnBreakableBroken;
+                }
             }
         }
 
-        private void OnBreakableBroken(bool wasBroken, bool isBroken)
+        void OnBreakableBroken()
         {
-            if (!wasBroken && isBroken)
-                MaintainState();
+            MaintainState();
         }
 
-        private void MaintainState()
+        void MaintainState()
         {
             bool hasUnbrokenBreakables = false;
             foreach (var breakable in m_BreakableElements)
             {
-                if (breakable && !breakable.IsBroken.Value)
+                if (breakable && !breakable.IsBroken)
                 {
                     hasUnbrokenBreakables = true;
                     break;
                 }
             }
 
-            m_Breakable.IsBroken.Value = !hasUnbrokenBreakables;
+            if (!hasUnbrokenBreakables)
+            {
+                m_PortalBreakable.Break();
+            }
+            else
+            {
+                m_PortalBreakable.Unbreak();
+            }
             m_WaveSpawner.SetSpawnerEnabled(hasUnbrokenBreakables);
             if (!hasUnbrokenBreakables && m_CoroDormant == null)
             {
@@ -117,7 +126,7 @@ void Restart()
                 }
             }
 
-            m_Breakable.IsBroken.Value = false;
+            m_PortalBreakable.Unbreak();
             m_WaveSpawner.SetSpawnerEnabled(true);
             m_CoroDormant = null;
         }
@@ -140,7 +149,7 @@ public void ForceDestroy()
                 {
                     var serverComponent = state.GetComponent();
                     Assert.IsNotNull(serverComponent);
-                    serverComponent.ReceiveHP(null, Int32.MinValue);
+                    serverComponent.Break();
                 }
             }
         }
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/IDamageable.cs b/Assets/Scripts/Gameplay/GameplayObjects/IDamageable.cs
index 23185d6313..8e7682f314 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/IDamageable.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/IDamageable.cs
@@ -14,8 +14,14 @@ public interface IDamageable
         /// Receives HP damage or healing.
         /// 
/// The Character responsible for the damage. May be null.
-        /// The damage done. Negative value is damage, positive is healing.
-        void ReceiveHP(ServerCharacter inflicter, int HP);
+        /// The damage done. Negative value is damage, positive is healing.
+        void ReceiveHitPoints(ServerCharacter inflicter, int hitPoints);
+
+        /// 
+        /// Get the total damage value.
+        /// 
+        /// The return value is your total health minus your current health.
+        int GetTotalDamage();
 
         /// 
         /// The NetworkId of this object.
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/Projectiles/PhysicsProjectile.cs b/Assets/Scripts/Gameplay/GameplayObjects/Projectiles/PhysicsProjectile.cs
index 6701f6a44c..4065ffe9ae 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/Projectiles/PhysicsProjectile.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/Projectiles/PhysicsProjectile.cs
@@ -212,7 +212,7 @@ void DetectCollisions()
 
                         if (m_CollisionCache[i].TryGetComponent(out IDamageable damageable))
                         {
-                            damageable.ReceiveHP(spawnerObj, -m_ProjectileInfo.Damage);
+                            damageable.ReceiveHitPoints(spawnerObj, -m_ProjectileInfo.Damage);
                         }
                     }
 
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/PublishMessageOnLifeChange.cs b/Assets/Scripts/Gameplay/GameplayObjects/PublishMessageOnLifeChange.cs
index ceb866027f..14daaf1198 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/PublishMessageOnLifeChange.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/PublishMessageOnLifeChange.cs
@@ -40,7 +40,7 @@ public override void OnNetworkSpawn()
                 m_NameState = GetComponent();
                 m_NetworkLifeState.LifeState.OnValueChanged += OnLifeStateChanged;
 
-                var gameState = FindObjectOfType();
+                var gameState = FindAnyObjectByType();
                 if (gameState != null)
                 {
                     gameState.Container.Inject(this);
diff --git a/Assets/Scripts/Gameplay/GameplayObjects/TossedItem.cs b/Assets/Scripts/Gameplay/GameplayObjects/TossedItem.cs
index ea67187979..df8ca34f51 100644
--- a/Assets/Scripts/Gameplay/GameplayObjects/TossedItem.cs
+++ b/Assets/Scripts/Gameplay/GameplayObjects/TossedItem.cs
@@ -102,7 +102,7 @@ void Detonate()
             {
                 if (m_CollisionCache[i].gameObject.TryGetComponent(out IDamageable damageReceiver))
                 {
-                    damageReceiver.ReceiveHP(null, -m_DamagePoints);
+                    damageReceiver.ReceiveHitPoints(null, -m_DamagePoints);
 
                     var serverCharacter = m_CollisionCache[i].gameObject.GetComponentInParent();
                     if (serverCharacter)
diff --git a/Assets/Scripts/Gameplay/UI/HeroActionBar.cs b/Assets/Scripts/Gameplay/UI/HeroActionBar.cs
index ba4d77f18e..850703ef6d 100644
--- a/Assets/Scripts/Gameplay/UI/HeroActionBar.cs
+++ b/Assets/Scripts/Gameplay/UI/HeroActionBar.cs
@@ -4,6 +4,7 @@
 using Unity.BossRoom.Gameplay.GameplayObjects;
 using Unity.BossRoom.Gameplay.GameplayObjects.Character;
 using UnityEngine;
+using UnityEngine.InputSystem;
 using Action = Unity.BossRoom.Gameplay.Actions.Action;
 using SkillTriggerStyle = Unity.BossRoom.Gameplay.UserInput.ClientInputSender.SkillTriggerStyle;
 
@@ -40,6 +41,9 @@ public class HeroActionBar : MonoBehaviour
         /// 
         ClientInputSender m_InputSender;
 
+        [SerializeField]
+        InputActionReference m_ToggleEmoteBarAction;
+
         /// 
         /// Identifiers for the buttons on the action bar.
         /// 
@@ -129,6 +133,7 @@ void RegisterInputSender(ClientPlayerAvatar clientPlayerAvatar)
             {
                 GameDataSource.Instance.TryGetActionPrototypeByID(m_InputSender.actionState1.actionID, out action1);
             }
+
             UpdateActionButton(m_ButtonInfo[ActionButtonType.BasicAction], action1);
 
             Action action2 = null;
@@ -136,6 +141,7 @@ void RegisterInputSender(ClientPlayerAvatar clientPlayerAvatar)
             {
                 GameDataSource.Instance.TryGetActionPrototypeByID(m_InputSender.actionState2.actionID, out action2);
             }
+
             UpdateActionButton(m_ButtonInfo[ActionButtonType.Special1], action2);
 
             Action action3 = null;
@@ -143,6 +149,7 @@ void RegisterInputSender(ClientPlayerAvatar clientPlayerAvatar)
             {
                 GameDataSource.Instance.TryGetActionPrototypeByID(m_InputSender.actionState3.actionID, out action3);
             }
+
             UpdateActionButton(m_ButtonInfo[ActionButtonType.Special2], action3);
         }
 
@@ -161,6 +168,7 @@ void DeregisterInputSender()
             {
                 m_InputSender.action1ModifiedCallback -= Action1ModifiedCallback;
             }
+
             m_InputSender = null;
         }
 
@@ -174,6 +182,8 @@ void Awake()
                 [ActionButtonType.EmoteBar] = new ActionButtonInfo(ActionButtonType.EmoteBar, m_EmoteBarButton, this),
             };
 
+            m_ToggleEmoteBarAction.action.performed += OnToggleEmoteBarPerformed;
+
             ClientPlayerAvatar.LocalClientSpawned += RegisterInputSender;
             ClientPlayerAvatar.LocalClientDespawned += DeregisterInputSender;
         }
@@ -198,13 +208,15 @@ void OnDestroy()
         {
             DeregisterInputSender();
 
+            m_ToggleEmoteBarAction.action.performed -= OnToggleEmoteBarPerformed;
+
             ClientPlayerAvatar.LocalClientSpawned -= RegisterInputSender;
             ClientPlayerAvatar.LocalClientDespawned -= DeregisterInputSender;
         }
 
-        void Update()
+        void OnToggleEmoteBarPerformed(InputAction.CallbackContext obj)
         {
-            if (Input.GetKeyUp(KeyCode.Alpha4))
+            if (obj.performed)
             {
                 m_ButtonInfo[ActionButtonType.EmoteBar].Button.OnPointerUpEvent.Invoke();
             }
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyListItemUI.cs b/Assets/Scripts/Gameplay/UI/Lobby/LobbyListItemUI.cs
deleted file mode 100644
index 62733cda31..0000000000
--- a/Assets/Scripts/Gameplay/UI/Lobby/LobbyListItemUI.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using TMPro;
-using Unity.BossRoom.UnityServices.Lobbies;
-using UnityEngine;
-using VContainer;
-
-namespace Unity.BossRoom.Gameplay.UI
-{
-    /// 
-    /// An individual Lobby UI in the list of available lobbies
-    /// 
-    public class LobbyListItemUI : MonoBehaviour
-    {
-        [SerializeField] TextMeshProUGUI m_lobbyNameText;
-        [SerializeField] TextMeshProUGUI m_lobbyCountText;
-
-        [Inject] LobbyUIMediator m_LobbyUIMediator;
-
-        LocalLobby m_Data;
-
-
-        public void SetData(LocalLobby data)
-        {
-            m_Data = data;
-            m_lobbyNameText.SetText(data.LobbyName);
-            m_lobbyCountText.SetText($"{data.PlayerCount}/{data.MaxPlayerCount}");
-        }
-
-        public void OnClick()
-        {
-            m_LobbyUIMediator.JoinLobbyRequest(m_Data);
-        }
-    }
-}
diff --git a/Assets/Scripts/Gameplay/UI/PartyHUD.cs b/Assets/Scripts/Gameplay/UI/PartyHUD.cs
index f2c5b16b92..dfc3461981 100644
--- a/Assets/Scripts/Gameplay/UI/PartyHUD.cs
+++ b/Assets/Scripts/Gameplay/UI/PartyHUD.cs
@@ -22,36 +22,33 @@ public class PartyHUD : MonoBehaviour
         ClientPlayerAvatarRuntimeCollection m_PlayerAvatars;
 
         [SerializeField]
-        private Image m_HeroPortrait;
+        Image m_HeroPortrait;
 
         [SerializeField]
-        private GameObject[] m_AllyPanel;
+        GameObject[] m_AllyPanel;
 
         [SerializeField]
-        private TextMeshProUGUI[] m_PartyNames;
+        TextMeshProUGUI[] m_PartyNames;
 
         [SerializeField]
-        private Image[] m_PartyClassSymbols;
+        Image[] m_PartyClassSymbols;
 
         [SerializeField]
-        private Slider[] m_PartyHealthSliders;
+        Slider[] m_PartyHealthSliders;
 
         [SerializeField]
-        private Image[] m_PartyHealthGodModeImages;
+        Image[] m_PartyHealthGodModeImages;
 
         // track a list of hero (slot 0) + allies
-        private ulong[] m_PartyIds;
-
-        // track Hero's target to show when it is the Hero or an ally
-        private ulong m_CurrentTarget;
+        ulong[] m_PartyIds;
 
         ServerCharacter m_OwnedServerCharacter;
 
         ClientPlayerAvatar m_OwnedPlayerAvatar;
 
-        private Dictionary m_TrackedAllies = new Dictionary();
+        Dictionary m_TrackedAllies = new Dictionary();
 
-        private ClientInputSender m_ClientSender;
+        ClientInputSender m_ClientSender;
 
         void Awake()
         {
@@ -150,6 +147,7 @@ void SetAllyData(ClientPlayerAvatar clientPlayerAvatar)
 
             ulong id = serverCharacter.NetworkObjectId;
             int slot = FindOrAddAlly(id);
+
             // do nothing if not in a slot
             if (slot == -1)
             {
@@ -189,19 +187,22 @@ void SetUIFromSlotData(int slot, ServerCharacter serverCharacter)
 #if UNITY_EDITOR || DEVELOPMENT_BUILD
         void SetAllyGodModeStatus(ulong id, bool newValue)
         {
-            int slot = FindOrAddAlly(id);
+            int slot = FindOrAddAlly(id, true);
+
             // do nothing if not in a slot
             if (slot == -1)
             {
                 return;
             }
+
             m_PartyHealthGodModeImages[slot].gameObject.SetActive(newValue);
         }
 #endif
 
         void SetAllyHealth(ulong id, int hp)
         {
-            int slot = FindOrAddAlly(id);
+            int slot = FindOrAddAlly(id, true);
+
             // do nothing if not in a slot
             if (slot == -1)
             {
@@ -211,29 +212,20 @@ void SetAllyHealth(ulong id, int hp)
             m_PartyHealthSliders[slot].value = hp;
         }
 
-        private void OnHeroSelectionChanged(ulong prevTarget, ulong newTarget)
+        void OnHeroSelectionChanged(ulong prevTarget, ulong newTarget)
         {
-            SetHeroSelectFX(m_CurrentTarget, false);
+            SetHeroSelectFX(prevTarget, false);
             SetHeroSelectFX(newTarget, true);
         }
 
         // Helper to change name appearance for selected or unselected party members
-        // also updates m_CurrentTarget
-        private void SetHeroSelectFX(ulong target, bool selected)
+        void SetHeroSelectFX(ulong target, bool selected)
         {
             // check id against all party slots
             int slot = FindOrAddAlly(target, true);
             if (slot >= 0)
             {
                 m_PartyNames[slot].color = selected ? Color.green : Color.white;
-                if (selected)
-                {
-                    m_CurrentTarget = target;
-                }
-                else
-                {
-                    m_CurrentTarget = 0;
-                }
             }
         }
 
@@ -244,7 +236,7 @@ public void SelectPartyMember(int slot)
         }
 
         // helper to initialize the Allies array - safe to call multiple times
-        private void InitPartyArrays()
+        void InitPartyArrays()
         {
             if (m_PartyIds == null)
             {
@@ -262,16 +254,26 @@ private void InitPartyArrays()
 
         // Helper to find ally slots, returns -1 if no slot is found for the id
         // If a slot is available one will be added for this id unless dontAdd=true
-        private int FindOrAddAlly(ulong id, bool dontAdd = false)
+        int FindOrAddAlly(ulong id, bool dontAdd = false)
         {
             // make sure allies array is ready
             InitPartyArrays();
 
+            if (id == 0)
+            {
+                // special case: id of 0 is uninitialized party id
+                return -1;
+            }
+
             int openslot = -1;
             for (int i = 0; i < m_PartyIds.Length; i++)
             {
                 // if this ID is in the list, return the slot index
-                if (m_PartyIds[i] == id) { return i; }
+                if (m_PartyIds[i] == id)
+                {
+                    return i;
+                }
+
                 // otherwise, record the first open slot (not slot 0 thats for the Hero)
                 if (openslot == -1 && i > 0 && m_PartyIds[i] == 0)
                 {
@@ -287,6 +289,7 @@ private int FindOrAddAlly(ulong id, bool dontAdd = false)
             {
                 // activeate the correct ally panel
                 m_AllyPanel[openslot - 1].SetActive(true);
+
                 // and save ally ID to party array
                 m_PartyIds[openslot] = id;
                 return openslot;
@@ -315,15 +318,18 @@ void RemoveHero()
         ///  NetworkObjectID of the ally. 
         void RemoveAlly(ulong id)
         {
+            // remove potential selected state of party member UI
+            SetHeroSelectFX(id, false);
+
             for (int i = 0; i < m_PartyIds.Length; i++)
             {
                 // if this ID is in the list, return the slot index
                 if (m_PartyIds[i] == id)
                 {
                     m_AllyPanel[i - 1].SetActive(false);
+
                     // and save ally ID to party array
                     m_PartyIds[i] = 0;
-                    return;
                 }
             }
 
diff --git a/Assets/Scripts/Gameplay/UI/RoomNameBox.cs b/Assets/Scripts/Gameplay/UI/RoomNameBox.cs
index 06525f6b3b..ecc4460b47 100644
--- a/Assets/Scripts/Gameplay/UI/RoomNameBox.cs
+++ b/Assets/Scripts/Gameplay/UI/RoomNameBox.cs
@@ -1,6 +1,6 @@
 using System;
 using TMPro;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using UnityEngine;
 using UnityEngine.UI;
 using VContainer;
@@ -14,32 +14,32 @@ public class RoomNameBox : MonoBehaviour
         [SerializeField]
         Button m_CopyToClipboardButton;
 
-        LocalLobby m_LocalLobby;
-        string m_LobbyCode;
+        LocalSession m_LocalSession;
+        string m_SessionCode;
 
         [Inject]
-        private void InjectDependencies(LocalLobby localLobby)
+        private void InjectDependencies(LocalSession localSession)
         {
-            m_LocalLobby = localLobby;
-            m_LocalLobby.changed += UpdateUI;
+            m_LocalSession = localSession;
+            m_LocalSession.changed += UpdateUI;
         }
 
         void Awake()
         {
-            UpdateUI(m_LocalLobby);
+            UpdateUI(m_LocalSession);
         }
 
         private void OnDestroy()
         {
-            m_LocalLobby.changed -= UpdateUI;
+            m_LocalSession.changed -= UpdateUI;
         }
 
-        private void UpdateUI(LocalLobby localLobby)
+        private void UpdateUI(LocalSession localSession)
         {
-            if (!string.IsNullOrEmpty(localLobby.LobbyCode))
+            if (!string.IsNullOrEmpty(localSession.SessionCode))
             {
-                m_LobbyCode = localLobby.LobbyCode;
-                m_RoomNameText.text = $"Lobby Code: {m_LobbyCode}";
+                m_SessionCode = localSession.SessionCode;
+                m_RoomNameText.text = $"Session Code: {m_SessionCode}";
                 gameObject.SetActive(true);
                 m_CopyToClipboardButton.gameObject.SetActive(true);
             }
@@ -51,7 +51,7 @@ private void UpdateUI(LocalLobby localLobby)
 
         public void CopyToClipboard()
         {
-            GUIUtility.systemCopyBuffer = m_LobbyCode;
+            GUIUtility.systemCopyBuffer = m_SessionCode;
         }
     }
 }
diff --git a/Assets/Scripts/Gameplay/UI/Lobby.meta b/Assets/Scripts/Gameplay/UI/Session.meta
similarity index 100%
rename from Assets/Scripts/Gameplay/UI/Lobby.meta
rename to Assets/Scripts/Gameplay/UI/Session.meta
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyCreationUI.cs b/Assets/Scripts/Gameplay/UI/Session/SessionCreationUI.cs
similarity index 74%
rename from Assets/Scripts/Gameplay/UI/Lobby/LobbyCreationUI.cs
rename to Assets/Scripts/Gameplay/UI/Session/SessionCreationUI.cs
index 4f21410ece..17388c2ed5 100644
--- a/Assets/Scripts/Gameplay/UI/Lobby/LobbyCreationUI.cs
+++ b/Assets/Scripts/Gameplay/UI/Session/SessionCreationUI.cs
@@ -5,13 +5,13 @@
 
 namespace Unity.BossRoom.Gameplay.UI
 {
-    public class LobbyCreationUI : MonoBehaviour
+    public class SessionCreationUI : MonoBehaviour
     {
-        [SerializeField] InputField m_LobbyNameInputField;
+        [SerializeField] InputField m_SessionNameInputField;
         [SerializeField] GameObject m_LoadingIndicatorObject;
         [SerializeField] Toggle m_IsPrivate;
         [SerializeField] CanvasGroup m_CanvasGroup;
-        [Inject] LobbyUIMediator m_LobbyUIMediator;
+        [Inject] SessionUIMediator m_SessionUIMediator;
 
         void Awake()
         {
@@ -25,7 +25,7 @@ void EnableUnityRelayUI()
 
         public void OnCreateClick()
         {
-            m_LobbyUIMediator.CreateLobbyRequest(m_LobbyNameInputField.text, m_IsPrivate.isOn);
+            m_SessionUIMediator.CreateSessionRequest(m_SessionNameInputField.text, m_IsPrivate.isOn);
         }
 
         public void Show()
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyCreationUI.cs.meta b/Assets/Scripts/Gameplay/UI/Session/SessionCreationUI.cs.meta
similarity index 100%
rename from Assets/Scripts/Gameplay/UI/Lobby/LobbyCreationUI.cs.meta
rename to Assets/Scripts/Gameplay/UI/Session/SessionCreationUI.cs.meta
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyJoiningUI.cs b/Assets/Scripts/Gameplay/UI/Session/SessionJoiningUI.cs
similarity index 53%
rename from Assets/Scripts/Gameplay/UI/Lobby/LobbyJoiningUI.cs
rename to Assets/Scripts/Gameplay/UI/Session/SessionJoiningUI.cs
index fdff41faa2..1d97574561 100644
--- a/Assets/Scripts/Gameplay/UI/Lobby/LobbyJoiningUI.cs
+++ b/Assets/Scripts/Gameplay/UI/Session/SessionJoiningUI.cs
@@ -2,7 +2,7 @@
 using System.Collections.Generic;
 using System.Text.RegularExpressions;
 using Unity.BossRoom.Infrastructure;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using UnityEngine;
 using UnityEngine.UI;
 using VContainer;
@@ -10,31 +10,31 @@
 namespace Unity.BossRoom.Gameplay.UI
 {
     /// 
-    /// Handles the list of LobbyListItemUIs and ensures it stays synchronized with the lobby list from the service.
+    /// Handles the list of SessionListItemUIs and ensures it stays synchronized with the Session list from the service.
     /// 
-    public class LobbyJoiningUI : MonoBehaviour
+    public class SessionJoiningUI : MonoBehaviour
     {
         [SerializeField]
-        LobbyListItemUI m_LobbyListItemPrototype;
+        SessionListItemUI m_SessionListItemPrototype;
         [SerializeField]
         InputField m_JoinCodeField;
         [SerializeField]
         CanvasGroup m_CanvasGroup;
         [SerializeField]
-        Graphic m_EmptyLobbyListLabel;
+        Graphic m_EmptySessionListLabel;
         [SerializeField]
-        Button m_JoinLobbyButton;
+        Button m_JoinSessionButton;
 
         IObjectResolver m_Container;
-        LobbyUIMediator m_LobbyUIMediator;
+        SessionUIMediator m_SessionUIMediator;
         UpdateRunner m_UpdateRunner;
-        ISubscriber m_LocalLobbiesRefreshedSub;
+        ISubscriber m_LocalSessionsRefreshedSub;
 
-        List m_LobbyListItems = new List();
+        List m_SessionListItems = new List();
 
         void Awake()
         {
-            m_LobbyListItemPrototype.gameObject.SetActive(false);
+            m_SessionListItemPrototype.gameObject.SetActive(false);
         }
 
         void OnDisable()
@@ -47,24 +47,24 @@ void OnDisable()
 
         void OnDestroy()
         {
-            if (m_LocalLobbiesRefreshedSub != null)
+            if (m_LocalSessionsRefreshedSub != null)
             {
-                m_LocalLobbiesRefreshedSub.Unsubscribe(UpdateUI);
+                m_LocalSessionsRefreshedSub.Unsubscribe(UpdateUI);
             }
         }
 
         [Inject]
         void InjectDependenciesAndInitialize(
             IObjectResolver container,
-            LobbyUIMediator lobbyUIMediator,
+            SessionUIMediator sessionUIMediator,
             UpdateRunner updateRunner,
-            ISubscriber localLobbiesRefreshedSub)
+            ISubscriber localSessionsRefreshedSub)
         {
             m_Container = container;
-            m_LobbyUIMediator = lobbyUIMediator;
+            m_SessionUIMediator = sessionUIMediator;
             m_UpdateRunner = updateRunner;
-            m_LocalLobbiesRefreshedSub = localLobbiesRefreshedSub;
-            m_LocalLobbiesRefreshedSub.Subscribe(UpdateUI);
+            m_LocalSessionsRefreshedSub = localSessionsRefreshedSub;
+            m_LocalSessionsRefreshedSub.Subscribe(UpdateUI);
         }
 
         /// 
@@ -73,7 +73,7 @@ void InjectDependenciesAndInitialize(
         public void OnJoinCodeInputTextChanged()
         {
             m_JoinCodeField.text = SanitizeJoinCode(m_JoinCodeField.text);
-            m_JoinLobbyButton.interactable = m_JoinCodeField.text.Length > 0;
+            m_JoinSessionButton.interactable = m_JoinCodeField.text.Length > 0;
         }
 
         string SanitizeJoinCode(string dirtyString)
@@ -83,59 +83,59 @@ string SanitizeJoinCode(string dirtyString)
 
         public void OnJoinButtonPressed()
         {
-            m_LobbyUIMediator.JoinLobbyWithCodeRequest(SanitizeJoinCode(m_JoinCodeField.text));
+            m_SessionUIMediator.JoinSessionWithCodeRequest(SanitizeJoinCode(m_JoinCodeField.text));
         }
 
         void PeriodicRefresh(float _)
         {
             //this is a soft refresh without needing to lock the UI and such
-            m_LobbyUIMediator.QueryLobbiesRequest(false);
+            m_SessionUIMediator.QuerySessionRequest(false);
         }
 
         public void OnRefresh()
         {
-            m_LobbyUIMediator.QueryLobbiesRequest(true);
+            m_SessionUIMediator.QuerySessionRequest(true);
         }
 
-        void UpdateUI(LobbyListFetchedMessage message)
+        void UpdateUI(SessionListFetchedMessage message)
         {
-            EnsureNumberOfActiveUISlots(message.LocalLobbies.Count);
+            EnsureNumberOfActiveUISlots(message.LocalSessions.Count);
 
-            for (var i = 0; i < message.LocalLobbies.Count; i++)
+            for (var i = 0; i < message.LocalSessions.Count; i++)
             {
-                var localLobby = message.LocalLobbies[i];
-                m_LobbyListItems[i].SetData(localLobby);
+                var localSession = message.LocalSessions[i];
+                m_SessionListItems[i].SetData(localSession);
             }
 
-            if (message.LocalLobbies.Count == 0)
+            if (message.LocalSessions.Count == 0)
             {
-                m_EmptyLobbyListLabel.enabled = true;
+                m_EmptySessionListLabel.enabled = true;
             }
             else
             {
-                m_EmptyLobbyListLabel.enabled = false;
+                m_EmptySessionListLabel.enabled = false;
             }
         }
 
         void EnsureNumberOfActiveUISlots(int requiredNumber)
         {
-            int delta = requiredNumber - m_LobbyListItems.Count;
+            int delta = requiredNumber - m_SessionListItems.Count;
 
             for (int i = 0; i < delta; i++)
             {
-                m_LobbyListItems.Add(CreateLobbyListItem());
+                m_SessionListItems.Add(CreateSessionListItem());
             }
 
-            for (int i = 0; i < m_LobbyListItems.Count; i++)
+            for (int i = 0; i < m_SessionListItems.Count; i++)
             {
-                m_LobbyListItems[i].gameObject.SetActive(i < requiredNumber);
+                m_SessionListItems[i].gameObject.SetActive(i < requiredNumber);
             }
         }
 
-        LobbyListItemUI CreateLobbyListItem()
+        SessionListItemUI CreateSessionListItem()
         {
-            var listItem = Instantiate(m_LobbyListItemPrototype.gameObject, m_LobbyListItemPrototype.transform.parent)
-                .GetComponent();
+            var listItem = Instantiate(m_SessionListItemPrototype.gameObject, m_SessionListItemPrototype.transform.parent)
+                .GetComponent();
             listItem.gameObject.SetActive(true);
 
             m_Container.Inject(listItem);
@@ -145,7 +145,7 @@ LobbyListItemUI CreateLobbyListItem()
 
         public void OnQuickJoinClicked()
         {
-            m_LobbyUIMediator.QuickJoinRequest();
+            m_SessionUIMediator.QuickJoinRequest();
         }
 
         public void Show()
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyJoiningUI.cs.meta b/Assets/Scripts/Gameplay/UI/Session/SessionJoiningUI.cs.meta
similarity index 100%
rename from Assets/Scripts/Gameplay/UI/Lobby/LobbyJoiningUI.cs.meta
rename to Assets/Scripts/Gameplay/UI/Session/SessionJoiningUI.cs.meta
diff --git a/Assets/Scripts/Gameplay/UI/Session/SessionListItemUI.cs b/Assets/Scripts/Gameplay/UI/Session/SessionListItemUI.cs
new file mode 100644
index 0000000000..63804e964c
--- /dev/null
+++ b/Assets/Scripts/Gameplay/UI/Session/SessionListItemUI.cs
@@ -0,0 +1,36 @@
+using System;
+using TMPro;
+using Unity.Services.Multiplayer;
+using UnityEngine;
+using VContainer;
+
+namespace Unity.BossRoom.Gameplay.UI
+{
+    /// 
+    /// An individual Session UI in the list of available Sessions.
+    /// 
+    public class SessionListItemUI : MonoBehaviour
+    {
+        [SerializeField]
+        TextMeshProUGUI m_SessionNameText;
+        [SerializeField]
+        TextMeshProUGUI m_SessionCountText;
+
+        [Inject]
+        SessionUIMediator m_SessionUIMediator;
+
+        ISessionInfo m_Data;
+
+        public void SetData(ISessionInfo data)
+        {
+            m_Data = data;
+            m_SessionNameText.SetText(data.Name);
+            m_SessionCountText.SetText($"{data.MaxPlayers - data.AvailableSlots}/{data.MaxPlayers}");
+        }
+
+        public void OnClick()
+        {
+            m_SessionUIMediator.JoinSessionRequest(m_Data);
+        }
+    }
+}
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyListItemUI.cs.meta b/Assets/Scripts/Gameplay/UI/Session/SessionListItemUI.cs.meta
similarity index 100%
rename from Assets/Scripts/Gameplay/UI/Lobby/LobbyListItemUI.cs.meta
rename to Assets/Scripts/Gameplay/UI/Session/SessionListItemUI.cs.meta
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs b/Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs
similarity index 50%
rename from Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs
rename to Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs
index d79d7645bb..d3d3331eb0 100644
--- a/Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs
+++ b/Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs
@@ -4,41 +4,54 @@
 using Unity.BossRoom.ConnectionManagement;
 using Unity.BossRoom.Infrastructure;
 using Unity.BossRoom.UnityServices.Auth;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.Services.Core;
+using Unity.Services.Multiplayer;
 using UnityEngine;
 using VContainer;
 
 namespace Unity.BossRoom.Gameplay.UI
 {
-    public class LobbyUIMediator : MonoBehaviour
+    public class SessionUIMediator : MonoBehaviour
     {
-        [SerializeField] CanvasGroup m_CanvasGroup;
-        [SerializeField] LobbyJoiningUI m_LobbyJoiningUI;
-        [SerializeField] LobbyCreationUI m_LobbyCreationUI;
-        [SerializeField] UITinter m_JoinToggleHighlight;
-        [SerializeField] UITinter m_JoinToggleTabBlocker;
-        [SerializeField] UITinter m_CreateToggleHighlight;
-        [SerializeField] UITinter m_CreateToggleTabBlocker;
-        [SerializeField] TextMeshProUGUI m_PlayerNameLabel;
-        [SerializeField] GameObject m_LoadingSpinner;
+        [SerializeField]
+        CanvasGroup m_CanvasGroup;
+        [SerializeField]
+        SessionJoiningUI m_SessionJoiningUI;
+        [SerializeField]
+        SessionCreationUI m_SessionCreationUI;
+        [SerializeField]
+        UITinter m_JoinToggleHighlight;
+        [SerializeField]
+        UITinter m_JoinToggleTabBlocker;
+        [SerializeField]
+        UITinter m_CreateToggleHighlight;
+        [SerializeField]
+        UITinter m_CreateToggleTabBlocker;
+        [SerializeField]
+        TextMeshProUGUI m_PlayerNameLabel;
+        [SerializeField]
+        GameObject m_LoadingSpinner;
 
         AuthenticationServiceFacade m_AuthenticationServiceFacade;
-        LobbyServiceFacade m_LobbyServiceFacade;
-        LocalLobbyUser m_LocalUser;
-        LocalLobby m_LocalLobby;
+        MultiplayerServicesFacade m_MultiplayerServicesFacade;
+        LocalSessionUser m_LocalUser;
+        LocalSession m_LocalSession;
         NameGenerationData m_NameGenerationData;
         ConnectionManager m_ConnectionManager;
         ISubscriber m_ConnectStatusSubscriber;
 
-        const string k_DefaultLobbyName = "no-name";
+        const string k_DefaultSessionName = "no-name";
+        const int k_MaxPlayers = 8;
+
+        ISession m_Session;
 
         [Inject]
         void InjectDependenciesAndInitialize(
             AuthenticationServiceFacade authenticationServiceFacade,
-            LobbyServiceFacade lobbyServiceFacade,
-            LocalLobbyUser localUser,
-            LocalLobby localLobby,
+            MultiplayerServicesFacade multiplayerServicesFacade,
+            LocalSessionUser localUser,
+            LocalSession localSession,
             NameGenerationData nameGenerationData,
             ISubscriber connectStatusSub,
             ConnectionManager connectionManager
@@ -47,8 +60,8 @@ ConnectionManager connectionManager
             m_AuthenticationServiceFacade = authenticationServiceFacade;
             m_NameGenerationData = nameGenerationData;
             m_LocalUser = localUser;
-            m_LobbyServiceFacade = lobbyServiceFacade;
-            m_LocalLobby = localLobby;
+            m_MultiplayerServicesFacade = multiplayerServicesFacade;
+            m_LocalSession = localSession;
             m_ConnectionManager = connectionManager;
             m_ConnectStatusSubscriber = connectStatusSub;
             RegenerateName();
@@ -66,25 +79,21 @@ void OnConnectStatus(ConnectStatus status)
 
         void OnDestroy()
         {
-            if (m_ConnectStatusSubscriber != null)
-            {
-                m_ConnectStatusSubscriber.Unsubscribe(OnConnectStatus);
-            }
+            m_ConnectStatusSubscriber?.Unsubscribe(OnConnectStatus);
         }
 
-        //Lobby and Relay calls done from UI
-
-        public async void CreateLobbyRequest(string lobbyName, bool isPrivate)
+        // Multiplayer Services SDK calls done from UI
+        public async void CreateSessionRequest(string sessionName, bool isPrivate)
         {
-            // before sending request to lobby service, populate an empty lobby name, if necessary
-            if (string.IsNullOrEmpty(lobbyName))
+            // before sending request, populate an empty session name, if necessary
+            if (string.IsNullOrEmpty(sessionName))
             {
-                lobbyName = k_DefaultLobbyName;
+                sessionName = k_DefaultSessionName;
             }
 
             BlockUIWhileLoadingIsInProgress();
 
-            bool playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
+            var playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
 
             if (!playerIsAuthorized)
             {
@@ -92,23 +101,14 @@ public async void CreateLobbyRequest(string lobbyName, bool isPrivate)
                 return;
             }
 
-            var lobbyCreationAttempt = await m_LobbyServiceFacade.TryCreateLobbyAsync(lobbyName, m_ConnectionManager.MaxConnectedPlayers, isPrivate);
+            m_ConnectionManager.StartHostSession(m_LocalUser.DisplayName);
 
-            if (lobbyCreationAttempt.Success)
-            {
-                m_LocalUser.IsHost = true;
-                m_LobbyServiceFacade.SetRemoteLobby(lobbyCreationAttempt.Lobby);
+            var result = await m_MultiplayerServicesFacade.TryCreateSessionAsync(sessionName, k_MaxPlayers, isPrivate);
 
-                Debug.Log($"Created lobby with ID: {m_LocalLobby.LobbyID} and code {m_LocalLobby.LobbyCode}");
-                m_ConnectionManager.StartHostLobby(m_LocalUser.DisplayName);
-            }
-            else
-            {
-                UnblockUIAfterLoadingIsComplete();
-            }
+            HandleSessionJoinResult(result);
         }
 
-        public async void QueryLobbiesRequest(bool blockUI)
+        public async void QuerySessionRequest(bool blockUI)
         {
             if (Unity.Services.Core.UnityServices.State != ServicesInitializationState.Initialized)
             {
@@ -120,7 +120,7 @@ public async void QueryLobbiesRequest(bool blockUI)
                 BlockUIWhileLoadingIsInProgress();
             }
 
-            bool playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
+            var playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
 
             if (blockUI && !playerIsAuthorized)
             {
@@ -128,7 +128,7 @@ public async void QueryLobbiesRequest(bool blockUI)
                 return;
             }
 
-            await m_LobbyServiceFacade.RetrieveAndPublishLobbyListAsync();
+            await m_MultiplayerServicesFacade.RetrieveAndPublishSessionListAsync();
 
             if (blockUI)
             {
@@ -136,11 +136,11 @@ public async void QueryLobbiesRequest(bool blockUI)
             }
         }
 
-        public async void JoinLobbyWithCodeRequest(string lobbyCode)
+        public async void JoinSessionWithCodeRequest(string sessionCode)
         {
             BlockUIWhileLoadingIsInProgress();
 
-            bool playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
+            var playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
 
             if (!playerIsAuthorized)
             {
@@ -148,23 +148,18 @@ public async void JoinLobbyWithCodeRequest(string lobbyCode)
                 return;
             }
 
-            var result = await m_LobbyServiceFacade.TryJoinLobbyAsync(null, lobbyCode);
+            m_ConnectionManager.StartClientSession(m_LocalUser.DisplayName);
 
-            if (result.Success)
-            {
-                OnJoinedLobby(result.Lobby);
-            }
-            else
-            {
-                UnblockUIAfterLoadingIsComplete();
-            }
+            var result = await m_MultiplayerServicesFacade.TryJoinSessionByCodeAsync(sessionCode);
+
+            HandleSessionJoinResult(result);
         }
 
-        public async void JoinLobbyRequest(LocalLobby lobby)
+        public async void JoinSessionRequest(ISessionInfo sessionInfo)
         {
             BlockUIWhileLoadingIsInProgress();
 
-            bool playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
+            var playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
 
             if (!playerIsAuthorized)
             {
@@ -172,23 +167,18 @@ public async void JoinLobbyRequest(LocalLobby lobby)
                 return;
             }
 
-            var result = await m_LobbyServiceFacade.TryJoinLobbyAsync(lobby.LobbyID, lobby.LobbyCode);
+            m_ConnectionManager.StartClientSession(m_LocalUser.DisplayName);
 
-            if (result.Success)
-            {
-                OnJoinedLobby(result.Lobby);
-            }
-            else
-            {
-                UnblockUIAfterLoadingIsComplete();
-            }
+            var result = await m_MultiplayerServicesFacade.TryJoinSessionByNameAsync(sessionInfo.Id);
+
+            HandleSessionJoinResult(result);
         }
 
         public async void QuickJoinRequest()
         {
             BlockUIWhileLoadingIsInProgress();
 
-            bool playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
+            var playerIsAuthorized = await m_AuthenticationServiceFacade.EnsurePlayerIsAuthorized();
 
             if (!playerIsAuthorized)
             {
@@ -196,24 +186,33 @@ public async void QuickJoinRequest()
                 return;
             }
 
-            var result = await m_LobbyServiceFacade.TryQuickJoinLobbyAsync();
+            m_ConnectionManager.StartHostSession(m_LocalUser.DisplayName);
 
+            var result = await m_MultiplayerServicesFacade.TryQuickJoinSessionAsync();
+
+            HandleSessionJoinResult(result);
+        }
+
+        void HandleSessionJoinResult((bool Success, ISession Session) result)
+        {
             if (result.Success)
             {
-                OnJoinedLobby(result.Lobby);
+                OnJoinedSession(result.Session);
             }
             else
             {
+                m_ConnectionManager.RequestShutdown();
                 UnblockUIAfterLoadingIsComplete();
             }
         }
 
-        void OnJoinedLobby(Unity.Services.Lobbies.Models.Lobby remoteLobby)
+        void OnJoinedSession(ISession remoteSession)
         {
-            m_LobbyServiceFacade.SetRemoteLobby(remoteLobby);
+            m_MultiplayerServicesFacade.SetRemoteSession(remoteSession);
+
+            Debug.Log($"Joined session with ID: {m_LocalSession.SessionID}");
 
-            Debug.Log($"Joined lobby with code: {m_LocalLobby.LobbyCode}, Internal Relay Join Code{m_LocalLobby.RelayJoinCode}");
-            m_ConnectionManager.StartClientLobby(m_LocalUser.DisplayName);
+            m_ConnectionManager.StartClientSession(m_LocalUser.DisplayName);
         }
 
         //show/hide UI
@@ -228,24 +227,24 @@ public void Hide()
         {
             m_CanvasGroup.alpha = 0f;
             m_CanvasGroup.blocksRaycasts = false;
-            m_LobbyCreationUI.Hide();
-            m_LobbyJoiningUI.Hide();
+            m_SessionCreationUI.Hide();
+            m_SessionJoiningUI.Hide();
         }
 
-        public void ToggleJoinLobbyUI()
+        public void ToggleJoinSessionUI()
         {
-            m_LobbyJoiningUI.Show();
-            m_LobbyCreationUI.Hide();
+            m_SessionJoiningUI.Show();
+            m_SessionCreationUI.Hide();
             m_JoinToggleHighlight.SetToColor(1);
             m_JoinToggleTabBlocker.SetToColor(1);
             m_CreateToggleHighlight.SetToColor(0);
             m_CreateToggleTabBlocker.SetToColor(0);
         }
 
-        public void ToggleCreateLobbyUI()
+        public void ToggleCreateSessionUI()
         {
-            m_LobbyJoiningUI.Hide();
-            m_LobbyCreationUI.Show();
+            m_SessionJoiningUI.Hide();
+            m_SessionCreationUI.Show();
             m_JoinToggleHighlight.SetToColor(0);
             m_JoinToggleTabBlocker.SetToColor(0);
             m_CreateToggleHighlight.SetToColor(1);
@@ -266,8 +265,8 @@ void BlockUIWhileLoadingIsInProgress()
 
         void UnblockUIAfterLoadingIsComplete()
         {
-            //this callback can happen after we've already switched to a different scene
-            //in that case the canvas group would be null
+            // this callback can happen after we've already switched to a different scene
+            // in that case the canvas group would be null
             if (m_CanvasGroup != null)
             {
                 m_CanvasGroup.interactable = true;
diff --git a/Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs.meta b/Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs.meta
similarity index 100%
rename from Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs.meta
rename to Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs.meta
diff --git a/Assets/Scripts/Gameplay/UI/UICharSelectPlayerSeat.cs b/Assets/Scripts/Gameplay/UI/UICharSelectPlayerSeat.cs
index d79146ac0f..d04609f485 100644
--- a/Assets/Scripts/Gameplay/UI/UICharSelectPlayerSeat.cs
+++ b/Assets/Scripts/Gameplay/UI/UICharSelectPlayerSeat.cs
@@ -36,7 +36,7 @@ public class UICharSelectPlayerSeat : MonoBehaviour
         [SerializeField]
         private CharacterTypeEnum m_CharacterClass;
 
-        // just a way to designate which seat we are -- the leftmost seat on the lobby UI is index 0, the next one is index 1, etc.
+        // just a way to designate which seat we are -- the leftmost seat on the Session UI is index 0, the next one is index 1, etc.
         private int m_SeatIndex;
 
         // playerNumber of who is sitting in this seat right now. 0-based; e.g. this is 0 for Player 1, 1 for Player 2, etc. Meaningless when m_State is Inactive (and in that case it is set to -1 for clarity)
diff --git a/Assets/Scripts/Gameplay/UI/UIHUDButton.cs b/Assets/Scripts/Gameplay/UI/UIHUDButton.cs
index cbf9818ea3..ff8e1c50fd 100644
--- a/Assets/Scripts/Gameplay/UI/UIHUDButton.cs
+++ b/Assets/Scripts/Gameplay/UI/UIHUDButton.cs
@@ -9,7 +9,7 @@ namespace Unity.BossRoom.Gameplay.UI
     /// Provides logic for a UI HUD Button to slightly shrink scale on pointer down.
     /// Also has an optional code interface for receiving notifications about down/up events (instead of just on-click)
     /// 
-    public class UIHUDButton : Button, IPointerDownHandler, IPointerUpHandler
+    public class UIHUDButton : Button
     {
         // We apply a uniform 95% scale to buttons when pressed
         static readonly Vector3 k_DownScale = new Vector3(0.95f, 0.95f, 0.95f);
diff --git a/Assets/Scripts/Gameplay/UI/UITooltipDetector.cs b/Assets/Scripts/Gameplay/UI/UITooltipDetector.cs
index 558221f9e0..03f281127f 100644
--- a/Assets/Scripts/Gameplay/UI/UITooltipDetector.cs
+++ b/Assets/Scripts/Gameplay/UI/UITooltipDetector.cs
@@ -1,6 +1,7 @@
 using System;
 using UnityEngine;
 using UnityEngine.EventSystems;
+using UnityEngine.InputSystem;
 
 namespace Unity.BossRoom.Gameplay.UI
 {
@@ -15,25 +16,28 @@ namespace Unity.BossRoom.Gameplay.UI
     /// 
     public class UITooltipDetector : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler
     {
+        [SerializeField]
+        InputActionReference m_PointAction;
+
         [SerializeField]
         [Tooltip("The actual Tooltip that should be triggered")]
-        private UITooltipPopup m_TooltipPopup;
+        UITooltipPopup m_TooltipPopup;
 
         [SerializeField]
         [Multiline]
         [Tooltip("The text of the tooltip (this is the default text; it can also be changed in code)")]
-        private string m_TooltipText;
+        string m_TooltipText;
 
         [SerializeField]
         [Tooltip("Should the tooltip appear instantly if the player clicks this UI element?")]
-        private bool m_ActivateOnClick = true;
+        bool m_ActivateOnClick = true;
 
         [SerializeField]
         [Tooltip("The length of time the mouse needs to hover over this element before the tooltip appears (in seconds)")]
-        private float m_TooltipDelay = 0.5f;
+        float m_TooltipDelay = 0.5f;
 
-        private float m_PointerEnterTime = 0;
-        private bool m_IsShowingTooltip;
+        float m_PointerEnterTime = 0;
+        bool m_IsShowingTooltip;
 
         public void SetText(string text)
         {
@@ -66,7 +70,7 @@ public void OnPointerClick(PointerEventData eventData)
             }
         }
 
-        private void Update()
+        void Update()
         {
             if (m_PointerEnterTime != 0 && (Time.time - m_PointerEnterTime) > m_TooltipDelay)
             {
@@ -74,16 +78,16 @@ private void Update()
             }
         }
 
-        private void ShowTooltip()
+        void ShowTooltip()
         {
             if (!m_IsShowingTooltip)
             {
-                m_TooltipPopup.ShowTooltip(m_TooltipText, Input.mousePosition);
+                m_TooltipPopup.ShowTooltip(m_TooltipText, m_PointAction.action.ReadValue());
                 m_IsShowingTooltip = true;
             }
         }
 
-        private void HideTooltip()
+        void HideTooltip()
         {
             if (m_IsShowingTooltip)
             {
@@ -93,14 +97,14 @@ private void HideTooltip()
         }
 
 #if UNITY_EDITOR
-        private void OnValidate()
+        void OnValidate()
         {
             if (gameObject.scene.rootCount > 1) // Hacky way for checking if this is a scene object or a prefab instance and not a prefab definition.
             {
                 if (!m_TooltipPopup)
                 {
                     // typically there's only one tooltip popup in the scene, so pick that
-                    m_TooltipPopup = FindObjectOfType();
+                    m_TooltipPopup = FindAnyObjectByType();
                 }
             }
         }
diff --git a/Assets/Scripts/Gameplay/UI/UITooltipPopup.cs b/Assets/Scripts/Gameplay/UI/UITooltipPopup.cs
index 864bcf0bcd..8b528e72fd 100644
--- a/Assets/Scripts/Gameplay/UI/UITooltipPopup.cs
+++ b/Assets/Scripts/Gameplay/UI/UITooltipPopup.cs
@@ -12,16 +12,16 @@ namespace Unity.BossRoom.Gameplay.UI
     public class UITooltipPopup : MonoBehaviour
     {
         [SerializeField]
-        private Canvas m_Canvas;
+        Canvas m_Canvas;
         [SerializeField]
         [Tooltip("This transform is shown/hidden to show/hide the popup box")]
-        private GameObject m_WindowRoot;
+        GameObject m_WindowRoot;
         [SerializeField]
-        private TextMeshProUGUI m_TextField;
+        TextMeshProUGUI m_TextField;
         [SerializeField]
-        private Vector3 m_CursorOffset;
+        Vector3 m_CursorOffset;
 
-        private void Awake()
+        void Awake()
         {
             Assert.IsNotNull(m_Canvas);
         }
@@ -48,7 +48,7 @@ public void HideTooltip()
         /// 
         /// Maps screen coordinates (e.g. Input.mousePosition) to coordinates on our Canvas.
         /// 
-        private Vector3 GetCanvasCoords(Vector3 screenCoords)
+        Vector3 GetCanvasCoords(Vector3 screenCoords)
         {
             Vector2 canvasCoords;
             RectTransformUtility.ScreenPointToLocalPointInRectangle(
@@ -60,14 +60,14 @@ private Vector3 GetCanvasCoords(Vector3 screenCoords)
         }
 
 #if UNITY_EDITOR
-        private void OnValidate()
+        void OnValidate()
         {
             if (gameObject.scene.rootCount > 1) // Hacky way for checking if this is a scene object or a prefab instance and not a prefab definition.
             {
                 if (!m_Canvas)
                 {
                     // typically there's only one canvas in the scene, so pick that
-                    m_Canvas = FindObjectOfType
         public enum SkillTriggerStyle
         {
-            None,        //no skill was triggered.
-            MouseClick,  //skill was triggered via mouse-click implying you should do a raycast from the mouse position to find a target.
-            Keyboard,    //skill was triggered via a Keyboard press, implying target should be taken from the active target.
+            None, //no skill was triggered.
+            MouseClick, //skill was triggered via mouse-click implying you should do a raycast from the mouse position to find a target.
+            Keyboard, //skill was triggered via a Keyboard press, implying target should be taken from the active target.
             KeyboardRelease, //represents a released key.
-            UI,          //skill was triggered from the UI, and similar to Keyboard, target should be inferred from the active target.
-            UIRelease,   //represents letting go of the mouse-button on a UI button
+            UI, //skill was triggered from the UI, and similar to Keyboard, target should be inferred from the active target.
+            UIRelease, //represents letting go of the mouse-button on a UI button
         }
 
         bool IsReleaseStyle(SkillTriggerStyle style)
@@ -128,6 +150,7 @@ public override void OnNetworkSpawn()
             if (!IsClient || !IsOwner)
             {
                 enabled = false;
+
                 // dont need to do anything else if not the owner
                 return;
             }
@@ -140,17 +163,30 @@ public override void OnNetworkSpawn()
             {
                 actionState1 = new ActionState() { actionID = action1.ActionID, selectable = true };
             }
+
             if (CharacterClass.Skill2 &&
                 GameDataSource.Instance.TryGetActionPrototypeByID(CharacterClass.Skill2.ActionID, out var action2))
             {
                 actionState2 = new ActionState() { actionID = action2.ActionID, selectable = true };
             }
+
             if (CharacterClass.Skill3 &&
                 GameDataSource.Instance.TryGetActionPrototypeByID(CharacterClass.Skill3.ActionID, out var action3))
             {
                 actionState3 = new ActionState() { actionID = action3.ActionID, selectable = true };
             }
 
+            m_Action1.action.started += OnAction1Started;
+            m_Action1.action.canceled += OnAction1Canceled;
+            m_Action2.action.started += OnAction2Started;
+            m_Action2.action.canceled += OnAction2Canceled;
+            m_Action3.action.started += OnAction3Started;
+            m_Action3.action.canceled += OnAction3Canceled;
+            m_Action5.action.performed += OnAction5Performed;
+            m_Action6.action.performed += OnAction6Performed;
+            m_Action7.action.performed += OnAction7Performed;
+            m_Action8.action.performed += OnAction8Performed;
+
             m_GroundLayerMask = LayerMask.GetMask(new[] { "Ground" });
             m_ActionLayerMask = LayerMask.GetMask(new[] { "PCs", "NPCs", "Ground" });
 
@@ -169,6 +205,17 @@ public override void OnNetworkDespawn()
             {
                 m_TargetServerCharacter.NetLifeState.LifeState.OnValueChanged -= OnTargetLifeStateChanged;
             }
+
+            m_Action1.action.started -= OnAction1Started;
+            m_Action1.action.canceled -= OnAction1Canceled;
+            m_Action2.action.started -= OnAction2Started;
+            m_Action2.action.canceled -= OnAction2Canceled;
+            m_Action3.action.started -= OnAction3Started;
+            m_Action3.action.canceled -= OnAction3Canceled;
+            m_Action5.action.performed -= OnAction5Performed;
+            m_Action6.action.performed -= OnAction6Performed;
+            m_Action7.action.performed -= OnAction7Performed;
+            m_Action8.action.performed -= OnAction8Performed;
         }
 
         void OnTargetChanged(ulong previousValue, ulong newValue)
@@ -252,7 +299,7 @@ void FixedUpdate()
                 if ((Time.time - m_LastSentMove) > k_MoveSendRateSeconds)
                 {
                     m_LastSentMove = Time.time;
-                    var ray = m_MainCamera.ScreenPointToRay(UnityEngine.Input.mousePosition);
+                    var ray = m_MainCamera.ScreenPointToRay(m_PointAction.action.ReadValue());
 
                     var groundHits = Physics.RaycastNonAlloc(ray,
                         k_CachedHit,
@@ -308,7 +355,7 @@ void PerformSkill(ActionID actionID, SkillTriggerStyle triggerStyle, ulong targe
                 int numHits = 0;
                 if (triggerStyle == SkillTriggerStyle.MouseClick)
                 {
-                    var ray = m_MainCamera.ScreenPointToRay(UnityEngine.Input.mousePosition);
+                    var ray = m_MainCamera.ScreenPointToRay(m_PointAction.action.ReadValue());
                     numHits = Physics.RaycastNonAlloc(ray, k_CachedHit, k_MouseInputRaycastDistance, m_ActionLayerMask);
                 }
 
@@ -420,7 +467,11 @@ void PopulateSkillRequest(Vector3 hitPoint, ActionID actionID, ref ActionRequest
             // figure out the Direction in case we want to send it
             Vector3 offset = hitPoint - m_PhysicsWrapper.Transform.position;
             offset.y = 0;
-            Vector3 direction = offset.normalized;
+
+            //there is a bug where the direction is flipped if the hitPos and current position are almost the same,
+            //so we use the character's direction instead.
+            float directionLength = offset.magnitude;
+            Vector3 direction = 1.0f /*epsilon*/ <= directionLength ? (offset / directionLength) : m_PhysicsWrapper.Transform.forward;
 
             switch (actionConfig.Logic)
             {
@@ -471,65 +522,73 @@ public void RequestAction(ActionID actionID, SkillTriggerStyle triggerStyle, ulo
             }
         }
 
-        void Update()
+        void OnAction1Started(InputAction.CallbackContext obj)
         {
-            if (Input.GetKeyDown(KeyCode.Alpha1) && CharacterClass.Skill1)
-            {
-                RequestAction(actionState1.actionID, SkillTriggerStyle.Keyboard);
-            }
-            else if (Input.GetKeyUp(KeyCode.Alpha1) && CharacterClass.Skill1)
-            {
-                RequestAction(actionState1.actionID, SkillTriggerStyle.KeyboardRelease);
-            }
-            if (Input.GetKeyDown(KeyCode.Alpha2) && CharacterClass.Skill2)
-            {
-                RequestAction(actionState2.actionID, SkillTriggerStyle.Keyboard);
-            }
-            else if (Input.GetKeyUp(KeyCode.Alpha2) && CharacterClass.Skill2)
-            {
-                RequestAction(actionState2.actionID, SkillTriggerStyle.KeyboardRelease);
-            }
-            if (Input.GetKeyDown(KeyCode.Alpha3) && CharacterClass.Skill3)
-            {
-                RequestAction(actionState3.actionID, SkillTriggerStyle.Keyboard);
-            }
-            else if (Input.GetKeyUp(KeyCode.Alpha3) && CharacterClass.Skill3)
-            {
-                RequestAction(actionState3.actionID, SkillTriggerStyle.KeyboardRelease);
-            }
+            RequestAction(actionState1.actionID, SkillTriggerStyle.Keyboard);
+        }
 
-            if (Input.GetKeyDown(KeyCode.Alpha5))
-            {
-                RequestAction(GameDataSource.Instance.Emote1ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
-            }
-            if (Input.GetKeyDown(KeyCode.Alpha6))
-            {
-                RequestAction(GameDataSource.Instance.Emote2ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
-            }
-            if (Input.GetKeyDown(KeyCode.Alpha7))
-            {
-                RequestAction(GameDataSource.Instance.Emote3ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
-            }
-            if (Input.GetKeyDown(KeyCode.Alpha8))
-            {
-                RequestAction(GameDataSource.Instance.Emote4ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
-            }
+        void OnAction1Canceled(InputAction.CallbackContext obj)
+        {
+            RequestAction(actionState1.actionID, SkillTriggerStyle.KeyboardRelease);
+        }
 
+        void OnAction2Started(InputAction.CallbackContext obj)
+        {
+            RequestAction(actionState2.actionID, SkillTriggerStyle.Keyboard);
+        }
+
+        void OnAction2Canceled(InputAction.CallbackContext obj)
+        {
+            RequestAction(actionState2.actionID, SkillTriggerStyle.KeyboardRelease);
+        }
+
+        void OnAction3Started(InputAction.CallbackContext obj)
+        {
+            RequestAction(actionState3.actionID, SkillTriggerStyle.Keyboard);
+        }
+
+        void OnAction3Canceled(InputAction.CallbackContext obj)
+        {
+            RequestAction(actionState3.actionID, SkillTriggerStyle.KeyboardRelease);
+        }
+
+        void OnAction5Performed(InputAction.CallbackContext obj)
+        {
+            RequestAction(GameDataSource.Instance.Emote1ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
+        }
+
+        void OnAction6Performed(InputAction.CallbackContext obj)
+        {
+            RequestAction(GameDataSource.Instance.Emote2ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
+        }
+
+        void OnAction7Performed(InputAction.CallbackContext obj)
+        {
+            RequestAction(GameDataSource.Instance.Emote3ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
+        }
+
+        void OnAction8Performed(InputAction.CallbackContext obj)
+        {
+            RequestAction(GameDataSource.Instance.Emote4ActionPrototype.ActionID, SkillTriggerStyle.Keyboard);
+        }
+
+        void Update()
+        {
             if (!EventSystem.current.IsPointerOverGameObject() && m_CurrentSkillInput == null)
             {
                 //IsPointerOverGameObject() is a simple way to determine if the mouse is over a UI element. If it is, we don't perform mouse input logic,
                 //to model the button "blocking" mouse clicks from falling through and interacting with the world.
 
-                if (Input.GetMouseButtonDown(1))
+                if (m_Skill1Action.action.WasPressedThisFrame())
                 {
                     RequestAction(CharacterClass.Skill1.ActionID, SkillTriggerStyle.MouseClick);
                 }
 
-                if (Input.GetMouseButtonDown(0))
+                if (m_TargetAction.action.WasPressedThisFrame())
                 {
                     RequestAction(GameDataSource.Instance.GeneralTargetActionPrototype.ActionID, SkillTriggerStyle.MouseClick);
                 }
-                else if (Input.GetMouseButton(0))
+                else if (m_TargetAction.action.IsPressed())
                 {
                     m_MoveRequest = true;
                 }
@@ -553,19 +612,19 @@ void UpdateAction1()
                 actionState1.actionID = GameDataSource.Instance.DropActionPrototype.ActionID;
             }
             else if ((m_ServerCharacter.TargetId.Value != 0
-                    && selection != null
-                    && selection.TryGetComponent(out PickUpState pickUpState))
-               )
+                         && selection != null
+                         && selection.TryGetComponent(out PickUpState pickUpState))
+                    )
             {
                 // special case: targeting a pickup-able item or holding a pickup object
 
                 actionState1.actionID = GameDataSource.Instance.PickUpActionPrototype.ActionID;
             }
             else if (m_ServerCharacter.TargetId.Value != 0
-                && selection != null
-                && selection.NetworkObjectId != m_ServerCharacter.NetworkObjectId
-                && selection.TryGetComponent(out ServerCharacter charState)
-                && !charState.IsNpc)
+                     && selection != null
+                     && selection.NetworkObjectId != m_ServerCharacter.NetworkObjectId
+                     && selection.TryGetComponent(out ServerCharacter charState)
+                     && !charState.IsNpc)
             {
                 // special case: when we have a player selected, we change the meaning of the basic action
                 // we have another player selected! In that case we want to reflect that our basic Action is a Revive, not an attack!
diff --git a/Assets/Scripts/Infrastructure/PubSub/NetworkedMessageChannel.cs b/Assets/Scripts/Infrastructure/PubSub/NetworkedMessageChannel.cs
index 3ca9adfd5c..8616448cb6 100644
--- a/Assets/Scripts/Infrastructure/PubSub/NetworkedMessageChannel.cs
+++ b/Assets/Scripts/Infrastructure/PubSub/NetworkedMessageChannel.cs
@@ -26,7 +26,7 @@ public NetworkedMessageChannel()
         void InjectDependencies(NetworkManager networkManager)
         {
             m_NetworkManager = networkManager;
-            m_NetworkManager.OnClientConnectedCallback += OnClientConnected;
+            m_NetworkManager.OnConnectionEvent += OnConnectionEvent;
             if (m_NetworkManager.IsListening)
             {
                 RegisterHandler();
@@ -40,14 +40,18 @@ public override void Dispose()
                 if (m_NetworkManager != null && m_NetworkManager.CustomMessagingManager != null)
                 {
                     m_NetworkManager.CustomMessagingManager.UnregisterNamedMessageHandler(m_Name);
+                    m_NetworkManager.OnConnectionEvent -= OnConnectionEvent;
                 }
             }
             base.Dispose();
         }
 
-        void OnClientConnected(ulong clientId)
+        void OnConnectionEvent(NetworkManager networkManager, ConnectionEventData connectionEventData)
         {
-            RegisterHandler();
+            if (connectionEventData.EventType == ConnectionEvent.ClientConnected)
+            {
+                RegisterHandler();
+            }
         }
 
         void RegisterHandler()
diff --git a/Assets/Scripts/UnityServices/Infrastructure/Messages/UnityServiceErrorMessage.cs b/Assets/Scripts/UnityServices/Infrastructure/Messages/UnityServiceErrorMessage.cs
index f24733baa0..9ce807e7cd 100644
--- a/Assets/Scripts/UnityServices/Infrastructure/Messages/UnityServiceErrorMessage.cs
+++ b/Assets/Scripts/UnityServices/Infrastructure/Messages/UnityServiceErrorMessage.cs
@@ -7,7 +7,7 @@ public struct UnityServiceErrorMessage
         public enum Service
         {
             Authentication,
-            Lobby,
+            Session,
         }
 
         public string Title;
diff --git a/Assets/Scripts/UnityServices/Lobbies/LobbyAPIInterface.cs b/Assets/Scripts/UnityServices/Lobbies/LobbyAPIInterface.cs
deleted file mode 100644
index fc3e31808f..0000000000
--- a/Assets/Scripts/UnityServices/Lobbies/LobbyAPIInterface.cs
+++ /dev/null
@@ -1,138 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Unity.Services.Lobbies;
-using Unity.Services.Lobbies.Models;
-using UnityEngine;
-
-namespace Unity.BossRoom.UnityServices.Lobbies
-{
-    /// 
-    /// Wrapper for all the interactions with the Lobby API.
-    /// 
-    public class LobbyAPIInterface
-    {
-        const int k_MaxLobbiesToShow = 16; // If more are necessary, consider retrieving paginated results or using filters.
-
-        readonly List m_Filters;
-        readonly List m_Order;
-
-        public LobbyAPIInterface()
-        {
-            // Filter for open lobbies only
-            m_Filters = new List()
-            {
-                new QueryFilter(
-                    field: QueryFilter.FieldOptions.AvailableSlots,
-                    op: QueryFilter.OpOptions.GT,
-                    value: "0")
-            };
-
-            // Order by newest lobbies first
-            m_Order = new List()
-            {
-                new QueryOrder(
-                    asc: false,
-                    field: QueryOrder.FieldOptions.Created)
-            };
-        }
-
-        public async Task CreateLobby(string requesterUasId, string lobbyName, int maxPlayers, bool isPrivate, Dictionary hostUserData, Dictionary lobbyData)
-        {
-            CreateLobbyOptions createOptions = new CreateLobbyOptions
-            {
-                IsPrivate = isPrivate,
-                IsLocked = true, // locking the lobby at creation to prevent other players from joining before it is ready
-                Player = new Player(id: requesterUasId, data: hostUserData),
-                Data = lobbyData
-            };
-
-            return await LobbyService.Instance.CreateLobbyAsync(lobbyName, maxPlayers, createOptions);
-        }
-
-        public async Task DeleteLobby(string lobbyId)
-        {
-            await LobbyService.Instance.DeleteLobbyAsync(lobbyId);
-        }
-
-        public async Task JoinLobbyByCode(string requesterUasId, string lobbyCode, Dictionary localUserData)
-        {
-            JoinLobbyByCodeOptions joinOptions = new JoinLobbyByCodeOptions { Player = new Player(id: requesterUasId, data: localUserData) };
-            return await LobbyService.Instance.JoinLobbyByCodeAsync(lobbyCode, joinOptions);
-        }
-
-        public async Task JoinLobbyById(string requesterUasId, string lobbyId, Dictionary localUserData)
-        {
-            JoinLobbyByIdOptions joinOptions = new JoinLobbyByIdOptions { Player = new Player(id: requesterUasId, data: localUserData) };
-            return await LobbyService.Instance.JoinLobbyByIdAsync(lobbyId, joinOptions);
-        }
-
-        public async Task QuickJoinLobby(string requesterUasId, Dictionary localUserData)
-        {
-            var joinRequest = new QuickJoinLobbyOptions
-            {
-                Filter = m_Filters,
-                Player = new Player(id: requesterUasId, data: localUserData)
-            };
-
-            return await LobbyService.Instance.QuickJoinLobbyAsync(joinRequest);
-        }
-
-        public async Task ReconnectToLobby(string lobbyId)
-        {
-            return await LobbyService.Instance.ReconnectToLobbyAsync(lobbyId);
-        }
-
-        public async Task RemovePlayerFromLobby(string requesterUasId, string lobbyId)
-        {
-            try
-            {
-                await LobbyService.Instance.RemovePlayerAsync(lobbyId, requesterUasId);
-            }
-            catch (LobbyServiceException e)
-                when (e is { Reason: LobbyExceptionReason.PlayerNotFound })
-            {
-                // If Player is not found, they have already left the lobby or have been kicked out. No need to throw here
-            }
-        }
-
-        public async Task QueryAllLobbies()
-        {
-            QueryLobbiesOptions queryOptions = new QueryLobbiesOptions
-            {
-                Count = k_MaxLobbiesToShow,
-                Filters = m_Filters,
-                Order = m_Order
-            };
-
-            return await LobbyService.Instance.QueryLobbiesAsync(queryOptions);
-        }
-
-        public async Task UpdateLobby(string lobbyId, Dictionary data, bool shouldLock)
-        {
-            UpdateLobbyOptions updateOptions = new UpdateLobbyOptions { Data = data, IsLocked = shouldLock };
-            return await LobbyService.Instance.UpdateLobbyAsync(lobbyId, updateOptions);
-        }
-
-        public async Task UpdatePlayer(string lobbyId, string playerId, Dictionary data, string allocationId, string connectionInfo)
-        {
-            UpdatePlayerOptions updateOptions = new UpdatePlayerOptions
-            {
-                Data = data,
-                AllocationId = allocationId,
-                ConnectionInfo = connectionInfo
-            };
-            return await LobbyService.Instance.UpdatePlayerAsync(lobbyId, playerId, updateOptions);
-        }
-
-        public async void SendHeartbeatPing(string lobbyId)
-        {
-            await LobbyService.Instance.SendHeartbeatPingAsync(lobbyId);
-        }
-
-        public async Task SubscribeToLobby(string lobbyId, LobbyEventCallbacks eventCallbacks)
-        {
-            return await LobbyService.Instance.SubscribeToLobbyEventsAsync(lobbyId, eventCallbacks);
-        }
-    }
-}
diff --git a/Assets/Scripts/UnityServices/Lobbies/LobbyServiceFacade.cs b/Assets/Scripts/UnityServices/Lobbies/LobbyServiceFacade.cs
deleted file mode 100644
index a07e643cca..0000000000
--- a/Assets/Scripts/UnityServices/Lobbies/LobbyServiceFacade.cs
+++ /dev/null
@@ -1,550 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Threading.Tasks;
-using Unity.BossRoom.Infrastructure;
-using Unity.Services.Authentication;
-using Unity.Services.Lobbies;
-using Unity.Services.Lobbies.Models;
-using Unity.Services.Wire.Internal;
-using UnityEngine;
-using VContainer;
-using VContainer.Unity;
-
-namespace Unity.BossRoom.UnityServices.Lobbies
-{
-    /// 
-    /// An abstraction layer between the direct calls into the Lobby API and the outcomes you actually want.
-    /// 
-    public class LobbyServiceFacade : IDisposable, IStartable
-    {
-        [Inject] LifetimeScope m_ParentScope;
-        [Inject] UpdateRunner m_UpdateRunner;
-        [Inject] LocalLobby m_LocalLobby;
-        [Inject] LocalLobbyUser m_LocalUser;
-        [Inject] IPublisher m_UnityServiceErrorMessagePub;
-        [Inject] IPublisher m_LobbyListFetchedPub;
-
-        const float k_HeartbeatPeriod = 8; // The heartbeat must be rate-limited to 5 calls per 30 seconds. We'll aim for longer in case periods don't align.
-        float m_HeartbeatTime = 0;
-
-        LifetimeScope m_ServiceScope;
-        LobbyAPIInterface m_LobbyApiInterface;
-
-        RateLimitCooldown m_RateLimitQuery;
-        RateLimitCooldown m_RateLimitJoin;
-        RateLimitCooldown m_RateLimitQuickJoin;
-        RateLimitCooldown m_RateLimitHost;
-
-        public Lobby CurrentUnityLobby { get; private set; }
-
-        ILobbyEvents m_LobbyEvents;
-
-        bool m_IsTracking = false;
-
-        LobbyEventConnectionState m_LobbyEventConnectionState = LobbyEventConnectionState.Unknown;
-
-        public void Start()
-        {
-            m_ServiceScope = m_ParentScope.CreateChild(builder =>
-            {
-                builder.Register(Lifetime.Singleton);
-            });
-
-            m_LobbyApiInterface = m_ServiceScope.Container.Resolve();
-
-            //See https://docs.unity.com/lobby/rate-limits.html
-            m_RateLimitQuery = new RateLimitCooldown(1f);
-            m_RateLimitJoin = new RateLimitCooldown(3f);
-            m_RateLimitQuickJoin = new RateLimitCooldown(10f);
-            m_RateLimitHost = new RateLimitCooldown(3f);
-        }
-
-        public void Dispose()
-        {
-            EndTracking();
-            if (m_ServiceScope != null)
-            {
-                m_ServiceScope.Dispose();
-            }
-        }
-
-        public void SetRemoteLobby(Lobby lobby)
-        {
-            CurrentUnityLobby = lobby;
-            m_LocalLobby.ApplyRemoteData(lobby);
-        }
-
-        /// 
-        /// Initiates tracking of joined lobby's events. The host also starts sending heartbeat pings here.
-        /// 
-        public void BeginTracking()
-        {
-            if (!m_IsTracking)
-            {
-                m_IsTracking = true;
-                SubscribeToJoinedLobbyAsync();
-
-                // Only the host sends heartbeat pings to the service to keep the lobby alive
-                if (m_LocalUser.IsHost)
-                {
-                    m_HeartbeatTime = 0;
-                    m_UpdateRunner.Subscribe(DoLobbyHeartbeat, 1.5f);
-                }
-            }
-        }
-
-        /// 
-        /// Ends tracking of joined lobby's events and leaves or deletes the lobby. The host also stops sending heartbeat pings here.
-        /// 
-        public void EndTracking()
-        {
-            if (m_IsTracking)
-            {
-                m_IsTracking = false;
-                UnsubscribeToJoinedLobbyAsync();
-
-                // Only the host sends heartbeat pings to the service to keep the lobby alive
-                if (m_LocalUser.IsHost)
-                {
-                    m_UpdateRunner.Unsubscribe(DoLobbyHeartbeat);
-                }
-            }
-
-            if (CurrentUnityLobby != null)
-            {
-                if (m_LocalUser.IsHost)
-                {
-                    DeleteLobbyAsync();
-                }
-                else
-                {
-                    LeaveLobbyAsync();
-                }
-            }
-        }
-
-        /// 
-        /// Attempt to create a new lobby and then join it.
-        /// 
-        public async Task<(bool Success, Lobby Lobby)> TryCreateLobbyAsync(string lobbyName, int maxPlayers, bool isPrivate)
-        {
-            if (!m_RateLimitHost.CanCall)
-            {
-                Debug.LogWarning("Create Lobby hit the rate limit.");
-                return (false, null);
-            }
-
-            try
-            {
-                var lobby = await m_LobbyApiInterface.CreateLobby(AuthenticationService.Instance.PlayerId, lobbyName, maxPlayers, isPrivate, m_LocalUser.GetDataForUnityServices(), null);
-                return (true, lobby);
-            }
-            catch (LobbyServiceException e)
-            {
-                if (e.Reason == LobbyExceptionReason.RateLimited)
-                {
-                    m_RateLimitHost.PutOnCooldown();
-                }
-                else
-                {
-                    PublishError(e);
-                }
-            }
-
-            return (false, null);
-        }
-
-        /// 
-        /// Attempt to join an existing lobby. Will try to join via code, if code is null - will try to join via ID.
-        /// 
-        public async Task<(bool Success, Lobby Lobby)> TryJoinLobbyAsync(string lobbyId, string lobbyCode)
-        {
-            if (!m_RateLimitJoin.CanCall ||
-                (lobbyId == null && lobbyCode == null))
-            {
-                Debug.LogWarning("Join Lobby hit the rate limit.");
-                return (false, null);
-            }
-
-            try
-            {
-                if (!string.IsNullOrEmpty(lobbyCode))
-                {
-                    var lobby = await m_LobbyApiInterface.JoinLobbyByCode(AuthenticationService.Instance.PlayerId, lobbyCode, m_LocalUser.GetDataForUnityServices());
-                    return (true, lobby);
-                }
-                else
-                {
-                    var lobby = await m_LobbyApiInterface.JoinLobbyById(AuthenticationService.Instance.PlayerId, lobbyId, m_LocalUser.GetDataForUnityServices());
-                    return (true, lobby);
-                }
-            }
-            catch (LobbyServiceException e)
-            {
-                if (e.Reason == LobbyExceptionReason.RateLimited)
-                {
-                    m_RateLimitJoin.PutOnCooldown();
-                }
-                else
-                {
-                    PublishError(e);
-                }
-            }
-
-            return (false, null);
-        }
-
-        /// 
-        /// Attempt to join the first lobby among the available lobbies that match the filtered onlineMode.
-        /// 
-        public async Task<(bool Success, Lobby Lobby)> TryQuickJoinLobbyAsync()
-        {
-            if (!m_RateLimitQuickJoin.CanCall)
-            {
-                Debug.LogWarning("Quick Join Lobby hit the rate limit.");
-                return (false, null);
-            }
-
-            try
-            {
-                var lobby = await m_LobbyApiInterface.QuickJoinLobby(AuthenticationService.Instance.PlayerId, m_LocalUser.GetDataForUnityServices());
-                return (true, lobby);
-            }
-            catch (LobbyServiceException e)
-            {
-                if (e.Reason == LobbyExceptionReason.RateLimited)
-                {
-                    m_RateLimitQuickJoin.PutOnCooldown();
-                }
-                else
-                {
-                    PublishError(e);
-                }
-            }
-
-            return (false, null);
-        }
-
-        void ResetLobby()
-        {
-            CurrentUnityLobby = null;
-            if (m_LocalUser != null)
-            {
-                m_LocalUser.ResetState();
-            }
-            if (m_LocalLobby != null)
-            {
-                m_LocalLobby.Reset(m_LocalUser);
-            }
-
-            // no need to disconnect Netcode, it should already be handled by Netcode's callback to disconnect
-        }
-
-        void OnLobbyChanges(ILobbyChanges changes)
-        {
-            if (changes.LobbyDeleted)
-            {
-                Debug.Log("Lobby deleted");
-                ResetLobby();
-                EndTracking();
-            }
-            else
-            {
-                Debug.Log("Lobby updated");
-                changes.ApplyToLobby(CurrentUnityLobby);
-                m_LocalLobby.ApplyRemoteData(CurrentUnityLobby);
-
-                // as client, check if host is still in lobby
-                if (!m_LocalUser.IsHost)
-                {
-                    foreach (var lobbyUser in m_LocalLobby.LobbyUsers)
-                    {
-                        if (lobbyUser.Value.IsHost)
-                        {
-                            return;
-                        }
-                    }
-
-                    m_UnityServiceErrorMessagePub.Publish(new UnityServiceErrorMessage("Host left the lobby", "Disconnecting.", UnityServiceErrorMessage.Service.Lobby));
-                    EndTracking();
-                    // no need to disconnect Netcode, it should already be handled by Netcode's callback to disconnect
-                }
-            }
-        }
-
-        void OnKickedFromLobby()
-        {
-            Debug.Log("Kicked from Lobby");
-            ResetLobby();
-            EndTracking();
-        }
-
-        void OnLobbyEventConnectionStateChanged(LobbyEventConnectionState lobbyEventConnectionState)
-        {
-            m_LobbyEventConnectionState = lobbyEventConnectionState;
-            Debug.Log($"LobbyEventConnectionState changed to {lobbyEventConnectionState}");
-        }
-
-        async void SubscribeToJoinedLobbyAsync()
-        {
-            var lobbyEventCallbacks = new LobbyEventCallbacks();
-            lobbyEventCallbacks.LobbyChanged += OnLobbyChanges;
-            lobbyEventCallbacks.KickedFromLobby += OnKickedFromLobby;
-            lobbyEventCallbacks.LobbyEventConnectionStateChanged += OnLobbyEventConnectionStateChanged;
-            // The LobbyEventCallbacks object created here will now be managed by the Lobby SDK. The callbacks will be
-            // unsubscribed from when we call UnsubscribeAsync on the ILobbyEvents object we receive and store here.
-            m_LobbyEvents = await m_LobbyApiInterface.SubscribeToLobby(m_LocalLobby.LobbyID, lobbyEventCallbacks);
-        }
-
-        async void UnsubscribeToJoinedLobbyAsync()
-        {
-            if (m_LobbyEvents != null && m_LobbyEventConnectionState != LobbyEventConnectionState.Unsubscribed)
-            {
-#if UNITY_EDITOR
-                try
-                {
-                    await m_LobbyEvents.UnsubscribeAsync();
-                }
-                catch (WebSocketException e)
-                {
-                    // This exception occurs in the editor when exiting play mode without first leaving the lobby.
-                    // This is because Wire closes the websocket internally when exiting playmode in the editor.
-                    Debug.Log(e.Message);
-                }
-#else
-                await m_LobbyEvents.UnsubscribeAsync();
-#endif
-            }
-        }
-
-        /// 
-        /// Used for getting the list of all active lobbies, without needing full info for each.
-        /// 
-        public async Task RetrieveAndPublishLobbyListAsync()
-        {
-            if (!m_RateLimitQuery.CanCall)
-            {
-                Debug.LogWarning("Retrieve Lobby list hit the rate limit. Will try again soon...");
-                return;
-            }
-
-            try
-            {
-                var response = await m_LobbyApiInterface.QueryAllLobbies();
-                m_LobbyListFetchedPub.Publish(new LobbyListFetchedMessage(LocalLobby.CreateLocalLobbies(response)));
-            }
-            catch (LobbyServiceException e)
-            {
-                if (e.Reason == LobbyExceptionReason.RateLimited)
-                {
-                    m_RateLimitQuery.PutOnCooldown();
-                }
-                else
-                {
-                    PublishError(e);
-                }
-            }
-        }
-
-        public async Task ReconnectToLobbyAsync()
-        {
-            try
-            {
-                return await m_LobbyApiInterface.ReconnectToLobby(m_LocalLobby.LobbyID);
-            }
-            catch (LobbyServiceException e)
-            {
-                // If Lobby is not found and if we are not the host, it has already been deleted. No need to publish the error here.
-                if (e.Reason != LobbyExceptionReason.LobbyNotFound && !m_LocalUser.IsHost)
-                {
-                    PublishError(e);
-                }
-            }
-
-            return null;
-        }
-
-        /// 
-        /// Attempt to leave a lobby
-        /// 
-        async void LeaveLobbyAsync()
-        {
-            string uasId = AuthenticationService.Instance.PlayerId;
-            try
-            {
-                await m_LobbyApiInterface.RemovePlayerFromLobby(uasId, m_LocalLobby.LobbyID);
-            }
-            catch (LobbyServiceException e)
-            {
-                // If Lobby is not found and if we are not the host, it has already been deleted. No need to publish the error here.
-                if (e.Reason != LobbyExceptionReason.LobbyNotFound && !m_LocalUser.IsHost)
-                {
-                    PublishError(e);
-                }
-            }
-            finally
-            {
-                ResetLobby();
-            }
-
-        }
-
-        public async void RemovePlayerFromLobbyAsync(string uasId)
-        {
-            if (m_LocalUser.IsHost)
-            {
-                try
-                {
-                    await m_LobbyApiInterface.RemovePlayerFromLobby(uasId, m_LocalLobby.LobbyID);
-                }
-                catch (LobbyServiceException e)
-                {
-                    PublishError(e);
-                }
-            }
-            else
-            {
-                Debug.LogError("Only the host can remove other players from the lobby.");
-            }
-        }
-
-        async void DeleteLobbyAsync()
-        {
-            if (m_LocalUser.IsHost)
-            {
-                try
-                {
-                    await m_LobbyApiInterface.DeleteLobby(m_LocalLobby.LobbyID);
-                }
-                catch (LobbyServiceException e)
-                {
-                    PublishError(e);
-                }
-                finally
-                {
-                    ResetLobby();
-                }
-            }
-            else
-            {
-                Debug.LogError("Only the host can delete a lobby.");
-            }
-        }
-
-        /// 
-        /// Attempt to push a set of key-value pairs associated with the local player which will overwrite any existing
-        /// data for these keys. Lobby can be provided info about Relay (or any other remote allocation) so it can add
-        /// automatic disconnect handling.
-        /// 
-        public async Task UpdatePlayerDataAsync(string allocationId, string connectionInfo)
-        {
-            if (!m_RateLimitQuery.CanCall)
-            {
-                return;
-            }
-
-            try
-            {
-                var result = await m_LobbyApiInterface.UpdatePlayer(CurrentUnityLobby.Id, AuthenticationService.Instance.PlayerId, m_LocalUser.GetDataForUnityServices(), allocationId, connectionInfo);
-
-                if (result != null)
-                {
-                    CurrentUnityLobby = result; // Store the most up-to-date lobby now since we have it, instead of waiting for the next heartbeat.
-                }
-            }
-            catch (LobbyServiceException e)
-            {
-                if (e.Reason == LobbyExceptionReason.RateLimited)
-                {
-                    m_RateLimitQuery.PutOnCooldown();
-                }
-                else if (e.Reason != LobbyExceptionReason.LobbyNotFound && !m_LocalUser.IsHost) // If Lobby is not found and if we are not the host, it has already been deleted. No need to publish the error here.
-                {
-                    PublishError(e);
-                }
-            }
-        }
-
-        /// 
-        /// Attempt to update the set of key-value pairs associated with a given lobby and unlocks it so clients can see it.
-        /// 
-        public async Task UpdateLobbyDataAndUnlockAsync()
-        {
-            if (!m_RateLimitQuery.CanCall)
-            {
-                return;
-            }
-
-            var localData = m_LocalLobby.GetDataForUnityServices();
-
-            var dataCurr = CurrentUnityLobby.Data;
-            if (dataCurr == null)
-            {
-                dataCurr = new Dictionary();
-            }
-
-            foreach (var dataNew in localData)
-            {
-                if (dataCurr.ContainsKey(dataNew.Key))
-                {
-                    dataCurr[dataNew.Key] = dataNew.Value;
-                }
-                else
-                {
-                    dataCurr.Add(dataNew.Key, dataNew.Value);
-                }
-            }
-
-            try
-            {
-                var result = await m_LobbyApiInterface.UpdateLobby(CurrentUnityLobby.Id, dataCurr, shouldLock: false);
-
-                if (result != null)
-                {
-                    CurrentUnityLobby = result;
-                }
-            }
-            catch (LobbyServiceException e)
-            {
-                if (e.Reason == LobbyExceptionReason.RateLimited)
-                {
-                    m_RateLimitQuery.PutOnCooldown();
-                }
-                else
-                {
-                    PublishError(e);
-                }
-            }
-        }
-
-        /// 
-        /// Lobby requires a periodic ping to detect rooms that are still active, in order to mitigate "zombie" lobbies.
-        /// 
-        void DoLobbyHeartbeat(float dt)
-        {
-            m_HeartbeatTime += dt;
-            if (m_HeartbeatTime > k_HeartbeatPeriod)
-            {
-                m_HeartbeatTime -= k_HeartbeatPeriod;
-                try
-                {
-                    m_LobbyApiInterface.SendHeartbeatPing(CurrentUnityLobby.Id);
-                }
-                catch (LobbyServiceException e)
-                {
-                    // If Lobby is not found and if we are not the host, it has already been deleted. No need to publish the error here.
-                    if (e.Reason != LobbyExceptionReason.LobbyNotFound && !m_LocalUser.IsHost)
-                    {
-                        PublishError(e);
-                    }
-                }
-            }
-        }
-
-        void PublishError(LobbyServiceException e)
-        {
-            var reason = e.InnerException == null ? e.Message : $"{e.Message} ({e.InnerException.Message})"; // Lobby error type, then HTTP error type.
-            m_UnityServiceErrorMessagePub.Publish(new UnityServiceErrorMessage("Lobby Error", reason, UnityServiceErrorMessage.Service.Lobby, e));
-        }
-    }
-}
diff --git a/Assets/Scripts/UnityServices/Lobbies/LocalLobby.cs b/Assets/Scripts/UnityServices/Lobbies/LocalLobby.cs
deleted file mode 100644
index 2008e6af9a..0000000000
--- a/Assets/Scripts/UnityServices/Lobbies/LocalLobby.cs
+++ /dev/null
@@ -1,274 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Unity.Services.Lobbies.Models;
-using UnityEngine;
-
-namespace Unity.BossRoom.UnityServices.Lobbies
-{
-    /// 
-    /// A local wrapper around a lobby's remote data, with additional functionality for providing that data to UI elements and tracking local player objects.
-    /// 
-    [Serializable]
-    public sealed class LocalLobby
-    {
-        public event Action changed;
-
-        /// 
-        /// Create a list of new LocalLobbies from the result of a lobby list query.
-        /// 
-        public static List CreateLocalLobbies(QueryResponse response)
-        {
-            var retLst = new List();
-            foreach (var lobby in response.Results)
-            {
-                retLst.Add(Create(lobby));
-            }
-            return retLst;
-        }
-
-        public static LocalLobby Create(Lobby lobby)
-        {
-            var data = new LocalLobby();
-            data.ApplyRemoteData(lobby);
-            return data;
-        }
-
-        Dictionary m_LobbyUsers = new Dictionary();
-        public Dictionary LobbyUsers => m_LobbyUsers;
-
-        public struct LobbyData
-        {
-            public string LobbyID { get; set; }
-            public string LobbyCode { get; set; }
-            public string RelayJoinCode { get; set; }
-            public string LobbyName { get; set; }
-            public bool Private { get; set; }
-            public int MaxPlayerCount { get; set; }
-
-            public LobbyData(LobbyData existing)
-            {
-                LobbyID = existing.LobbyID;
-                LobbyCode = existing.LobbyCode;
-                RelayJoinCode = existing.RelayJoinCode;
-                LobbyName = existing.LobbyName;
-                Private = existing.Private;
-                MaxPlayerCount = existing.MaxPlayerCount;
-            }
-
-            public LobbyData(string lobbyCode)
-            {
-                LobbyID = null;
-                LobbyCode = lobbyCode;
-                RelayJoinCode = null;
-                LobbyName = null;
-                Private = false;
-                MaxPlayerCount = -1;
-            }
-        }
-
-        LobbyData m_Data;
-        public LobbyData Data => new LobbyData(m_Data);
-
-        public void AddUser(LocalLobbyUser user)
-        {
-            if (!m_LobbyUsers.ContainsKey(user.ID))
-            {
-                DoAddUser(user);
-                OnChanged();
-            }
-        }
-
-        void DoAddUser(LocalLobbyUser user)
-        {
-            m_LobbyUsers.Add(user.ID, user);
-            user.changed += OnChangedUser;
-        }
-
-        public void RemoveUser(LocalLobbyUser user)
-        {
-            DoRemoveUser(user);
-            OnChanged();
-        }
-
-        void DoRemoveUser(LocalLobbyUser user)
-        {
-            if (!m_LobbyUsers.ContainsKey(user.ID))
-            {
-                Debug.LogWarning($"Player {user.DisplayName}({user.ID}) does not exist in lobby: {LobbyID}");
-                return;
-            }
-
-            m_LobbyUsers.Remove(user.ID);
-            user.changed -= OnChangedUser;
-        }
-
-        void OnChangedUser(LocalLobbyUser user)
-        {
-            OnChanged();
-        }
-
-        void OnChanged()
-        {
-            changed?.Invoke(this);
-        }
-
-        public string LobbyID
-        {
-            get => m_Data.LobbyID;
-            set
-            {
-                m_Data.LobbyID = value;
-                OnChanged();
-            }
-        }
-
-        public string LobbyCode
-        {
-            get => m_Data.LobbyCode;
-            set
-            {
-                m_Data.LobbyCode = value;
-                OnChanged();
-            }
-        }
-
-        public string RelayJoinCode
-        {
-            get => m_Data.RelayJoinCode;
-            set
-            {
-                m_Data.RelayJoinCode = value;
-                OnChanged();
-            }
-        }
-
-        public string LobbyName
-        {
-            get => m_Data.LobbyName;
-            set
-            {
-                m_Data.LobbyName = value;
-                OnChanged();
-            }
-        }
-
-        public bool Private
-        {
-            get => m_Data.Private;
-            set
-            {
-                m_Data.Private = value;
-                OnChanged();
-            }
-        }
-
-        public int PlayerCount => m_LobbyUsers.Count;
-
-        public int MaxPlayerCount
-        {
-            get => m_Data.MaxPlayerCount;
-            set
-            {
-                m_Data.MaxPlayerCount = value;
-                OnChanged();
-            }
-        }
-
-        public void CopyDataFrom(LobbyData data, Dictionary currUsers)
-        {
-            m_Data = data;
-
-            if (currUsers == null)
-            {
-                m_LobbyUsers = new Dictionary();
-            }
-            else
-            {
-                List toRemove = new List();
-                foreach (var oldUser in m_LobbyUsers)
-                {
-                    if (currUsers.ContainsKey(oldUser.Key))
-                    {
-                        oldUser.Value.CopyDataFrom(currUsers[oldUser.Key]);
-                    }
-                    else
-                    {
-                        toRemove.Add(oldUser.Value);
-                    }
-                }
-
-                foreach (var remove in toRemove)
-                {
-                    DoRemoveUser(remove);
-                }
-
-                foreach (var currUser in currUsers)
-                {
-                    if (!m_LobbyUsers.ContainsKey(currUser.Key))
-                    {
-                        DoAddUser(currUser.Value);
-                    }
-                }
-            }
-
-            OnChanged();
-        }
-
-        public Dictionary GetDataForUnityServices() =>
-            new Dictionary()
-            {
-                {"RelayJoinCode", new DataObject(DataObject.VisibilityOptions.Public,  RelayJoinCode)}
-            };
-
-        public void ApplyRemoteData(Lobby lobby)
-        {
-            var info = new LobbyData(); // Technically, this is largely redundant after the first assignment, but it won't do any harm to assign it again.
-            info.LobbyID = lobby.Id;
-            info.LobbyCode = lobby.LobbyCode;
-            info.Private = lobby.IsPrivate;
-            info.LobbyName = lobby.Name;
-            info.MaxPlayerCount = lobby.MaxPlayers;
-
-            if (lobby.Data != null)
-            {
-                info.RelayJoinCode = lobby.Data.ContainsKey("RelayJoinCode") ? lobby.Data["RelayJoinCode"].Value : null; // By providing RelayCode through the lobby data with Member visibility, we ensure a client is connected to the lobby before they could attempt a relay connection, preventing timing issues between them.
-            }
-            else
-            {
-                info.RelayJoinCode = null;
-            }
-
-            var lobbyUsers = new Dictionary();
-            foreach (var player in lobby.Players)
-            {
-                if (player.Data != null)
-                {
-                    if (LobbyUsers.ContainsKey(player.Id))
-                    {
-                        lobbyUsers.Add(player.Id, LobbyUsers[player.Id]);
-                        continue;
-                    }
-                }
-
-                // If the player isn't connected to Relay, get the most recent data that the lobby knows.
-                // (If we haven't seen this player yet, a new local representation of the player will have already been added by the LocalLobby.)
-                var incomingData = new LocalLobbyUser
-                {
-                    IsHost = lobby.HostId.Equals(player.Id),
-                    DisplayName = player.Data != null && player.Data.ContainsKey("DisplayName") ? player.Data["DisplayName"].Value : default,
-                    ID = player.Id
-                };
-
-                lobbyUsers.Add(incomingData.ID, incomingData);
-            }
-
-            CopyDataFrom(info, lobbyUsers);
-        }
-
-        public void Reset(LocalLobbyUser localUser)
-        {
-            CopyDataFrom(new LobbyData(), new Dictionary());
-            AddUser(localUser);
-        }
-    }
-}
diff --git a/Assets/Scripts/UnityServices/Lobbies/Messages/LobbyListFetchedMessage.cs b/Assets/Scripts/UnityServices/Lobbies/Messages/LobbyListFetchedMessage.cs
deleted file mode 100644
index e1879e0159..0000000000
--- a/Assets/Scripts/UnityServices/Lobbies/Messages/LobbyListFetchedMessage.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System.Collections.Generic;
-
-namespace Unity.BossRoom.UnityServices.Lobbies
-{
-    public struct LobbyListFetchedMessage
-    {
-        public readonly IReadOnlyList LocalLobbies;
-
-        public LobbyListFetchedMessage(List localLobbies)
-        {
-            LocalLobbies = localLobbies;
-        }
-    }
-}
diff --git a/Assets/Scripts/UnityServices/Lobbies.meta b/Assets/Scripts/UnityServices/Sessions.meta
similarity index 100%
rename from Assets/Scripts/UnityServices/Lobbies.meta
rename to Assets/Scripts/UnityServices/Sessions.meta
diff --git a/Assets/Scripts/UnityServices/Sessions/LocalSession.cs b/Assets/Scripts/UnityServices/Sessions/LocalSession.cs
new file mode 100644
index 0000000000..878b2048c5
--- /dev/null
+++ b/Assets/Scripts/UnityServices/Sessions/LocalSession.cs
@@ -0,0 +1,222 @@
+using System;
+using System.Collections.Generic;
+using Unity.Services.Multiplayer;
+using UnityEngine;
+
+namespace Unity.BossRoom.UnityServices.Sessions
+{
+    /// 
+    /// A local wrapper around a session's remote data, with additional functionality for providing that data to UI
+    /// elements and tracking local player objects.
+    /// 
+    [Serializable]
+    public sealed class LocalSession
+    {
+        Dictionary m_SessionUsers = new();
+        public Dictionary sessionUsers => m_SessionUsers;
+
+        SessionData m_Data;
+
+        public event Action changed;
+
+        public string SessionID
+        {
+            get => m_Data.SessionID;
+            set
+            {
+                m_Data.SessionID = value;
+                OnChanged();
+            }
+        }
+
+        public string SessionCode
+        {
+            get => m_Data.SessionCode;
+            set
+            {
+                m_Data.SessionCode = value;
+                OnChanged();
+            }
+        }
+
+        public string RelayJoinCode
+        {
+            get => m_Data.RelayJoinCode;
+            set
+            {
+                m_Data.RelayJoinCode = value;
+                OnChanged();
+            }
+        }
+
+        public struct SessionData
+        {
+            public string SessionID { get; set; }
+            public string SessionCode { get; set; }
+            public string RelayJoinCode { get; set; }
+            public string SessionName { get; set; }
+            public bool Private { get; set; }
+            public int MaxPlayerCount { get; set; }
+
+            public SessionData(SessionData existing)
+            {
+                SessionID = existing.SessionID;
+                SessionCode = existing.SessionCode;
+                RelayJoinCode = existing.RelayJoinCode;
+                SessionName = existing.SessionName;
+                Private = existing.Private;
+                MaxPlayerCount = existing.MaxPlayerCount;
+            }
+
+            public SessionData(string sessionCode)
+            {
+                SessionID = null;
+                SessionCode = sessionCode;
+                RelayJoinCode = null;
+                SessionName = null;
+                Private = false;
+                MaxPlayerCount = -1;
+            }
+        }
+
+        public void AddUser(LocalSessionUser user)
+        {
+            if (!m_SessionUsers.ContainsKey(user.ID))
+            {
+                DoAddUser(user);
+                OnChanged();
+            }
+        }
+
+        void DoAddUser(LocalSessionUser user)
+        {
+            m_SessionUsers.Add(user.ID, user);
+            user.changed += OnChangedUser;
+        }
+
+        public void RemoveUser(LocalSessionUser user)
+        {
+            DoRemoveUser(user);
+            OnChanged();
+        }
+
+        void DoRemoveUser(LocalSessionUser user)
+        {
+            if (!m_SessionUsers.ContainsKey(user.ID))
+            {
+                Debug.LogWarning($"Player {user.DisplayName}({user.ID}) does not exist in session: {SessionID}");
+                return;
+            }
+
+            m_SessionUsers.Remove(user.ID);
+            user.changed -= OnChangedUser;
+        }
+
+        void OnChangedUser(LocalSessionUser user)
+        {
+            OnChanged();
+        }
+
+        void OnChanged()
+        {
+            changed?.Invoke(this);
+        }
+
+        public void CopyDataFrom(SessionData data, Dictionary currUsers)
+        {
+            m_Data = data;
+
+            if (currUsers == null)
+            {
+                m_SessionUsers = new Dictionary();
+            }
+            else
+            {
+                List toRemove = new List();
+                foreach (var oldUser in m_SessionUsers)
+                {
+                    if (currUsers.ContainsKey(oldUser.Key))
+                    {
+                        oldUser.Value.CopyDataFrom(currUsers[oldUser.Key]);
+                    }
+                    else
+                    {
+                        toRemove.Add(oldUser.Value);
+                    }
+                }
+
+                foreach (var remove in toRemove)
+                {
+                    DoRemoveUser(remove);
+                }
+
+                foreach (var currUser in currUsers)
+                {
+                    if (!m_SessionUsers.ContainsKey(currUser.Key))
+                    {
+                        DoAddUser(currUser.Value);
+                    }
+                }
+            }
+
+            OnChanged();
+        }
+
+        public Dictionary GetDataForUnityServices() =>
+            new()
+            {
+                { "RelayJoinCode", new SessionProperty(RelayJoinCode) }
+            };
+
+        public void ApplyRemoteData(ISession session)
+        {
+            var info = new SessionData(); // Technically, this is largely redundant after the first assignment, but it won't do any harm to assign it again.
+            info.SessionID = session.Id;
+            info.SessionName = session.Name;
+            info.MaxPlayerCount = session.MaxPlayers;
+            info.SessionCode = session.Code;
+            info.Private = session.IsPrivate;
+
+            if (session.Properties != null)
+            {
+                info.RelayJoinCode = session.Properties.TryGetValue("RelayJoinCode", out var property) ? property.Value : null; // By providing RelayCode through the session properties with Member visibility, we ensure a client is connected to the session before they could attempt a relay connection, preventing timing issues between them.
+            }
+            else
+            {
+                info.RelayJoinCode = null;
+            }
+
+            var localSessionUsers = new Dictionary();
+            foreach (var player in session.Players)
+            {
+                if (player.Properties != null)
+                {
+                    if (localSessionUsers.ContainsKey(player.Id))
+                    {
+                        localSessionUsers.Add(player.Id, localSessionUsers[player.Id]);
+                        continue;
+                    }
+                }
+
+                // If the player isn't connected to Relay, get the most recent data that the session knows.
+                // (If we haven't seen this player yet, a new local representation of the player will have already been added by the LocalSession.)
+                var incomingData = new LocalSessionUser
+                {
+                    IsHost = session.Host.Equals(player.Id),
+                    DisplayName = player.Properties != null && player.Properties.TryGetValue("DisplayName", out var property) ? property.Value : default,
+                    ID = player.Id
+                };
+
+                localSessionUsers.Add(incomingData.ID, incomingData);
+            }
+
+            CopyDataFrom(info, localSessionUsers);
+        }
+
+        public void Reset(LocalSessionUser localUser)
+        {
+            CopyDataFrom(new SessionData(), new Dictionary());
+            AddUser(localUser);
+        }
+    }
+}
diff --git a/Assets/Scripts/UnityServices/Lobbies/LocalLobby.cs.meta b/Assets/Scripts/UnityServices/Sessions/LocalSession.cs.meta
similarity index 100%
rename from Assets/Scripts/UnityServices/Lobbies/LocalLobby.cs.meta
rename to Assets/Scripts/UnityServices/Sessions/LocalSession.cs.meta
diff --git a/Assets/Scripts/UnityServices/Lobbies/LocalLobbyUser.cs b/Assets/Scripts/UnityServices/Sessions/LocalSessionUser.cs
similarity index 74%
rename from Assets/Scripts/UnityServices/Lobbies/LocalLobbyUser.cs
rename to Assets/Scripts/UnityServices/Sessions/LocalSessionUser.cs
index ec36764432..cbf7004515 100644
--- a/Assets/Scripts/UnityServices/Lobbies/LocalLobbyUser.cs
+++ b/Assets/Scripts/UnityServices/Sessions/LocalSessionUser.cs
@@ -1,127 +1,127 @@
-using System;
-using System.Collections.Generic;
-using Unity.Services.Lobbies.Models;
-
-namespace Unity.BossRoom.UnityServices.Lobbies
-{
-    /// 
-    /// Data for a local lobby user instance. This will update data and is observed to know when to push local user changes to the entire lobby.
-    /// 
-    [Serializable]
-    public class LocalLobbyUser
-    {
-        public event Action changed;
-
-        public LocalLobbyUser()
-        {
-            m_UserData = new UserData(isHost: false, displayName: null, id: null);
-        }
-
-        public struct UserData
-        {
-            public bool IsHost { get; set; }
-            public string DisplayName { get; set; }
-            public string ID { get; set; }
-
-            public UserData(bool isHost, string displayName, string id)
-            {
-                IsHost = isHost;
-                DisplayName = displayName;
-                ID = id;
-            }
-        }
-
-        UserData m_UserData;
-
-        public void ResetState()
-        {
-            m_UserData = new UserData(false, m_UserData.DisplayName, m_UserData.ID);
-        }
-
-        /// 
-        /// Used for limiting costly OnChanged actions to just the members which actually changed.
-        /// 
-        [Flags]
-        public enum UserMembers
-        {
-            IsHost = 1,
-            DisplayName = 2,
-            ID = 4,
-        }
-
-        UserMembers m_LastChanged;
-
-        public bool IsHost
-        {
-            get { return m_UserData.IsHost; }
-            set
-            {
-                if (m_UserData.IsHost != value)
-                {
-                    m_UserData.IsHost = value;
-                    m_LastChanged = UserMembers.IsHost;
-                    OnChanged();
-                }
-            }
-        }
-
-        public string DisplayName
-        {
-            get => m_UserData.DisplayName;
-            set
-            {
-                if (m_UserData.DisplayName != value)
-                {
-                    m_UserData.DisplayName = value;
-                    m_LastChanged = UserMembers.DisplayName;
-                    OnChanged();
-                }
-            }
-        }
-
-        public string ID
-        {
-            get => m_UserData.ID;
-            set
-            {
-                if (m_UserData.ID != value)
-                {
-                    m_UserData.ID = value;
-                    m_LastChanged = UserMembers.ID;
-                    OnChanged();
-                }
-            }
-        }
-
-
-        public void CopyDataFrom(LocalLobbyUser lobby)
-        {
-            var data = lobby.m_UserData;
-            int lastChanged = // Set flags just for the members that will be changed.
-                (m_UserData.IsHost == data.IsHost ? 0 : (int)UserMembers.IsHost) |
-                (m_UserData.DisplayName == data.DisplayName ? 0 : (int)UserMembers.DisplayName) |
-                (m_UserData.ID == data.ID ? 0 : (int)UserMembers.ID);
-
-            if (lastChanged == 0) // Ensure something actually changed.
-            {
-                return;
-            }
-
-            m_UserData = data;
-            m_LastChanged = (UserMembers)lastChanged;
-
-            OnChanged();
-        }
-
-        void OnChanged()
-        {
-            changed?.Invoke(this);
-        }
-
-        public Dictionary GetDataForUnityServices() =>
-            new Dictionary()
-            {
-                {"DisplayName", new PlayerDataObject(PlayerDataObject.VisibilityOptions.Member, DisplayName)},
-            };
-    }
-}
+using System;
+using System.Collections.Generic;
+using Unity.Services.Multiplayer;
+
+namespace Unity.BossRoom.UnityServices.Sessions
+{
+    /// 
+    /// Data for a local session user instance. This will update data and is observed to know when to push local user
+    /// changes to the entire session.
+    /// 
+    [Serializable]
+    public class LocalSessionUser
+    {
+        UserData m_UserData;
+
+        public event Action changed;
+
+        public LocalSessionUser()
+        {
+            m_UserData = new UserData(isHost: false, displayName: null, id: null);
+        }
+
+        public struct UserData
+        {
+            public bool IsHost { get; set; }
+            public string DisplayName { get; set; }
+            public string ID { get; set; }
+
+            public UserData(bool isHost, string displayName, string id)
+            {
+                IsHost = isHost;
+                DisplayName = displayName;
+                ID = id;
+            }
+        }
+
+        public void ResetState()
+        {
+            m_UserData = new UserData(false, m_UserData.DisplayName, m_UserData.ID);
+        }
+
+        /// 
+        /// Used for limiting costly OnChanged actions to just the members which actually changed.
+        /// 
+        [Flags]
+        public enum UserMembers
+        {
+            IsHost = 1,
+            DisplayName = 2,
+            ID = 4,
+        }
+
+        UserMembers m_LastChanged;
+
+        public bool IsHost
+        {
+            get => m_UserData.IsHost;
+            set
+            {
+                if (m_UserData.IsHost != value)
+                {
+                    m_UserData.IsHost = value;
+                    m_LastChanged = UserMembers.IsHost;
+                    OnChanged();
+                }
+            }
+        }
+
+        public string DisplayName
+        {
+            get => m_UserData.DisplayName;
+            set
+            {
+                if (m_UserData.DisplayName != value)
+                {
+                    m_UserData.DisplayName = value;
+                    m_LastChanged = UserMembers.DisplayName;
+                    OnChanged();
+                }
+            }
+        }
+
+        public string ID
+        {
+            get => m_UserData.ID;
+            set
+            {
+                if (m_UserData.ID != value)
+                {
+                    m_UserData.ID = value;
+                    m_LastChanged = UserMembers.ID;
+                    OnChanged();
+                }
+            }
+        }
+
+        public void CopyDataFrom(LocalSessionUser session)
+        {
+            var data = session.m_UserData;
+            var lastChanged = // Set flags just for the members that will be changed.
+                (m_UserData.IsHost == data.IsHost ? 0 : (int)UserMembers.IsHost) |
+                (m_UserData.DisplayName == data.DisplayName ? 0 : (int)UserMembers.DisplayName) |
+                (m_UserData.ID == data.ID ? 0 : (int)UserMembers.ID);
+
+            if (lastChanged == 0) // Ensure something actually changed.
+            {
+                return;
+            }
+
+            m_UserData = data;
+            m_LastChanged = (UserMembers)lastChanged;
+
+            OnChanged();
+        }
+
+        void OnChanged()
+        {
+            changed?.Invoke(this);
+        }
+
+        public Dictionary GetDataForUnityServices() =>
+            new()
+            {
+                { "DisplayName", new PlayerProperty(DisplayName, VisibilityPropertyOptions.Member) },
+            };
+    }
+}
diff --git a/Assets/Scripts/UnityServices/Lobbies/LocalLobbyUser.cs.meta b/Assets/Scripts/UnityServices/Sessions/LocalSessionUser.cs.meta
similarity index 100%
rename from Assets/Scripts/UnityServices/Lobbies/LocalLobbyUser.cs.meta
rename to Assets/Scripts/UnityServices/Sessions/LocalSessionUser.cs.meta
diff --git a/Assets/Scripts/UnityServices/Lobbies/Messages.meta b/Assets/Scripts/UnityServices/Sessions/Messages.meta
similarity index 100%
rename from Assets/Scripts/UnityServices/Lobbies/Messages.meta
rename to Assets/Scripts/UnityServices/Sessions/Messages.meta
diff --git a/Assets/Scripts/UnityServices/Sessions/Messages/SessionListFetchedMessage.cs b/Assets/Scripts/UnityServices/Sessions/Messages/SessionListFetchedMessage.cs
new file mode 100644
index 0000000000..753eb31fde
--- /dev/null
+++ b/Assets/Scripts/UnityServices/Sessions/Messages/SessionListFetchedMessage.cs
@@ -0,0 +1,15 @@
+using System.Collections.Generic;
+using Unity.Services.Multiplayer;
+
+namespace Unity.BossRoom.UnityServices.Sessions
+{
+    public struct SessionListFetchedMessage
+    {
+        public readonly IList LocalSessions;
+
+        public SessionListFetchedMessage(IList localSessions)
+        {
+            LocalSessions = localSessions;
+        }
+    }
+}
diff --git a/Assets/Scripts/UnityServices/Lobbies/Messages/LobbyListFetchedMessage.cs.meta b/Assets/Scripts/UnityServices/Sessions/Messages/SessionListFetchedMessage.cs.meta
similarity index 100%
rename from Assets/Scripts/UnityServices/Lobbies/Messages/LobbyListFetchedMessage.cs.meta
rename to Assets/Scripts/UnityServices/Sessions/Messages/SessionListFetchedMessage.cs.meta
diff --git a/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesFacade.cs b/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesFacade.cs
new file mode 100644
index 0000000000..86de1e0b0d
--- /dev/null
+++ b/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesFacade.cs
@@ -0,0 +1,465 @@
+using System;
+using System.Threading.Tasks;
+using Unity.BossRoom.Infrastructure;
+using Unity.Services.Authentication;
+using Unity.Services.Multiplayer;
+using UnityEngine;
+using VContainer;
+using VContainer.Unity;
+
+namespace Unity.BossRoom.UnityServices.Sessions
+{
+    /// 
+    /// An abstraction layer between the direct calls into the Multiplayer Services SDK and the outcomes you actually want.
+    /// 
+    public class MultiplayerServicesFacade : IDisposable, IStartable
+    {
+        [Inject]
+        LifetimeScope m_ParentScope;
+        [Inject]
+        UpdateRunner m_UpdateRunner;
+        [Inject]
+        LocalSession m_LocalSession;
+        [Inject]
+        LocalSessionUser m_LocalUser;
+        [Inject]
+        IPublisher m_UnityServiceErrorMessagePub;
+        [Inject]
+        IPublisher m_SessionListFetchedPub;
+
+        LifetimeScope m_ServiceScope;
+        MultiplayerServicesInterface m_MultiplayerServicesInterface;
+
+        RateLimitCooldown m_RateLimitQuery;
+        RateLimitCooldown m_RateLimitJoin;
+        RateLimitCooldown m_RateLimitQuickJoin;
+        RateLimitCooldown m_RateLimitHost;
+
+        public ISession CurrentUnitySession { get; private set; }
+
+        bool m_IsTracking;
+
+        public void Start()
+        {
+            m_ServiceScope = m_ParentScope.CreateChild(builder =>
+            {
+                builder.Register(Lifetime.Singleton);
+            });
+
+            m_MultiplayerServicesInterface = m_ServiceScope.Container.Resolve();
+
+            //See https://docs.unity.com/ugs/manual/lobby/manual/rate-limits
+            m_RateLimitQuery = new RateLimitCooldown(1f);
+            m_RateLimitJoin = new RateLimitCooldown(1f);
+            m_RateLimitQuickJoin = new RateLimitCooldown(1f);
+            m_RateLimitHost = new RateLimitCooldown(3f);
+        }
+
+        public void Dispose()
+        {
+            EndTracking();
+            if (m_ServiceScope != null)
+            {
+                m_ServiceScope.Dispose();
+            }
+        }
+
+        public void SetRemoteSession(ISession session)
+        {
+            CurrentUnitySession = session;
+            m_LocalSession.ApplyRemoteData(session);
+        }
+
+        /// 
+        /// Initiates tracking of joined session's events. The host also starts sending heartbeat pings here.
+        /// 
+        public void BeginTracking()
+        {
+            if (!m_IsTracking)
+            {
+                m_IsTracking = true;
+                SubscribeToJoinedSession();
+            }
+        }
+
+        /// 
+        /// Ends tracking of joined session's events and leaves or deletes the session. The host also stops sending heartbeat
+        /// pings here.
+        /// 
+        public void EndTracking()
+        {
+            if (m_IsTracking)
+            {
+                m_IsTracking = false;
+            }
+
+            if (CurrentUnitySession != null)
+            {
+                UnsubscribeFromJoinedSession();
+                if (m_LocalUser.IsHost)
+                {
+                    DeleteSessionAsync();
+                }
+                else
+                {
+                    LeaveSessionAsync();
+                }
+            }
+        }
+
+        /// 
+        /// Attempt to create a new session and then join it.
+        /// 
+        public async Task<(bool Success, ISession Session)> TryCreateSessionAsync(string sessionName, int maxPlayers, bool isPrivate)
+        {
+            if (!m_RateLimitHost.CanCall)
+            {
+                Debug.LogWarning("Create Session hit the rate limit.");
+                return (false, null);
+            }
+
+            try
+            {
+                var session = await m_MultiplayerServicesInterface.CreateSession(sessionName,
+                    maxPlayers,
+                    isPrivate,
+                    m_LocalUser.GetDataForUnityServices(),
+                    null);
+                return (true, session);
+            }
+            catch (Exception e)
+            {
+                PublishError(e);
+            }
+
+            return (false, null);
+        }
+
+        /// 
+        /// Attempt to join an existing session with a join code.
+        /// 
+        public async Task<(bool Success, ISession Session)> TryJoinSessionByCodeAsync(string sessionCode)
+        {
+            if (!m_RateLimitJoin.CanCall)
+            {
+                Debug.LogWarning("Join Session hit the rate limit.");
+                return (false, null);
+            }
+
+            if (string.IsNullOrEmpty(sessionCode))
+            {
+                Debug.LogWarning("Cannot join a Session without a join code.");
+                return (false, null);
+            }
+
+            Debug.Log($"Joining session with join code {sessionCode}");
+
+            try
+            {
+                var session = await m_MultiplayerServicesInterface.JoinSessionByCode(sessionCode, m_LocalUser.GetDataForUnityServices());
+                return (true, session);
+            }
+            catch (Exception e)
+            {
+                PublishError(e);
+            }
+
+            return (false, null);
+        }
+
+        /// 
+        /// Attempt to join an existing session by name.
+        /// 
+        public async Task<(bool Success, ISession Session)> TryJoinSessionByNameAsync(string sessionName)
+        {
+            if (!m_RateLimitJoin.CanCall)
+            {
+                Debug.LogWarning("Join Session hit the rate limit.");
+                return (false, null);
+            }
+
+            if (string.IsNullOrEmpty(sessionName))
+            {
+                Debug.LogWarning("Cannot join a Session without a session name.");
+                return (false, null);
+            }
+
+            Debug.Log($"Joining session with name {sessionName}");
+
+            try
+            {
+                var session = await m_MultiplayerServicesInterface.JoinSessionById(sessionName, m_LocalUser.GetDataForUnityServices());
+                return (true, session);
+            }
+            catch (Exception e)
+            {
+                PublishError(e);
+            }
+
+            return (false, null);
+        }
+
+        /// 
+        /// Attempt to join the first session among the available sessions that match the filtered onlineMode.
+        /// 
+        public async Task<(bool Success, ISession Session)> TryQuickJoinSessionAsync()
+        {
+            if (!m_RateLimitQuickJoin.CanCall)
+            {
+                Debug.LogWarning("Quick Join Session hit the rate limit.");
+                return (false, null);
+            }
+
+            try
+            {
+                var session = await m_MultiplayerServicesInterface.QuickJoinSession(m_LocalUser.GetDataForUnityServices());
+                return (true, session);
+            }
+            catch (Exception e)
+            {
+                PublishError(e);
+            }
+
+            return (false, null);
+        }
+
+        void ResetSession()
+        {
+            CurrentUnitySession = null;
+            m_LocalUser?.ResetState();
+            m_LocalSession?.Reset(m_LocalUser);
+
+            // no need to disconnect Netcode, it should already be handled by Netcode's callback to disconnect
+        }
+
+        void SubscribeToJoinedSession()
+        {
+            CurrentUnitySession.Changed += OnSessionChanged;
+            CurrentUnitySession.StateChanged += OnSessionStateChanged;
+            CurrentUnitySession.Deleted += OnSessionDeleted;
+            CurrentUnitySession.PlayerJoined += OnPlayerJoined;
+            CurrentUnitySession.PlayerHasLeft += OnPlayerHasLeft;
+            CurrentUnitySession.RemovedFromSession += OnRemovedFromSession;
+            CurrentUnitySession.PlayerPropertiesChanged += OnPlayerPropertiesChanged;
+            CurrentUnitySession.SessionPropertiesChanged += OnSessionPropertiesChanged;
+        }
+
+        void UnsubscribeFromJoinedSession()
+        {
+            CurrentUnitySession.Changed -= OnSessionChanged;
+            CurrentUnitySession.StateChanged -= OnSessionStateChanged;
+            CurrentUnitySession.Deleted -= OnSessionDeleted;
+            CurrentUnitySession.PlayerJoined -= OnPlayerJoined;
+            CurrentUnitySession.PlayerHasLeft -= OnPlayerHasLeft;
+            CurrentUnitySession.RemovedFromSession -= OnRemovedFromSession;
+            CurrentUnitySession.PlayerPropertiesChanged -= OnPlayerPropertiesChanged;
+            CurrentUnitySession.SessionPropertiesChanged -= OnSessionPropertiesChanged;
+        }
+
+        void OnSessionChanged()
+        {
+            m_LocalSession.ApplyRemoteData(CurrentUnitySession);
+
+            // as client, check if host is still in session
+            if (!m_LocalUser.IsHost)
+            {
+                foreach (var sessionUser in m_LocalSession.sessionUsers)
+                {
+                    if (sessionUser.Value.IsHost)
+                    {
+                        return;
+                    }
+                }
+
+                m_UnityServiceErrorMessagePub.Publish(new UnityServiceErrorMessage("Host left the session", "Disconnecting.", UnityServiceErrorMessage.Service.Session));
+                EndTracking();
+
+                // no need to disconnect Netcode, it should already be handled by Netcode's callback to disconnect
+            }
+        }
+
+        void OnSessionStateChanged(SessionState sessionState)
+        {
+            switch (sessionState)
+            {
+                case SessionState.None:
+                    break;
+                case SessionState.Connected:
+                    Debug.Log("Session state changed: Session connected.");
+                    break;
+                case SessionState.Disconnected:
+                    Debug.Log("Session state changed: Session disconnected.");
+                    break;
+                case SessionState.Deleted:
+                    Debug.Log("Session state changed: Session deleted.");
+                    break;
+                default:
+                    throw new ArgumentOutOfRangeException(nameof(sessionState), sessionState, null);
+            }
+        }
+
+        void OnSessionDeleted()
+        {
+            Debug.Log("Session deleted.");
+            ResetSession();
+            EndTracking();
+        }
+
+        void OnPlayerJoined(string playerId)
+        {
+            Debug.Log($"Player joined: {playerId}");
+        }
+
+        void OnPlayerHasLeft(string playerId)
+        {
+            Debug.Log($"Player has left: {playerId}");
+        }
+
+        void OnRemovedFromSession()
+        {
+            Debug.Log("Removed from Session.");
+            ResetSession();
+            EndTracking();
+        }
+
+        void OnPlayerPropertiesChanged()
+        {
+            Debug.Log("Player properties changed.");
+        }
+
+        void OnSessionPropertiesChanged()
+        {
+            Debug.Log("Session properties changed.");
+        }
+
+        /// 
+        /// Used for getting the list of all active sessions, without needing full info for each.
+        /// 
+        public async Task RetrieveAndPublishSessionListAsync()
+        {
+            if (!m_RateLimitQuery.CanCall)
+            {
+                Debug.LogWarning("Retrieving the session list hit the rate limit. Will try again soon...");
+                return;
+            }
+
+            try
+            {
+                var queryResults = await m_MultiplayerServicesInterface.QuerySessions();
+                m_SessionListFetchedPub.Publish(new SessionListFetchedMessage(queryResults.Sessions));
+            }
+            catch (Exception e)
+            {
+                PublishError(e);
+            }
+        }
+
+        public async Task ReconnectToSessionAsync()
+        {
+            try
+            {
+                return await m_MultiplayerServicesInterface.ReconnectToSession(m_LocalSession.SessionID);
+            }
+            catch (Exception e)
+            {
+                PublishError(e, true);
+            }
+
+            return null;
+        }
+
+        /// 
+        /// Attempt to leave a session
+        /// 
+        async void LeaveSessionAsync()
+        {
+            try
+            {
+                await CurrentUnitySession.LeaveAsync();
+            }
+            catch (Exception e)
+            {
+                PublishError(e, true);
+            }
+            finally
+            {
+                ResetSession();
+            }
+        }
+
+        public async void RemovePlayerFromSessionAsync(string uasId)
+        {
+            if (m_LocalUser.IsHost)
+            {
+                try
+                {
+                    await CurrentUnitySession.AsHost().RemovePlayerAsync(uasId);
+                }
+                catch (Exception e)
+                {
+                    PublishError(e);
+                }
+            }
+            else
+            {
+                Debug.LogError("Only the host can remove other players from the session.");
+            }
+        }
+
+        async void DeleteSessionAsync()
+        {
+            if (m_LocalUser.IsHost)
+            {
+                try
+                {
+                    await CurrentUnitySession.AsHost().DeleteAsync();
+                }
+                catch (Exception e)
+                {
+                    PublishError(e);
+                }
+                finally
+                {
+                    ResetSession();
+                }
+            }
+            else
+            {
+                Debug.LogError("Only the host can delete a session.");
+            }
+        }
+
+        void PublishError(Exception e, bool checkIfDeleted = false)
+        {
+            if (e is not AggregateException aggregateException)
+            {
+                m_UnityServiceErrorMessagePub.Publish(new UnityServiceErrorMessage("Session Error", e.Message, UnityServiceErrorMessage.Service.Session, e));
+                return;
+            }
+
+            if (aggregateException.InnerException is not SessionException sessionException)
+            {
+                m_UnityServiceErrorMessagePub.Publish(new UnityServiceErrorMessage("Session Error", e.Message, UnityServiceErrorMessage.Service.Session, e));
+                return;
+            }
+
+            // If session is not found and if we are not the host, it has already been deleted. No need to publish the error here.
+            if (checkIfDeleted)
+            {
+                if (sessionException.Error == SessionError.SessionNotFound && !m_LocalUser.IsHost)
+                {
+                    return;
+                }
+            }
+
+            if (sessionException.Error == SessionError.RateLimitExceeded)
+            {
+                m_RateLimitJoin.PutOnCooldown();
+                return;
+            }
+
+            var reason = e.InnerException == null ? e.Message : $"{e.Message} ({e.InnerException.Message})"; // Session error type, then HTTP error type.
+            m_UnityServiceErrorMessagePub.Publish(new UnityServiceErrorMessage("Session Error", reason, UnityServiceErrorMessage.Service.Session, e));
+        }
+    }
+}
diff --git a/Assets/Scripts/UnityServices/Lobbies/LobbyServiceFacade.cs.meta b/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesFacade.cs.meta
similarity index 100%
rename from Assets/Scripts/UnityServices/Lobbies/LobbyServiceFacade.cs.meta
rename to Assets/Scripts/UnityServices/Sessions/MultiplayerServicesFacade.cs.meta
diff --git a/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesInterface.cs b/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesInterface.cs
new file mode 100644
index 0000000000..c2cc9275f6
--- /dev/null
+++ b/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesInterface.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Unity.Services.Multiplayer;
+using UnityEngine;
+
+namespace Unity.BossRoom.UnityServices.Sessions
+{
+    /// 
+    /// Wrapper for all the interactions with the Sessions API.
+    /// 
+    public class MultiplayerServicesInterface
+    {
+        const int k_MaxSessionsToShow = 16; // If more are necessary, consider retrieving paginated results or using filters.
+        const int k_MaxPlayers = 8;
+
+        readonly List m_FilterOptions;
+        readonly List m_SortOptions;
+
+        public MultiplayerServicesInterface()
+        {
+            // Filter for open sessions only
+            m_FilterOptions = new List
+            {
+                new(FilterField.AvailableSlots, "0", FilterOperation.Greater)
+            };
+
+            // Order by newest sessions first
+            m_SortOptions = new List
+            {
+                new(SortOrder.Descending, SortField.CreationTime)
+            };
+        }
+
+        public async Task CreateSession(string sessionName, int maxPlayers, bool isPrivate, Dictionary playerProperties, Dictionary sessionProperties)
+        {
+            var sessionOptions = new SessionOptions
+            {
+                Name = sessionName,
+                MaxPlayers = maxPlayers,
+                IsPrivate = isPrivate,
+                IsLocked = false,
+                PlayerProperties = playerProperties,
+                SessionProperties = sessionProperties
+            }.WithRelayNetwork();
+
+            return await MultiplayerService.Instance.CreateSessionAsync(sessionOptions);
+        }
+
+        public async Task JoinSessionByCode(string sessionCode, Dictionary localUserData)
+        {
+            var joinSessionOptions = new JoinSessionOptions
+            {
+                PlayerProperties = localUserData
+            };
+            return await MultiplayerService.Instance.JoinSessionByCodeAsync(sessionCode, joinSessionOptions);
+        }
+
+        public async Task JoinSessionById(string sessionId, Dictionary localUserData)
+        {
+            var joinSessionOptions = new JoinSessionOptions
+            {
+                PlayerProperties = localUserData
+            };
+            return await MultiplayerService.Instance.JoinSessionByIdAsync(sessionId, joinSessionOptions);
+        }
+
+        public async Task QuickJoinSession(Dictionary localUserData)
+        {
+            var quickJoinOptions = new QuickJoinOptions
+            {
+                Filters = m_FilterOptions,
+                CreateSession = true // create a Session if no matching Session was found
+            };
+
+            var sessionOptions = new SessionOptions
+            {
+                MaxPlayers = k_MaxPlayers,
+                PlayerProperties = localUserData
+            }.WithRelayNetwork();
+
+            return await MultiplayerService.Instance.MatchmakeSessionAsync(quickJoinOptions, sessionOptions);
+        }
+
+        public async Task QuerySessions()
+        {
+            return await MultiplayerService.Instance.QuerySessionsAsync(new QuerySessionsOptions());
+        }
+
+        public async Task ReconnectToSession(string sessionId)
+        {
+            return await MultiplayerService.Instance.ReconnectToSessionAsync(sessionId);
+        }
+
+        public async Task QueryAllSessions()
+        {
+            var querySessionOptions = new QuerySessionsOptions
+            {
+                Count = k_MaxSessionsToShow,
+                FilterOptions = m_FilterOptions,
+                SortOptions = m_SortOptions
+            };
+            return await MultiplayerService.Instance.QuerySessionsAsync(querySessionOptions);
+        }
+    }
+}
diff --git a/Assets/Scripts/UnityServices/Lobbies/LobbyAPIInterface.cs.meta b/Assets/Scripts/UnityServices/Sessions/MultiplayerServicesInterface.cs.meta
similarity index 100%
rename from Assets/Scripts/UnityServices/Lobbies/LobbyAPIInterface.cs.meta
rename to Assets/Scripts/UnityServices/Sessions/MultiplayerServicesInterface.cs.meta
diff --git a/Assets/Scripts/UnityServices/Unity.BossRoom.UnityServices.asmdef b/Assets/Scripts/UnityServices/Unity.BossRoom.UnityServices.asmdef
index b5c8c57535..4af8b2fde7 100644
--- a/Assets/Scripts/UnityServices/Unity.BossRoom.UnityServices.asmdef
+++ b/Assets/Scripts/UnityServices/Unity.BossRoom.UnityServices.asmdef
@@ -4,11 +4,10 @@
     "references": [
         "Unity.Services.Core",
         "Unity.Services.Authentication",
-        "Unity.Services.Lobbies",
-        "Unity.Services.Relay",
         "Unity.Services.Wire.Internal",
         "Unity.BossRoom.Infrastructure",
-        "VContainer"
+        "VContainer",
+        "Unity.Services.Multiplayer"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/Assets/Scripts/Utils/NetworkSimulatorUIMediator.cs b/Assets/Scripts/Utils/NetworkSimulatorUIMediator.cs
index a80f4ef3e6..a033385805 100644
--- a/Assets/Scripts/Utils/NetworkSimulatorUIMediator.cs
+++ b/Assets/Scripts/Utils/NetworkSimulatorUIMediator.cs
@@ -6,6 +6,7 @@
 using Unity.Multiplayer.Tools.NetworkSimulator.Runtime.BuiltInScenarios;
 using Unity.Netcode;
 using UnityEngine;
+using UnityEngine.InputSystem;
 using UnityEngine.UI;
 
 namespace Unity.BossRoom.Utils
@@ -36,7 +37,7 @@ public class NetworkSimulatorUIMediator : MonoBehaviour
         TMP_InputField m_LagSpikeDuration;
 
         [SerializeField]
-        KeyCode m_OpenWindowKeyCode = KeyCode.Tilde;
+        InputActionReference m_ToggleNetworkSimulatorAction;
 
         [SerializeField]
         List m_ConnectionsCycleConfigurations;
@@ -47,8 +48,6 @@ public class NetworkSimulatorUIMediator : MonoBehaviour
         [SerializeField]
         int m_RandomConnectionsSwapChangeIntervalMilliseconds;
 
-        const int k_NbTouchesToOpenWindow = 5;
-
         Dictionary m_SimulatorPresets = new Dictionary();
 #endif
         bool m_Shown;
@@ -64,6 +63,7 @@ void Awake()
 #if UNITY_EDITOR || DEVELOPMENT_BUILD
             InitializeUI();
 #endif
+
             // Hide UI until ready
             Hide();
         }
@@ -81,6 +81,8 @@ void Start()
         {
             NetworkManager.Singleton.OnClientStarted += OnNetworkManagerStarted;
             NetworkManager.Singleton.OnServerStarted += OnNetworkManagerStarted;
+
+            m_ToggleNetworkSimulatorAction.action.performed += OnToggleNetworkSimulatorActionPerformed;
         }
 
         void OnDestroy()
@@ -90,6 +92,8 @@ void OnDestroy()
                 NetworkManager.Singleton.OnClientStarted -= OnNetworkManagerStarted;
                 NetworkManager.Singleton.OnServerStarted -= OnNetworkManagerStarted;
             }
+
+            m_ToggleNetworkSimulatorAction.action.performed -= OnToggleNetworkSimulatorActionPerformed;
         }
 
         void OnNetworkManagerStarted()
@@ -122,6 +126,7 @@ void OnScenarioChanged(int optionIndex)
                     {
                         connectionsCyleScenario.Configurations.Add(configuration);
                     }
+
                     m_PresetsDropdown.captionText.color = m_PresetsDropdown.colors.disabledColor;
                     m_PresetsDropdown.interactable = false;
                     scenario = connectionsCyleScenario;
@@ -133,6 +138,7 @@ void OnScenarioChanged(int optionIndex)
                     {
                         randomConnectionsSwapScenario.Configurations.Add(configuration);
                     }
+
                     m_PresetsDropdown.captionText.color = m_PresetsDropdown.colors.disabledColor;
                     m_PresetsDropdown.interactable = false;
                     scenario = randomConnectionsSwapScenario;
@@ -143,6 +149,7 @@ void OnScenarioChanged(int optionIndex)
                     m_PresetsDropdown.interactable = true;
                     break;
             }
+
             m_NetworkSimulator.Scenario = scenario;
             if (m_NetworkSimulator.Scenario != null)
             {
@@ -177,12 +184,14 @@ void InitializeUI()
         {
             // Initialize connection presets dropdown
             var optionData = new List();
+
             // Adding all available presets
             foreach (var networkSimulatorPreset in NetworkSimulatorPresets.Values)
             {
                 m_SimulatorPresets[networkSimulatorPreset.Name] = networkSimulatorPreset;
                 optionData.Add(new TMP_Dropdown.OptionData(networkSimulatorPreset.Name));
             }
+
             m_PresetsDropdown.AddOptions(optionData);
             m_PresetsDropdown.onValueChanged.AddListener(OnPresetChanged);
 
@@ -206,12 +215,6 @@ void Update()
         {
             if (m_NetworkSimulator.IsAvailable)
             {
-                if (Input.touchCount == k_NbTouchesToOpenWindow && AnyTouchDown() ||
-                    m_OpenWindowKeyCode != KeyCode.None && Input.GetKeyDown(m_OpenWindowKeyCode))
-                {
-                    ToggleVisibility();
-                }
-
                 var selectedPreset = m_PresetsDropdown.options[m_PresetsDropdown.value].text;
                 if (selectedPreset != m_NetworkSimulator.CurrentPreset.Name)
                 {
@@ -223,7 +226,6 @@ void Update()
                         }
                     }
                 }
-
             }
             else
             {
@@ -234,16 +236,9 @@ void Update()
             }
         }
 
-        static bool AnyTouchDown()
+        void OnToggleNetworkSimulatorActionPerformed(InputAction.CallbackContext obj)
         {
-            foreach (var touch in Input.touches)
-            {
-                if (touch.phase == TouchPhase.Began)
-                {
-                    return true;
-                }
-            }
-            return false;
+            ToggleVisibility();
         }
 
         public void SimulateDisconnect()
diff --git a/Assets/Scripts/Utils/Unity.BossRoom.Utils.asmdef b/Assets/Scripts/Utils/Unity.BossRoom.Utils.asmdef
index 9387c5ca7a..5cc85b5d27 100644
--- a/Assets/Scripts/Utils/Unity.BossRoom.Utils.asmdef
+++ b/Assets/Scripts/Utils/Unity.BossRoom.Utils.asmdef
@@ -6,7 +6,8 @@
         "Unity.Netcode.Runtime",
         "Unity.Multiplayer.Tools.NetworkSimulator.Runtime",
         "Unity.Networking.Transport",
-        "Unity.Collections"
+        "Unity.Collections",
+        "Unity.InputSystem"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/Assets/Tests/Runtime/ConnectionManagementTests.cs b/Assets/Tests/Runtime/ConnectionManagementTests.cs
index 91d05649ba..f617ccfd72 100644
--- a/Assets/Tests/Runtime/ConnectionManagementTests.cs
+++ b/Assets/Tests/Runtime/ConnectionManagementTests.cs
@@ -5,7 +5,7 @@
 using Unity.BossRoom.ConnectionManagement;
 using Unity.BossRoom.Infrastructure;
 using Unity.BossRoom.UnityServices;
-using Unity.BossRoom.UnityServices.Lobbies;
+using Unity.BossRoom.UnityServices.Sessions;
 using Unity.BossRoom.Utils;
 using Unity.Multiplayer.Samples.Utilities;
 using Unity.Netcode;
@@ -15,6 +15,7 @@
 using UnityEngine.TestTools;
 using VContainer;
 using VContainer.Unity;
+using Object = UnityEngine.Object;
 
 namespace Unity.BossRoom.Tests.Runtime
 {
@@ -39,11 +40,11 @@ protected override void Configure(IContainerBuilder builder)
                 builder.RegisterInstance(new BufferedMessageChannel()).AsImplementedInterfaces();
                 builder.RegisterInstance(new MessageChannel()).AsImplementedInterfaces();
                 builder.RegisterInstance(new MessageChannel()).AsImplementedInterfaces();
-                builder.RegisterInstance(new BufferedMessageChannel()).AsImplementedInterfaces();
-                builder.Register(Lifetime.Singleton);
-                builder.Register(Lifetime.Singleton);
+                builder.RegisterInstance(new BufferedMessageChannel()).AsImplementedInterfaces();
+                builder.Register(Lifetime.Singleton);
+                builder.Register(Lifetime.Singleton);
                 builder.Register(Lifetime.Singleton);
-                builder.RegisterEntryPoint(Lifetime.Singleton).AsSelf();
+                builder.RegisterEntryPoint(Lifetime.Singleton).AsSelf();
             }
         }
 
@@ -149,9 +150,9 @@ protected override IEnumerator OnTearDown()
                 m_ClientScopes[i].Dispose();
             }
 
-            foreach (var sceneGameObject in GameObject.FindObjectsOfType())
+            foreach (var sceneGameObject in Object.FindObjectsByType(FindObjectsSortMode.None))
             {
-                GameObject.DestroyImmediate(sceneGameObject);
+                Object.DestroyImmediate(sceneGameObject);
             }
 
             yield return base.OnTearDown();
@@ -194,11 +195,12 @@ void AssertAllClientsAreConnected()
             }
         }
 
-        [Test]
-        public void StartHost_Success()
+        [UnityTest]
+        public IEnumerator StartHost_Success()
         {
             StartHost();
             AssertHostIsListening();
+            yield return null;
         }
 
         [UnityTest]
diff --git a/Assets/Tests/Runtime/HostAndDisconnectTest.cs b/Assets/Tests/Runtime/HostAndDisconnectTest.cs
index df395a848a..2f4706b272 100644
--- a/Assets/Tests/Runtime/HostAndDisconnectTest.cs
+++ b/Assets/Tests/Runtime/HostAndDisconnectTest.cs
@@ -9,6 +9,7 @@
 using UnityEngine.SceneManagement;
 using UnityEngine.TestTools;
 using VContainer;
+using Object = UnityEngine.Object;
 
 namespace Unity.BossRoom.Tests.Runtime
 {
@@ -81,13 +82,13 @@ IEnumerator WaitUntilBossRoomSceneIsLoaded()
         IEnumerator WaitUntilDisconnectedAndMainMenuSceneIsLoaded()
         {
             // once loaded into BossRoom scene, disconnect
-            var uiSettingsCanvas = GameObject.FindObjectOfType();
+            var uiSettingsCanvas = Object.FindAnyObjectByType();
             Assert.That(uiSettingsCanvas != null, $"{nameof(UISettingsCanvas)} component not found!");
             uiSettingsCanvas.OnClickQuitButton();
 
             yield return new WaitForFixedUpdate();
 
-            var uiQuitPanel = GameObject.FindObjectOfType(true);
+            var uiQuitPanel = Object.FindAnyObjectByType(FindObjectsInactive.Include);
             Assert.That(uiQuitPanel != null, $"{nameof(UIQuitPanel)} component not found!");
             uiQuitPanel.Quit();
 
@@ -114,7 +115,7 @@ public IEnumerator IP_HostAndDisconnect_Valid([ValueSource(nameof(s_PlayerIndice
         {
             yield return WaitUntilMainMenuSceneIsLoaded();
 
-            var clientMainMenuState = GameObject.FindObjectOfType();
+            var clientMainMenuState = Object.FindAnyObjectByType();
 
             Assert.That(clientMainMenuState != null, $"{nameof(clientMainMenuState)} component not found!");
 
@@ -156,9 +157,9 @@ public IEnumerator IP_HostAndDisconnect_Valid([ValueSource(nameof(s_PlayerIndice
         [UnityTearDown]
         public IEnumerator DestroySceneGameObjects()
         {
-            foreach (var sceneGameObject in GameObject.FindObjectsOfType())
+            foreach (var sceneGameObject in Object.FindObjectsByType(FindObjectsSortMode.None))
             {
-                GameObject.DestroyImmediate(sceneGameObject);
+                Object.DestroyImmediate(sceneGameObject);
             }
             yield break;
         }
diff --git a/Assets/Tests/Runtime/Unity.BossRoom.Tests.Runtime.asmdef b/Assets/Tests/Runtime/Unity.BossRoom.Tests.Runtime.asmdef
index 4a416b5efb..b3831776d6 100644
--- a/Assets/Tests/Runtime/Unity.BossRoom.Tests.Runtime.asmdef
+++ b/Assets/Tests/Runtime/Unity.BossRoom.Tests.Runtime.asmdef
@@ -12,10 +12,9 @@
         "Unity.BossRoom.UnityServices",
         "Unity.BossRoom.Utils",
         "Unity.Netcode.Runtime",
-        "Unity.Netcode.TestHelpers.Runtime",
         "VContainer",
-        "VContainer.EnableCodeGen",
-        "Unity.Collections"
+        "Unity.Collections",
+        "Unity.Netcode.Runtime.Tests"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset
index dabc2e2812..ddc94fa040 100644
--- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset	
+++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset	
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:809894df611dd2c0beca143538141fd221a516446176728ab520965dc1a0e747
-size 9099
+oid sha256:1ff4ac652c2e66f2de72987ef5b7c49fb532a266591bbf97e932c257497f246f
+size 9746
diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset
index 40d3e11209..0bea7cb516 100644
--- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset	
+++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset	
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:c3ff50e3133d989180b187748ffc67903f1fede099a5b85b4fcbd8cb6e8be958
-size 2256862
+oid sha256:b28d3683eed292b91e8ab6c352efca7cefb2e57f1e6f9fe8f3ebef544826831f
+size 2264677
diff --git a/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset b/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset
index a0bbea6de4..1577719871 100644
--- a/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset	
+++ b/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset	
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:01222ac025a1f5b90f3f129eee7bfac7fb05223a1edd84aecf2171ec34b10708
-size 4953
+oid sha256:93e073cdb91b7e3d2fa31e2dd13626d7b9d2f327904ba8c3c2b97a3eecfbabac
+size 5539
diff --git a/Assets/TextMesh Pro/Resources/TMP Settings.asset b/Assets/TextMesh Pro/Resources/TMP Settings.asset
index 736974201d..e79c1792f3 100644
--- a/Assets/TextMesh Pro/Resources/TMP Settings.asset	
+++ b/Assets/TextMesh Pro/Resources/TMP Settings.asset	
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:64dfb0d58d22bc752a48aa46933ed69422545906e3f0e716df0c9a5ff0d26789
-size 1683
+oid sha256:e5ea5eff255c5094a3e470fc7657400ac632dd5402d65b6de4b5f17dd4e0597e
+size 1840
diff --git a/Assets/TextMesh Pro/Shaders/SDFFunctions.hlsl b/Assets/TextMesh Pro/Shaders/SDFFunctions.hlsl
new file mode 100644
index 0000000000..b611994655
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/SDFFunctions.hlsl	
@@ -0,0 +1,178 @@
+float2 UnpackUV(float uv)
+{
+	float2 output;
+	output.x = floor(uv / 4096.0);
+	output.y = uv - 4096.0 * output.x;
+
+	return output * 0.001953125;
+}
+
+float4 BlendARGB(float4 overlying, float4 underlying)
+{
+	overlying.rgb *= overlying.a;
+	underlying.rgb *= underlying.a;
+	float3 blended = overlying.rgb + ((1 - overlying.a) * underlying.rgb);
+	float alpha = underlying.a + (1 - underlying.a) * overlying.a;
+	return float4(blended / alpha, alpha);
+}
+
+float3 GetSpecular(float3 n, float3 l)
+{
+	float spec = pow(max(0.0, dot(n, l)), _Reflectivity);
+	return _SpecularColor.rgb * spec * _SpecularPower;
+}
+
+void GetSurfaceNormal_float(texture2D atlas, float textureWidth, float textureHeight, float2 uv, bool isFront, out float3 nornmal)
+{
+	float3 delta = float3(1.0 / textureWidth, 1.0 / textureHeight, 0.0);
+
+	// Read "height field"
+	float4 h = float4(
+		SAMPLE_TEXTURE2D(atlas, SamplerState_Linear_Clamp, uv - delta.xz).a,
+		SAMPLE_TEXTURE2D(atlas, SamplerState_Linear_Clamp, uv + delta.xz).a,
+		SAMPLE_TEXTURE2D(atlas, SamplerState_Linear_Clamp, uv - delta.zy).a,
+		SAMPLE_TEXTURE2D(atlas, SamplerState_Linear_Clamp, uv + delta.zy).a);
+
+	bool raisedBevel = _BevelType;
+
+	h += _BevelOffset;
+
+	float bevelWidth = max(.01, _BevelWidth);
+
+	// Track outline
+	h -= .5;
+	h /= bevelWidth;
+	h = saturate(h + .5);
+
+	if (raisedBevel) h = 1 - abs(h * 2.0 - 1.0);
+	h = lerp(h, sin(h * 3.141592 / 2.0), float4(_BevelRoundness, _BevelRoundness, _BevelRoundness, _BevelRoundness));
+	h = min(h, 1.0 - float4(_BevelClamp, _BevelClamp, _BevelClamp, _BevelClamp));
+	h *= _BevelAmount * bevelWidth * _GradientScale * -2.0;
+
+	float3 va = normalize(float3(-1.0, 0.0, h.y - h.x));
+	float3 vb = normalize(float3(0.0, 1.0, h.w - h.z));
+
+	float3 f = float3(1, 1, 1);
+	if (isFront) f = float3(1, 1, -1);
+	nornmal = cross(va, vb) * f;
+}
+
+void EvaluateLight_float(float4 faceColor, float3 n, out float4 color)
+{
+	n.z = abs(n.z);
+	float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), 1.0));
+
+	float3 col = max(faceColor.rgb, 0) + GetSpecular(n, light)* faceColor.a;
+	//faceColor.rgb += col * faceColor.a;
+	col *= 1 - (dot(n, light) * _Diffuse);
+	col *= lerp(_Ambient, 1, n.z * n.z);
+
+	//fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n));
+	//faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a;
+
+	color = float4(col, faceColor.a);
+}
+
+// Add custom function to handle time in HDRP
+
+
+//
+void GenerateUV_float(float2 inUV, float4 transform, float2 animSpeed, out float2 outUV)
+{
+	outUV = inUV * transform.xy + transform.zw + (animSpeed * _Time.y);
+}
+
+void ComputeUVOffset_float(float texWidth, float texHeight, float2 offset, float SDR, out float2 uvOffset)
+{
+	uvOffset = float2(-offset.x * SDR / texWidth, -offset.y * SDR / texHeight);
+}
+
+void ScreenSpaceRatio2_float(float4x4 projection, float4 position, float2 objectScale, float screenWidth, float screenHeight, float fontScale, out float SSR)
+{
+	float2 pixelSize = position.w;
+	pixelSize /= (objectScale * mul((float2x2)projection, float2(screenWidth, screenHeight)));
+	SSR = rsqrt(dot(pixelSize, pixelSize)*2) * fontScale;
+}
+
+// UV			: Texture coordinate of the source distance field texture
+// TextureSize	: Size of the source distance field texture
+// Filter		: Enable perspective filter (soften)
+void ScreenSpaceRatio_float(float2 UV, float TextureSize, bool Filter, out float SSR)
+{
+	if(Filter)
+	{
+		float2 a = float2(ddx(UV.x), ddy(UV.x));
+		float2 b = float2(ddx(UV.y), ddy(UV.y));
+		float s = lerp(dot(a,a), dot(b,b), 0.5);
+		SSR = rsqrt(s) / TextureSize;
+	}
+	else
+	{
+		float s = rsqrt(abs(ddx(UV.x) * ddy(UV.y) - ddy(UV.x) * ddx(UV.y)));
+		SSR = s / TextureSize;
+	}
+}
+
+// SSR : Screen Space Ratio
+// SD  : Signed Distance (encoded : Distance / SDR + .5)
+// SDR : Signed Distance Ratio
+//
+// IsoPerimeter : Dilate / Contract the shape
+void ComputeSDF_float(float SSR, float SD, float SDR, float isoPerimeter, float softness, out float outAlpha)
+{
+	softness *= SSR * SDR;
+	float d = (SD - 0.5) * SDR;																				// Signed distance to edge, in Texture space
+	outAlpha = saturate((d * 2.0 * SSR + 0.5 + isoPerimeter * SDR * SSR + softness * 0.5) / (1.0 + softness));	// Screen pixel coverage (alpha)
+}
+
+void ComputeSDF2_float(float SSR, float SD, float SDR, float2 isoPerimeter, float2 softness, out float2 outAlpha)
+{
+	softness *= SSR * SDR;
+	float d = (SD - 0.5f) * SDR;
+	outAlpha = saturate((d * 2.0f * SSR + 0.5f + isoPerimeter * SDR * SSR + softness * 0.5) / (1.0 + softness));
+}
+
+void ComputeSDF4_float(float SSR, float SD, float SDR, float4 isoPerimeter, float4 softness, out float4 outAlpha)
+{
+	softness *= SSR * SDR;
+	float d = (SD - 0.5f) * SDR;
+	outAlpha = saturate((d * 2.0f * SSR + 0.5f + isoPerimeter * SDR * SSR + softness * 0.5) / (1.0 + softness));
+}
+
+void ComputeSDF44_float(float SSR, float4 SD, float SDR, float4 isoPerimeter, float4 softness, bool outline, out float4 outAlpha)
+{
+	softness *= SSR * SDR;
+	float4 d = (SD - 0.5f) * SDR;
+	if(outline) d.w = max(max(d.x, d.y), d.z);
+	outAlpha = saturate((d * 2.0f * SSR + 0.5f + isoPerimeter * SDR * SSR + softness * 0.5) / (1.0 + softness));
+}
+
+void Composite_float(float4 overlying, float4 underlying, out float4 outColor)
+{
+	outColor = BlendARGB(overlying, underlying);
+}
+
+// Face only
+void Layer1_float(float alpha, float4 color0, out float4 outColor)
+{
+	color0.a *= alpha;
+	outColor = color0;
+}
+
+// Face + 1 Outline
+void Layer2_float(float2 alpha, float4 color0, float4 color1, out float4 outColor)
+{
+	color1.a *= alpha.y;
+	color0.rgb *= color0.a; color1.rgb *= color1.a;
+	outColor = lerp(color1, color0, alpha.x);
+	outColor.rgb /= outColor.a;
+}
+
+// Face + 3 Outline
+void Layer4_float(float4 alpha, float4 color0, float4 color1, float4 color2, float4 color3, out float4 outColor)
+{
+	color3.a *= alpha.w;
+	color0.rgb *= color0.a; color1.rgb *= color1.a; color2.rgb *= color2.a; color3.rgb *= color3.a;
+	outColor = lerp(lerp(lerp(color3, color2, alpha.z), color1, alpha.y), color0, alpha.x);
+	outColor.rgb /= outColor.a;
+}
diff --git a/Assets/TextMesh Pro/Shaders/SDFFunctions.hlsl.meta b/Assets/TextMesh Pro/Shaders/SDFFunctions.hlsl.meta
new file mode 100644
index 0000000000..001b14e6f0
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/SDFFunctions.hlsl.meta	
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 96de908384869cd409c75efa351d5edf
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  preprocessorOverride: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader b/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader
index bab2b2c677..7e0f35c32b 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader	
@@ -1,26 +1,26 @@
 Shader "TextMeshPro/Bitmap Custom Atlas" {
 
 Properties {
-	_MainTex		("Font Atlas", 2D) = "white" {}
-	_FaceTex		("Font Texture", 2D) = "white" {}
-	[HDR]_FaceColor	("Text Color", Color) = (1,1,1,1)
-
-	_VertexOffsetX	("Vertex OffsetX", float) = 0
-	_VertexOffsetY	("Vertex OffsetY", float) = 0
-	_MaskSoftnessX	("Mask SoftnessX", float) = 0
-	_MaskSoftnessY	("Mask SoftnessY", float) = 0
-
-	_ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
-	_Padding		("Padding", float) = 0
-
-	_StencilComp("Stencil Comparison", Float) = 8
-	_Stencil("Stencil ID", Float) = 0
-	_StencilOp("Stencil Operation", Float) = 0
-	_StencilWriteMask("Stencil Write Mask", Float) = 255
-	_StencilReadMask("Stencil Read Mask", Float) = 255
-
-	_CullMode("Cull Mode", Float) = 0
-	_ColorMask("Color Mask", Float) = 15
+	_MainTex		    ("Font Atlas", 2D) = "white" {}
+	_FaceTex		    ("Font Texture", 2D) = "white" {}
+	_FaceColor	        ("Text Color", Color) = (1,1,1,1)
+
+	_VertexOffsetX	    ("Vertex OffsetX", float) = 0
+	_VertexOffsetY	    ("Vertex OffsetY", float) = 0
+	_MaskSoftnessX	    ("Mask SoftnessX", float) = 0
+	_MaskSoftnessY	    ("Mask SoftnessY", float) = 0
+
+	_ClipRect		    ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
+	_Padding		    ("Padding", float) = 0
+
+	_StencilComp        ("Stencil Comparison", Float) = 8
+	_Stencil            ("Stencil ID", Float) = 0
+	_StencilOp          ("Stencil Operation", Float) = 0
+	_StencilWriteMask   ("Stencil Write Mask", Float) = 255
+	_StencilReadMask    ("Stencil Read Mask", Float) = 255
+
+	_CullMode           ("Cull Mode", Float) = 0
+	_ColorMask          ("Color Mask", Float) = 15
 }
 
 SubShader{
@@ -55,15 +55,18 @@ SubShader{
 
 
 		#include "UnityCG.cginc"
+		#include "UnityUI.cginc"
 
-		struct appdata_t {
+		struct appdata_t
+		{
 			float4 vertex		: POSITION;
 			fixed4 color		: COLOR;
-			float2 texcoord0	: TEXCOORD0;
+			float4 texcoord0	: TEXCOORD0;
 			float2 texcoord1	: TEXCOORD1;
 		};
 
-		struct v2f {
+		struct v2f
+		{
 			float4	vertex		: SV_POSITION;
 			fixed4	color		: COLOR;
 			float2	texcoord0	: TEXCOORD0;
@@ -81,15 +84,9 @@ SubShader{
 		uniform float4		_ClipRect;
 		uniform float		_MaskSoftnessX;
 		uniform float		_MaskSoftnessY;
-
-		float2 UnpackUV(float uv)
-		{
-			float2 output;
-			output.x = floor(uv / 4096);
-			output.y = uv - 4096 * output.x;
-
-			return output * 0.001953125;
-		}
+		uniform float		_UIMaskSoftnessX;
+        uniform float		_UIMaskSoftnessY;
+        uniform int _UIVertexColorAlwaysGammaSpace;
 
 		v2f vert (appdata_t v)
 		{
@@ -101,6 +98,10 @@ SubShader{
 
 			float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert));
 
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                v.color.rgb = UIGammaToLinear(v.color.rgb);
+            }
 			fixed4 faceColor = v.color;
 			faceColor *= _FaceColor;
 
@@ -108,13 +109,14 @@ SubShader{
 			OUT.vertex = vPosition;
 			OUT.color = faceColor;
 			OUT.texcoord0 = v.texcoord0;
-			OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex);
+			OUT.texcoord1 = TRANSFORM_TEX(v.texcoord1, _FaceTex);
 			float2 pixelSize = vPosition.w;
 			pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
 
 			// Clamp _ClipRect to 16bit.
-			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
-			OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
+			const float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
 
 			return OUT;
 		}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader b/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader
index 006a271ee4..b89e267210 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader	
@@ -1,25 +1,25 @@
 Shader "TextMeshPro/Mobile/Bitmap" {
 
 Properties {
-	_MainTex		("Font Atlas", 2D) = "white" {}
-	[HDR]_Color		("Text Color", Color) = (1,1,1,1)
-	_DiffusePower	("Diffuse Power", Range(1.0,4.0)) = 1.0
+	_MainTex		    ("Font Atlas", 2D) = "white" {}
+	_Color		        ("Text Color", Color) = (1,1,1,1)
+	_DiffusePower	    ("Diffuse Power", Range(1.0,4.0)) = 1.0
 
-	_VertexOffsetX("Vertex OffsetX", float) = 0
-	_VertexOffsetY("Vertex OffsetY", float) = 0
-	_MaskSoftnessX("Mask SoftnessX", float) = 0
-	_MaskSoftnessY("Mask SoftnessY", float) = 0
+	_VertexOffsetX      ("Vertex OffsetX", float) = 0
+	_VertexOffsetY      ("Vertex OffsetY", float) = 0
+	_MaskSoftnessX      ("Mask SoftnessX", float) = 0
+	_MaskSoftnessY      ("Mask SoftnessY", float) = 0
 
-	_ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
+	_ClipRect           ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
 
-	_StencilComp("Stencil Comparison", Float) = 8
-	_Stencil("Stencil ID", Float) = 0
-	_StencilOp("Stencil Operation", Float) = 0
-	_StencilWriteMask("Stencil Write Mask", Float) = 255
-	_StencilReadMask("Stencil Read Mask", Float) = 255
+	_StencilComp        ("Stencil Comparison", Float) = 8
+	_Stencil            ("Stencil ID", Float) = 0
+	_StencilOp          ("Stencil Operation", Float) = 0
+	_StencilWriteMask   ("Stencil Write Mask", Float) = 255
+	_StencilReadMask    ("Stencil Read Mask", Float) = 255
 
-	_CullMode("Cull Mode", Float) = 0
-	_ColorMask("Color Mask", Float) = 15
+	_CullMode           ("Cull Mode", Float) = 0
+	_ColorMask          ("Color Mask", Float) = 15
 }
 
 SubShader {
@@ -55,15 +55,18 @@ SubShader {
 
 
 		#include "UnityCG.cginc"
+		#include "UnityUI.cginc"
 
-		struct appdata_t {
+		struct appdata_t
+		{
 			float4 vertex : POSITION;
 			fixed4 color : COLOR;
 			float2 texcoord0 : TEXCOORD0;
 			float2 texcoord1 : TEXCOORD1;
 		};
 
-		struct v2f {
+		struct v2f
+		{
 			float4 vertex		: POSITION;
 			fixed4 color		: COLOR;
 			float2 texcoord0	: TEXCOORD0;
@@ -79,6 +82,9 @@ SubShader {
 		uniform float4		_ClipRect;
 		uniform float		_MaskSoftnessX;
 		uniform float		_MaskSoftnessY;
+		uniform float		_UIMaskSoftnessX;
+        uniform float		_UIMaskSoftnessY;
+        uniform int _UIVertexColorAlwaysGammaSpace;
 
 		v2f vert (appdata_t v)
 		{
@@ -88,8 +94,11 @@ SubShader {
 			vert.y += _VertexOffsetY;
 
 			vert.xy += (vert.w * 0.5) / _ScreenParams.xy;
-
-			OUT.vertex = UnityPixelSnap(UnityObjectToClipPos(vert));
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                v.color.rgb = UIGammaToLinear(v.color.rgb);
+            }
+            OUT.vertex = UnityPixelSnap(UnityObjectToClipPos(vert));
 			OUT.color = v.color;
 			OUT.color *= _Color;
 			OUT.color.rgb *= _DiffusePower;
@@ -99,8 +108,9 @@ SubShader {
 			//pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
 
 			// Clamp _ClipRect to 16bit.
-			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
-			OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
+			const float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
 
 			return OUT;
 		}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader b/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader
index 8ce4937a02..caa527f7e8 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader	
@@ -1,25 +1,25 @@
 Shader "TextMeshPro/Bitmap" {
 
 Properties {
-	_MainTex		("Font Atlas", 2D) = "white" {}
-	_FaceTex		("Font Texture", 2D) = "white" {}
-	[HDR]_FaceColor	("Text Color", Color) = (1,1,1,1)
+	_MainTex		    ("Font Atlas", 2D) = "white" {}
+	_FaceTex		    ("Font Texture", 2D) = "white" {}
+	_FaceColor	        ("Text Color", Color) = (1,1,1,1)
 
-	_VertexOffsetX	("Vertex OffsetX", float) = 0
-	_VertexOffsetY	("Vertex OffsetY", float) = 0
-	_MaskSoftnessX	("Mask SoftnessX", float) = 0
-	_MaskSoftnessY	("Mask SoftnessY", float) = 0
+	_VertexOffsetX	    ("Vertex OffsetX", float) = 0
+	_VertexOffsetY	    ("Vertex OffsetY", float) = 0
+	_MaskSoftnessX	    ("Mask SoftnessX", float) = 0
+	_MaskSoftnessY	    ("Mask SoftnessY", float) = 0
 
-	_ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
+	_ClipRect           ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
 
-	_StencilComp("Stencil Comparison", Float) = 8
-	_Stencil("Stencil ID", Float) = 0
-	_StencilOp("Stencil Operation", Float) = 0
-	_StencilWriteMask("Stencil Write Mask", Float) = 255
-	_StencilReadMask("Stencil Read Mask", Float) = 255
+	_StencilComp        ("Stencil Comparison", Float) = 8
+	_Stencil            ("Stencil ID", Float) = 0
+	_StencilOp          ("Stencil Operation", Float) = 0
+	_StencilWriteMask   ("Stencil Write Mask", Float) = 255
+	_StencilReadMask    ("Stencil Read Mask", Float) = 255
 
-	_CullMode("Cull Mode", Float) = 0
-	_ColorMask("Color Mask", Float) = 15
+	_CullMode           ("Cull Mode", Float) = 0
+	_ColorMask          ("Color Mask", Float) = 15
 }
 
 SubShader{
@@ -54,15 +54,18 @@ SubShader{
 
 
 		#include "UnityCG.cginc"
+		#include "UnityUI.cginc"
 
-		struct appdata_t {
+		struct appdata_t
+		{
 			float4 vertex		: POSITION;
 			fixed4 color		: COLOR;
-			float2 texcoord0	: TEXCOORD0;
+			float4 texcoord0	: TEXCOORD0;
 			float2 texcoord1	: TEXCOORD1;
 		};
 
-		struct v2f {
+		struct v2f
+		{
 			float4	vertex		: SV_POSITION;
 			fixed4	color		: COLOR;
 			float2	texcoord0	: TEXCOORD0;
@@ -80,15 +83,9 @@ SubShader{
 		uniform float4		_ClipRect;
 		uniform float		_MaskSoftnessX;
 		uniform float		_MaskSoftnessY;
-
-		float2 UnpackUV(float uv)
-		{
-			float2 output;
-			output.x = floor(uv / 4096);
-			output.y = uv - 4096 * output.x;
-
-			return output * 0.001953125;
-		}
+		uniform float		_UIMaskSoftnessX;
+        uniform float		_UIMaskSoftnessY;
+        uniform int _UIVertexColorAlwaysGammaSpace;
 
 		v2f vert (appdata_t v)
 		{
@@ -100,6 +97,10 @@ SubShader{
 
 			float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert));
 
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                v.color.rgb = UIGammaToLinear(v.color.rgb);
+            }
 			fixed4 faceColor = v.color;
 			faceColor *= _FaceColor;
 
@@ -107,13 +108,14 @@ SubShader{
 			OUT.vertex = vPosition;
 			OUT.color = faceColor;
 			OUT.texcoord0 = v.texcoord0;
-			OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex);
+			OUT.texcoord1 = TRANSFORM_TEX(v.texcoord1, _FaceTex);
 			float2 pixelSize = vPosition.w;
 			pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1]));
 
 			// Clamp _ClipRect to 16bit.
-			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
-			OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
+			const float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
 
 			return OUT;
 		}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader
index c50c5930d9..757a617313 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader	
@@ -4,10 +4,10 @@ Properties {
 	_FaceTex			("Face Texture", 2D) = "white" {}
 	_FaceUVSpeedX		("Face UV Speed X", Range(-5, 5)) = 0.0
 	_FaceUVSpeedY		("Face UV Speed Y", Range(-5, 5)) = 0.0
-	[HDR]_FaceColor		("Face Color", Color) = (1,1,1,1)
+	_FaceColor		    ("Face Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineTex			("Outline Texture", 2D) = "white" {}
 	_OutlineUVSpeedX	("Outline UV Speed X", Range(-5, 5)) = 0.0
 	_OutlineUVSpeedY	("Outline UV Speed Y", Range(-5, 5)) = 0.0
@@ -21,7 +21,7 @@ Properties {
 	_BevelRoundness		("Bevel Roundness", Range(0,1)) = 0
 
 	_LightAngle			("Light Angle", Range(0.0, 6.2831853)) = 3.1416
-	[HDR]_SpecularColor	("Specular", Color) = (1,1,1,1)
+	_SpecularColor	    ("Specular", Color) = (1,1,1,1)
 	_SpecularPower		("Specular", Range(0,4)) = 2.0
 	_Reflectivity		("Reflectivity", Range(5.0,15.0)) = 10
 	_Diffuse			("Diffuse", Range(0,1)) = 0.5
@@ -37,13 +37,13 @@ Properties {
 	_EnvMatrixRotation	("Texture Rotation", vector) = (0, 0, 0, 0)
 
 
-	[HDR]_UnderlayColor	("Border Color", Color) = (0,0,0, 0.5)
+	_UnderlayColor	    ("Border Color", Color) = (0,0,0, 0.5)
 	_UnderlayOffsetX	("Border OffsetX", Range(-1,1)) = 0
 	_UnderlayOffsetY	("Border OffsetY", Range(-1,1)) = 0
 	_UnderlayDilate		("Border Dilate", Range(-1,1)) = 0
 	_UnderlaySoftness	("Border Softness", Range(0,1)) = 0
 
-	[HDR]_GlowColor		("Color", Color) = (0, 1, 0, 0.5)
+	_GlowColor		    ("Color", Color) = (0, 1, 0, 0.5)
 	_GlowOffset			("Offset", Range(-1,1)) = 0
 	_GlowInner			("Inner", Range(0,1)) = 0.05
 	_GlowOuter			("Outer", Range(0,1)) = 0.05
@@ -127,17 +127,18 @@ SubShader {
 		#include "TMPro_Properties.cginc"
 		#include "TMPro.cginc"
 
-		struct vertex_t {
+		struct vertex_t
+		{
 			UNITY_VERTEX_INPUT_INSTANCE_ID
 			float4	position		: POSITION;
 			float3	normal			: NORMAL;
 			fixed4	color			: COLOR;
-			float2	texcoord0		: TEXCOORD0;
+			float4	texcoord0		: TEXCOORD0;
 			float2	texcoord1		: TEXCOORD1;
 		};
 
-
-		struct pixel_t {
+		struct pixel_t
+		{
 			UNITY_VERTEX_INPUT_INSTANCE_ID
 			UNITY_VERTEX_OUTPUT_STEREO
 			float4	position		: SV_POSITION;
@@ -147,16 +148,20 @@ SubShader {
 			float4	mask			: TEXCOORD2;		// Position in object space(xy), pixel Size(zw)
 			float3	viewDir			: TEXCOORD3;
 
-		#if (UNDERLAY_ON || UNDERLAY_INNER)
+		    #if (UNDERLAY_ON || UNDERLAY_INNER)
 			float4	texcoord2		: TEXCOORD4;		// u,v, scale, bias
 			fixed4	underlayColor	: COLOR1;
-		#endif
+		    #endif
+
 			float4 textures			: TEXCOORD5;
 		};
 
 		// Used by Unity internally to handle Texture Tiling and Offset.
-		float4 _FaceTex_ST;
-		float4 _OutlineTex_ST;
+		uniform float4	_FaceTex_ST;
+		uniform float4	_OutlineTex_ST;
+		uniform float	_UIMaskSoftnessX;
+        uniform float	_UIMaskSoftnessY;
+        uniform int     _UIVertexColorAlwaysGammaSpace;
 
 		pixel_t VertShader(vertex_t input)
 		{
@@ -167,7 +172,7 @@ SubShader {
 			UNITY_TRANSFER_INSTANCE_ID(input,output);
 			UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
 
-			float bold = step(input.texcoord1.y, 0);
+			float bold = step(input.texcoord0.w, 0);
 
 			float4 vert = input.position;
 			vert.x += _VertexOffsetX;
@@ -178,7 +183,7 @@ SubShader {
 			float2 pixelSize = vPosition.w;
 			pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
 			float scale = rsqrt(dot(pixelSize, pixelSize));
-			scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
+			scale *= abs(input.texcoord0.w) * _GradientScale * (_Sharpness + 1);
 			if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
 
 			float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
@@ -188,13 +193,13 @@ SubShader {
 
 			float alphaClip = (1.0 - _OutlineWidth*_ScaleRatioA - _OutlineSoftness*_ScaleRatioA);
 
-		#if GLOW_ON
+		    #if GLOW_ON
 			alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB);
-		#endif
+		    #endif
 
 			alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight;
 
-		#if (UNDERLAY_ON || UNDERLAY_INNER)
+		    #if (UNDERLAY_ON || UNDERLAY_INNER)
 			float4 underlayColor = _UnderlayColor;
 			underlayColor.rgb *= underlayColor.a;
 
@@ -205,23 +210,28 @@ SubShader {
 			float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
 			float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
 			float2 bOffset = float2(x, y);
-		#endif
+		    #endif
 
 			// Generate UV for the Masking Texture
 			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
 			float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
 
 			// Support for texture tiling and offset
-			float2 textureUV = UnpackUV(input.texcoord1.x);
+			float2 textureUV = input.texcoord1;
 			float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex);
 			float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex);
 
 
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                input.color.rgb = UIGammaToLinear(input.color.rgb);
+            }
 			output.position = vPosition;
 			output.color = input.color;
 			output.atlas =	input.texcoord0;
 			output.param =	float4(alphaClip, scale, bias, weight);
-			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
 			output.viewDir =	mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz);
 			#if (UNDERLAY_ON || UNDERLAY_INNER)
 			output.texcoord2 = float4(input.texcoord0 + bOffset, bScale, bBias);
@@ -239,9 +249,9 @@ SubShader {
 
 			float c = tex2D(_MainTex, input.atlas).a;
 
-		#ifndef UNDERLAY_ON
+		    #ifndef UNDERLAY_ON
 			clip(c - input.param.x);
-		#endif
+		    #endif
 
 			float	scale	= input.param.y;
 			float	bias	= input.param.z;
@@ -261,7 +271,7 @@ SubShader {
 
 			faceColor = GetColor(sd, faceColor, outlineColor, outline, softness);
 
-		#if BEVEL_ON
+		    #if BEVEL_ON
 			float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0);
 			float3 n = GetSurfaceNormal(input.atlas, weight, dxy);
 
@@ -278,36 +288,35 @@ SubShader {
 
 			fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n));
 			faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a;
-		#endif
+		    #endif
 
-		#if UNDERLAY_ON
+		    #if UNDERLAY_ON
 			float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z;
 			faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a);
-		#endif
+		    #endif
 
-		#if UNDERLAY_INNER
+		    #if UNDERLAY_INNER
 			float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z;
 			faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a);
-		#endif
+		    #endif
 
-		#if GLOW_ON
+		    #if GLOW_ON
 			float4 glowColor = GetGlowColor(sd, scale);
 			faceColor.rgb += glowColor.rgb * glowColor.a;
-		#endif
+		    #endif
 
-		// Alternative implementation to UnityGet2DClipping with support for softness.
-		#if UNITY_UI_CLIP_RECT
+		    // Alternative implementation to UnityGet2DClipping with support for softness.
+		    #if UNITY_UI_CLIP_RECT
 			half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
 			faceColor *= m.x * m.y;
-		#endif
+		    #endif
 
-		#if UNITY_UI_ALPHACLIP
+		    #if UNITY_UI_ALPHACLIP
 			clip(faceColor.a - 0.001);
-		#endif
+		    #endif
 
 			return faceColor * input.color.a;
 		}
-
 		ENDCG
 	}
 }
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader
index ed48574d55..27c14bc6ac 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader	
@@ -4,10 +4,10 @@ Properties {
     _FaceTex            ("Face Texture", 2D) = "white" {}
     _FaceUVSpeedX       ("Face UV Speed X", Range(-5, 5)) = 0.0
     _FaceUVSpeedY       ("Face UV Speed Y", Range(-5, 5)) = 0.0
-    [HDR]_FaceColor     ("Face Color", Color) = (1,1,1,1)
+    _FaceColor          ("Face Color", Color) = (1,1,1,1)
     _FaceDilate         ("Face Dilate", Range(-1,1)) = 0
 
-    [HDR]_OutlineColor  ("Outline Color", Color) = (0,0,0,1)
+    _OutlineColor       ("Outline Color", Color) = (0,0,0,1)
     _OutlineTex         ("Outline Texture", 2D) = "white" {}
     _OutlineUVSpeedX    ("Outline UV Speed X", Range(-5, 5)) = 0.0
     _OutlineUVSpeedY    ("Outline UV Speed Y", Range(-5, 5)) = 0.0
@@ -21,7 +21,7 @@ Properties {
     _BevelRoundness     ("Bevel Roundness", Range(0,1)) = 0
 
     _LightAngle         ("Light Angle", Range(0.0, 6.2831853)) = 3.1416
-    [HDR]_SpecularColor ("Specular", Color) = (1,1,1,1)
+    _SpecularColor      ("Specular", Color) = (1,1,1,1)
     _SpecularPower      ("Specular", Range(0,4)) = 2.0
     _Reflectivity       ("Reflectivity", Range(5.0,15.0)) = 10
     _Diffuse            ("Diffuse", Range(0,1)) = 0.5
@@ -37,13 +37,13 @@ Properties {
     _EnvMatrixRotation  ("Texture Rotation", vector) = (0, 0, 0, 0)
 
 
-    [HDR]_UnderlayColor ("Border Color", Color) = (0,0,0, 0.5)
+    _UnderlayColor      ("Border Color", Color) = (0,0,0, 0.5)
     _UnderlayOffsetX    ("Border OffsetX", Range(-1,1)) = 0
     _UnderlayOffsetY    ("Border OffsetY", Range(-1,1)) = 0
     _UnderlayDilate     ("Border Dilate", Range(-1,1)) = 0
     _UnderlaySoftness   ("Border Softness", Range(0,1)) = 0
 
-    [HDR]_GlowColor     ("Color", Color) = (0, 1, 0, 0.5)
+    _GlowColor          ("Color", Color) = (0, 1, 0, 0.5)
     _GlowOffset         ("Offset", Range(-1,1)) = 0
     _GlowInner          ("Inner", Range(0,1)) = 0.05
     _GlowOuter          ("Outer", Range(0,1)) = 0.05
@@ -109,7 +109,8 @@ SubShader {
     Blend One OneMinusSrcAlpha
     ColorMask[_ColorMask]
 
-    Pass {
+    Pass
+    {
         CGPROGRAM
         #pragma target 3.0
         #pragma vertex VertShader
@@ -127,17 +128,18 @@ SubShader {
         #include "TMPro_Properties.cginc"
         #include "TMPro.cginc"
 
-        struct vertex_t {
+        struct vertex_t
+        {
             UNITY_VERTEX_INPUT_INSTANCE_ID
             float4	position        : POSITION;
             float3	normal          : NORMAL;
             float4	color           : COLOR;
-            float2	texcoord0       : TEXCOORD0;
+            float4	texcoord0       : TEXCOORD0;
             float2	texcoord1       : TEXCOORD1;
         };
 
-
-        struct pixel_t {
+        struct pixel_t
+        {
             UNITY_VERTEX_INPUT_INSTANCE_ID
             UNITY_VERTEX_OUTPUT_STEREO
             float4	position        : SV_POSITION;
@@ -147,18 +149,23 @@ SubShader {
             float2	mask            : TEXCOORD2;		// Position in object space(xy)
             float3	viewDir         : TEXCOORD3;
 
-        #if (UNDERLAY_ON || UNDERLAY_INNER)
+            #if (UNDERLAY_ON || UNDERLAY_INNER)
             float2	texcoord2       : TEXCOORD4;
             float4	underlayColor   : COLOR1;
-        #endif
+            #endif
+
             float4 textures         : TEXCOORD5;
         };
 
         // Used by Unity internally to handle Texture Tiling and Offset.
         float4 _FaceTex_ST;
         float4 _OutlineTex_ST;
+        float _UIMaskSoftnessX;
+        float _UIMaskSoftnessY;
+        int _UIVertexColorAlwaysGammaSpace;
 
-        float4 SRGBToLinear(float4 rgba) {
+        float4 SRGBToLinear(float4 rgba)
+        {
             return float4(lerp(rgba.rgb / 12.92f, pow((rgba.rgb + 0.055f) / 1.055f, 2.4f), step(0.04045f, rgba.rgb)), rgba.a);
         }
 
@@ -171,7 +178,7 @@ SubShader {
             UNITY_TRANSFER_INSTANCE_ID(input,output);
             UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
 
-            float bold = step(input.texcoord1.y, 0);
+            float bold = step(input.texcoord0.w, 0);
 
             float4 vert = input.position;
             vert.x += _VertexOffsetX;
@@ -182,27 +189,31 @@ SubShader {
             float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
             weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
 
-        #if (UNDERLAY_ON || UNDERLAY_INNER)
+            #if (UNDERLAY_ON || UNDERLAY_INNER)
             float4 underlayColor = _UnderlayColor;
             underlayColor.rgb *= underlayColor.a;
 
             float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
             float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
             float2 bOffset = float2(x, y);
-        #endif
+            #endif
 
             // Generate UV for the Masking Texture
             float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
 
             // Support for texture tiling and offset
-            float2 textureUV = UnpackUV(input.texcoord1.x);
+            float2 textureUV = input.texcoord1;
             float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex);
             float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex);
 
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                input.color.rgb = UIGammaToLinear(input.color.rgb);
+            }
             float4 color = input.color;
-        #if (FORCE_LINEAR && !UNITY_COLORSPACE_GAMMA)
+            #if (FORCE_LINEAR && !UNITY_COLORSPACE_GAMMA)
             color = SRGBToLinear(input.color);
-        #endif
+            #endif
 
             output.position = vPosition;
             output.color = color;
@@ -210,10 +221,10 @@ SubShader {
             output.weight = weight;
             output.mask = half2(vert.xy * 2 - clampedRect.xy - clampedRect.zw);
             output.viewDir = mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz);
-        #if (UNDERLAY_ON || UNDERLAY_INNER)
+            #if (UNDERLAY_ON || UNDERLAY_INNER)
             output.texcoord2 = input.texcoord0 + bOffset;
             output.underlayColor = underlayColor;
-        #endif
+            #endif
             output.textures = float4(faceUV, outlineUV);
 
             return output;
@@ -226,9 +237,9 @@ SubShader {
 
             float c = tex2D(_MainTex, input.atlas).a;
 
-            float2 pixelSize = float2(ddx(input.atlas.y), ddy(input.atlas.y));
-            pixelSize *= _TextureWidth * .75;
-            float scale = rsqrt(dot(pixelSize, pixelSize)) * _GradientScale * (_Sharpness + 1);
+            float pixelSize = abs(ddx(input.atlas.y)) + abs(ddy(input.atlas.y));
+            pixelSize *= _TextureHeight * 0.75;
+            float scale = 1 / pixelSize * _GradientScale * (_Sharpness + 1);
 
             float weight = input.weight;
             float bias = (.5 - weight) + (.5 / scale);
@@ -247,7 +258,7 @@ SubShader {
 
             faceColor = GetColor(sd, faceColor, outlineColor, outline, softness);
 
-        #if BEVEL_ON
+            #if BEVEL_ON
             float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0);
             float3 n = GetSurfaceNormal(input.atlas, weight, dxy);
 
@@ -264,45 +275,45 @@ SubShader {
 
             fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n));
             faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a;
-        #endif
+            #endif
 
-        #if (UNDERLAY_ON || UNDERLAY_INNER)
+            #if (UNDERLAY_ON || UNDERLAY_INNER)
             float bScale = scale;
             bScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * bScale);
             float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale);
-        #endif
+            #endif
 
-        #if UNDERLAY_ON
+            #if UNDERLAY_ON
             float d = tex2D(_MainTex, input.texcoord2.xy).a * bScale;
             faceColor += input.underlayColor * saturate(d - bBias) * (1 - faceColor.a);
-        #endif
+            #endif
 
-        #if UNDERLAY_INNER
+            #if UNDERLAY_INNER
             float d = tex2D(_MainTex, input.texcoord2.xy).a * bScale;
             faceColor += input.underlayColor * (1 - saturate(d - bBias)) * saturate(1 - sd) * (1 - faceColor.a);
-        #endif
+            #endif
 
-        #if GLOW_ON
+            #if GLOW_ON
             float4 glowColor = GetGlowColor(sd, scale);
             faceColor.rgb += glowColor.rgb * glowColor.a;
-        #endif
+            #endif
 
             // Alternative implementation to UnityGet2DClipping with support for softness.
-        #if UNITY_UI_CLIP_RECT
-            float2 maskZW = 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + (1 / scale));
+            #if UNITY_UI_CLIP_RECT
+            half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+            float2 maskZW = 0.25 / (0.25 * maskSoftness + 1 / scale);
             half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * maskZW);
             faceColor *= m.x * m.y;
-        #endif
+            #endif
 
-        #if UNITY_UI_ALPHACLIP
+            #if UNITY_UI_ALPHACLIP
             clip(faceColor.a - 0.001);
-        #endif
+            #endif
 
             return faceColor * input.color.a;
-            }
-
-            ENDCG
         }
+        ENDCG
+    }
 }
 
 Fallback "TextMeshPro/Mobile/Distance Field"
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP LIT.shadergraph b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP LIT.shadergraph
new file mode 100644
index 0000000000..4f7157caf7
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP LIT.shadergraph	
@@ -0,0 +1,12074 @@
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.GraphData",
+    "m_ObjectId": "386c36a1c4c34ea29deb680fb82cfe8b",
+    "m_Properties": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "c417006ffa034c44b79da3dd323165ff"
+        }
+    ],
+    "m_Keywords": [],
+    "m_Dropdowns": [],
+    "m_CategoryData": [
+        {
+            "m_Id": "6b0cd1bfb339459ca967fa23df287ef0"
+        }
+    ],
+    "m_Nodes": [
+        {
+            "m_Id": "b1188549725543d485436c2e921ffbb2"
+        },
+        {
+            "m_Id": "4488af8ff6a7421298a7e827f567263b"
+        },
+        {
+            "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+        },
+        {
+            "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+        },
+        {
+            "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+        },
+        {
+            "m_Id": "150533bad8e2424aaa2c74e253af8592"
+        },
+        {
+            "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+        },
+        {
+            "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+        },
+        {
+            "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+        },
+        {
+            "m_Id": "9c228fac287d446296b91a4acf5cec59"
+        },
+        {
+            "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+        },
+        {
+            "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+        },
+        {
+            "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+        },
+        {
+            "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+        },
+        {
+            "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+        },
+        {
+            "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+        },
+        {
+            "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+        },
+        {
+            "m_Id": "cdddee3a537c464697357f11b966f9b8"
+        },
+        {
+            "m_Id": "88253223d2c34ecfab92b0c344048f94"
+        },
+        {
+            "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+        },
+        {
+            "m_Id": "1e12726617b24675958e942eb62e4b09"
+        },
+        {
+            "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+        },
+        {
+            "m_Id": "44317f2e371447e2a8d894f8a021a235"
+        },
+        {
+            "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+        },
+        {
+            "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+        },
+        {
+            "m_Id": "19075add867e4757b9520d18fe8de1d0"
+        },
+        {
+            "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+        },
+        {
+            "m_Id": "c234e5216678436195ee1a5914bc79da"
+        },
+        {
+            "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+        },
+        {
+            "m_Id": "59bd90a849624124bae6464ee3669aa6"
+        },
+        {
+            "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+        },
+        {
+            "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+        },
+        {
+            "m_Id": "285f6a9863d54ed2a8150727ad749456"
+        },
+        {
+            "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+        },
+        {
+            "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+        },
+        {
+            "m_Id": "dbcb748279484a4590e53518c49122b8"
+        },
+        {
+            "m_Id": "04dc152dd2ba4d519391577eb1156235"
+        },
+        {
+            "m_Id": "9f0de188085746d5a19073da1de85ddb"
+        },
+        {
+            "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+        },
+        {
+            "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+        },
+        {
+            "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+        },
+        {
+            "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+        },
+        {
+            "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+        },
+        {
+            "m_Id": "3c50439118b2496f9e390021b0964606"
+        },
+        {
+            "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+        },
+        {
+            "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+        },
+        {
+            "m_Id": "2a552a0b828f457c911aa19561e410ae"
+        },
+        {
+            "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+        },
+        {
+            "m_Id": "51378bae98a94c309785d14cd5cbb453"
+        },
+        {
+            "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+        },
+        {
+            "m_Id": "7444469eb9884253819add9ef96baa25"
+        },
+        {
+            "m_Id": "67a519f507384ff1861df5d8d5b486be"
+        },
+        {
+            "m_Id": "48390d02257d41bf98eace1deaa4c539"
+        },
+        {
+            "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+        },
+        {
+            "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+        },
+        {
+            "m_Id": "aca823a8188948c782eddaf0f45e1868"
+        },
+        {
+            "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+        },
+        {
+            "m_Id": "163beb4431c34f538340bc0af0991e6f"
+        },
+        {
+            "m_Id": "39f2f84f30304d859fb07569e2695f60"
+        },
+        {
+            "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+        },
+        {
+            "m_Id": "4abff6ff92fa4a05b203f10580988335"
+        },
+        {
+            "m_Id": "319916a5921343f7b7eef0e50dc93def"
+        },
+        {
+            "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+        },
+        {
+            "m_Id": "65c8e64a7535466e933eed08a2f77532"
+        },
+        {
+            "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+        },
+        {
+            "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+        },
+        {
+            "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+        },
+        {
+            "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+        },
+        {
+            "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+        },
+        {
+            "m_Id": "faace8101df943d8956faa31728cb004"
+        },
+        {
+            "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+        },
+        {
+            "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+        },
+        {
+            "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+        },
+        {
+            "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+        },
+        {
+            "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+        },
+        {
+            "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+        },
+        {
+            "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+        },
+        {
+            "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+        },
+        {
+            "m_Id": "dff7a66b353a4023b29c9d937da77960"
+        },
+        {
+            "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+        },
+        {
+            "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+        },
+        {
+            "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+        },
+        {
+            "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+        },
+        {
+            "m_Id": "e591df3a1eb94e259b762f2830b407e2"
+        },
+        {
+            "m_Id": "bc782d8e80154073b48a687a07adf60a"
+        },
+        {
+            "m_Id": "2786e48f93f54a82aee4303ce7b63c82"
+        },
+        {
+            "m_Id": "7f7d8028b58d4227a4560891be6e7cda"
+        },
+        {
+            "m_Id": "f5a8bfcec21a4dac9df63993ec53635e"
+        },
+        {
+            "m_Id": "be58359e488f42e9b5121357d0fa526b"
+        }
+    ],
+    "m_GroupDatas": [
+        {
+            "m_Id": "484b51c50485473b819c4f05087b32d7"
+        },
+        {
+            "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+        },
+        {
+            "m_Id": "42cadae0923e4969b50bbc3f78185934"
+        },
+        {
+            "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+        },
+        {
+            "m_Id": "98934a69591249d5b8b92b39045359a3"
+        },
+        {
+            "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+        },
+        {
+            "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+        },
+        {
+            "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+        }
+    ],
+    "m_StickyNoteDatas": [],
+    "m_Edges": [
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "04dc152dd2ba4d519391577eb1156235"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "19075add867e4757b9520d18fe8de1d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1e12726617b24675958e942eb62e4b09"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "285f6a9863d54ed2a8150727ad749456"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2a552a0b828f457c911aa19561e410ae"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "39f2f84f30304d859fb07569e2695f60"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 5
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4488af8ff6a7421298a7e827f567263b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aca823a8188948c782eddaf0f45e1868"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "67a519f507384ff1861df5d8d5b486be"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7444469eb9884253819add9ef96baa25"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 3
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 7
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b1188549725543d485436c2e921ffbb2"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 6
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dbcb748279484a4590e53518c49122b8"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 1
+            }
+        }
+    ],
+    "m_VertexContext": {
+        "m_Position": {
+            "x": -2506.000244140625,
+            "y": -3749.0
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "48390d02257d41bf98eace1deaa4c539"
+            },
+            {
+                "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+            },
+            {
+                "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+            }
+        ]
+    },
+    "m_FragmentContext": {
+        "m_Position": {
+            "x": -2506.000244140625,
+            "y": -3480.0
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "aca823a8188948c782eddaf0f45e1868"
+            },
+            {
+                "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+            },
+            {
+                "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+            },
+            {
+                "m_Id": "3c50439118b2496f9e390021b0964606"
+            },
+            {
+                "m_Id": "e591df3a1eb94e259b762f2830b407e2"
+            },
+            {
+                "m_Id": "bc782d8e80154073b48a687a07adf60a"
+            },
+            {
+                "m_Id": "2786e48f93f54a82aee4303ce7b63c82"
+            },
+            {
+                "m_Id": "7f7d8028b58d4227a4560891be6e7cda"
+            },
+            {
+                "m_Id": "f5a8bfcec21a4dac9df63993ec53635e"
+            },
+            {
+                "m_Id": "be58359e488f42e9b5121357d0fa526b"
+            }
+        ]
+    },
+    "m_PreviewData": {
+        "serializedMesh": {
+            "m_SerializedMesh": "{\"mesh\":{\"fileID\":10210,\"guid\":\"0000000000000000e000000000000000\",\"type\":0}}",
+            "m_Guid": ""
+        },
+        "preventRotation": false
+    },
+    "m_Path": "TextMeshPro/SRP",
+    "m_GraphPrecision": 0,
+    "m_PreviewMode": 2,
+    "m_OutputNode": {
+        "m_Id": ""
+    },
+    "m_ActiveTargets": [
+        {
+            "m_Id": "7cf0e63037a74dc2a9f591225c678ff4"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "007c75c776ac4f1babe9cd7ae1fc4f14",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5722.99951171875,
+            "y": -3827.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1356dc7cbdfa4199a6535d3bbf4cd536"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.BuiltinData",
+    "m_ObjectId": "00996039d61e400a9e854ce591ac35a0",
+    "m_Distortion": false,
+    "m_DistortionMode": 0,
+    "m_DistortionDepthTest": true,
+    "m_AddPrecomputedVelocity": false,
+    "m_TransparentWritesMotionVec": false,
+    "m_DepthOffset": false,
+    "m_ConservativeDepthOffset": false,
+    "m_TransparencyFog": true,
+    "m_AlphaTestShadow": false,
+    "m_BackThenFrontRendering": false,
+    "m_TransparentDepthPrepass": false,
+    "m_TransparentDepthPostpass": false,
+    "m_TransparentPerPixelSorting": false,
+    "m_SupportLodCrossFade": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "013228b0fdf1424097798f0973a9a4fb",
+    "m_Title": "Face Texture",
+    "m_Position": {
+        "x": -4828.0,
+        "y": -2832.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "02559cbe5ad441a3904ccb75ded2b2c5",
+    "m_Id": 5,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "03182b3263304258b265266325c21f65",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "045c4f6b050549c7a0efb208e6349779",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "04dc152dd2ba4d519391577eb1156235",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4540.0,
+            "y": -2749.0,
+            "width": 151.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3d04f5ba6e7b40d281f22eb424145acd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "04dfcc9ff13a4bf282ed46faec39d15c",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "05805bc6fcc941fd889922555c6c86d7",
+    "m_Guid": {
+        "m_GuidSerialized": "fe84e680-4cee-4ca5-be86-2e293a9ba093"
+    },
+    "m_Name": "Ambient Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_05805bc6fcc941fd889922555c6c86d7",
+    "m_OverrideReferenceName": "_Ambient",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "0580d4b7e3a049049569f4508643a724",
+    "m_Guid": {
+        "m_GuidSerialized": "eefb88c5-7665-45dc-b3c2-7cf98b9990d6"
+    },
+    "m_Name": "Softness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_D64EC33D",
+    "m_OverrideReferenceName": "_Softness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "068ae649e00b40e198ec5a30ad741fab",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0699eea947fc426cbfeb8744cf120222",
+    "m_Id": 1,
+    "m_DisplayName": "Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "07946387933e416db576b677f0711e5f",
+    "m_Guid": {
+        "m_GuidSerialized": "21d612fb-8153-41f8-9e2f-9de044c19fbf"
+    },
+    "m_Name": "_FaceTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1A08AD4A",
+    "m_OverrideReferenceName": "_FaceText_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "082e9706dffc4c188270980d4e44ce0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0848ba750e0341198cf0bbd413e0efe4",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "09b1b86c1c074337a4c439d3a308dd2e",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0a67ca5280214bd794dc0ad66b5710a9",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0b57f2d35157477ab2b29a5aac14ae8b",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0ba4932e164847878ddb7b7bcff96985",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0c4dc51f26484c26ad88a3fe4002abcd",
+    "m_Id": 2,
+    "m_DisplayName": "Color (1)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "0d6a57754b824f6db9cefa6953bc06a9",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0d7878dd226d4cfb81a991dc312309fc",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Dilate",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "0f7ffb6d2de4447f9736780cbcee8e07",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0fac35636fca4474a6afaefc3c757775",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "105b1ed1aa714e41bbe1ef5472bdb11f",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4923.99951171875,
+            "y": -4233.0,
+            "width": 158.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8a08179f99d649d289b8053d5fa0ad22"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "109f638d1f9b49d4991d6d21a86d4eb7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5098.99951171875,
+            "y": -3182.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "880bb02c6c6b49b18aa6ebc66dc566a0"
+        },
+        {
+            "m_Id": "1b9cd8f5f4004e2eaf8afbaab803bc04"
+        },
+        {
+            "m_Id": "b224a1cf80604103ad085c799995f3c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "10a99c07aad742349d258db16838c129",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1196ae398cc348349ab0c1a23fdab4bd",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1356dc7cbdfa4199a6535d3bbf4cd536",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "14ad19bf20a140dd88d58452d7df688b",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "150533bad8e2424aaa2c74e253af8592",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4955.0,
+            "y": -3487.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "72fb5a0d7796446b9e2b929cb32facdc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "163beb4431c34f538340bc0af0991e6f",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3284.0,
+            "y": -3516.0,
+            "width": 119.99999237060547,
+            "height": 149.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c334de01ecd429baa7652fc6002536b"
+        },
+        {
+            "m_Id": "e2d28f29bbac4983a401574480b5ca28"
+        },
+        {
+            "m_Id": "6a7af6143e114a538663e71f56731a21"
+        },
+        {
+            "m_Id": "3e25be96bb3747738c238cf3a741d5df"
+        },
+        {
+            "m_Id": "4907352322c644ebacdf2ca30f2994fd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "183118ca50814141b7bc3e0cee27fb9b",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "19075add867e4757b9520d18fe8de1d0",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4291.99951171875,
+            "y": -3197.0,
+            "width": 124.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c28ee9109014fa086e5de7a3993341d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "0580d4b7e3a049049569f4508643a724"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1b9cd8f5f4004e2eaf8afbaab803bc04",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1bdde3efd3b7464b8934c555be0f8a48",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "1be90d4f96a841748b0c95219b12ad27",
+    "m_Guid": {
+        "m_GuidSerialized": "4c91c146-43bb-4de8-948a-fbf8b1da10e1"
+    },
+    "m_Name": "Bevel Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_97690701",
+    "m_OverrideReferenceName": "_BevelOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": -0.5,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "1c4df61c2fea404eb3b87b270d7c59bc",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4311.0,
+            "y": -3221.0,
+            "width": 148.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "f864c900600e427ba7793f00c715e971"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1d35fa1fb5004f96a65ace54fbe4f1ad",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1db37082bf844442804487b4944352de",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1df58cfa4dad4c449d01ee1c5ea05f2e",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "1e12726617b24675958e942eb62e4b09",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4772.0,
+            "y": -4404.0,
+            "width": 145.00001525878907,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0848ba750e0341198cf0bbd413e0efe4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1f247658c7ba45fb93c41f51e21acb0d",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1f46181633594ae0a1fb2adb76b42981",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "200245fc8bbe4826b209ab5f7ffe074c",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "204dacb5a95b424facf11cb6f65bd188",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "215a82c127204988b751de7d3a39b955",
+    "m_Id": 6,
+    "m_DisplayName": "Outline",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Outline",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "215b30ae27784ec3a13360a9029af283",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "21a7a380e66d42e780e2a2a1baa630d5",
+    "m_Guid": {
+        "m_GuidSerialized": "b2d0099f-e605-49f5-9959-e7cacae37aa3"
+    },
+    "m_Name": "Bevel Type",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_21a7a380e66d42e780e2a2a1baa630d5",
+    "m_OverrideReferenceName": "_BevelType",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e",
+    "m_Guid": {
+        "m_GuidSerialized": "cd167d3a-7465-4d5a-86fc-0f22dc0ef908"
+    },
+    "m_Name": "Outline Color 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_5550EB71",
+    "m_OverrideReferenceName": "_OutlineColor1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "232b1aa09e67479abae141d3c76d3c5b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "256d41e89a204d22951450de1c38051d",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "26e48352a08441bfa694dcea54c06e36",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "2786e48f93f54a82aee4303ce7b63c82",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Smoothness",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "9d0c47172bf840a0ac029980ba082af7"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Smoothness"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "281bcee4777040f8a31ee0e10344e98d",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "285f6a9863d54ed2a8150727ad749456",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4177.0,
+            "y": -2422.0,
+            "width": 154.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b42e6dbfbc864097af182cbff5c0c1fb"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.IsFrontFaceNode",
+    "m_ObjectId": "2a552a0b828f457c911aa19561e410ae",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Is Front Face",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4282.0,
+            "y": -3681.3330078125,
+            "width": 121.99999237060547,
+            "height": 77.33348846435547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2ef1d888dc9d49e59d6a6950897ddc93"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "2ac79705aa9e415dbb74ec215233fd1b",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "Composite (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3350.0,
+            "y": -3810.0,
+            "width": 213.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a75f7ac601c446469802fe7754c1f279"
+        },
+        {
+            "m_Id": "8c38a5d8327f456e9783740c05382619"
+        },
+        {
+            "m_Id": "facc84930f544fd7a0205a6176b18ac0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Composite",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2b01ea3023e34c94af1754e4dcea8f2e",
+    "m_Id": 0,
+    "m_DisplayName": "Face Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2bf5f2fdd2984599b7323d10cfb1d240",
+    "m_Id": 1,
+    "m_DisplayName": "Filter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Filter",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "2c10b97b92c947ceb307a93759c0228b",
+    "m_Guid": {
+        "m_GuidSerialized": "6be0b8ff-a766-4c6b-a6e4-3a72758ac95f"
+    },
+    "m_Name": "Bevel Amount",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B01DD93E",
+    "m_OverrideReferenceName": "_BevelAmount",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.25,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2c7a9460724b47daad8df1be144de7c6",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "2d0a269511e34bd1ba9056d2c939dff2",
+    "m_Guid": {
+        "m_GuidSerialized": "edbe73dc-53ab-4bc1-9d64-ab36e0e05f03"
+    },
+    "m_Name": "_FaceUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_3A8E0F13",
+    "m_OverrideReferenceName": "_FaceUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "2db15d90c2204143b225ec4ef08d0755",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4387.0,
+            "y": -2405.0,
+            "width": 163.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "def8e0b9d8384982bc5b4c32d877e458"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "2e4eb1ef08bb44178c82e53872485e0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2ef1d888dc9d49e59d6a6950897ddc93",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 2,
+    "m_Value": true,
+    "m_DefaultValue": true
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.SystemData",
+    "m_ObjectId": "305e3be306674fcd8bb02273d27ee5b7",
+    "m_MaterialNeedsUpdateHash": 280372,
+    "m_SurfaceType": 1,
+    "m_RenderingPass": 4,
+    "m_BlendMode": 0,
+    "m_ZTest": 4,
+    "m_ZWrite": false,
+    "m_TransparentCullMode": 2,
+    "m_OpaqueCullMode": 2,
+    "m_SortPriority": 0,
+    "m_AlphaTest": true,
+    "m_TransparentDepthPrepass": false,
+    "m_TransparentDepthPostpass": false,
+    "m_SupportLodCrossFade": false,
+    "m_DoubleSidedMode": 0,
+    "m_DOTSInstancing": false,
+    "m_CustomVelocity": false,
+    "m_Tessellation": false,
+    "m_TessellationMode": 0,
+    "m_TessellationFactorMinDistance": 20.0,
+    "m_TessellationFactorMaxDistance": 50.0,
+    "m_TessellationFactorTriangleSize": 100.0,
+    "m_TessellationShapeFactor": 0.75,
+    "m_TessellationBackFaceCullEpsilon": -0.25,
+    "m_TessellationMaxDisplacement": 0.009999999776482582,
+    "m_DebugSymbols": false,
+    "m_Version": 2,
+    "inspectorFoldoutMask": 9
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "30ca940fe2794c949f2a1d4d2caaa446",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "319916a5921343f7b7eef0e50dc93def",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4791.0,
+            "y": -3245.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d219977210094c0082c517d8dc00c8bb"
+        },
+        {
+            "m_Id": "f48f04ad45d046a8b88e71731ed506e7"
+        },
+        {
+            "m_Id": "e6e80c6b0db545cda26b079a9a78fbb3"
+        },
+        {
+            "m_Id": "c6bdb985bc16435fa72f5a3c81bb633c"
+        },
+        {
+            "m_Id": "d1a17e42e7a04dc38984e3c01149445b"
+        },
+        {
+            "m_Id": "fb15d0ba56d54a6192f11e107aeb5fa8"
+        },
+        {
+            "m_Id": "c35312edaa2344788b1964ee2f63a236"
+        },
+        {
+            "m_Id": "c88fcbaeea954a5f9c68c339fa8b604d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "34a67e0fef884f9399e674d9eeaf720c",
+    "m_Id": 6,
+    "m_DisplayName": "Color3",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color3",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "34a72a5ebb04402384a4fd3748111a37",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha Clip Threshold",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AlphaClipThreshold",
+    "m_StageCapability": 2,
+    "m_Value": 0.0010000000474974514,
+    "m_DefaultValue": 0.5,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3535ae87c6dd4769b52b20d9eca61069",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "35cbea6373dd4e4f8d0fea36e8add392",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "36a0c473c4c04c3a930dd38f3920d410",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "36f1b4d96f2941c39e5cd95d9c1d2ce6",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6008.99951171875,
+            "y": -3341.0,
+            "width": 144.99998474121095,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "65b3dc13b2b6484283ffe5abfe87a06a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "373f1de8db6c429c9d46c781f741d7a4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3802c81c3be24823aa1d7c9997a33c29",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "3915c1927ffe49f8967304321cfbe497",
+    "m_Id": 4,
+    "m_DisplayName": "Atlas",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Atlas",
+    "m_StageCapability": 3,
+    "m_BareResource": true,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "39a382d661e2484da71f04c43f48e55f",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "39f2f84f30304d859fb07569e2695f60",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3423.000244140625,
+            "y": -3516.0,
+            "width": 116.0,
+            "height": 94.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4b2d9ea03bf64fa19dcae1511d2581da"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "3c50439118b2496f9e390021b0964606",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.AlphaClipThreshold",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3028.0,
+            "y": -3054.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "34a72a5ebb04402384a4fd3748111a37"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3d04f5ba6e7b40d281f22eb424145acd",
+    "m_Id": 0,
+    "m_DisplayName": "Face Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3db1608e927e4102a3c3a88e9fcab39a",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "3dccd64e7f324bc1a75c1479d7a67c51",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "3e231021af7b47ba97f2871e7f25d0fe",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2803.000244140625,
+            "y": -3520.0,
+            "width": 140.0,
+            "height": 166.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6ccaced3889e4503a9414d808ec33981"
+        },
+        {
+            "m_Id": "7f3d71a6c96847c099da45f95aafbecb"
+        },
+        {
+            "m_Id": "d8edec16956c4f15b7d51d6ec10753f4"
+        },
+        {
+            "m_Id": "39a382d661e2484da71f04c43f48e55f"
+        },
+        {
+            "m_Id": "8764669016f6442f8152593c18a649d7"
+        },
+        {
+            "m_Id": "26e48352a08441bfa694dcea54c06e36"
+        },
+        {
+            "m_Id": "3e94a0d106064bdb864c960512ef4026"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "3e25be96bb3747738c238cf3a741d5df",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "3e372195f4bd4845852a37839e5b602d",
+    "m_Guid": {
+        "m_GuidSerialized": "60abd046-2a1a-48cd-a0af-2f702f7f53ab"
+    },
+    "m_Name": "_MainTex",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_90CBF488",
+    "m_OverrideReferenceName": "_MainTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":28684132378477856,\"guid\":\"8f586378b4e144a9851e7b34d9b748ee\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "3e94a0d106064bdb864c960512ef4026",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "3ec4797e381747829ef4712c85fcf7a1",
+    "m_Guid": {
+        "m_GuidSerialized": "020d65cc-50a8-4b8a-a624-90d7b489f549"
+    },
+    "m_Name": "Specular Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_3ec4797e381747829ef4712c85fcf7a1",
+    "m_OverrideReferenceName": "_SpecularPower",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 1.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 4.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "3fdf4b7bc5d4426492dcc057603ef4a6",
+    "m_Guid": {
+        "m_GuidSerialized": "675d2567-3fca-4da6-9462-dfa4924950f1"
+    },
+    "m_Name": "_OutlineUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_D66D89E6",
+    "m_OverrideReferenceName": "_OutlineUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "400d0b6c95dd4540ad3da3e8cb7e50b2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "41986ac6400d46709d0ef043a67f6b34",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "41b9b79b3859472882bcea393703eec0",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "424dbeeb009344efa29c304c4979e3d6",
+    "m_Guid": {
+        "m_GuidSerialized": "314c37de-c6f2-4463-866d-8588f6fc119e"
+    },
+    "m_Name": "Diffuse Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_424dbeeb009344efa29c304c4979e3d6",
+    "m_OverrideReferenceName": "_Diffuse",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "42a586e4f6ec40eeaba891b7fd133864",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4934.0,
+            "y": -4442.99951171875,
+            "width": 133.99998474121095,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "da7a06d393a44089842070d51d2aa0a6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "42cadae0923e4969b50bbc3f78185934",
+    "m_Title": "Face + 3 Outlines + Underlay",
+    "m_Position": {
+        "x": -5468.0,
+        "y": -3558.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4328cdbf78b94c038fd614c59bfe1cac",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "44317f2e371447e2a8d894f8a021a235",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Layer1 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4004.999755859375,
+            "y": -4173.0,
+            "width": 191.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "10a99c07aad742349d258db16838c129"
+        },
+        {
+            "m_Id": "b85d677872b44421bf5536f42ba0267c"
+        },
+        {
+            "m_Id": "75aba700d74d4b2687bf3166cf1da3e2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer1",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "44806230fa384c1e95f9c5918a14f056",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4488af8ff6a7421298a7e827f567263b",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4109.0,
+            "width": 158.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "66f69ef16eac4eb48357bde804cf3c39"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
+    "m_ObjectId": "4590bfa2a0664b65b6f073bae33a071f",
+    "m_Id": 0,
+    "m_DisplayName": "Emission",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Emission",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [],
+    "m_ColorMode": 1,
+    "m_DefaultColor": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "4648b46ad29a4008a80de4f8a5a5b813",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4615.0,
+            "y": -2422.0,
+            "width": 145.0,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b2baf44eae52473cb6cda7b1debece01"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "46fbf3eeb0ea4470869cba7443249295",
+    "m_Guid": {
+        "m_GuidSerialized": "be87c5a3-e361-4b95-89c8-911c39a51c0d"
+    },
+    "m_Name": "Outline Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_A0B54237",
+    "m_OverrideReferenceName": "_OutlineTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "47d020251e9841a5b1f0fd64396026a1",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "48390d02257d41bf98eace1deaa4c539",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Position",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8036d0e6090b456e9b4ea87227868236"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Position"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "484b51c50485473b819c4f05087b32d7",
+    "m_Title": "Underlay",
+    "m_Position": {
+        "x": -5253.0,
+        "y": -4542.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4907352322c644ebacdf2ca30f2994fd",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "49e7c3ad55ce458797f0e60c950cb965",
+    "m_Guid": {
+        "m_GuidSerialized": "31b55db9-0da1-4ec4-af2b-d83747ed5bc4"
+    },
+    "m_Name": "Underlay Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_CE9DEDB3",
+    "m_OverrideReferenceName": "_UnderlayOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4a66dcbe712a4d40bd8f355b834594b5",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "4abff6ff92fa4a05b203f10580988335",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4323.99951171875,
+            "y": -3498.0,
+            "width": 140.0,
+            "height": 166.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b015d1b7e4134c59baf6851e7649802c"
+        },
+        {
+            "m_Id": "d9dc4839ee2847999110bdb234d6041a"
+        },
+        {
+            "m_Id": "91d6a9a5fbc04ea49075cb51835e7264"
+        },
+        {
+            "m_Id": "f42ad06b3c6a45d3ab33de904c063412"
+        },
+        {
+            "m_Id": "ed6c215a65584deeaefad1d2c7743044"
+        },
+        {
+            "m_Id": "edbee7a8952b46529ac5ad0365775774"
+        },
+        {
+            "m_Id": "70337a74f6ad4b7bb6befc825219bab1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4b2d9ea03bf64fa19dcae1511d2581da",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4bda5c294e1949138d033640e1d385b4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4c28ee9109014fa086e5de7a3993341d",
+    "m_Id": 0,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4c334de01ecd429baa7652fc6002536b",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4d1cb1a475df49f9a148195a65f5453a",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4d9ce48719d143748f9f8e22da6f9ddc",
+    "m_Id": 5,
+    "m_DisplayName": "TextureWidth",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureWidth",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4e64dac49ddc47c3b5b1e27b17a08304",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "4eb3c00a1ca44e10be833b7ca61ff059",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4f194ff591484e908fc2bcdacbcf2570",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4309.0,
+            "y": -2773.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2b01ea3023e34c94af1754e4dcea8f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "509e6f38505b4b0695b263706a55028f",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "51378bae98a94c309785d14cd5cbb453",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "GetSurfaceNormal (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4067.333251953125,
+            "y": -3881.99951171875,
+            "width": 263.9999694824219,
+            "height": 189.99998474121095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b0077c23eae443887872f84227deccc"
+        },
+        {
+            "m_Id": "3915c1927ffe49f8967304321cfbe497"
+        },
+        {
+            "m_Id": "4d9ce48719d143748f9f8e22da6f9ddc"
+        },
+        {
+            "m_Id": "ebd6d75abcb84108bcadbfe7ee5f6244"
+        },
+        {
+            "m_Id": "ef9738ec7e894772a14e9dce441c16c6"
+        },
+        {
+            "m_Id": "9eeec1a9713045af8845cea263d5ea48"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GetSurfaceNormal",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "51f76f8a53ad43a4ad028426548ce9ba",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "52798bdb86f6400e86489a7a368e9f8b",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6154.99951171875,
+            "y": -3169.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1df58cfa4dad4c449d01ee1c5ea05f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "53073e5ea924459fa6681a4943e9f947",
+    "m_Guid": {
+        "m_GuidSerialized": "5fdac24e-2d58-4471-80ce-79c3ab9a2564"
+    },
+    "m_Name": "Outline Color 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_DBAB5AEC",
+    "m_OverrideReferenceName": "_OutlineColor2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.009433984756469727,
+        "g": 0.02534518577158451,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "54d7a93ffec5490aa4591da23a21b693",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "55ffa45ec3654d5e88089fb40d2b0465",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "56c25395796e4d2fbe5c892d428d1620",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5102.99951171875,
+            "y": -3427.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "9eb8137a6c2e41bbafdc8b0732dd47a3"
+        },
+        {
+            "m_Id": "36a0c473c4c04c3a930dd38f3920d410"
+        },
+        {
+            "m_Id": "068ae649e00b40e198ec5a30ad741fab"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "57abc172afd449e2a4d567f93432507b",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "582d6e289dbe4fdca7cf0307273eaa2f",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "59bd90a849624124bae6464ee3669aa6",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4007.0,
+            "y": -2395.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2e4eb1ef08bb44178c82e53872485e0f"
+        },
+        {
+            "m_Id": "8695190a5e614f2d90081871a8a06fc2"
+        },
+        {
+            "m_Id": "81bdb47901ef48e5a588c6724b1b0142"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "5b0077c23eae443887872f84227deccc",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5b3ff4ee364f4d7a923b530ad60d8762",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5bd258837c514ff7ab0bf7027e762c18",
+    "m_Guid": {
+        "m_GuidSerialized": "2d8f3ee9-1307-4b58-a60d-526e86b07109"
+    },
+    "m_Name": "Bevel Roundness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_AB6A015F",
+    "m_OverrideReferenceName": "_BevelRoundness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5da82bf481f8489ebd05e997f617f51b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": 4.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5e42524569844befad16fda5a94eb9cb",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5fbe253f3e444f2aa8ac717f9c856619",
+    "m_Guid": {
+        "m_GuidSerialized": "0a61c93f-6430-4aa6-af07-79bc3b411ccd"
+    },
+    "m_Name": "Bevel Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B50BBFCC",
+    "m_OverrideReferenceName": "_BevelWidth",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.5,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61133d79a89048c195f54939b2a1d30a",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61a6ac5f29344d109411f26850ab0a96",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.HDLitData",
+    "m_ObjectId": "6238ae56182d404f8563cb88cb801549",
+    "m_RayTracing": false,
+    "m_MaterialType": 0,
+    "m_MaterialTypeMask": 2,
+    "m_RefractionModel": 0,
+    "m_SSSTransmission": true,
+    "m_EnergyConservingSpecular": true,
+    "m_ClearCoat": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6271438664e74b3fbf723bd6a1f50f8b",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "62bc551cea604e88b7858cc37d96a98a",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "636180f6e0504f2baaa5cc086980cb47",
+    "m_Guid": {
+        "m_GuidSerialized": "c1223e37-093d-4d5a-b2b0-cd9cc3e4f88e"
+    },
+    "m_Name": "Outline Offset 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_636180f6e0504f2baaa5cc086980cb47",
+    "m_OverrideReferenceName": "_OutlineOffset1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "63c7cd57fc3c45a9a97b514fdae32693",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5266.99951171875,
+            "y": -3387.0,
+            "width": 156.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c422a9a9ff824176aad2241f58c44d0b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "641eda269d7b4da9acb65f8d50035ea9",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "65b3dc13b2b6484283ffe5abfe87a06a",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "65c8e64a7535466e933eed08a2f77532",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4791.0,
+            "y": -3499.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "256d41e89a204d22951450de1c38051d"
+        },
+        {
+            "m_Id": "0a67ca5280214bd794dc0ad66b5710a9"
+        },
+        {
+            "m_Id": "ebbd94a7102a4457a48ac492de3bff14"
+        },
+        {
+            "m_Id": "6271438664e74b3fbf723bd6a1f50f8b"
+        },
+        {
+            "m_Id": "c9b722d107ce4cd6a748c883472b9b0f"
+        },
+        {
+            "m_Id": "74cf69e61bef44589521f1bf2bf3c59a"
+        },
+        {
+            "m_Id": "6e532f83d1c44e839bcfc5845d3b01d6"
+        },
+        {
+            "m_Id": "cb5e9f9567e84f8fa5463efc0e256e19"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "66f69ef16eac4eb48357bde804cf3c39",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlayColor",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "67a519f507384ff1861df5d8d5b486be",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4278.0,
+            "y": -3939.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c3e6d7c20c184bf39fd8822130e693e7"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.HDLitSubTarget",
+    "m_ObjectId": "67bc2306558f4f2fa807637aaebaeab4"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "68ec7c31365549d6a8ce883edfc02de2",
+    "m_Id": 4,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6a7af6143e114a538663e71f56731a21",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CategoryData",
+    "m_ObjectId": "6b0cd1bfb339459ca967fa23df287ef0",
+    "m_Name": "",
+    "m_ChildObjectList": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "c417006ffa034c44b79da3dd323165ff"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "6b2f65c1463f4f7bad16c54a95d2fe75",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5101.0,
+            "y": -3301.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1d35fa1fb5004f96a65ace54fbe4f1ad"
+        },
+        {
+            "m_Id": "fa6de3be9f5b4411b5081b49e645f424"
+        },
+        {
+            "m_Id": "400d0b6c95dd4540ad3da3e8cb7e50b2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6ccaced3889e4503a9414d808ec33981",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "6dfc1177dd0541a7a780fbf911ad1956",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6e13f3cd573c467a94379f45d96cb690",
+    "m_Id": 2,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "6e532f83d1c44e839bcfc5845d3b01d6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "6e8946a245e842b38231d4a241bfb3ef",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.BaseColor",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3026.0,
+            "y": -3110.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ef0b93f78372439696f50711eaf57d90"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.BaseColor"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "6fbdcc5a972b4fa883dc5f21e525a376",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "70337a74f6ad4b7bb6befc825219bab1",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "703396865b6e4990a0cf1189ea684e5c",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "712da461f71a454db59d349f752d41ee",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "71dd947935b64ce38f0d25406dde447b",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "724e17584e97443e9e285dfa7253c8e3",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 2,
+    "m_Value": 0.15000000596046449,
+    "m_DefaultValue": 1.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "72fb5a0d7796446b9e2b929cb32facdc",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "7444469eb9884253819add9ef96baa25",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4298.0,
+            "y": -3809.99951171875,
+            "width": 144.66648864746095,
+            "height": 129.33323669433595
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "03182b3263304258b265266325c21f65"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "748c31bbcecc4b30bec2e42c0612175b",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "74b41464cbed4e9e8e23af5ab9be40cf",
+    "m_Guid": {
+        "m_GuidSerialized": "41afbdcb-f3ae-4340-8973-1c1998c992a2"
+    },
+    "m_Name": "Outline Offset 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "74cf69e61bef44589521f1bf2bf3c59a",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "7564379492aa4c5a927ff3501acdc70d",
+    "m_Id": 0,
+    "m_DisplayName": "Normal (Tangent Space)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "NormalTS",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [],
+    "m_Space": 3
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "757174b6f25040fdbb20355a21752222",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "75aba700d74d4b2687bf3166cf1da3e2",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "75c5657544c648058b20cea090f48dbf",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "767769f736d5478cba5f10a415e28e7f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "773b90134e894e429203c0c83e80b9de",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "77991fa631724e0cb32eed66ff017b23",
+    "m_Id": 0,
+    "m_DisplayName": "Metallic",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Metallic",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "77e28f3e930b4c249145630ec961af95",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "79147f6986644769b58d9ed64fe771e1",
+    "m_Id": 0,
+    "m_DisplayName": "OutlineMode",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7984fd094e1147bdabb4e26fbd3d31c8",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3113.000244140625,
+            "y": -3468.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "082e9706dffc4c188270980d4e44ce0f"
+        },
+        {
+            "m_Id": "f2a351a5375c441b8d9ab7e2c9545a77"
+        },
+        {
+            "m_Id": "41986ac6400d46709d0ef043a67f6b34"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "7a046f410ce64aa88438b0bfd412c045",
+    "m_Guid": {
+        "m_GuidSerialized": "d47271f5-5a84-47bf-a09e-c825d2aeb013"
+    },
+    "m_Name": "Outline Color 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_551702C5",
+    "m_OverrideReferenceName": "_OutlineColor3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "7a0f504e4175406dbd8134250f4e350b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7a80e8839f0e4a1d9a6c0814f8793ee6",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4961.99951171875,
+            "y": -3452.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6fbdcc5a972b4fa883dc5f21e525a376"
+        },
+        {
+            "m_Id": "0ba4932e164847878ddb7b7bcff96985"
+        },
+        {
+            "m_Id": "9178663316db43d582f1c4a127d307c6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7acfafd73b8c4dfab8c55c18a887e087",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "7b8a19bd115e4167a25b59cb3218a817",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "7c27ccb2c2dc4ca59c5438c3358630ca",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.HDTarget",
+    "m_ObjectId": "7cf0e63037a74dc2a9f591225c678ff4",
+    "m_ActiveSubTarget": {
+        "m_Id": "67bc2306558f4f2fa807637aaebaeab4"
+    },
+    "m_Datas": [
+        {
+            "m_Id": "00996039d61e400a9e854ce591ac35a0"
+        },
+        {
+            "m_Id": "305e3be306674fcd8bb02273d27ee5b7"
+        },
+        {
+            "m_Id": "6238ae56182d404f8563cb88cb801549"
+        },
+        {
+            "m_Id": "a8c49a47cb934f7e8e4d88fce06df6ff"
+        }
+    ],
+    "m_CustomEditorGUI": "TMPro.EditorUtilities.TMP_SDF_HDRPLitShaderGUI",
+    "m_SupportVFX": false,
+    "m_SupportLineRendering": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7d7696aa6d184b4fb9c316a9dec37aee",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4959.0,
+            "y": -3326.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4d1cb1a475df49f9a148195a65f5453a"
+        },
+        {
+            "m_Id": "47d020251e9841a5b1f0fd64396026a1"
+        },
+        {
+            "m_Id": "62bc551cea604e88b7858cc37d96a98a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7d78a616c2754cc28d1f32cf66ade611",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4005.0,
+            "y": -2797.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d9bcb754db834583b6518c5ed5152114"
+        },
+        {
+            "m_Id": "861d4258049a4a3e8164f7297090f88e"
+        },
+        {
+            "m_Id": "a7c06457d7454693a8bc3dc95257b2c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "7e0fadb2533f496192c1ad3e78642010",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4188.0,
+            "width": 173.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d48c3871e3064027a10ae9f4babd3be0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "7f2e6b5f15364ed9835d67d0cf4f8f65",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Tangent",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2586.0,
+            "y": -3592.0,
+            "width": 200.0,
+            "height": 41.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "85ff8667d72947edada4e9fb4ff60559"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Tangent"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7f3d71a6c96847c099da45f95aafbecb",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "7f7d8028b58d4227a4560891be6e7cda",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Occlusion",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a00de0d572a84a08a23fe14c2ad5030d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Occlusion"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot",
+    "m_ObjectId": "8036d0e6090b456e9b4ea87227868236",
+    "m_Id": 0,
+    "m_DisplayName": "Position",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Position",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "80e665a5eeb64730a51742f698bf0d48",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "8135ca333f8f4ea78163743e6ec1f55c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4081.999755859375,
+            "y": -3140.0,
+            "width": 156.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d6a6a119394e4082a11bc024a6e42ef8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "53073e5ea924459fa6681a4943e9f947"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "81bdb47901ef48e5a588c6724b1b0142",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "81e8ed0534534674a74263e6161a2a1a",
+    "m_Guid": {
+        "m_GuidSerialized": "78aab961-c4a8-41f3-b203-1239c3b33b13"
+    },
+    "m_Name": "Underlay Dilate",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_D48690B9",
+    "m_OverrideReferenceName": "_UnderlayDilate",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "82af2db1018543d7832af96c1cfc981f",
+    "m_Guid": {
+        "m_GuidSerialized": "37906c7b-9a3a-454b-a62a-9aa097e64bde"
+    },
+    "m_Name": "Light Angle",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_82af2db1018543d7832af96c1cfc981f",
+    "m_OverrideReferenceName": "_LightAngle",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 6.28000020980835
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "82d5443fe54d4a3b9420f8745d00a632",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": 8.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "84dc74cdbd8c45e1b189e4fd9a69942d",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "85a1ad8e741e41759002e8cdc8cd0b96",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "ScreenSpaceRatio (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5800.99951171875,
+            "y": -3363.0,
+            "width": 258.0,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6e13f3cd573c467a94379f45d96cb690"
+        },
+        {
+            "m_Id": "8e6ed600f6504f4083092f5b511e44c4"
+        },
+        {
+            "m_Id": "93b161cce4504cb79c97b6d8db178de7"
+        },
+        {
+            "m_Id": "2bf5f2fdd2984599b7323d10cfb1d240"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ScreenSpaceRatio",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "85b5940eb77e4625812ded7215bab8d7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4081.999755859375,
+            "y": -3096.0,
+            "width": 156.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ada023d617104472b8ab75a81558c0a1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot",
+    "m_ObjectId": "85ff8667d72947edada4e9fb4ff60559",
+    "m_Id": 0,
+    "m_DisplayName": "Tangent",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Tangent",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "861d4258049a4a3e8164f7297090f88e",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "867a4ae13c0d4a028c71bc1063824c14",
+    "m_Guid": {
+        "m_GuidSerialized": "d483c212-0a30-4f6d-b94d-9abbc83a6522"
+    },
+    "m_Name": "Outline Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_C68C9E14",
+    "m_OverrideReferenceName": "_IsoPerimeter",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 2,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "8695190a5e614f2d90081871a8a06fc2",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8764669016f6442f8152593c18a649d7",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "880bb02c6c6b49b18aa6ebc66dc566a0",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "88253223d2c34ecfab92b0c344048f94",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "ComputeSDF (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4323.0,
+            "width": 227.99998474121095,
+            "height": 190.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c52a1744a9a14989b0ae452ad6de6061"
+        },
+        {
+            "m_Id": "a03db80c558b4f87a330c5ae0a9443a5"
+        },
+        {
+            "m_Id": "8f1b1d1e8ff24b3284993e52354e54fa"
+        },
+        {
+            "m_Id": "5da82bf481f8489ebd05e997f617f51b"
+        },
+        {
+            "m_Id": "82d5443fe54d4a3b9420f8745d00a632"
+        },
+        {
+            "m_Id": "61133d79a89048c195f54939b2a1d30a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8a08179f99d649d289b8053d5fa0ad22",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Offset",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8b66f4e6bc9d4662b3218ac33a69839f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8c38a5d8327f456e9783740c05382619",
+    "m_Id": 3,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8cbd81814903479ea1d3151c1f38183e",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "8cf8aae64c1d443f9303126886b40f17",
+    "m_Guid": {
+        "m_GuidSerialized": "8d78c9a5-aaef-41fb-af68-2358e401d7ac"
+    },
+    "m_Name": "_UnderlayColor",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_2F5FE804",
+    "m_OverrideReferenceName": "_UnderlayColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8e6ed600f6504f4083092f5b511e44c4",
+    "m_Id": 0,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "8ed907a2cc7949b68a283ae243ea1977",
+    "m_Guid": {
+        "m_GuidSerialized": "36803443-a9bc-4f3c-a4f2-7d66a5417ac1"
+    },
+    "m_Name": "Outline Offset 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8f1b1d1e8ff24b3284993e52354e54fa",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9147636b0cfa466a9b37a013d8f693bf",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5421.99951171875,
+            "y": -3902.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a4f471e3221c4134b291bd9d2ba22db6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "9178663316db43d582f1c4a127d307c6",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "91890fe48ebe4717aea61ecaf3ad4861",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2983.000244140625,
+            "y": -3468.0,
+            "width": 119.99999237060547,
+            "height": 149.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3dccd64e7f324bc1a75c1479d7a67c51"
+        },
+        {
+            "m_Id": "e444f2c81d1e48329fa2c91005277e8d"
+        },
+        {
+            "m_Id": "b2c26292b7434733878a9b042f44de89"
+        },
+        {
+            "m_Id": "964fea1fd4b24f4daf5bef84c4b45118"
+        },
+        {
+            "m_Id": "deac82280a2b43078e0e40863e2d974c"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "91d6a9a5fbc04ea49075cb51835e7264",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "928621a3ca2d41c89a10336bbbc81ddc",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "93b161cce4504cb79c97b6d8db178de7",
+    "m_Id": 3,
+    "m_DisplayName": "TextureSize",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureSize",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "945b45993dd84a979755b98c48138f72",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "952d0fa5cd744df0b434cd38e9a90b93",
+    "m_Guid": {
+        "m_GuidSerialized": "ce395871-ddeb-47c3-a31d-07855800c197"
+    },
+    "m_Name": "_UnderlaySoftness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_F2B9E3EF",
+    "m_OverrideReferenceName": "_UnderlaySoftness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "95928bcb6a284b8d88105a84c2e1d3ce",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4793.0,
+            "y": -2593.0,
+            "width": 155.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d880558893fb442b9320cf55885d1117"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "964fea1fd4b24f4daf5bef84c4b45118",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "98934a69591249d5b8b92b39045359a3",
+    "m_Title": "Outline1 Texture",
+    "m_Position": {
+        "x": -4672.0,
+        "y": -2481.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "998db5e5901e45b29040eb2099370071",
+    "m_Guid": {
+        "m_GuidSerialized": "6f383614-f2ad-4269-be8f-87b0ecb03cf0"
+    },
+    "m_Name": "Bevel Clamp",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_5BD7E808",
+    "m_OverrideReferenceName": "_BevelClamp",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "9c228fac287d446296b91a4acf5cec59",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4600.0,
+            "y": -3498.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "582d6e289dbe4fdca7cf0307273eaa2f"
+        },
+        {
+            "m_Id": "1db37082bf844442804487b4944352de"
+        },
+        {
+            "m_Id": "8b66f4e6bc9d4662b3218ac33a69839f"
+        },
+        {
+            "m_Id": "4a66dcbe712a4d40bd8f355b834594b5"
+        },
+        {
+            "m_Id": "a0285c9c381a49cba194709efa0a7c85"
+        },
+        {
+            "m_Id": "b2728d0dd3ce40678867c94a7d977916"
+        },
+        {
+            "m_Id": "e141833aa78b4fd59ecad949beb43a78"
+        },
+        {
+            "m_Id": "51f76f8a53ad43a4ad028426548ce9ba"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "9c26fdddba244d36a854298c00473247",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "9d0c47172bf840a0ac029980ba082af7",
+    "m_Id": 0,
+    "m_DisplayName": "Smoothness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Smoothness",
+    "m_StageCapability": 2,
+    "m_Value": 0.5,
+    "m_DefaultValue": 0.5,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "9d3c3383d5934a17bf9efbb7fd9e9043",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5443.0,
+            "y": -3315.0,
+            "width": 144.99998474121095,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "232b1aa09e67479abae141d3c76d3c5b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e6e50a71d9843b49b62ebe1cf7d3d59",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4486.0,
+            "y": -3865.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3535ae87c6dd4769b52b20d9eca61069"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e87ce9607e14015a3790c528ca5dfda",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4637.0,
+            "y": -2239.0,
+            "width": 167.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "75c5657544c648058b20cea090f48dbf"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "9eb8137a6c2e41bbafdc8b0732dd47a3",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "9eeec1a9713045af8845cea263d5ea48",
+    "m_Id": 6,
+    "m_DisplayName": "IsFront",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "IsFront",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "9f0de188085746d5a19073da1de85ddb",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4160.0,
+            "y": -2739.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7c27ccb2c2dc4ca59c5438c3358630ca"
+        },
+        {
+            "m_Id": "373f1de8db6c429c9d46c781f741d7a4"
+        },
+        {
+            "m_Id": "fd0b096ed5b74f9e9ec51327be200731"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a00de0d572a84a08a23fe14c2ad5030d",
+    "m_Id": 0,
+    "m_DisplayName": "Ambient Occlusion",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Occlusion",
+    "m_StageCapability": 2,
+    "m_Value": 1.0,
+    "m_DefaultValue": 1.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a0285c9c381a49cba194709efa0a7c85",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a03db80c558b4f87a330c5ae0a9443a5",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "a3f8b6e8ae7f48e2989a029904401502",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "a455bd79094c4413a7b7dd80ca8b9368",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4611.0,
+            "y": -2691.0,
+            "width": 222.0,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ffb07af0bca546d8b9bc439d34aa68f5"
+        },
+        {
+            "m_Id": "2c7a9460724b47daad8df1be144de7c6"
+        },
+        {
+            "m_Id": "55ffa45ec3654d5e88089fb40d2b0465"
+        },
+        {
+            "m_Id": "e495a9f7a11f4eb89334e83be154ceb9"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateShaderProperty",
+    "m_ObjectId": "a4ad98d8828c424384229c344ebe2ed0",
+    "m_Guid": {
+        "m_GuidSerialized": "f98fc1a2-bb81-4bd1-a207-23d3a90d518e"
+    },
+    "m_Name": "SamplerState",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "SamplerState_a4ad98d8828c424384229c344ebe2ed0",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": false,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_filter": 0,
+        "m_wrap": 1,
+        "m_anisotropic": 0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a4f471e3221c4134b291bd9d2ba22db6",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "a535f3bcbeb14622bb177eb6f46e76f4",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4647.0,
+            "y": -2283.0,
+            "width": 177.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6dfc1177dd0541a7a780fbf911ad1956"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "a6bbb32e8d884be9bb36db91fe4b81b1",
+    "m_Guid": {
+        "m_GuidSerialized": "6aa76edf-7b80-46ac-add4-406cf1d85493"
+    },
+    "m_Name": "_GradientScale",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_EAE27356",
+    "m_OverrideReferenceName": "_GradientScale",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 10.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "a6c38edd2e8743a9b057ba8452b9f129",
+    "m_Guid": {
+        "m_GuidSerialized": "9fc942ee-4a1d-4ced-a5a6-81893e3ddb63"
+    },
+    "m_Name": "Light Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_a6c38edd2e8743a9b057ba8452b9f129",
+    "m_OverrideReferenceName": "_SpecularColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "a75f7ac601c446469802fe7754c1f279",
+    "m_Id": 0,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a7942746b5564dc7bbbae1deb2403022",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "a7c06457d7454693a8bc3dc95257b2c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.LightingData",
+    "m_ObjectId": "a8c49a47cb934f7e8e4d88fce06df6ff",
+    "m_NormalDropOffSpace": 0,
+    "m_BlendPreserveSpecular": true,
+    "m_ReceiveDecals": true,
+    "m_ReceiveSSR": true,
+    "m_ReceiveSSRTransparent": false,
+    "m_SpecularAA": false,
+    "m_SpecularOcclusionMode": 0,
+    "m_OverrideBakedGI": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "aa2794b8f0e24bf281d22e0fef0647be",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "aa3e347d733e48f7b65d8a8847370eec",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "EvaluateLight (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3631.0,
+            "y": -3810.0,
+            "width": 230.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0699eea947fc426cbfeb8744cf120222"
+        },
+        {
+            "m_Id": "0c4dc51f26484c26ad88a3fe4002abcd"
+        },
+        {
+            "m_Id": "d5173cc3c6cd4f1998550f3187a3e9c8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "EvaluateLight",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aa87c72ac0e64469acc34f936f00b3d0",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4225.0,
+            "width": 193.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0d7878dd226d4cfb81a991dc312309fc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "abd59150589b436cadf8c9e6f43ccb8e",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "aca823a8188948c782eddaf0f45e1868",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.NormalOS",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2542.0,
+            "y": -3404.000244140625,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "e386b183a18245a796b024022f7f3074"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.NormalOS"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "acd0cd5a177f4a97bf23db7219305e3f",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4348.0,
+            "y": -3905.99951171875,
+            "width": 185.33299255371095,
+            "height": 101.33324432373047
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "945b45993dd84a979755b98c48138f72"
+        },
+        {
+            "m_Id": "e51a636b2621440eb94cc802c1cf4bfc"
+        },
+        {
+            "m_Id": "1bdde3efd3b7464b8934c555be0f8a48"
+        },
+        {
+            "m_Id": "e364823e158a407fb48dd7b630c79973"
+        },
+        {
+            "m_Id": "703396865b6e4990a0cf1189ea684e5c"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ada023d617104472b8ab75a81558c0a1",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aef5c44f84e04c3185e0b93e95e34204",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5264.99951171875,
+            "y": -3142.0,
+            "width": 159.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "84dc74cdbd8c45e1b189e4fd9a69942d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b000f852aa984e9dae25b125a4607f4e",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b015d1b7e4134c59baf6851e7649802c",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "b0b352c4503a43d083a64e57352b29a0",
+    "m_Guid": {
+        "m_GuidSerialized": "01cfcc78-60aa-4f71-a1e3-8d8df6dae253"
+    },
+    "m_Name": "Reflectivity Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_b0b352c4503a43d083a64e57352b29a0",
+    "m_OverrideReferenceName": "_Reflectivity",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 5.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 5.0,
+        "y": 15.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "b1188549725543d485436c2e921ffbb2",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4146.0,
+            "y": -2833.0,
+            "width": 116.0,
+            "height": 94.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "281bcee4777040f8a31ee0e10344e98d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "b163c9f1666644b0bba62cf0e12df7bc",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4373.0,
+            "y": -2715.0,
+            "width": 180.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "cce40479b6284b6fa3174db9f09d0ac9"
+        },
+        {
+            "m_Id": "80e665a5eeb64730a51742f698bf0d48"
+        },
+        {
+            "m_Id": "1f46181633594ae0a1fb2adb76b42981"
+        },
+        {
+            "m_Id": "8cbd81814903479ea1d3151c1f38183e"
+        },
+        {
+            "m_Id": "cfaf3f3a5a1146e194cddad30c95aada"
+        },
+        {
+            "m_Id": "b43489e37a5c4df88f15844292a55ec7"
+        },
+        {
+            "m_Id": "cd7281fb41aa4e61ac0fdf71d4f4bd46"
+        },
+        {
+            "m_Id": "f01d52cdcb1647aab35782b4af535efd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 1,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "b224a1cf80604103ad085c799995f3c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b2728d0dd3ce40678867c94a7d977916",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b2baf44eae52473cb6cda7b1debece01",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b2c26292b7434733878a9b042f44de89",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "b30617d78dec40a7b8aa7f72dca7f41d",
+    "m_Id": 0,
+    "m_DisplayName": "Bent Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "BentNormal",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [],
+    "m_Space": 3
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b42e6dbfbc864097af182cbff5c0c1fb",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b43489e37a5c4df88f15844292a55ec7",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "b4a40cb6acd441acb83cfe0240bf910d",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4750.99951171875,
+            "y": -4274.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d0b10e52e21941b183f5f635894c76c8"
+        },
+        {
+            "m_Id": "0d6a57754b824f6db9cefa6953bc06a9"
+        },
+        {
+            "m_Id": "773b90134e894e429203c0c83e80b9de"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "b4c4676c68bb4752af59e21f896d9470",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "b571db753a1948d5a6f1de4e7d0c7238",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5581.99951171875,
+            "y": -3867.0,
+            "width": 183.99998474121095,
+            "height": 100.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b3ff4ee364f4d7a923b530ad60d8762"
+        },
+        {
+            "m_Id": "c183b5bd9bbe45089f93996e73110918"
+        },
+        {
+            "m_Id": "1196ae398cc348349ab0c1a23fdab4bd"
+        },
+        {
+            "m_Id": "183118ca50814141b7bc3e0cee27fb9b"
+        },
+        {
+            "m_Id": "f44e4374a48a4996aa60d23d3ae1e9f9"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b691728a389a417d9b4f2d02541209c2",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b7f9ac55517141868bfb9d2ad6429792",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b85d677872b44421bf5536f42ba0267c",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b911c23b90124d15924551e2730501eb",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "bc782d8e80154073b48a687a07adf60a",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.BentNormal",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b30617d78dec40a7b8aa7f72dca7f41d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.BentNormal"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "bc9afcb18afa4ccc82d2cdc34d3f4641",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5392.0,
+            "y": -3867.0,
+            "width": 125.99999237060547,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5e42524569844befad16fda5a94eb9cb"
+        },
+        {
+            "m_Id": "54d7a93ffec5490aa4591da23a21b693"
+        },
+        {
+            "m_Id": "aa2794b8f0e24bf281d22e0fef0647be"
+        },
+        {
+            "m_Id": "200245fc8bbe4826b209ab5f7ffe074c"
+        },
+        {
+            "m_Id": "fc2e62201c5847e798fd939314413fcd"
+        },
+        {
+            "m_Id": "fe11fa80cc1847a5a37f6757d521cf25"
+        },
+        {
+            "m_Id": "de0c6f7f7af94defa6c3dbc6433de9d4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "be58359e488f42e9b5121357d0fa526b",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Metallic",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "77991fa631724e0cb32eed66ff017b23"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Metallic"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c183b5bd9bbe45089f93996e73110918",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "c234e5216678436195ee1a5914bc79da",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4446.0,
+            "y": -2347.000244140625,
+            "width": 222.00001525878907,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b4c4676c68bb4752af59e21f896d9470"
+        },
+        {
+            "m_Id": "3db1608e927e4102a3c3a88e9fcab39a"
+        },
+        {
+            "m_Id": "0f7ffb6d2de4447f9736780cbcee8e07"
+        },
+        {
+            "m_Id": "d4954b7bbbb0412cbc997bcbe7dfa808"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "c35312edaa2344788b1964ee2f63a236",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "c3e6d7c20c184bf39fd8822130e693e7",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "c417006ffa034c44b79da3dd323165ff",
+    "m_Guid": {
+        "m_GuidSerialized": "7a28a011-205c-4fa8-bf4f-8064aa2308b2"
+    },
+    "m_Name": "_ScaleRatioA",
+    "m_DefaultRefNameVersion": 1,
+    "m_RefNameGeneratedByDisplayName": "_ScaleRatioA",
+    "m_DefaultReferenceName": "_ScaleRatioA",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "c422a9a9ff824176aad2241f58c44d0b",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "c478c32c45884c57a62f7b2aa8ddc3b0",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c49cfb8bb96846dc87ee00c0c041a372",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c52a1744a9a14989b0ae452ad6de6061",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c6bdb985bc16435fa72f5a3c81bb633c",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c7d4094601ac4bc1aead609c72b1f1c1",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c7ddee91dc5b48dc828309c77fdb0b88",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4266.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a7942746b5564dc7bbbae1deb2403022"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "c88fcbaeea954a5f9c68c339fa8b604d",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c9b722d107ce4cd6a748c883472b9b0f",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c9d7f0dbae7d422985a1cc87c025e76b",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4315.0,
+            "y": -3165.0,
+            "width": 144.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "79147f6986644769b58d9ed64fe771e1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "c9ec735d1a1046769e5601b2c97c849a",
+    "m_Guid": {
+        "m_GuidSerialized": "281a9526-c332-4471-a44e-ece4a1e95ef6"
+    },
+    "m_Name": "Face Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_75569DEA",
+    "m_OverrideReferenceName": "_FaceTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ca2a1083dc014f39ab8af0cdf140866b",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_Guid": {
+        "m_GuidSerialized": "21009d12-8d94-4273-b0d0-a8ee0608ddcf"
+    },
+    "m_Name": "OutlineMode",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_OverrideReferenceName": "_OutlineMode",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cb5e9f9567e84f8fa5463efc0e256e19",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "cb7117ecb1d047a8b2cb00ed552cb181",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Alpha",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3032.66650390625,
+            "y": -3029.33349609375,
+            "width": 200.0,
+            "height": 41.33349609375
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "724e17584e97443e9e285dfa7253c8e3"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Alpha"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cc88101667c9488f9c5a716e851c1b21",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cce40479b6284b6fa3174db9f09d0ac9",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "cd7281fb41aa4e61ac0fdf71d4f4bd46",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cda5e3b4c1054bf3a65c0b7ec6bc778a",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "cdddee3a537c464697357f11b966f9b8",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4420.0,
+            "y": -4483.0,
+            "width": 156.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "41b9b79b3859472882bcea393703eec0"
+        },
+        {
+            "m_Id": "c7d4094601ac4bc1aead609c72b1f1c1"
+        },
+        {
+            "m_Id": "767769f736d5478cba5f10a415e28e7f"
+        },
+        {
+            "m_Id": "b691728a389a417d9b4f2d02541209c2"
+        },
+        {
+            "m_Id": "045c4f6b050549c7a0efb208e6349779"
+        },
+        {
+            "m_Id": "509e6f38505b4b0695b263706a55028f"
+        },
+        {
+            "m_Id": "204dacb5a95b424facf11cb6f65bd188"
+        },
+        {
+            "m_Id": "35cbea6373dd4e4f8d0fea36e8add392"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "cfaf3f3a5a1146e194cddad30c95aada",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d0a791a544614667962a9a9a9ce0c68a",
+    "m_Title": "Screen Space Ratio",
+    "m_Position": {
+        "x": -6179.99951171875,
+        "y": -3422.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d0b10e52e21941b183f5f635894c76c8",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d1a17e42e7a04dc38984e3c01149445b",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d219977210094c0082c517d8dc00c8bb",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d258902c6ec74942afdb9ebf8c1d07f8",
+    "m_Title": "Generate Normal",
+    "m_Position": {
+        "x": -4511.33349609375,
+        "y": -3999.3330078125
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "d30452ac6b244ecca03df4d7b4de9f81",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d48c3871e3064027a10ae9f4babd3be0",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlaySoftness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d4954b7bbbb0412cbc997bcbe7dfa808",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "d4df208fc23b42f2b52364124f1b661c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5268.0,
+            "y": -3261.0,
+            "width": 159.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "757174b6f25040fdbb20355a21752222"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "d5173cc3c6cd4f1998550f3187a3e9c8",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d6a6a119394e4082a11bc024a6e42ef8",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d880558893fb442b9320cf55885d1117",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d8edec16956c4f15b7d51d6ec10753f4",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d9bcb754db834583b6518c5ed5152114",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d9dc4839ee2847999110bdb234d6041a",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "da7a06d393a44089842070d51d2aa0a6",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "daaf032a109749a88c9b8ff8e1f8b541",
+    "m_Title": "Offset Scale",
+    "m_Position": {
+        "x": -5747.99951171875,
+        "y": -3961.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "dbcb748279484a4590e53518c49122b8",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4783.0,
+            "y": -2765.0,
+            "width": 145.0,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7a0f504e4175406dbd8134250f4e350b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "dc75c4e3a1bc4bb0a128086c2b0679a5",
+    "m_Guid": {
+        "m_GuidSerialized": "85cd941f-2fd2-43a3-b0fa-9f728bfb4220"
+    },
+    "m_Name": "Face Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_99AFBB3D",
+    "m_OverrideReferenceName": "_FaceColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "de0c6f7f7af94defa6c3dbc6433de9d4",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "deac82280a2b43078e0e40863e2d974c",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "def8e0b9d8384982bc5b4c32d877e458",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "dff7a66b353a4023b29c9d937da77960",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4602.0,
+            "y": -4298.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7b8a19bd115e4167a25b59cb3218a817"
+        },
+        {
+            "m_Id": "0b57f2d35157477ab2b29a5aac14ae8b"
+        },
+        {
+            "m_Id": "e9e06fcb161e44ba8cc9f6f60264df78"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "e141833aa78b4fd59ecad949beb43a78",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e2d28f29bbac4983a401574480b5ca28",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e364823e158a407fb48dd7b630c79973",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "e386b183a18245a796b024022f7f3074",
+    "m_Id": 0,
+    "m_DisplayName": "Normal (Object Space)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "NormalOS",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e444f2c81d1e48329fa2c91005277e8d",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "e495a9f7a11f4eb89334e83be154ceb9",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e51a636b2621440eb94cc802c1cf4bfc",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "e591df3a1eb94e259b762f2830b407e2",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Emission",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4590bfa2a0664b65b6f073bae33a071f"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Emission"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e6e80c6b0db545cda26b079a9a78fbb3",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "e818605f8f5a4f01bf61caaa33693581",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "ComputeSDF44 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4144.0,
+            "y": -3369.0,
+            "width": 244.0,
+            "height": 214.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "641eda269d7b4da9acb65f8d50035ea9"
+        },
+        {
+            "m_Id": "f6823778a3cf42d5bbe8a83e5f9c9fa3"
+        },
+        {
+            "m_Id": "9c26fdddba244d36a854298c00473247"
+        },
+        {
+            "m_Id": "f684c5678e9e4f078157a3ab7ef5057b"
+        },
+        {
+            "m_Id": "14ad19bf20a140dd88d58452d7df688b"
+        },
+        {
+            "m_Id": "215a82c127204988b751de7d3a39b955"
+        },
+        {
+            "m_Id": "c478c32c45884c57a62f7b2aa8ddc3b0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF44",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "e9e06fcb161e44ba8cc9f6f60264df78",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebbd94a7102a4457a48ac492de3bff14",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebd6d75abcb84108bcadbfe7ee5f6244",
+    "m_Id": 7,
+    "m_DisplayName": "TextureHeight",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureHeight",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "ec184d6d9fb2494897774c9e7d279e6d",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4803.0,
+            "y": -2627.0,
+            "width": 165.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ca2a1083dc014f39ab8af0cdf140866b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "07946387933e416db576b677f0711e5f"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "ec1f2e8bc9fd4ae38b133c60ee6c49b8",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4957.99951171875,
+            "y": -3204.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "748c31bbcecc4b30bec2e42c0612175b"
+        },
+        {
+            "m_Id": "4bda5c294e1949138d033640e1d385b4"
+        },
+        {
+            "m_Id": "4e64dac49ddc47c3b5b1e27b17a08304"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "ec79eb447dfd47a9b3380344c6a60f43",
+    "m_Guid": {
+        "m_GuidSerialized": "54c77f8b-0534-4b35-a3f0-83ab2ebe6c1f"
+    },
+    "m_Name": "_OutlineTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1774DE83",
+    "m_OverrideReferenceName": "_OutlineTex_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "ecf16c34d46f4502ac601f0c38c7576b",
+    "m_Title": "Vertex Color",
+    "m_Position": {
+        "x": -3448.000244140625,
+        "y": -3579.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ed1d1f1613334c3bb904dd08161cd7e5",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ed6c215a65584deeaefad1d2c7743044",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "edbee7a8952b46529ac5ad0365775774",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
+    "m_ObjectId": "ef0b93f78372439696f50711eaf57d90",
+    "m_Id": 0,
+    "m_DisplayName": "Base Color",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "BaseColor",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.7353569269180298,
+        "y": 0.7353569269180298,
+        "z": 0.7353569269180298
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_ColorMode": 0,
+    "m_DefaultColor": {
+        "r": 0.5,
+        "g": 0.5,
+        "b": 0.5,
+        "a": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "ef9738ec7e894772a14e9dce441c16c6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "f01d52cdcb1647aab35782b4af535efd",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "f23a8b2b7c85478388ff7a8c8a6de740",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Layer4 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3849.999755859375,
+            "y": -3286.0,
+            "width": 193.0,
+            "height": 189.99998474121095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0fac35636fca4474a6afaefc3c757775"
+        },
+        {
+            "m_Id": "cc88101667c9488f9c5a716e851c1b21"
+        },
+        {
+            "m_Id": "68ec7c31365549d6a8ce883edfc02de2"
+        },
+        {
+            "m_Id": "02559cbe5ad441a3904ccb75ded2b2c5"
+        },
+        {
+            "m_Id": "34a67e0fef884f9399e674d9eeaf720c"
+        },
+        {
+            "m_Id": "3802c81c3be24823aa1d7c9997a33c29"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer4",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "f2903158b3624759bca1fcd843698078",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 2.0,
+        "y": 2.0,
+        "z": 2.0,
+        "w": 2.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "f2a351a5375c441b8d9ab7e2c9545a77",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "f383b24f0bc6434dafe44b3e3d338a63",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6012.99951171875,
+            "y": -3209.0,
+            "width": 183.99998474121095,
+            "height": 100.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "fb5e1e2a67c14602808358686bb75091"
+        },
+        {
+            "m_Id": "712da461f71a454db59d349f752d41ee"
+        },
+        {
+            "m_Id": "b000f852aa984e9dae25b125a4607f4e"
+        },
+        {
+            "m_Id": "b911c23b90124d15924551e2730501eb"
+        },
+        {
+            "m_Id": "c49cfb8bb96846dc87ee00c0c041a372"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "f3d31c1f18d8491a8ecf5cbc37e4b7db",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4321.99951171875,
+            "y": -3246.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ed1d1f1613334c3bb904dd08161cd7e5"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f42ad06b3c6a45d3ab33de904c063412",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f44e4374a48a4996aa60d23d3ae1e9f9",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f48f04ad45d046a8b88e71731ed506e7",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "f4ecc442a2d246759f7c2c0412953d28",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Normal",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a3f8b6e8ae7f48e2989a029904401502"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Normal"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "f5a8bfcec21a4dac9df63993ec53635e",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.NormalTS",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7564379492aa4c5a927ff3501acdc70d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.NormalTS"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f6823778a3cf42d5bbe8a83e5f9c9fa3",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f684c5678e9e4f078157a3ab7ef5057b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 3.0,
+        "y": 2.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "f814deb543c24fbbafbcdb5071d96022",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4600.0,
+            "y": -3245.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "abd59150589b436cadf8c9e6f43ccb8e"
+        },
+        {
+            "m_Id": "7acfafd73b8c4dfab8c55c18a887e087"
+        },
+        {
+            "m_Id": "928621a3ca2d41c89a10336bbbc81ddc"
+        },
+        {
+            "m_Id": "b7f9ac55517141868bfb9d2ad6429792"
+        },
+        {
+            "m_Id": "09b1b86c1c074337a4c439d3a308dd2e"
+        },
+        {
+            "m_Id": "1f247658c7ba45fb93c41f51e21acb0d"
+        },
+        {
+            "m_Id": "d30452ac6b244ecca03df4d7b4de9f81"
+        },
+        {
+            "m_Id": "215b30ae27784ec3a13360a9029af283"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f864c900600e427ba7793f00c715e971",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fa6de3be9f5b4411b5081b49e645f424",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DivideNode",
+    "m_ObjectId": "faace8101df943d8956faa31728cb004",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Divide",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5254.99951171875,
+            "y": -3891.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "77e28f3e930b4c249145630ec961af95"
+        },
+        {
+            "m_Id": "f2903158b3624759bca1fcd843698078"
+        },
+        {
+            "m_Id": "30ca940fe2794c949f2a1d4d2caaa446"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "facc84930f544fd7a0205a6176b18ac0",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "fb15d0ba56d54a6192f11e107aeb5fa8",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "fb5e1e2a67c14602808358686bb75091",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "fc2e62201c5847e798fd939314413fcd",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fd0b096ed5b74f9e9ec51327be200731",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "fdb77c3e92ee497b88ca5dc46dc45350",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4208.0,
+            "y": -2371.0,
+            "width": 180.0,
+            "height": 180.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4328cdbf78b94c038fd614c59bfe1cac"
+        },
+        {
+            "m_Id": "04dfcc9ff13a4bf282ed46faec39d15c"
+        },
+        {
+            "m_Id": "71dd947935b64ce38f0d25406dde447b"
+        },
+        {
+            "m_Id": "61a6ac5f29344d109411f26850ab0a96"
+        },
+        {
+            "m_Id": "44806230fa384c1e95f9c5918a14f056"
+        },
+        {
+            "m_Id": "4eb3c00a1ca44e10be833b7ca61ff059"
+        },
+        {
+            "m_Id": "57abc172afd449e2a4d567f93432507b"
+        },
+        {
+            "m_Id": "cda5e3b4c1054bf3a65c0b7ec6bc778a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "fe11fa80cc1847a5a37f6757d521cf25",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "ffb07af0bca546d8b9bc439d34aa68f5",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP LIT.shadergraph.meta b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP LIT.shadergraph.meta
new file mode 100644
index 0000000000..a445e27dc9
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP LIT.shadergraph.meta	
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: ca2ed216f98028c4dae6c5224a952b3c
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP UNLIT.shadergraph b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP UNLIT.shadergraph
new file mode 100644
index 0000000000..3118dd04fd
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP UNLIT.shadergraph	
@@ -0,0 +1,11759 @@
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.GraphData",
+    "m_ObjectId": "386c36a1c4c34ea29deb680fb82cfe8b",
+    "m_Properties": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "ced40c943add479a86f25f7fb5ed59da"
+        }
+    ],
+    "m_Keywords": [],
+    "m_Dropdowns": [],
+    "m_CategoryData": [
+        {
+            "m_Id": "469965f1c9284b7eb032d415d6295b2c"
+        }
+    ],
+    "m_Nodes": [
+        {
+            "m_Id": "b1188549725543d485436c2e921ffbb2"
+        },
+        {
+            "m_Id": "4488af8ff6a7421298a7e827f567263b"
+        },
+        {
+            "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+        },
+        {
+            "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+        },
+        {
+            "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+        },
+        {
+            "m_Id": "150533bad8e2424aaa2c74e253af8592"
+        },
+        {
+            "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+        },
+        {
+            "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+        },
+        {
+            "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+        },
+        {
+            "m_Id": "9c228fac287d446296b91a4acf5cec59"
+        },
+        {
+            "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+        },
+        {
+            "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+        },
+        {
+            "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+        },
+        {
+            "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+        },
+        {
+            "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+        },
+        {
+            "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+        },
+        {
+            "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+        },
+        {
+            "m_Id": "cdddee3a537c464697357f11b966f9b8"
+        },
+        {
+            "m_Id": "88253223d2c34ecfab92b0c344048f94"
+        },
+        {
+            "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+        },
+        {
+            "m_Id": "1e12726617b24675958e942eb62e4b09"
+        },
+        {
+            "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+        },
+        {
+            "m_Id": "44317f2e371447e2a8d894f8a021a235"
+        },
+        {
+            "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+        },
+        {
+            "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+        },
+        {
+            "m_Id": "19075add867e4757b9520d18fe8de1d0"
+        },
+        {
+            "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+        },
+        {
+            "m_Id": "c234e5216678436195ee1a5914bc79da"
+        },
+        {
+            "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+        },
+        {
+            "m_Id": "59bd90a849624124bae6464ee3669aa6"
+        },
+        {
+            "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+        },
+        {
+            "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+        },
+        {
+            "m_Id": "285f6a9863d54ed2a8150727ad749456"
+        },
+        {
+            "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+        },
+        {
+            "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+        },
+        {
+            "m_Id": "dbcb748279484a4590e53518c49122b8"
+        },
+        {
+            "m_Id": "04dc152dd2ba4d519391577eb1156235"
+        },
+        {
+            "m_Id": "9f0de188085746d5a19073da1de85ddb"
+        },
+        {
+            "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+        },
+        {
+            "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+        },
+        {
+            "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+        },
+        {
+            "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+        },
+        {
+            "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+        },
+        {
+            "m_Id": "3c50439118b2496f9e390021b0964606"
+        },
+        {
+            "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+        },
+        {
+            "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+        },
+        {
+            "m_Id": "2a552a0b828f457c911aa19561e410ae"
+        },
+        {
+            "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+        },
+        {
+            "m_Id": "51378bae98a94c309785d14cd5cbb453"
+        },
+        {
+            "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+        },
+        {
+            "m_Id": "7444469eb9884253819add9ef96baa25"
+        },
+        {
+            "m_Id": "67a519f507384ff1861df5d8d5b486be"
+        },
+        {
+            "m_Id": "48390d02257d41bf98eace1deaa4c539"
+        },
+        {
+            "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+        },
+        {
+            "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+        },
+        {
+            "m_Id": "aca823a8188948c782eddaf0f45e1868"
+        },
+        {
+            "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+        },
+        {
+            "m_Id": "163beb4431c34f538340bc0af0991e6f"
+        },
+        {
+            "m_Id": "39f2f84f30304d859fb07569e2695f60"
+        },
+        {
+            "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+        },
+        {
+            "m_Id": "4abff6ff92fa4a05b203f10580988335"
+        },
+        {
+            "m_Id": "319916a5921343f7b7eef0e50dc93def"
+        },
+        {
+            "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+        },
+        {
+            "m_Id": "65c8e64a7535466e933eed08a2f77532"
+        },
+        {
+            "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+        },
+        {
+            "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+        },
+        {
+            "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+        },
+        {
+            "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+        },
+        {
+            "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+        },
+        {
+            "m_Id": "faace8101df943d8956faa31728cb004"
+        },
+        {
+            "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+        },
+        {
+            "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+        },
+        {
+            "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+        },
+        {
+            "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+        },
+        {
+            "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+        },
+        {
+            "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+        },
+        {
+            "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+        },
+        {
+            "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+        },
+        {
+            "m_Id": "dff7a66b353a4023b29c9d937da77960"
+        },
+        {
+            "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+        },
+        {
+            "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+        },
+        {
+            "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+        },
+        {
+            "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+        },
+        {
+            "m_Id": "e591df3a1eb94e259b762f2830b407e2"
+        }
+    ],
+    "m_GroupDatas": [
+        {
+            "m_Id": "484b51c50485473b819c4f05087b32d7"
+        },
+        {
+            "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+        },
+        {
+            "m_Id": "42cadae0923e4969b50bbc3f78185934"
+        },
+        {
+            "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+        },
+        {
+            "m_Id": "98934a69591249d5b8b92b39045359a3"
+        },
+        {
+            "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+        },
+        {
+            "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+        },
+        {
+            "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+        }
+    ],
+    "m_StickyNoteDatas": [],
+    "m_Edges": [
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "04dc152dd2ba4d519391577eb1156235"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "19075add867e4757b9520d18fe8de1d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1e12726617b24675958e942eb62e4b09"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "285f6a9863d54ed2a8150727ad749456"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2a552a0b828f457c911aa19561e410ae"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "39f2f84f30304d859fb07569e2695f60"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 5
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4488af8ff6a7421298a7e827f567263b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aca823a8188948c782eddaf0f45e1868"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "67a519f507384ff1861df5d8d5b486be"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7444469eb9884253819add9ef96baa25"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 3
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 7
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b1188549725543d485436c2e921ffbb2"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 6
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dbcb748279484a4590e53518c49122b8"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 1
+            }
+        }
+    ],
+    "m_VertexContext": {
+        "m_Position": {
+            "x": -2506.000244140625,
+            "y": -3749.0
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "48390d02257d41bf98eace1deaa4c539"
+            },
+            {
+                "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+            },
+            {
+                "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+            }
+        ]
+    },
+    "m_FragmentContext": {
+        "m_Position": {
+            "x": -2506.000244140625,
+            "y": -3480.0
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "aca823a8188948c782eddaf0f45e1868"
+            },
+            {
+                "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+            },
+            {
+                "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+            },
+            {
+                "m_Id": "3c50439118b2496f9e390021b0964606"
+            },
+            {
+                "m_Id": "e591df3a1eb94e259b762f2830b407e2"
+            }
+        ]
+    },
+    "m_PreviewData": {
+        "serializedMesh": {
+            "m_SerializedMesh": "{\"mesh\":{\"fileID\":10210,\"guid\":\"0000000000000000e000000000000000\",\"type\":0}}",
+            "m_Guid": ""
+        },
+        "preventRotation": false
+    },
+    "m_Path": "TextMeshPro/SRP",
+    "m_GraphPrecision": 0,
+    "m_PreviewMode": 2,
+    "m_OutputNode": {
+        "m_Id": ""
+    },
+    "m_ActiveTargets": [
+        {
+            "m_Id": "7cf0e63037a74dc2a9f591225c678ff4"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "007c75c776ac4f1babe9cd7ae1fc4f14",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5722.99951171875,
+            "y": -3827.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1356dc7cbdfa4199a6535d3bbf4cd536"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.BuiltinData",
+    "m_ObjectId": "00996039d61e400a9e854ce591ac35a0",
+    "m_Distortion": false,
+    "m_DistortionMode": 0,
+    "m_DistortionDepthTest": true,
+    "m_AddPrecomputedVelocity": false,
+    "m_TransparentWritesMotionVec": false,
+    "m_DepthOffset": false,
+    "m_ConservativeDepthOffset": false,
+    "m_TransparencyFog": true,
+    "m_AlphaTestShadow": false,
+    "m_BackThenFrontRendering": false,
+    "m_TransparentDepthPrepass": false,
+    "m_TransparentDepthPostpass": false,
+    "m_TransparentPerPixelSorting": false,
+    "m_SupportLodCrossFade": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "013228b0fdf1424097798f0973a9a4fb",
+    "m_Title": "Face Texture",
+    "m_Position": {
+        "x": -4824.0,
+        "y": -2949.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "02559cbe5ad441a3904ccb75ded2b2c5",
+    "m_Id": 5,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "03182b3263304258b265266325c21f65",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "045c4f6b050549c7a0efb208e6349779",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "04dc152dd2ba4d519391577eb1156235",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4534.0,
+            "y": -2747.0,
+            "width": 150.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3d04f5ba6e7b40d281f22eb424145acd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "04dfcc9ff13a4bf282ed46faec39d15c",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "05805bc6fcc941fd889922555c6c86d7",
+    "m_Guid": {
+        "m_GuidSerialized": "fe84e680-4cee-4ca5-be86-2e293a9ba093"
+    },
+    "m_Name": "Ambient Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_05805bc6fcc941fd889922555c6c86d7",
+    "m_OverrideReferenceName": "_Ambient",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "0580d4b7e3a049049569f4508643a724",
+    "m_Guid": {
+        "m_GuidSerialized": "eefb88c5-7665-45dc-b3c2-7cf98b9990d6"
+    },
+    "m_Name": "Softness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_D64EC33D",
+    "m_OverrideReferenceName": "_Softness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "068ae649e00b40e198ec5a30ad741fab",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0699eea947fc426cbfeb8744cf120222",
+    "m_Id": 1,
+    "m_DisplayName": "Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "07946387933e416db576b677f0711e5f",
+    "m_Guid": {
+        "m_GuidSerialized": "21d612fb-8153-41f8-9e2f-9de044c19fbf"
+    },
+    "m_Name": "_FaceTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1A08AD4A",
+    "m_OverrideReferenceName": "_FaceTex_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "082e9706dffc4c188270980d4e44ce0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0848ba750e0341198cf0bbd413e0efe4",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "09b1b86c1c074337a4c439d3a308dd2e",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0a67ca5280214bd794dc0ad66b5710a9",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0b57f2d35157477ab2b29a5aac14ae8b",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0ba4932e164847878ddb7b7bcff96985",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0c4dc51f26484c26ad88a3fe4002abcd",
+    "m_Id": 2,
+    "m_DisplayName": "Color (1)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "0d6a57754b824f6db9cefa6953bc06a9",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0d7878dd226d4cfb81a991dc312309fc",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Dilate",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "0f7ffb6d2de4447f9736780cbcee8e07",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0fac35636fca4474a6afaefc3c757775",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "105b1ed1aa714e41bbe1ef5472bdb11f",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4923.99951171875,
+            "y": -4233.0,
+            "width": 158.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8a08179f99d649d289b8053d5fa0ad22"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "109f638d1f9b49d4991d6d21a86d4eb7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5098.99951171875,
+            "y": -3182.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "880bb02c6c6b49b18aa6ebc66dc566a0"
+        },
+        {
+            "m_Id": "1b9cd8f5f4004e2eaf8afbaab803bc04"
+        },
+        {
+            "m_Id": "b224a1cf80604103ad085c799995f3c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "10a99c07aad742349d258db16838c129",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1196ae398cc348349ab0c1a23fdab4bd",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1356dc7cbdfa4199a6535d3bbf4cd536",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "14ad19bf20a140dd88d58452d7df688b",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "150533bad8e2424aaa2c74e253af8592",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4955.0,
+            "y": -3487.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "72fb5a0d7796446b9e2b929cb32facdc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "163beb4431c34f538340bc0af0991e6f",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3284.0,
+            "y": -3516.0,
+            "width": 119.99999237060547,
+            "height": 149.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c334de01ecd429baa7652fc6002536b"
+        },
+        {
+            "m_Id": "e2d28f29bbac4983a401574480b5ca28"
+        },
+        {
+            "m_Id": "6a7af6143e114a538663e71f56731a21"
+        },
+        {
+            "m_Id": "3e25be96bb3747738c238cf3a741d5df"
+        },
+        {
+            "m_Id": "4907352322c644ebacdf2ca30f2994fd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "19075add867e4757b9520d18fe8de1d0",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4291.99951171875,
+            "y": -3197.0,
+            "width": 124.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c28ee9109014fa086e5de7a3993341d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "0580d4b7e3a049049569f4508643a724"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1b9cd8f5f4004e2eaf8afbaab803bc04",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1bdde3efd3b7464b8934c555be0f8a48",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "1be90d4f96a841748b0c95219b12ad27",
+    "m_Guid": {
+        "m_GuidSerialized": "4c91c146-43bb-4de8-948a-fbf8b1da10e1"
+    },
+    "m_Name": "Bevel Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_97690701",
+    "m_OverrideReferenceName": "_BevelOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": -0.5,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "1c4df61c2fea404eb3b87b270d7c59bc",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4311.0,
+            "y": -3221.0,
+            "width": 148.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "f864c900600e427ba7793f00c715e971"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1d35fa1fb5004f96a65ace54fbe4f1ad",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1db37082bf844442804487b4944352de",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1df58cfa4dad4c449d01ee1c5ea05f2e",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "1e12726617b24675958e942eb62e4b09",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4772.0,
+            "y": -4404.0,
+            "width": 145.00001525878907,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0848ba750e0341198cf0bbd413e0efe4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1f247658c7ba45fb93c41f51e21acb0d",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1f46181633594ae0a1fb2adb76b42981",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "200245fc8bbe4826b209ab5f7ffe074c",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "204dacb5a95b424facf11cb6f65bd188",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "215a82c127204988b751de7d3a39b955",
+    "m_Id": 6,
+    "m_DisplayName": "Outline",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Outline",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "215b30ae27784ec3a13360a9029af283",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "21a7a380e66d42e780e2a2a1baa630d5",
+    "m_Guid": {
+        "m_GuidSerialized": "b2d0099f-e605-49f5-9959-e7cacae37aa3"
+    },
+    "m_Name": "Bevel Type",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_21a7a380e66d42e780e2a2a1baa630d5",
+    "m_OverrideReferenceName": "_BevelType",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e",
+    "m_Guid": {
+        "m_GuidSerialized": "cd167d3a-7465-4d5a-86fc-0f22dc0ef908"
+    },
+    "m_Name": "Outline Color 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_5550EB71",
+    "m_OverrideReferenceName": "_OutlineColor1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "232b1aa09e67479abae141d3c76d3c5b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "256d41e89a204d22951450de1c38051d",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "26e48352a08441bfa694dcea54c06e36",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "281bcee4777040f8a31ee0e10344e98d",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "285f6a9863d54ed2a8150727ad749456",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4181.99951171875,
+            "y": -2415.0,
+            "width": 154.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b42e6dbfbc864097af182cbff5c0c1fb"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.HDUnlitSubTarget",
+    "m_ObjectId": "29b1a6d4abc94131be838c0bc77892fc"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.IsFrontFaceNode",
+    "m_ObjectId": "2a552a0b828f457c911aa19561e410ae",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Is Front Face",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4282.0,
+            "y": -3681.3330078125,
+            "width": 121.99999237060547,
+            "height": 77.33348846435547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2ef1d888dc9d49e59d6a6950897ddc93"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "2ac79705aa9e415dbb74ec215233fd1b",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "Composite (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3350.0,
+            "y": -3810.0,
+            "width": 213.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a75f7ac601c446469802fe7754c1f279"
+        },
+        {
+            "m_Id": "8c38a5d8327f456e9783740c05382619"
+        },
+        {
+            "m_Id": "facc84930f544fd7a0205a6176b18ac0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Composite",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2b01ea3023e34c94af1754e4dcea8f2e",
+    "m_Id": 0,
+    "m_DisplayName": "Face Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2bf5f2fdd2984599b7323d10cfb1d240",
+    "m_Id": 1,
+    "m_DisplayName": "Filter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Filter",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "2c10b97b92c947ceb307a93759c0228b",
+    "m_Guid": {
+        "m_GuidSerialized": "6be0b8ff-a766-4c6b-a6e4-3a72758ac95f"
+    },
+    "m_Name": "Bevel Amount",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B01DD93E",
+    "m_OverrideReferenceName": "_BevelAmount",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.25,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2c7a9460724b47daad8df1be144de7c6",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "2d0a269511e34bd1ba9056d2c939dff2",
+    "m_Guid": {
+        "m_GuidSerialized": "edbe73dc-53ab-4bc1-9d64-ab36e0e05f03"
+    },
+    "m_Name": "_FaceUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_3A8E0F13",
+    "m_OverrideReferenceName": "_FaceUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "2db15d90c2204143b225ec4ef08d0755",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4387.0,
+            "y": -2405.0,
+            "width": 163.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "def8e0b9d8384982bc5b4c32d877e458"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "2e4eb1ef08bb44178c82e53872485e0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2ef1d888dc9d49e59d6a6950897ddc93",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 2,
+    "m_Value": true,
+    "m_DefaultValue": true
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.SystemData",
+    "m_ObjectId": "305e3be306674fcd8bb02273d27ee5b7",
+    "m_MaterialNeedsUpdateHash": 1,
+    "m_SurfaceType": 1,
+    "m_RenderingPass": 4,
+    "m_BlendMode": 0,
+    "m_ZTest": 4,
+    "m_ZWrite": false,
+    "m_TransparentCullMode": 2,
+    "m_OpaqueCullMode": 2,
+    "m_SortPriority": 0,
+    "m_AlphaTest": true,
+    "m_TransparentDepthPrepass": false,
+    "m_TransparentDepthPostpass": false,
+    "m_SupportLodCrossFade": false,
+    "m_DoubleSidedMode": 0,
+    "m_DOTSInstancing": false,
+    "m_CustomVelocity": false,
+    "m_Tessellation": false,
+    "m_TessellationMode": 0,
+    "m_TessellationFactorMinDistance": 20.0,
+    "m_TessellationFactorMaxDistance": 50.0,
+    "m_TessellationFactorTriangleSize": 100.0,
+    "m_TessellationShapeFactor": 0.75,
+    "m_TessellationBackFaceCullEpsilon": -0.25,
+    "m_TessellationMaxDisplacement": 0.009999999776482582,
+    "m_DebugSymbols": false,
+    "m_Version": 2,
+    "inspectorFoldoutMask": 9
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "30ca940fe2794c949f2a1d4d2caaa446",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "319916a5921343f7b7eef0e50dc93def",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4791.0,
+            "y": -3245.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d219977210094c0082c517d8dc00c8bb"
+        },
+        {
+            "m_Id": "f48f04ad45d046a8b88e71731ed506e7"
+        },
+        {
+            "m_Id": "e6e80c6b0db545cda26b079a9a78fbb3"
+        },
+        {
+            "m_Id": "c6bdb985bc16435fa72f5a3c81bb633c"
+        },
+        {
+            "m_Id": "d1a17e42e7a04dc38984e3c01149445b"
+        },
+        {
+            "m_Id": "fb15d0ba56d54a6192f11e107aeb5fa8"
+        },
+        {
+            "m_Id": "c35312edaa2344788b1964ee2f63a236"
+        },
+        {
+            "m_Id": "c88fcbaeea954a5f9c68c339fa8b604d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "34a67e0fef884f9399e674d9eeaf720c",
+    "m_Id": 6,
+    "m_DisplayName": "Color3",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color3",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "34a72a5ebb04402384a4fd3748111a37",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha Clip Threshold",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AlphaClipThreshold",
+    "m_StageCapability": 2,
+    "m_Value": 0.0010000000474974514,
+    "m_DefaultValue": 0.5,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3535ae87c6dd4769b52b20d9eca61069",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "35cbea6373dd4e4f8d0fea36e8add392",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "36a0c473c4c04c3a930dd38f3920d410",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "36f1b4d96f2941c39e5cd95d9c1d2ce6",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6008.99951171875,
+            "y": -3341.0,
+            "width": 144.99998474121095,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "65b3dc13b2b6484283ffe5abfe87a06a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "373f1de8db6c429c9d46c781f741d7a4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3802c81c3be24823aa1d7c9997a33c29",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "3915c1927ffe49f8967304321cfbe497",
+    "m_Id": 4,
+    "m_DisplayName": "Atlas",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Atlas",
+    "m_StageCapability": 3,
+    "m_BareResource": true,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "39a382d661e2484da71f04c43f48e55f",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "39f2f84f30304d859fb07569e2695f60",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3423.000244140625,
+            "y": -3516.0,
+            "width": 116.0,
+            "height": 94.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4b2d9ea03bf64fa19dcae1511d2581da"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "3c50439118b2496f9e390021b0964606",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.AlphaClipThreshold",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3028.0,
+            "y": -3054.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "34a72a5ebb04402384a4fd3748111a37"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3d04f5ba6e7b40d281f22eb424145acd",
+    "m_Id": 0,
+    "m_DisplayName": "Face Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3db1608e927e4102a3c3a88e9fcab39a",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "3dccd64e7f324bc1a75c1479d7a67c51",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "3e231021af7b47ba97f2871e7f25d0fe",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2803.000244140625,
+            "y": -3520.0,
+            "width": 140.0,
+            "height": 166.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6ccaced3889e4503a9414d808ec33981"
+        },
+        {
+            "m_Id": "7f3d71a6c96847c099da45f95aafbecb"
+        },
+        {
+            "m_Id": "d8edec16956c4f15b7d51d6ec10753f4"
+        },
+        {
+            "m_Id": "39a382d661e2484da71f04c43f48e55f"
+        },
+        {
+            "m_Id": "8764669016f6442f8152593c18a649d7"
+        },
+        {
+            "m_Id": "26e48352a08441bfa694dcea54c06e36"
+        },
+        {
+            "m_Id": "3e94a0d106064bdb864c960512ef4026"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "3e25be96bb3747738c238cf3a741d5df",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "3e372195f4bd4845852a37839e5b602d",
+    "m_Guid": {
+        "m_GuidSerialized": "60abd046-2a1a-48cd-a0af-2f702f7f53ab"
+    },
+    "m_Name": "_MainTex",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_90CBF488",
+    "m_OverrideReferenceName": "_MainTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":28684132378477856,\"guid\":\"8f586378b4e144a9851e7b34d9b748ee\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "3e94a0d106064bdb864c960512ef4026",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "3ec4797e381747829ef4712c85fcf7a1",
+    "m_Guid": {
+        "m_GuidSerialized": "020d65cc-50a8-4b8a-a624-90d7b489f549"
+    },
+    "m_Name": "Specular Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_3ec4797e381747829ef4712c85fcf7a1",
+    "m_OverrideReferenceName": "_SpecularPower",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 1.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 4.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "3fdf4b7bc5d4426492dcc057603ef4a6",
+    "m_Guid": {
+        "m_GuidSerialized": "675d2567-3fca-4da6-9462-dfa4924950f1"
+    },
+    "m_Name": "_OutlineUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_D66D89E6",
+    "m_OverrideReferenceName": "_OutlineUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "400d0b6c95dd4540ad3da3e8cb7e50b2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "41986ac6400d46709d0ef043a67f6b34",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "41b9b79b3859472882bcea393703eec0",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "424dbeeb009344efa29c304c4979e3d6",
+    "m_Guid": {
+        "m_GuidSerialized": "314c37de-c6f2-4463-866d-8588f6fc119e"
+    },
+    "m_Name": "Diffuse Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_424dbeeb009344efa29c304c4979e3d6",
+    "m_OverrideReferenceName": "_Diffuse",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "42a586e4f6ec40eeaba891b7fd133864",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4934.0,
+            "y": -4442.99951171875,
+            "width": 133.99998474121095,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "da7a06d393a44089842070d51d2aa0a6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "42cadae0923e4969b50bbc3f78185934",
+    "m_Title": "Face + 3 Outlines + Underlay",
+    "m_Position": {
+        "x": -5468.0,
+        "y": -3558.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4328cdbf78b94c038fd614c59bfe1cac",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "44317f2e371447e2a8d894f8a021a235",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Layer1 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4001.0,
+            "y": -4168.0,
+            "width": 191.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "10a99c07aad742349d258db16838c129"
+        },
+        {
+            "m_Id": "b85d677872b44421bf5536f42ba0267c"
+        },
+        {
+            "m_Id": "75aba700d74d4b2687bf3166cf1da3e2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer1",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "44806230fa384c1e95f9c5918a14f056",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4488af8ff6a7421298a7e827f567263b",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4109.0,
+            "width": 158.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "66f69ef16eac4eb48357bde804cf3c39"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
+    "m_ObjectId": "4590bfa2a0664b65b6f073bae33a071f",
+    "m_Id": 0,
+    "m_DisplayName": "Emission",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Emission",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [],
+    "m_ColorMode": 1,
+    "m_DefaultColor": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "4648b46ad29a4008a80de4f8a5a5b813",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4613.0,
+            "y": -2415.0,
+            "width": 145.0,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b2baf44eae52473cb6cda7b1debece01"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CategoryData",
+    "m_ObjectId": "469965f1c9284b7eb032d415d6295b2c",
+    "m_Name": "",
+    "m_ChildObjectList": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "ced40c943add479a86f25f7fb5ed59da"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "46fbf3eeb0ea4470869cba7443249295",
+    "m_Guid": {
+        "m_GuidSerialized": "be87c5a3-e361-4b95-89c8-911c39a51c0d"
+    },
+    "m_Name": "Outline Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_A0B54237",
+    "m_OverrideReferenceName": "_OutlineTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "47d020251e9841a5b1f0fd64396026a1",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "48390d02257d41bf98eace1deaa4c539",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Position",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8036d0e6090b456e9b4ea87227868236"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Position"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "484b51c50485473b819c4f05087b32d7",
+    "m_Title": "Underlay",
+    "m_Position": {
+        "x": -5253.0,
+        "y": -4542.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4907352322c644ebacdf2ca30f2994fd",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "49e7c3ad55ce458797f0e60c950cb965",
+    "m_Guid": {
+        "m_GuidSerialized": "31b55db9-0da1-4ec4-af2b-d83747ed5bc4"
+    },
+    "m_Name": "Underlay Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_CE9DEDB3",
+    "m_OverrideReferenceName": "_UnderlayOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4a66dcbe712a4d40bd8f355b834594b5",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "4abff6ff92fa4a05b203f10580988335",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4323.99951171875,
+            "y": -3498.0,
+            "width": 140.0,
+            "height": 166.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b015d1b7e4134c59baf6851e7649802c"
+        },
+        {
+            "m_Id": "d9dc4839ee2847999110bdb234d6041a"
+        },
+        {
+            "m_Id": "91d6a9a5fbc04ea49075cb51835e7264"
+        },
+        {
+            "m_Id": "f42ad06b3c6a45d3ab33de904c063412"
+        },
+        {
+            "m_Id": "ed6c215a65584deeaefad1d2c7743044"
+        },
+        {
+            "m_Id": "edbee7a8952b46529ac5ad0365775774"
+        },
+        {
+            "m_Id": "70337a74f6ad4b7bb6befc825219bab1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4b2d9ea03bf64fa19dcae1511d2581da",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4bda5c294e1949138d033640e1d385b4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4c28ee9109014fa086e5de7a3993341d",
+    "m_Id": 0,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4c334de01ecd429baa7652fc6002536b",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4d1cb1a475df49f9a148195a65f5453a",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4d9ce48719d143748f9f8e22da6f9ddc",
+    "m_Id": 5,
+    "m_DisplayName": "TextureWidth",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureWidth",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4e64dac49ddc47c3b5b1e27b17a08304",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "4eb3c00a1ca44e10be833b7ca61ff059",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4f194ff591484e908fc2bcdacbcf2570",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4310.0,
+            "y": -2771.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2b01ea3023e34c94af1754e4dcea8f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "509e6f38505b4b0695b263706a55028f",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "51378bae98a94c309785d14cd5cbb453",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "GetSurfaceNormal (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4067.333251953125,
+            "y": -3881.99951171875,
+            "width": 263.9999694824219,
+            "height": 189.99998474121095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b0077c23eae443887872f84227deccc"
+        },
+        {
+            "m_Id": "3915c1927ffe49f8967304321cfbe497"
+        },
+        {
+            "m_Id": "4d9ce48719d143748f9f8e22da6f9ddc"
+        },
+        {
+            "m_Id": "ebd6d75abcb84108bcadbfe7ee5f6244"
+        },
+        {
+            "m_Id": "ef9738ec7e894772a14e9dce441c16c6"
+        },
+        {
+            "m_Id": "9eeec1a9713045af8845cea263d5ea48"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GetSurfaceNormal",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "51f76f8a53ad43a4ad028426548ce9ba",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "52798bdb86f6400e86489a7a368e9f8b",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6154.99951171875,
+            "y": -3169.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1df58cfa4dad4c449d01ee1c5ea05f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "53073e5ea924459fa6681a4943e9f947",
+    "m_Guid": {
+        "m_GuidSerialized": "5fdac24e-2d58-4471-80ce-79c3ab9a2564"
+    },
+    "m_Name": "Outline Color 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_DBAB5AEC",
+    "m_OverrideReferenceName": "_OutlineColor2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.009433984756469727,
+        "g": 0.02534518577158451,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "54d7a93ffec5490aa4591da23a21b693",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "55ffa45ec3654d5e88089fb40d2b0465",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "56c25395796e4d2fbe5c892d428d1620",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5102.99951171875,
+            "y": -3427.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "9eb8137a6c2e41bbafdc8b0732dd47a3"
+        },
+        {
+            "m_Id": "36a0c473c4c04c3a930dd38f3920d410"
+        },
+        {
+            "m_Id": "068ae649e00b40e198ec5a30ad741fab"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "57abc172afd449e2a4d567f93432507b",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "582d6e289dbe4fdca7cf0307273eaa2f",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "59bd90a849624124bae6464ee3669aa6",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4005.999755859375,
+            "y": -2395.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2e4eb1ef08bb44178c82e53872485e0f"
+        },
+        {
+            "m_Id": "8695190a5e614f2d90081871a8a06fc2"
+        },
+        {
+            "m_Id": "81bdb47901ef48e5a588c6724b1b0142"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "5b0077c23eae443887872f84227deccc",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5b3ff4ee364f4d7a923b530ad60d8762",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5bd258837c514ff7ab0bf7027e762c18",
+    "m_Guid": {
+        "m_GuidSerialized": "2d8f3ee9-1307-4b58-a60d-526e86b07109"
+    },
+    "m_Name": "Bevel Roundness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_AB6A015F",
+    "m_OverrideReferenceName": "_BevelRoundness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5da82bf481f8489ebd05e997f617f51b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": 4.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5e42524569844befad16fda5a94eb9cb",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5fbe253f3e444f2aa8ac717f9c856619",
+    "m_Guid": {
+        "m_GuidSerialized": "0a61c93f-6430-4aa6-af07-79bc3b411ccd"
+    },
+    "m_Name": "Bevel Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B50BBFCC",
+    "m_OverrideReferenceName": "_BevelWidth",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.5,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61133d79a89048c195f54939b2a1d30a",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61a6ac5f29344d109411f26850ab0a96",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6271438664e74b3fbf723bd6a1f50f8b",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "62bc551cea604e88b7858cc37d96a98a",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "636180f6e0504f2baaa5cc086980cb47",
+    "m_Guid": {
+        "m_GuidSerialized": "c1223e37-093d-4d5a-b2b0-cd9cc3e4f88e"
+    },
+    "m_Name": "Outline Offset 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_636180f6e0504f2baaa5cc086980cb47",
+    "m_OverrideReferenceName": "_OutlineOffset1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "63c7cd57fc3c45a9a97b514fdae32693",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5266.99951171875,
+            "y": -3387.0,
+            "width": 156.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c422a9a9ff824176aad2241f58c44d0b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "641eda269d7b4da9acb65f8d50035ea9",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "65b3dc13b2b6484283ffe5abfe87a06a",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "65c8e64a7535466e933eed08a2f77532",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4791.0,
+            "y": -3499.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "256d41e89a204d22951450de1c38051d"
+        },
+        {
+            "m_Id": "0a67ca5280214bd794dc0ad66b5710a9"
+        },
+        {
+            "m_Id": "ebbd94a7102a4457a48ac492de3bff14"
+        },
+        {
+            "m_Id": "6271438664e74b3fbf723bd6a1f50f8b"
+        },
+        {
+            "m_Id": "c9b722d107ce4cd6a748c883472b9b0f"
+        },
+        {
+            "m_Id": "74cf69e61bef44589521f1bf2bf3c59a"
+        },
+        {
+            "m_Id": "6e532f83d1c44e839bcfc5845d3b01d6"
+        },
+        {
+            "m_Id": "cb5e9f9567e84f8fa5463efc0e256e19"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "66f69ef16eac4eb48357bde804cf3c39",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlayColor",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "67a519f507384ff1861df5d8d5b486be",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4278.0,
+            "y": -3939.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c3e6d7c20c184bf39fd8822130e693e7"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "68ec7c31365549d6a8ce883edfc02de2",
+    "m_Id": 4,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6a7af6143e114a538663e71f56731a21",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "6b2f65c1463f4f7bad16c54a95d2fe75",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5101.0,
+            "y": -3301.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1d35fa1fb5004f96a65ace54fbe4f1ad"
+        },
+        {
+            "m_Id": "fa6de3be9f5b4411b5081b49e645f424"
+        },
+        {
+            "m_Id": "400d0b6c95dd4540ad3da3e8cb7e50b2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6ccaced3889e4503a9414d808ec33981",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "6dfc1177dd0541a7a780fbf911ad1956",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6e13f3cd573c467a94379f45d96cb690",
+    "m_Id": 2,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "6e532f83d1c44e839bcfc5845d3b01d6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "6e8946a245e842b38231d4a241bfb3ef",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.BaseColor",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3026.0,
+            "y": -3110.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ef0b93f78372439696f50711eaf57d90"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.BaseColor"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "6fbdcc5a972b4fa883dc5f21e525a376",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "70337a74f6ad4b7bb6befc825219bab1",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "712da461f71a454db59d349f752d41ee",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "71dd947935b64ce38f0d25406dde447b",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "724e17584e97443e9e285dfa7253c8e3",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 2,
+    "m_Value": 0.15000000596046449,
+    "m_DefaultValue": 1.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "72fb5a0d7796446b9e2b929cb32facdc",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "7444469eb9884253819add9ef96baa25",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4298.0,
+            "y": -3809.99951171875,
+            "width": 144.66648864746095,
+            "height": 129.33323669433595
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "03182b3263304258b265266325c21f65"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "748c31bbcecc4b30bec2e42c0612175b",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "74b41464cbed4e9e8e23af5ab9be40cf",
+    "m_Guid": {
+        "m_GuidSerialized": "41afbdcb-f3ae-4340-8973-1c1998c992a2"
+    },
+    "m_Name": "Outline Offset 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "74cf69e61bef44589521f1bf2bf3c59a",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "757174b6f25040fdbb20355a21752222",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "75aba700d74d4b2687bf3166cf1da3e2",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "75c5657544c648058b20cea090f48dbf",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "767769f736d5478cba5f10a415e28e7f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "773b90134e894e429203c0c83e80b9de",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "77e28f3e930b4c249145630ec961af95",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.HDUnlitData",
+    "m_ObjectId": "77ebd01f5b3149ad810a5acbffc85921",
+    "m_EnableShadowMatte": false,
+    "m_DistortionOnly": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "79147f6986644769b58d9ed64fe771e1",
+    "m_Id": 0,
+    "m_DisplayName": "OutlineMode",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7984fd094e1147bdabb4e26fbd3d31c8",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3113.000244140625,
+            "y": -3468.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "082e9706dffc4c188270980d4e44ce0f"
+        },
+        {
+            "m_Id": "f2a351a5375c441b8d9ab7e2c9545a77"
+        },
+        {
+            "m_Id": "41986ac6400d46709d0ef043a67f6b34"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "7a046f410ce64aa88438b0bfd412c045",
+    "m_Guid": {
+        "m_GuidSerialized": "d47271f5-5a84-47bf-a09e-c825d2aeb013"
+    },
+    "m_Name": "Outline Color 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_551702C5",
+    "m_OverrideReferenceName": "_OutlineColor3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "7a0f504e4175406dbd8134250f4e350b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7a80e8839f0e4a1d9a6c0814f8793ee6",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4961.99951171875,
+            "y": -3452.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6fbdcc5a972b4fa883dc5f21e525a376"
+        },
+        {
+            "m_Id": "0ba4932e164847878ddb7b7bcff96985"
+        },
+        {
+            "m_Id": "9178663316db43d582f1c4a127d307c6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7acfafd73b8c4dfab8c55c18a887e087",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7b3b88c5975841d6b6d5c3c5515055a0",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "7b8a19bd115e4167a25b59cb3218a817",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "7c27ccb2c2dc4ca59c5438c3358630ca",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.Rendering.HighDefinition.ShaderGraph.HDTarget",
+    "m_ObjectId": "7cf0e63037a74dc2a9f591225c678ff4",
+    "m_ActiveSubTarget": {
+        "m_Id": "29b1a6d4abc94131be838c0bc77892fc"
+    },
+    "m_Datas": [
+        {
+            "m_Id": "00996039d61e400a9e854ce591ac35a0"
+        },
+        {
+            "m_Id": "305e3be306674fcd8bb02273d27ee5b7"
+        },
+        {
+            "m_Id": "77ebd01f5b3149ad810a5acbffc85921"
+        }
+    ],
+    "m_CustomEditorGUI": "TMPro.EditorUtilities.TMP_SDF_HDRPUnlitShaderGUI",
+    "m_SupportVFX": false,
+    "m_SupportLineRendering": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7d7696aa6d184b4fb9c316a9dec37aee",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4959.0,
+            "y": -3326.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4d1cb1a475df49f9a148195a65f5453a"
+        },
+        {
+            "m_Id": "47d020251e9841a5b1f0fd64396026a1"
+        },
+        {
+            "m_Id": "62bc551cea604e88b7858cc37d96a98a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7d78a616c2754cc28d1f32cf66ade611",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4006.000244140625,
+            "y": -2795.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d9bcb754db834583b6518c5ed5152114"
+        },
+        {
+            "m_Id": "861d4258049a4a3e8164f7297090f88e"
+        },
+        {
+            "m_Id": "a7c06457d7454693a8bc3dc95257b2c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "7e0fadb2533f496192c1ad3e78642010",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4188.0,
+            "width": 173.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d48c3871e3064027a10ae9f4babd3be0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "7f2e6b5f15364ed9835d67d0cf4f8f65",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Tangent",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2586.0,
+            "y": -3592.0,
+            "width": 200.0,
+            "height": 41.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "85ff8667d72947edada4e9fb4ff60559"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Tangent"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7f3d71a6c96847c099da45f95aafbecb",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot",
+    "m_ObjectId": "8036d0e6090b456e9b4ea87227868236",
+    "m_Id": 0,
+    "m_DisplayName": "Position",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Position",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "80e665a5eeb64730a51742f698bf0d48",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "8135ca333f8f4ea78163743e6ec1f55c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4081.999755859375,
+            "y": -3140.0,
+            "width": 156.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d6a6a119394e4082a11bc024a6e42ef8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "53073e5ea924459fa6681a4943e9f947"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "81bdb47901ef48e5a588c6724b1b0142",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "81e8ed0534534674a74263e6161a2a1a",
+    "m_Guid": {
+        "m_GuidSerialized": "78aab961-c4a8-41f3-b203-1239c3b33b13"
+    },
+    "m_Name": "Underlay Dilate",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_D48690B9",
+    "m_OverrideReferenceName": "_UnderlayDilate",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "82af2db1018543d7832af96c1cfc981f",
+    "m_Guid": {
+        "m_GuidSerialized": "37906c7b-9a3a-454b-a62a-9aa097e64bde"
+    },
+    "m_Name": "Light Angle",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_82af2db1018543d7832af96c1cfc981f",
+    "m_OverrideReferenceName": "_LightAngle",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 6.28000020980835
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "82d5443fe54d4a3b9420f8745d00a632",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": 8.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "84dc74cdbd8c45e1b189e4fd9a69942d",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "85a1ad8e741e41759002e8cdc8cd0b96",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "ScreenSpaceRatio (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5802.0,
+            "y": -3363.0,
+            "width": 258.0,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6e13f3cd573c467a94379f45d96cb690"
+        },
+        {
+            "m_Id": "8e6ed600f6504f4083092f5b511e44c4"
+        },
+        {
+            "m_Id": "93b161cce4504cb79c97b6d8db178de7"
+        },
+        {
+            "m_Id": "2bf5f2fdd2984599b7323d10cfb1d240"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ScreenSpaceRatio",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "85b5940eb77e4625812ded7215bab8d7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4081.999755859375,
+            "y": -3096.0,
+            "width": 156.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ada023d617104472b8ab75a81558c0a1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot",
+    "m_ObjectId": "85ff8667d72947edada4e9fb4ff60559",
+    "m_Id": 0,
+    "m_DisplayName": "Tangent",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Tangent",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "861d4258049a4a3e8164f7297090f88e",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "867a4ae13c0d4a028c71bc1063824c14",
+    "m_Guid": {
+        "m_GuidSerialized": "d483c212-0a30-4f6d-b94d-9abbc83a6522"
+    },
+    "m_Name": "Outline Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_C68C9E14",
+    "m_OverrideReferenceName": "_IsoPerimeter",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 2,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "8695190a5e614f2d90081871a8a06fc2",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8764669016f6442f8152593c18a649d7",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "880bb02c6c6b49b18aa6ebc66dc566a0",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "88253223d2c34ecfab92b0c344048f94",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "ComputeSDF (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4323.0,
+            "width": 227.99998474121095,
+            "height": 190.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c52a1744a9a14989b0ae452ad6de6061"
+        },
+        {
+            "m_Id": "a03db80c558b4f87a330c5ae0a9443a5"
+        },
+        {
+            "m_Id": "8f1b1d1e8ff24b3284993e52354e54fa"
+        },
+        {
+            "m_Id": "5da82bf481f8489ebd05e997f617f51b"
+        },
+        {
+            "m_Id": "82d5443fe54d4a3b9420f8745d00a632"
+        },
+        {
+            "m_Id": "61133d79a89048c195f54939b2a1d30a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8a08179f99d649d289b8053d5fa0ad22",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Offset",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8a39319405ad44cb8b7aae71c41dcd01",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8b66f4e6bc9d4662b3218ac33a69839f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8c38a5d8327f456e9783740c05382619",
+    "m_Id": 3,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8cbd81814903479ea1d3151c1f38183e",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "8cf8aae64c1d443f9303126886b40f17",
+    "m_Guid": {
+        "m_GuidSerialized": "8d78c9a5-aaef-41fb-af68-2358e401d7ac"
+    },
+    "m_Name": "_UnderlayColor",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_2F5FE804",
+    "m_OverrideReferenceName": "_UnderlayColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8e6ed600f6504f4083092f5b511e44c4",
+    "m_Id": 0,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "8ed907a2cc7949b68a283ae243ea1977",
+    "m_Guid": {
+        "m_GuidSerialized": "36803443-a9bc-4f3c-a4f2-7d66a5417ac1"
+    },
+    "m_Name": "Outline Offset 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8f1b1d1e8ff24b3284993e52354e54fa",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9147636b0cfa466a9b37a013d8f693bf",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5421.99951171875,
+            "y": -3902.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a4f471e3221c4134b291bd9d2ba22db6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "9178663316db43d582f1c4a127d307c6",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "91890fe48ebe4717aea61ecaf3ad4861",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2983.000244140625,
+            "y": -3468.0,
+            "width": 119.99999237060547,
+            "height": 149.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3dccd64e7f324bc1a75c1479d7a67c51"
+        },
+        {
+            "m_Id": "e444f2c81d1e48329fa2c91005277e8d"
+        },
+        {
+            "m_Id": "b2c26292b7434733878a9b042f44de89"
+        },
+        {
+            "m_Id": "964fea1fd4b24f4daf5bef84c4b45118"
+        },
+        {
+            "m_Id": "deac82280a2b43078e0e40863e2d974c"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "91d6a9a5fbc04ea49075cb51835e7264",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "928621a3ca2d41c89a10336bbbc81ddc",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "9327cb5f5e6b46f1bd79f91ef9dca3b7",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "93b161cce4504cb79c97b6d8db178de7",
+    "m_Id": 3,
+    "m_DisplayName": "TextureSize",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureSize",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "945b45993dd84a979755b98c48138f72",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "952d0fa5cd744df0b434cd38e9a90b93",
+    "m_Guid": {
+        "m_GuidSerialized": "ce395871-ddeb-47c3-a31d-07855800c197"
+    },
+    "m_Name": "_UnderlaySoftness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_F2B9E3EF",
+    "m_OverrideReferenceName": "_UnderlaySoftness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "95928bcb6a284b8d88105a84c2e1d3ce",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4788.0,
+            "y": -2591.0,
+            "width": 155.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d880558893fb442b9320cf55885d1117"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "964fea1fd4b24f4daf5bef84c4b45118",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "98934a69591249d5b8b92b39045359a3",
+    "m_Title": "Outline1 Texture",
+    "m_Position": {
+        "x": -4670.00048828125,
+        "y": -2474.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "998db5e5901e45b29040eb2099370071",
+    "m_Guid": {
+        "m_GuidSerialized": "6f383614-f2ad-4269-be8f-87b0ecb03cf0"
+    },
+    "m_Name": "Bevel Clamp",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_5BD7E808",
+    "m_OverrideReferenceName": "_BevelClamp",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "9c228fac287d446296b91a4acf5cec59",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4600.0,
+            "y": -3498.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "582d6e289dbe4fdca7cf0307273eaa2f"
+        },
+        {
+            "m_Id": "1db37082bf844442804487b4944352de"
+        },
+        {
+            "m_Id": "8b66f4e6bc9d4662b3218ac33a69839f"
+        },
+        {
+            "m_Id": "4a66dcbe712a4d40bd8f355b834594b5"
+        },
+        {
+            "m_Id": "a0285c9c381a49cba194709efa0a7c85"
+        },
+        {
+            "m_Id": "b2728d0dd3ce40678867c94a7d977916"
+        },
+        {
+            "m_Id": "e141833aa78b4fd59ecad949beb43a78"
+        },
+        {
+            "m_Id": "51f76f8a53ad43a4ad028426548ce9ba"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "9c26fdddba244d36a854298c00473247",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "9d3c3383d5934a17bf9efbb7fd9e9043",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5443.0,
+            "y": -3315.0,
+            "width": 144.99998474121095,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "232b1aa09e67479abae141d3c76d3c5b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e6e50a71d9843b49b62ebe1cf7d3d59",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4486.0,
+            "y": -3865.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3535ae87c6dd4769b52b20d9eca61069"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e87ce9607e14015a3790c528ca5dfda",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4635.0,
+            "y": -2239.0,
+            "width": 167.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "75c5657544c648058b20cea090f48dbf"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "9eb8137a6c2e41bbafdc8b0732dd47a3",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "9eeec1a9713045af8845cea263d5ea48",
+    "m_Id": 6,
+    "m_DisplayName": "IsFront",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "IsFront",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "9f0de188085746d5a19073da1de85ddb",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4160.0,
+            "y": -2771.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7c27ccb2c2dc4ca59c5438c3358630ca"
+        },
+        {
+            "m_Id": "373f1de8db6c429c9d46c781f741d7a4"
+        },
+        {
+            "m_Id": "fd0b096ed5b74f9e9ec51327be200731"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "9f42c5a9bc2f45baa095a80e7b8b485a",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a0285c9c381a49cba194709efa0a7c85",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a03db80c558b4f87a330c5ae0a9443a5",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "a3f8b6e8ae7f48e2989a029904401502",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "a455bd79094c4413a7b7dd80ca8b9368",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4606.99951171875,
+            "y": -2689.0,
+            "width": 221.99998474121095,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "dcd51c93d3b64f05a938b3334f343654"
+        },
+        {
+            "m_Id": "2c7a9460724b47daad8df1be144de7c6"
+        },
+        {
+            "m_Id": "55ffa45ec3654d5e88089fb40d2b0465"
+        },
+        {
+            "m_Id": "e495a9f7a11f4eb89334e83be154ceb9"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateShaderProperty",
+    "m_ObjectId": "a4ad98d8828c424384229c344ebe2ed0",
+    "m_Guid": {
+        "m_GuidSerialized": "f98fc1a2-bb81-4bd1-a207-23d3a90d518e"
+    },
+    "m_Name": "SamplerState",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "SamplerState_a4ad98d8828c424384229c344ebe2ed0",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": false,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_filter": 0,
+        "m_wrap": 1,
+        "m_anisotropic": 0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a4f471e3221c4134b291bd9d2ba22db6",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "a535f3bcbeb14622bb177eb6f46e76f4",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4645.00048828125,
+            "y": -2285.0,
+            "width": 177.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6dfc1177dd0541a7a780fbf911ad1956"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "a6bbb32e8d884be9bb36db91fe4b81b1",
+    "m_Guid": {
+        "m_GuidSerialized": "6aa76edf-7b80-46ac-add4-406cf1d85493"
+    },
+    "m_Name": "_GradientScale",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_EAE27356",
+    "m_OverrideReferenceName": "_GradientScale",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 10.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "a6c38edd2e8743a9b057ba8452b9f129",
+    "m_Guid": {
+        "m_GuidSerialized": "9fc942ee-4a1d-4ced-a5a6-81893e3ddb63"
+    },
+    "m_Name": "Light Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_a6c38edd2e8743a9b057ba8452b9f129",
+    "m_OverrideReferenceName": "_SpecularColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "a75f7ac601c446469802fe7754c1f279",
+    "m_Id": 0,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a7942746b5564dc7bbbae1deb2403022",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "a7c06457d7454693a8bc3dc95257b2c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "aa2794b8f0e24bf281d22e0fef0647be",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "aa3e347d733e48f7b65d8a8847370eec",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "EvaluateLight (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3631.0,
+            "y": -3810.0,
+            "width": 230.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0699eea947fc426cbfeb8744cf120222"
+        },
+        {
+            "m_Id": "0c4dc51f26484c26ad88a3fe4002abcd"
+        },
+        {
+            "m_Id": "d5173cc3c6cd4f1998550f3187a3e9c8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "EvaluateLight",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aa87c72ac0e64469acc34f936f00b3d0",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4225.0,
+            "width": 193.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0d7878dd226d4cfb81a991dc312309fc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "abd59150589b436cadf8c9e6f43ccb8e",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "aca823a8188948c782eddaf0f45e1868",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.NormalOS",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2542.0,
+            "y": -3404.000244140625,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "e386b183a18245a796b024022f7f3074"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.NormalOS"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "acd0cd5a177f4a97bf23db7219305e3f",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4348.0,
+            "y": -3905.99951171875,
+            "width": 185.33299255371095,
+            "height": 101.33324432373047
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "945b45993dd84a979755b98c48138f72"
+        },
+        {
+            "m_Id": "e51a636b2621440eb94cc802c1cf4bfc"
+        },
+        {
+            "m_Id": "1bdde3efd3b7464b8934c555be0f8a48"
+        },
+        {
+            "m_Id": "f1fb18f75405424884a776bfd24e79e9"
+        },
+        {
+            "m_Id": "9f42c5a9bc2f45baa095a80e7b8b485a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ada023d617104472b8ab75a81558c0a1",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aef5c44f84e04c3185e0b93e95e34204",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5264.99951171875,
+            "y": -3142.0,
+            "width": 159.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "84dc74cdbd8c45e1b189e4fd9a69942d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b000f852aa984e9dae25b125a4607f4e",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b015d1b7e4134c59baf6851e7649802c",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "b0b352c4503a43d083a64e57352b29a0",
+    "m_Guid": {
+        "m_GuidSerialized": "01cfcc78-60aa-4f71-a1e3-8d8df6dae253"
+    },
+    "m_Name": "Reflectivity Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_b0b352c4503a43d083a64e57352b29a0",
+    "m_OverrideReferenceName": "_Reflectivity",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 5.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 5.0,
+        "y": 15.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "b1188549725543d485436c2e921ffbb2",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4146.0,
+            "y": -2869.0,
+            "width": 116.0,
+            "height": 94.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "281bcee4777040f8a31ee0e10344e98d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "b163c9f1666644b0bba62cf0e12df7bc",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4367.0,
+            "y": -2713.0,
+            "width": 180.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "cce40479b6284b6fa3174db9f09d0ac9"
+        },
+        {
+            "m_Id": "80e665a5eeb64730a51742f698bf0d48"
+        },
+        {
+            "m_Id": "1f46181633594ae0a1fb2adb76b42981"
+        },
+        {
+            "m_Id": "8cbd81814903479ea1d3151c1f38183e"
+        },
+        {
+            "m_Id": "cfaf3f3a5a1146e194cddad30c95aada"
+        },
+        {
+            "m_Id": "b43489e37a5c4df88f15844292a55ec7"
+        },
+        {
+            "m_Id": "cd7281fb41aa4e61ac0fdf71d4f4bd46"
+        },
+        {
+            "m_Id": "f01d52cdcb1647aab35782b4af535efd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 1,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "b224a1cf80604103ad085c799995f3c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b2728d0dd3ce40678867c94a7d977916",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b2baf44eae52473cb6cda7b1debece01",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b2c26292b7434733878a9b042f44de89",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b42e6dbfbc864097af182cbff5c0c1fb",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b43489e37a5c4df88f15844292a55ec7",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "b4a40cb6acd441acb83cfe0240bf910d",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4750.99951171875,
+            "y": -4274.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d0b10e52e21941b183f5f635894c76c8"
+        },
+        {
+            "m_Id": "0d6a57754b824f6db9cefa6953bc06a9"
+        },
+        {
+            "m_Id": "773b90134e894e429203c0c83e80b9de"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "b571db753a1948d5a6f1de4e7d0c7238",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5581.99951171875,
+            "y": -3867.0,
+            "width": 183.99998474121095,
+            "height": 100.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b3ff4ee364f4d7a923b530ad60d8762"
+        },
+        {
+            "m_Id": "c183b5bd9bbe45089f93996e73110918"
+        },
+        {
+            "m_Id": "1196ae398cc348349ab0c1a23fdab4bd"
+        },
+        {
+            "m_Id": "9327cb5f5e6b46f1bd79f91ef9dca3b7"
+        },
+        {
+            "m_Id": "d804b5a6c657409196addf2b39199a4f"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b691728a389a417d9b4f2d02541209c2",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b7f9ac55517141868bfb9d2ad6429792",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b85d677872b44421bf5536f42ba0267c",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "bc9afcb18afa4ccc82d2cdc34d3f4641",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5392.0,
+            "y": -3867.0,
+            "width": 125.99999237060547,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5e42524569844befad16fda5a94eb9cb"
+        },
+        {
+            "m_Id": "54d7a93ffec5490aa4591da23a21b693"
+        },
+        {
+            "m_Id": "aa2794b8f0e24bf281d22e0fef0647be"
+        },
+        {
+            "m_Id": "200245fc8bbe4826b209ab5f7ffe074c"
+        },
+        {
+            "m_Id": "fc2e62201c5847e798fd939314413fcd"
+        },
+        {
+            "m_Id": "fe11fa80cc1847a5a37f6757d521cf25"
+        },
+        {
+            "m_Id": "de0c6f7f7af94defa6c3dbc6433de9d4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c183b5bd9bbe45089f93996e73110918",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "c234e5216678436195ee1a5914bc79da",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4446.0,
+            "y": -2347.0,
+            "width": 222.0,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "f68d9dee5cbc43cdb355d8fadae602d3"
+        },
+        {
+            "m_Id": "3db1608e927e4102a3c3a88e9fcab39a"
+        },
+        {
+            "m_Id": "0f7ffb6d2de4447f9736780cbcee8e07"
+        },
+        {
+            "m_Id": "d4954b7bbbb0412cbc997bcbe7dfa808"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "c35312edaa2344788b1964ee2f63a236",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "c3e6d7c20c184bf39fd8822130e693e7",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "c422a9a9ff824176aad2241f58c44d0b",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "c478c32c45884c57a62f7b2aa8ddc3b0",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c52a1744a9a14989b0ae452ad6de6061",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c6bdb985bc16435fa72f5a3c81bb633c",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c7d4094601ac4bc1aead609c72b1f1c1",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c7ddee91dc5b48dc828309c77fdb0b88",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4266.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a7942746b5564dc7bbbae1deb2403022"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "c88fcbaeea954a5f9c68c339fa8b604d",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c9b722d107ce4cd6a748c883472b9b0f",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c9d7f0dbae7d422985a1cc87c025e76b",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4315.0,
+            "y": -3165.0,
+            "width": 144.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "79147f6986644769b58d9ed64fe771e1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "c9ec735d1a1046769e5601b2c97c849a",
+    "m_Guid": {
+        "m_GuidSerialized": "281a9526-c332-4471-a44e-ece4a1e95ef6"
+    },
+    "m_Name": "Face Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_75569DEA",
+    "m_OverrideReferenceName": "_FaceTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ca2a1083dc014f39ab8af0cdf140866b",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_Guid": {
+        "m_GuidSerialized": "21009d12-8d94-4273-b0d0-a8ee0608ddcf"
+    },
+    "m_Name": "OutlineMode",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_OverrideReferenceName": "_OutlineMode",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cb5e9f9567e84f8fa5463efc0e256e19",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "cb7117ecb1d047a8b2cb00ed552cb181",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Alpha",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3032.66650390625,
+            "y": -3029.33349609375,
+            "width": 200.0,
+            "height": 41.33349609375
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "724e17584e97443e9e285dfa7253c8e3"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Alpha"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cc88101667c9488f9c5a716e851c1b21",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cce40479b6284b6fa3174db9f09d0ac9",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "cd7281fb41aa4e61ac0fdf71d4f4bd46",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cda5e3b4c1054bf3a65c0b7ec6bc778a",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "cdddee3a537c464697357f11b966f9b8",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4420.0,
+            "y": -4483.0,
+            "width": 156.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "41b9b79b3859472882bcea393703eec0"
+        },
+        {
+            "m_Id": "c7d4094601ac4bc1aead609c72b1f1c1"
+        },
+        {
+            "m_Id": "767769f736d5478cba5f10a415e28e7f"
+        },
+        {
+            "m_Id": "b691728a389a417d9b4f2d02541209c2"
+        },
+        {
+            "m_Id": "045c4f6b050549c7a0efb208e6349779"
+        },
+        {
+            "m_Id": "509e6f38505b4b0695b263706a55028f"
+        },
+        {
+            "m_Id": "204dacb5a95b424facf11cb6f65bd188"
+        },
+        {
+            "m_Id": "35cbea6373dd4e4f8d0fea36e8add392"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "ced40c943add479a86f25f7fb5ed59da",
+    "m_Guid": {
+        "m_GuidSerialized": "af17e4ab-54fe-4482-a9c5-4e4bc9076517"
+    },
+    "m_Name": "_ScaleRatioA",
+    "m_DefaultRefNameVersion": 1,
+    "m_RefNameGeneratedByDisplayName": "_ScaleRatioA",
+    "m_DefaultReferenceName": "_ScaleRatioA",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "cfaf3f3a5a1146e194cddad30c95aada",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d0a791a544614667962a9a9a9ce0c68a",
+    "m_Title": "Screen Space Ratio",
+    "m_Position": {
+        "x": -6179.99951171875,
+        "y": -3422.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d0b10e52e21941b183f5f635894c76c8",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d1a17e42e7a04dc38984e3c01149445b",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d219977210094c0082c517d8dc00c8bb",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d258902c6ec74942afdb9ebf8c1d07f8",
+    "m_Title": "Generate Normal",
+    "m_Position": {
+        "x": -4511.33349609375,
+        "y": -3999.3330078125
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "d30452ac6b244ecca03df4d7b4de9f81",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d48c3871e3064027a10ae9f4babd3be0",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlaySoftness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d4954b7bbbb0412cbc997bcbe7dfa808",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "d4df208fc23b42f2b52364124f1b661c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5268.0,
+            "y": -3261.0,
+            "width": 159.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "757174b6f25040fdbb20355a21752222"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "d5173cc3c6cd4f1998550f3187a3e9c8",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d6a6a119394e4082a11bc024a6e42ef8",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d804b5a6c657409196addf2b39199a4f",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d880558893fb442b9320cf55885d1117",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d8edec16956c4f15b7d51d6ec10753f4",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d9bcb754db834583b6518c5ed5152114",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d9dc4839ee2847999110bdb234d6041a",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "da7a06d393a44089842070d51d2aa0a6",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "daaf032a109749a88c9b8ff8e1f8b541",
+    "m_Title": "Offset Scale",
+    "m_Position": {
+        "x": -5747.99951171875,
+        "y": -3961.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "dbcb748279484a4590e53518c49122b8",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4778.0,
+            "y": -2771.0,
+            "width": 145.0,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7a0f504e4175406dbd8134250f4e350b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "dc75c4e3a1bc4bb0a128086c2b0679a5",
+    "m_Guid": {
+        "m_GuidSerialized": "85cd941f-2fd2-43a3-b0fa-9f728bfb4220"
+    },
+    "m_Name": "Face Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_99AFBB3D",
+    "m_OverrideReferenceName": "_FaceColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "dcd51c93d3b64f05a938b3334f343654",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "de0c6f7f7af94defa6c3dbc6433de9d4",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "deac82280a2b43078e0e40863e2d974c",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "def8e0b9d8384982bc5b4c32d877e458",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "dff7a66b353a4023b29c9d937da77960",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4602.0,
+            "y": -4298.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7b8a19bd115e4167a25b59cb3218a817"
+        },
+        {
+            "m_Id": "0b57f2d35157477ab2b29a5aac14ae8b"
+        },
+        {
+            "m_Id": "e9e06fcb161e44ba8cc9f6f60264df78"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "e141833aa78b4fd59ecad949beb43a78",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e2d28f29bbac4983a401574480b5ca28",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "e386b183a18245a796b024022f7f3074",
+    "m_Id": 0,
+    "m_DisplayName": "Normal (Object Space)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "NormalOS",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e444f2c81d1e48329fa2c91005277e8d",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "e495a9f7a11f4eb89334e83be154ceb9",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e51a636b2621440eb94cc802c1cf4bfc",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "e591df3a1eb94e259b762f2830b407e2",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Emission",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4590bfa2a0664b65b6f073bae33a071f"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Emission"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e6e80c6b0db545cda26b079a9a78fbb3",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "e818605f8f5a4f01bf61caaa33693581",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "ComputeSDF44 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4144.0,
+            "y": -3369.0,
+            "width": 244.0,
+            "height": 214.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "641eda269d7b4da9acb65f8d50035ea9"
+        },
+        {
+            "m_Id": "f6823778a3cf42d5bbe8a83e5f9c9fa3"
+        },
+        {
+            "m_Id": "9c26fdddba244d36a854298c00473247"
+        },
+        {
+            "m_Id": "f684c5678e9e4f078157a3ab7ef5057b"
+        },
+        {
+            "m_Id": "14ad19bf20a140dd88d58452d7df688b"
+        },
+        {
+            "m_Id": "215a82c127204988b751de7d3a39b955"
+        },
+        {
+            "m_Id": "c478c32c45884c57a62f7b2aa8ddc3b0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF44",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "e9e06fcb161e44ba8cc9f6f60264df78",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebbd94a7102a4457a48ac492de3bff14",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebd6d75abcb84108bcadbfe7ee5f6244",
+    "m_Id": 7,
+    "m_DisplayName": "TextureHeight",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureHeight",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "ec184d6d9fb2494897774c9e7d279e6d",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4799.0,
+            "y": -2625.0,
+            "width": 165.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ca2a1083dc014f39ab8af0cdf140866b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "07946387933e416db576b677f0711e5f"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "ec1f2e8bc9fd4ae38b133c60ee6c49b8",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4957.99951171875,
+            "y": -3204.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "748c31bbcecc4b30bec2e42c0612175b"
+        },
+        {
+            "m_Id": "4bda5c294e1949138d033640e1d385b4"
+        },
+        {
+            "m_Id": "4e64dac49ddc47c3b5b1e27b17a08304"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "ec79eb447dfd47a9b3380344c6a60f43",
+    "m_Guid": {
+        "m_GuidSerialized": "54c77f8b-0534-4b35-a3f0-83ab2ebe6c1f"
+    },
+    "m_Name": "_OutlineTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1774DE83",
+    "m_OverrideReferenceName": "_OutlineTex_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "ecf16c34d46f4502ac601f0c38c7576b",
+    "m_Title": "Vertex Color",
+    "m_Position": {
+        "x": -3448.000244140625,
+        "y": -3579.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ed1d1f1613334c3bb904dd08161cd7e5",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ed6c215a65584deeaefad1d2c7743044",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "edbee7a8952b46529ac5ad0365775774",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
+    "m_ObjectId": "ef0b93f78372439696f50711eaf57d90",
+    "m_Id": 0,
+    "m_DisplayName": "Base Color",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "BaseColor",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.7353569269180298,
+        "y": 0.7353569269180298,
+        "z": 0.7353569269180298
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_ColorMode": 0,
+    "m_DefaultColor": {
+        "r": 0.5,
+        "g": 0.5,
+        "b": 0.5,
+        "a": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "ef9738ec7e894772a14e9dce441c16c6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "f01d52cdcb1647aab35782b4af535efd",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f1fb18f75405424884a776bfd24e79e9",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "f23a8b2b7c85478388ff7a8c8a6de740",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Layer4 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3849.999755859375,
+            "y": -3286.0,
+            "width": 193.0,
+            "height": 189.99998474121095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0fac35636fca4474a6afaefc3c757775"
+        },
+        {
+            "m_Id": "cc88101667c9488f9c5a716e851c1b21"
+        },
+        {
+            "m_Id": "68ec7c31365549d6a8ce883edfc02de2"
+        },
+        {
+            "m_Id": "02559cbe5ad441a3904ccb75ded2b2c5"
+        },
+        {
+            "m_Id": "34a67e0fef884f9399e674d9eeaf720c"
+        },
+        {
+            "m_Id": "3802c81c3be24823aa1d7c9997a33c29"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer4",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "f2903158b3624759bca1fcd843698078",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 2.0,
+        "y": 2.0,
+        "z": 2.0,
+        "w": 2.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "f2a351a5375c441b8d9ab7e2c9545a77",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "f383b24f0bc6434dafe44b3e3d338a63",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6012.99951171875,
+            "y": -3209.0,
+            "width": 183.99998474121095,
+            "height": 100.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "fb5e1e2a67c14602808358686bb75091"
+        },
+        {
+            "m_Id": "712da461f71a454db59d349f752d41ee"
+        },
+        {
+            "m_Id": "b000f852aa984e9dae25b125a4607f4e"
+        },
+        {
+            "m_Id": "7b3b88c5975841d6b6d5c3c5515055a0"
+        },
+        {
+            "m_Id": "8a39319405ad44cb8b7aae71c41dcd01"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "f3d31c1f18d8491a8ecf5cbc37e4b7db",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4321.99951171875,
+            "y": -3246.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ed1d1f1613334c3bb904dd08161cd7e5"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f42ad06b3c6a45d3ab33de904c063412",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f48f04ad45d046a8b88e71731ed506e7",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "f4ecc442a2d246759f7c2c0412953d28",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Normal",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a3f8b6e8ae7f48e2989a029904401502"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Normal"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f6823778a3cf42d5bbe8a83e5f9c9fa3",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f684c5678e9e4f078157a3ab7ef5057b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 3.0,
+        "y": 2.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "f68d9dee5cbc43cdb355d8fadae602d3",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "f814deb543c24fbbafbcdb5071d96022",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4600.0,
+            "y": -3245.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "abd59150589b436cadf8c9e6f43ccb8e"
+        },
+        {
+            "m_Id": "7acfafd73b8c4dfab8c55c18a887e087"
+        },
+        {
+            "m_Id": "928621a3ca2d41c89a10336bbbc81ddc"
+        },
+        {
+            "m_Id": "b7f9ac55517141868bfb9d2ad6429792"
+        },
+        {
+            "m_Id": "09b1b86c1c074337a4c439d3a308dd2e"
+        },
+        {
+            "m_Id": "1f247658c7ba45fb93c41f51e21acb0d"
+        },
+        {
+            "m_Id": "d30452ac6b244ecca03df4d7b4de9f81"
+        },
+        {
+            "m_Id": "215b30ae27784ec3a13360a9029af283"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f864c900600e427ba7793f00c715e971",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fa6de3be9f5b4411b5081b49e645f424",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DivideNode",
+    "m_ObjectId": "faace8101df943d8956faa31728cb004",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Divide",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5254.99951171875,
+            "y": -3891.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "77e28f3e930b4c249145630ec961af95"
+        },
+        {
+            "m_Id": "f2903158b3624759bca1fcd843698078"
+        },
+        {
+            "m_Id": "30ca940fe2794c949f2a1d4d2caaa446"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "facc84930f544fd7a0205a6176b18ac0",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "fb15d0ba56d54a6192f11e107aeb5fa8",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "fb5e1e2a67c14602808358686bb75091",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "fc2e62201c5847e798fd939314413fcd",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fd0b096ed5b74f9e9ec51327be200731",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "fdb77c3e92ee497b88ca5dc46dc45350",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4208.0,
+            "y": -2371.0,
+            "width": 180.0,
+            "height": 180.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4328cdbf78b94c038fd614c59bfe1cac"
+        },
+        {
+            "m_Id": "04dfcc9ff13a4bf282ed46faec39d15c"
+        },
+        {
+            "m_Id": "71dd947935b64ce38f0d25406dde447b"
+        },
+        {
+            "m_Id": "61a6ac5f29344d109411f26850ab0a96"
+        },
+        {
+            "m_Id": "44806230fa384c1e95f9c5918a14f056"
+        },
+        {
+            "m_Id": "4eb3c00a1ca44e10be833b7ca61ff059"
+        },
+        {
+            "m_Id": "57abc172afd449e2a4d567f93432507b"
+        },
+        {
+            "m_Id": "cda5e3b4c1054bf3a65c0b7ec6bc778a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "fe11fa80cc1847a5a37f6757d521cf25",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP UNLIT.shadergraph.meta b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP UNLIT.shadergraph.meta
new file mode 100644
index 0000000000..a2f732a3c3
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-HDRP UNLIT.shadergraph.meta	
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: f63d574838ccfb44f84acc05fed0af48
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader
index 7019aaf4b0..603df2c767 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader	
@@ -6,14 +6,14 @@
 Shader "TextMeshPro/Mobile/Distance Field - Masking" {
 
 Properties {
-	[HDR]_FaceColor		("Face Color", Color) = (1,1,1,1)
+	_FaceColor		    ("Face Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineWidth		("Outline Thickness", Range(0,1)) = 0
 	_OutlineSoftness	("Outline Softness", Range(0,1)) = 0
 
-	[HDR]_UnderlayColor	("Border Color", Color) = (0,0,0,.5)
+	_UnderlayColor	    ("Border Color", Color) = (0,0,0,.5)
 	_UnderlayOffsetX 	("Border OffsetX", Range(-1,1)) = 0
 	_UnderlayOffsetY 	("Border OffsetY", Range(-1,1)) = 0
 	_UnderlayDilate		("Border Dilate", Range(-1,1)) = 0
@@ -99,35 +99,41 @@ SubShader {
 		#include "UnityUI.cginc"
 		#include "TMPro_Properties.cginc"
 
-		struct vertex_t {
+		struct vertex_t
+		{
 			float4	vertex			: POSITION;
 			float3	normal			: NORMAL;
 			fixed4	color			: COLOR;
-			float2	texcoord0		: TEXCOORD0;
+			float4	texcoord0		: TEXCOORD0;
 			float2	texcoord1		: TEXCOORD1;
 		};
 
-		struct pixel_t {
+		struct pixel_t
+		{
 			float4	vertex			: SV_POSITION;
 			fixed4	faceColor		: COLOR;
 			fixed4	outlineColor	: COLOR1;
 			float4	texcoord0		: TEXCOORD0;			// Texture UV, Mask UV
 			half4	param			: TEXCOORD1;			// Scale(x), BiasIn(y), BiasOut(z), Bias(w)
 			half4	mask			: TEXCOORD2;			// Position in clip space(xy), Softness(zw)
-		#if (UNDERLAY_ON | UNDERLAY_INNER)
+
+		    #if (UNDERLAY_ON | UNDERLAY_INNER)
 			float4	texcoord1		: TEXCOORD3;			// Texture UV, alpha, reserved
 			half2	underlayParam	: TEXCOORD4;			// Scale(x), Bias(y)
-		#endif
+		    #endif
 		};
 
 		float _MaskWipeControl;
 		float _MaskEdgeSoftness;
 		fixed4 _MaskEdgeColor;
 		bool _MaskInverse;
+		float _UIMaskSoftnessX;
+        float _UIMaskSoftnessY;
+        int _UIVertexColorAlwaysGammaSpace;
 
 		pixel_t VertShader(vertex_t input)
 		{
-			float bold = step(input.texcoord1.y, 0);
+			float bold = step(input.texcoord0.w, 0);
 
 			float4 vert = input.vertex;
 			vert.x += _VertexOffsetX;
@@ -138,7 +144,7 @@ SubShader {
 			pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
 
 			float scale = rsqrt(dot(pixelSize, pixelSize));
-			scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
+			scale *= abs(input.texcoord0.w) * _GradientScale * (_Sharpness + 1);
 			if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
 
 			float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
@@ -150,6 +156,10 @@ SubShader {
 			float bias = (0.5 - weight) * scale - 0.5;
 			float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale;
 
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                input.color.rgb = UIGammaToLinear(input.color.rgb);
+            }
 			float opacity = input.color.a;
 					#if (UNDERLAY_ON | UNDERLAY_INNER)
 					opacity = 1.0;
@@ -163,7 +173,7 @@ SubShader {
 			outlineColor.rgb *= outlineColor.a;
 			outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2))));
 
-		#if (UNDERLAY_ON | UNDERLAY_INNER)
+		    #if (UNDERLAY_ON | UNDERLAY_INNER)
 
 			layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale);
 			float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale);
@@ -171,11 +181,12 @@ SubShader {
 			float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
 			float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
 			float2 layerOffset = float2(x, y);
-		#endif
+		    #endif
 
 			// Generate UV for the Masking Texture
 			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
 			float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
 
 			// Structure for pixel shader
 			pixel_t output = {
@@ -184,11 +195,11 @@ SubShader {
 				outlineColor,
 				float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y),
 				half4(scale, bias - outline, bias + outline, bias),
-				half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)),
-			#if (UNDERLAY_ON | UNDERLAY_INNER)
+				half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy)),
+			    #if (UNDERLAY_ON | UNDERLAY_INNER)
 				float4(input.texcoord0 + layerOffset, input.color.a, 0),
 				half2(layerScale, layerBias),
-			#endif
+			    #endif
 			};
 
 			return output;
@@ -201,41 +212,41 @@ SubShader {
 			half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x;
 			half4 c = input.faceColor * saturate(d - input.param.w);
 
-		#ifdef OUTLINE_ON
+		    #ifdef OUTLINE_ON
 			c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z));
 			c *= saturate(d - input.param.y);
-		#endif
+		    #endif
 
-		#if UNDERLAY_ON
+		    #if UNDERLAY_ON
 			d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
 			c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a);
-		#endif
+		    #endif
 
-		#if UNDERLAY_INNER
+		    #if UNDERLAY_INNER
 			half sd = saturate(d - input.param.z);
 			d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
 			c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a);
-		#endif
+		    #endif
 
-		// Alternative implementation to UnityGet2DClipping with support for softness.
-		//#if UNITY_UI_CLIP_RECT
+		    // Alternative implementation to UnityGet2DClipping with support for softness.
+		    //#if UNITY_UI_CLIP_RECT
 			half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
 			c *= m.x * m.y;
-		//#endif
+		    //#endif
 
-		float a = abs(_MaskInverse - tex2D(_MaskTex, input.texcoord0.zw).a);
-		float t = a + (1 - _MaskWipeControl) * _MaskEdgeSoftness - _MaskWipeControl;
-		a = saturate(t / _MaskEdgeSoftness);
-		c.rgb = lerp(_MaskEdgeColor.rgb*c.a, c.rgb, a);
-		c *= a;
+		    float a = abs(_MaskInverse - tex2D(_MaskTex, input.texcoord0.zw).a);
+		    float t = a + (1 - _MaskWipeControl) * _MaskEdgeSoftness - _MaskWipeControl;
+		    a = saturate(t / _MaskEdgeSoftness);
+		    c.rgb = lerp(_MaskEdgeColor.rgb*c.a, c.rgb, a);
+		    c *= a;
 
-		#if (UNDERLAY_ON | UNDERLAY_INNER)
+		    #if (UNDERLAY_ON | UNDERLAY_INNER)
 			c *= input.texcoord1.z;
-		#endif
+		    #endif
 
-    #if UNITY_UI_ALPHACLIP
+		    #if UNITY_UI_ALPHACLIP
 			clip(c.a - 0.001);
-		#endif
+		    #endif
 
 			return c;
 		}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader
index ce82bed5d2..3edca76c6b 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader	
@@ -6,14 +6,14 @@
 Shader "TextMeshPro/Mobile/Distance Field Overlay" {
 
 Properties {
-	[HDR]_FaceColor		("Face Color", Color) = (1,1,1,1)
+	_FaceColor		    ("Face Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineWidth		("Outline Thickness", Range(0,1)) = 0
 	_OutlineSoftness	("Outline Softness", Range(0,1)) = 0
 
-	[HDR]_UnderlayColor	("Border Color", Color) = (0,0,0,.5)
+	_UnderlayColor	    ("Border Color", Color) = (0,0,0,.5)
 	_UnderlayOffsetX 	("Border OffsetX", Range(-1,1)) = 0
 	_UnderlayOffsetY 	("Border OffsetY", Range(-1,1)) = 0
 	_UnderlayDilate		("Border Dilate", Range(-1,1)) = 0
@@ -93,16 +93,18 @@ SubShader {
 		#include "UnityUI.cginc"
 		#include "TMPro_Properties.cginc"
 
-		struct vertex_t {
+		struct vertex_t
+		{
 			UNITY_VERTEX_INPUT_INSTANCE_ID
 			float4	vertex			: POSITION;
 			float3	normal			: NORMAL;
 			fixed4	color			: COLOR;
-			float2	texcoord0		: TEXCOORD0;
+			float4	texcoord0		: TEXCOORD0;
 			float2	texcoord1		: TEXCOORD1;
 		};
 
-		struct pixel_t {
+		struct pixel_t
+		{
 			UNITY_VERTEX_INPUT_INSTANCE_ID
 			UNITY_VERTEX_OUTPUT_STEREO
 			float4	vertex			: SV_POSITION;
@@ -111,12 +113,17 @@ SubShader {
 			float4	texcoord0		: TEXCOORD0;			// Texture UV, Mask UV
 			half4	param			: TEXCOORD1;			// Scale(x), BiasIn(y), BiasOut(z), Bias(w)
 			half4	mask			: TEXCOORD2;			// Position in clip space(xy), Softness(zw)
-		#if (UNDERLAY_ON | UNDERLAY_INNER)
+
+		    #if (UNDERLAY_ON | UNDERLAY_INNER)
 			float4	texcoord1		: TEXCOORD3;			// Texture UV, alpha, reserved
 			half2	underlayParam	: TEXCOORD4;			// Scale(x), Bias(y)
-		#endif
+		    #endif
 		};
 
+		float _UIMaskSoftnessX;
+        float _UIMaskSoftnessY;
+        int _UIVertexColorAlwaysGammaSpace;
+
 
 		pixel_t VertShader(vertex_t input)
 		{
@@ -127,7 +134,7 @@ SubShader {
 			UNITY_TRANSFER_INSTANCE_ID(input, output);
 			UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
 
-			float bold = step(input.texcoord1.y, 0);
+			float bold = step(input.texcoord0.w, 0);
 
 			float4 vert = input.vertex;
 			vert.x += _VertexOffsetX;
@@ -138,7 +145,7 @@ SubShader {
 			pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
 
 			float scale = rsqrt(dot(pixelSize, pixelSize));
-			scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
+			scale *= abs(input.texcoord0.w) * _GradientScale * (_Sharpness + 1);
 			if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
 
 			float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
@@ -150,10 +157,14 @@ SubShader {
 			float bias = (0.5 - weight) * scale - 0.5;
 			float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale;
 
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                input.color.rgb = UIGammaToLinear(input.color.rgb);
+            }
 			float opacity = input.color.a;
-		#if (UNDERLAY_ON | UNDERLAY_INNER)
+		    #if (UNDERLAY_ON | UNDERLAY_INNER)
 				opacity = 1.0;
-		#endif
+		    #endif
 
 			fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor;
 			faceColor.rgb *= faceColor.a;
@@ -163,14 +174,14 @@ SubShader {
 			outlineColor.rgb *= outlineColor.a;
 			outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2))));
 
-		#if (UNDERLAY_ON | UNDERLAY_INNER)
+		    #if (UNDERLAY_ON | UNDERLAY_INNER)
 			layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale);
 			float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale);
 
 			float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
 			float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
 			float2 layerOffset = float2(x, y);
-		#endif
+		    #endif
 
 			// Generate UV for the Masking Texture
 			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
@@ -182,7 +193,8 @@ SubShader {
 			output.outlineColor = outlineColor;
 			output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y);
 			output.param = half4(scale, bias - outline, bias + outline, bias);
-			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
 			#if (UNDERLAY_ON || UNDERLAY_INNER)
 			output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0);
 			output.underlayParam = half2(layerScale, layerBias);
@@ -200,35 +212,35 @@ SubShader {
 			half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x;
 			half4 c = input.faceColor * saturate(d - input.param.w);
 
-		#ifdef OUTLINE_ON
+		    #ifdef OUTLINE_ON
 			c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z));
 			c *= saturate(d - input.param.y);
-		#endif
+		    #endif
 
-		#if UNDERLAY_ON
+		    #if UNDERLAY_ON
 			d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
 			c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a);
-		#endif
+		    #endif
 
-		#if UNDERLAY_INNER
+		    #if UNDERLAY_INNER
 			half sd = saturate(d - input.param.z);
 			d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
 			c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a);
-		#endif
+		    #endif
 
-		// Alternative implementation to UnityGet2DClipping with support for softness.
-		#if UNITY_UI_CLIP_RECT
+		    // Alternative implementation to UnityGet2DClipping with support for softness.
+		    #if UNITY_UI_CLIP_RECT
 			half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
 			c *= m.x * m.y;
-		#endif
+		    #endif
 
-		#if (UNDERLAY_ON | UNDERLAY_INNER)
+		    #if (UNDERLAY_ON | UNDERLAY_INNER)
 			c *= input.texcoord1.z;
-		#endif
+		    #endif
 
-    #if UNITY_UI_ALPHACLIP
+            #if UNITY_UI_ALPHACLIP
 			clip(c.a - 0.001);
-		#endif
+		    #endif
 
 			return c;
 		}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader
index df4d5b0b0f..43b317d3fb 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader	
@@ -6,14 +6,14 @@
 Shader "TextMeshPro/Mobile/Distance Field SSD" {
 
 Properties {
-	[HDR]_FaceColor		("Face Color", Color) = (1,1,1,1)
+	_FaceColor		    ("Face Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineWidth		("Outline Thickness", Range(0,1)) = 0
 	_OutlineSoftness	("Outline Softness", Range(0,1)) = 0
 
-	[HDR]_UnderlayColor		("Border Color", Color) = (0,0,0,.5)
+	_UnderlayColor		("Border Color", Color) = (0,0,0,.5)
 	_UnderlayOffsetX 	("Border OffsetX", Range(-1,1)) = 0
 	_UnderlayOffsetY 	("Border OffsetY", Range(-1,1)) = 0
 	_UnderlayDilate		("Border Dilate", Range(-1,1)) = 0
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile-2-Pass.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile-2-Pass.shader
new file mode 100644
index 0000000000..2c8e8dad9b
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile-2-Pass.shader	
@@ -0,0 +1,389 @@
+// Simplified SDF shader:
+// - No Shading Option (bevel / bump / env map)
+// - No Glow Option
+// - Softness is applied on both side of the outline
+
+Shader "TextMeshPro/Mobile/Distance Field - 2 Pass" {
+
+Properties {
+	_FaceColor          ("Face Color", Color) = (1,1,1,1)
+	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
+
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
+	_OutlineWidth		("Outline Thickness", Range(0,1)) = 0
+	_OutlineSoftness	("Outline Softness", Range(0,1)) = 0
+
+	_UnderlayColor	    ("Border Color", Color) = (0,0,0,.5)
+	_UnderlayOffsetX 	("Border OffsetX", Range(-1,1)) = 0
+	_UnderlayOffsetY 	("Border OffsetY", Range(-1,1)) = 0
+	_UnderlayDilate		("Border Dilate", Range(-1,1)) = 0
+	_UnderlaySoftness 	("Border Softness", Range(0,1)) = 0
+
+	_WeightNormal		("Weight Normal", float) = 0
+	_WeightBold			("Weight Bold", float) = .5
+
+	_ShaderFlags		("Flags", float) = 0
+	_ScaleRatioA		("Scale RatioA", float) = 1
+	_ScaleRatioB		("Scale RatioB", float) = 1
+	_ScaleRatioC		("Scale RatioC", float) = 1
+
+	_MainTex			("Font Atlas", 2D) = "white" {}
+	_TextureWidth		("Texture Width", float) = 512
+	_TextureHeight		("Texture Height", float) = 512
+	_GradientScale		("Gradient Scale", float) = 5
+	_ScaleX				("Scale X", float) = 1
+	_ScaleY				("Scale Y", float) = 1
+	_PerspectiveFilter	("Perspective Correction", Range(0, 1)) = 0.875
+	_Sharpness			("Sharpness", Range(-1,1)) = 0
+
+	_VertexOffsetX		("Vertex OffsetX", float) = 0
+	_VertexOffsetY		("Vertex OffsetY", float) = 0
+
+	_ClipRect			("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
+	_MaskSoftnessX		("Mask SoftnessX", float) = 0
+	_MaskSoftnessY		("Mask SoftnessY", float) = 0
+
+	_StencilComp		("Stencil Comparison", Float) = 8
+	_Stencil			("Stencil ID", Float) = 0
+	_StencilOp			("Stencil Operation", Float) = 0
+	_StencilWriteMask	("Stencil Write Mask", Float) = 255
+	_StencilReadMask	("Stencil Read Mask", Float) = 255
+
+	_CullMode			("Cull Mode", Float) = 0
+	_ColorMask			("Color Mask", Float) = 15
+}
+
+SubShader {
+
+	// Draw Outline and Underlay
+	Name "Outline"
+
+	Tags
+	{
+		"Queue"="Transparent"
+		"IgnoreProjector"="True"
+		"RenderType"="Transparent"
+	}
+
+	Stencil
+	{
+		Ref [_Stencil]
+		Comp [_StencilComp]
+		Pass [_StencilOp]
+		ReadMask [_StencilReadMask]
+		WriteMask [_StencilWriteMask]
+	}
+
+	Cull [_CullMode]
+	ZWrite Off
+	Lighting Off
+	Fog { Mode Off }
+	ZTest [unity_GUIZTestMode]
+	Blend One OneMinusSrcAlpha
+	ColorMask [_ColorMask]
+
+	Pass {
+		CGPROGRAM
+		#pragma vertex VertShader
+		#pragma fragment PixShader
+		#pragma shader_feature __ OUTLINE_ON
+		#pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER
+
+		#pragma multi_compile __ UNITY_UI_CLIP_RECT
+		#pragma multi_compile __ UNITY_UI_ALPHACLIP
+
+		#include "UnityCG.cginc"
+		#include "UnityUI.cginc"
+		#include "TMPro_Properties.cginc"
+
+		struct vertex_t {
+			UNITY_VERTEX_INPUT_INSTANCE_ID
+			float4	vertex			: POSITION;
+			float3	normal			: NORMAL;
+			fixed4	color			: COLOR;
+			float4	texcoord0		: TEXCOORD0;
+			float2	texcoord1		: TEXCOORD1;
+		};
+
+		struct pixel_t {
+			UNITY_VERTEX_INPUT_INSTANCE_ID
+			UNITY_VERTEX_OUTPUT_STEREO
+			float4	vertex			: SV_POSITION;
+			fixed4	faceColor		: COLOR;
+			fixed4	outlineColor	: COLOR1;
+			float4	texcoord0		: TEXCOORD0;			// Texture UV, Mask UV
+			half4	param			: TEXCOORD1;			// Scale(x), BiasIn(y), BiasOut(z), Bias(w)
+			half4	mask			: TEXCOORD2;			// Position in clip space(xy), Softness(zw)
+			#if (UNDERLAY_ON | UNDERLAY_INNER)
+			float4	texcoord1		: TEXCOORD3;			// Texture UV, alpha, reserved
+			half2	underlayParam	: TEXCOORD4;			// Scale(x), Bias(y)
+			#endif
+		};
+
+		float _UIMaskSoftnessX;
+        float _UIMaskSoftnessY;
+
+		pixel_t VertShader(vertex_t input)
+		{
+			pixel_t output;
+
+			UNITY_INITIALIZE_OUTPUT(pixel_t, output);
+			UNITY_SETUP_INSTANCE_ID(input);
+			UNITY_TRANSFER_INSTANCE_ID(input, output);
+			UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
+
+			const float bold = step(input.texcoord0.w, 0);
+
+			float4 vert = input.vertex;
+			vert.x += _VertexOffsetX;
+			vert.y += _VertexOffsetY;
+			float4 vPosition = UnityObjectToClipPos(vert);
+
+			float2 pixelSize = vPosition.w;
+			pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
+
+			float scale = rsqrt(dot(pixelSize, pixelSize));
+			scale *= abs(input.texcoord0.w) * _GradientScale * (_Sharpness + 1);
+			if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
+
+			float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
+			weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
+
+			float layerScale = scale;
+
+			scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale);
+			float bias = (0.5 - weight) * scale - 0.5;
+			const float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale;
+
+			float opacity = input.color.a;
+			#if (UNDERLAY_ON | UNDERLAY_INNER)
+			opacity = 1.0;
+			#endif
+
+			fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor;
+			faceColor.rgb *= faceColor.a;
+
+			fixed4 outlineColor = _OutlineColor;
+			outlineColor.a *= opacity;
+			outlineColor.rgb *= outlineColor.a;
+			//outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, outline * 2)));
+
+			#if (UNDERLAY_ON | UNDERLAY_INNER)
+			layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale);
+			float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale);
+
+			float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
+			float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
+			float2 layerOffset = float2(x, y);
+			#endif
+
+			// Generate UV for the Masking Texture
+			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
+			float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
+
+			// Populate structure for pixel shader
+			output.vertex = vPosition;
+			output.faceColor = faceColor;
+			output.outlineColor = outlineColor;
+			output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y);
+			output.param = half4(scale, bias - outline, bias + outline, bias);
+
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
+			#if (UNDERLAY_ON || UNDERLAY_INNER)
+			output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0);
+			output.underlayParam = half2(layerScale, layerBias);
+			#endif
+
+			return output;
+		}
+
+
+		// PIXEL SHADER
+		fixed4 PixShader(pixel_t input) : SV_Target
+		{
+			UNITY_SETUP_INSTANCE_ID(input);
+
+			half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x;
+			half4 c = half4(0, 0, 0, 0);
+
+			#if OUTLINE_ON
+			c = input.outlineColor * saturate(d - input.param.y);
+			#endif
+
+			#if UNDERLAY_ON
+			d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
+			c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a);
+			#endif
+
+			#if UNDERLAY_INNER
+			half sd = saturate(d - input.param.z);
+			d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x;
+			c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a);
+			#endif
+
+			// Alternative implementation to UnityGet2DClipping with support for softness.
+			#if UNITY_UI_CLIP_RECT
+			half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
+			c *= m.x * m.y;
+			#endif
+
+			#if (UNDERLAY_ON | UNDERLAY_INNER)
+			c *= input.texcoord1.z;
+		    #endif
+
+		    #if UNITY_UI_ALPHACLIP
+			clip(c.a - 0.001);
+		    #endif
+
+			return c;
+		}
+		ENDCG
+	}
+
+
+	// Draw face
+	Name "Face"
+
+	Tags
+	{
+		"Queue"="Transparent"
+		"IgnoreProjector"="True"
+		"RenderType"="Transparent"
+	}
+
+	Stencil
+	{
+		Ref [_Stencil]
+		Comp [_StencilComp]
+		Pass [_StencilOp]
+		ReadMask [_StencilReadMask]
+		WriteMask [_StencilWriteMask]
+	}
+
+	Cull [_CullMode]
+	ZWrite Off
+	Lighting Off
+	Fog { Mode Off }
+	ZTest [unity_GUIZTestMode]
+	Blend One OneMinusSrcAlpha
+	ColorMask [_ColorMask]
+
+	Pass {
+		CGPROGRAM
+		#pragma vertex VertShader
+		#pragma fragment PixShader
+
+		#pragma multi_compile __ UNITY_UI_CLIP_RECT
+		#pragma multi_compile __ UNITY_UI_ALPHACLIP
+
+		#include "UnityCG.cginc"
+		#include "UnityUI.cginc"
+		#include "TMPro_Properties.cginc"
+
+		struct vertex_t {
+			UNITY_VERTEX_INPUT_INSTANCE_ID
+            float4	vertex			: POSITION;
+			float3	normal			: NORMAL;
+			fixed4	color			: COLOR;
+			float4	texcoord0		: TEXCOORD0;
+			float2	texcoord1		: TEXCOORD1;
+		};
+
+		struct pixel_t {
+			UNITY_VERTEX_INPUT_INSTANCE_ID
+			UNITY_VERTEX_OUTPUT_STEREO
+            float4	vertex			: SV_POSITION;
+			fixed4	faceColor		: COLOR;
+			float4	texcoord0		: TEXCOORD0;			// Texture UV, Mask UV
+			half2	param			: TEXCOORD1;			// Scale(x), BiasIn(y), BiasOut(z), Bias(w)
+			half4	mask			: TEXCOORD2;			// Position in clip space(xy), Softness(zw)
+		};
+
+		float _UIMaskSoftnessX;
+        float _UIMaskSoftnessY;
+        int _UIVertexColorAlwaysGammaSpace;
+
+
+		pixel_t VertShader(vertex_t input)
+		{
+			pixel_t output;
+
+			UNITY_INITIALIZE_OUTPUT(pixel_t, output);
+			UNITY_SETUP_INSTANCE_ID(input);
+			UNITY_TRANSFER_INSTANCE_ID(input, output);
+			UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
+
+			const float bold = step(input.texcoord0.w, 0);
+
+			float4 vert = input.vertex;
+			vert.x += _VertexOffsetX;
+			vert.y += _VertexOffsetY;
+			float4 vPosition = UnityObjectToClipPos(vert);
+
+			float2 pixelSize = vPosition.w;
+			pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
+
+			float scale = rsqrt(dot(pixelSize, pixelSize));
+			scale *= abs(input.texcoord0.w) * _GradientScale * (_Sharpness + 1);
+			if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
+
+			float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
+			weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5;
+
+			scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale);
+			float bias = (0.5 - weight) * scale - 0.5;
+
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                input.color.rgb = UIGammaToLinear(input.color.rgb);
+            }
+			float opacity = input.color.a;
+
+			fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor;
+			faceColor.rgb *= faceColor.a;
+
+			// Generate UV for the Masking Texture
+			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
+			float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
+
+			// Populate structure for pixel shader
+			output.vertex = vPosition;
+			output.faceColor = faceColor;
+			output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y);
+			output.param = half2(scale, bias);
+
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
+
+			return output;
+		}
+
+
+		// PIXEL SHADER
+		fixed4 PixShader(pixel_t input) : SV_Target
+		{
+			UNITY_SETUP_INSTANCE_ID(input);
+
+			half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x;
+			half4 c = input.faceColor * saturate(d - input.param.y);
+
+		    // Alternative implementation to UnityGet2DClipping with support for softness.
+			#if UNITY_UI_CLIP_RECT
+			half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
+			c *= m.x * m.y;
+			#endif
+
+		    #if UNITY_UI_ALPHACLIP
+			clip(c.a - 0.001);
+		    #endif
+
+			return c;
+		}
+		ENDCG
+	}
+
+}
+
+CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
+}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile-2-Pass.shader.meta b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile-2-Pass.shader.meta
new file mode 100644
index 0000000000..75bd98d82a
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile-2-Pass.shader.meta	
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 0178fcb869bafef4690d177d31d17db8
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader
index d3f5866c87..b899d6e9d7 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader	
@@ -6,14 +6,14 @@
 Shader "TextMeshPro/Mobile/Distance Field" {
 
 Properties {
-	[HDR]_FaceColor     ("Face Color", Color) = (1,1,1,1)
+	_FaceColor          ("Face Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineWidth		("Outline Thickness", Range(0,1)) = 0
 	_OutlineSoftness	("Outline Softness", Range(0,1)) = 0
 
-	[HDR]_UnderlayColor	("Border Color", Color) = (0,0,0,.5)
+	_UnderlayColor	    ("Border Color", Color) = (0,0,0,.5)
 	_UnderlayOffsetX 	("Border OffsetX", Range(-1,1)) = 0
 	_UnderlayOffsetY 	("Border OffsetY", Range(-1,1)) = 0
 	_UnderlayDilate		("Border Dilate", Range(-1,1)) = 0
@@ -81,6 +81,7 @@ SubShader {
 
 	Pass {
 		CGPROGRAM
+		#pragma enable_d3d11_debug_symbols
 		#pragma vertex VertShader
 		#pragma fragment PixShader
 		#pragma shader_feature __ OUTLINE_ON
@@ -98,7 +99,7 @@ SubShader {
 			float4	vertex			: POSITION;
 			float3	normal			: NORMAL;
 			fixed4	color			: COLOR;
-			float2	texcoord0		: TEXCOORD0;
+			float4	texcoord0		: TEXCOORD0;
 			float2	texcoord1		: TEXCOORD1;
 		};
 
@@ -117,6 +118,9 @@ SubShader {
 			#endif
 		};
 
+		float _UIMaskSoftnessX;
+        float _UIMaskSoftnessY;
+        int _UIVertexColorAlwaysGammaSpace;
 
 		pixel_t VertShader(vertex_t input)
 		{
@@ -127,7 +131,7 @@ SubShader {
 			UNITY_TRANSFER_INSTANCE_ID(input, output);
 			UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
 
-			float bold = step(input.texcoord1.y, 0);
+			float bold = step(input.texcoord0.w, 0);
 
 			float4 vert = input.vertex;
 			vert.x += _VertexOffsetX;
@@ -138,7 +142,7 @@ SubShader {
 			pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
 
 			float scale = rsqrt(dot(pixelSize, pixelSize));
-			scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
+			scale *= abs(input.texcoord0.w) * _GradientScale * (_Sharpness + 1);
 			if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
 
 			float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
@@ -150,7 +154,11 @@ SubShader {
 			float bias = (0.5 - weight) * scale - 0.5;
 			float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale;
 
-			float opacity = input.color.a;
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                input.color.rgb = UIGammaToLinear(input.color.rgb);
+            }
+            float opacity = input.color.a;
 			#if (UNDERLAY_ON | UNDERLAY_INNER)
 			opacity = 1.0;
 			#endif
@@ -182,7 +190,9 @@ SubShader {
 			output.outlineColor = outlineColor;
 			output.texcoord0 = float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y);
 			output.param = half4(scale, bias - outline, bias + outline, bias);
-			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
+
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
 			#if (UNDERLAY_ON || UNDERLAY_INNER)
 			output.texcoord1 = float4(input.texcoord0 + layerOffset, input.color.a, 0);
 			output.underlayParam = half2(layerScale, layerBias);
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader
index be764aeb95..68d0dfaafc 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader	
@@ -7,15 +7,15 @@ Shader "TextMeshPro/Mobile/Distance Field (Surface)" {
 
 Properties {
 	_FaceTex			("Fill Texture", 2D) = "white" {}
-	[HDR]_FaceColor		("Fill Color", Color) = (1,1,1,1)
+	_FaceColor		    ("Fill Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineTex			("Outline Texture", 2D) = "white" {}
 	_OutlineWidth		("Outline Thickness", Range(0, 1)) = 0
 	_OutlineSoftness	("Outline Softness", Range(0,1)) = 0
 
-	[HDR]_GlowColor		("Color", Color) = (0, 1, 0, 0.5)
+	_GlowColor		    ("Color", Color) = (0, 1, 0, 0.5)
 	_GlowOffset			("Offset", Range(-1,1)) = 0
 	_GlowInner			("Inner", Range(0,1)) = 0.05
 	_GlowOuter			("Outer", Range(0,1)) = 0.05
@@ -99,7 +99,8 @@ SubShader {
 		#pragma multi_compile_shadowcaster
 		#include "UnityCG.cginc"
 
-		struct v2f {
+		struct v2f
+		{
 			V2F_SHADOW_CASTER;
 			float2	uv			: TEXCOORD1;
 			float2	uv2			: TEXCOORD3;
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader
index bcb2bb273a..281e60db73 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader	
@@ -4,10 +4,10 @@ Properties {
 	_FaceTex			("Fill Texture", 2D) = "white" {}
 	_FaceUVSpeedX		("Face UV Speed X", Range(-5, 5)) = 0.0
 	_FaceUVSpeedY		("Face UV Speed Y", Range(-5, 5)) = 0.0
-	[HDR]_FaceColor		("Fill Color", Color) = (1,1,1,1)
+	_FaceColor		    ("Fill Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineTex			("Outline Texture", 2D) = "white" {}
 	_OutlineUVSpeedX	("Outline UV Speed X", Range(-5, 5)) = 0.0
 	_OutlineUVSpeedY	("Outline UV Speed Y", Range(-5, 5)) = 0.0
@@ -28,12 +28,12 @@ Properties {
 	_ReflectOutlineColor	("Outline Color", Color) = (0,0,0,1)
 	_Cube 					("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ }
 	_EnvMatrixRotation  	("Texture Rotation", vector) = (0, 0, 0, 0)
-	[HDR]_SpecColor		    ("Specular Color", Color) = (0,0,0,1)
+	_SpecColor		        ("Specular Color", Color) = (0,0,0,1)
 
 	_FaceShininess		("Face Shininess", Range(0,1)) = 0
 	_OutlineShininess	("Outline Shininess", Range(0,1)) = 0
 
-	[HDR]_GlowColor		("Color", Color) = (0, 1, 0, 0.5)
+	_GlowColor		    ("Color", Color) = (0, 1, 0, 0.5)
 	_GlowOffset			("Offset", Range(-1,1)) = 0
 	_GlowInner			("Inner", Range(0,1)) = 0.05
 	_GlowOuter			("Outer", Range(0,1)) = 0.05
@@ -118,7 +118,8 @@ SubShader {
 		#pragma multi_compile_shadowcaster
 		#include "UnityCG.cginc"
 
-		struct v2f {
+		struct v2f
+		{
 			V2F_SHADOW_CASTER;
 			float2	uv			: TEXCOORD1;
 			float2	uv2			: TEXCOORD3;
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Lit.shadergraph b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Lit.shadergraph
new file mode 100644
index 0000000000..7922d39342
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Lit.shadergraph	
@@ -0,0 +1,11932 @@
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.GraphData",
+    "m_ObjectId": "386c36a1c4c34ea29deb680fb82cfe8b",
+    "m_Properties": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "59a09f50a7ca4cd3a0d248a0f3730b6a"
+        }
+    ],
+    "m_Keywords": [],
+    "m_Dropdowns": [],
+    "m_CategoryData": [
+        {
+            "m_Id": "7c73ccc923e744b98f19148b971a6090"
+        }
+    ],
+    "m_Nodes": [
+        {
+            "m_Id": "b1188549725543d485436c2e921ffbb2"
+        },
+        {
+            "m_Id": "4488af8ff6a7421298a7e827f567263b"
+        },
+        {
+            "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+        },
+        {
+            "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+        },
+        {
+            "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+        },
+        {
+            "m_Id": "150533bad8e2424aaa2c74e253af8592"
+        },
+        {
+            "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+        },
+        {
+            "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+        },
+        {
+            "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+        },
+        {
+            "m_Id": "9c228fac287d446296b91a4acf5cec59"
+        },
+        {
+            "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+        },
+        {
+            "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+        },
+        {
+            "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+        },
+        {
+            "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+        },
+        {
+            "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+        },
+        {
+            "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+        },
+        {
+            "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+        },
+        {
+            "m_Id": "cdddee3a537c464697357f11b966f9b8"
+        },
+        {
+            "m_Id": "88253223d2c34ecfab92b0c344048f94"
+        },
+        {
+            "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+        },
+        {
+            "m_Id": "1e12726617b24675958e942eb62e4b09"
+        },
+        {
+            "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+        },
+        {
+            "m_Id": "44317f2e371447e2a8d894f8a021a235"
+        },
+        {
+            "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+        },
+        {
+            "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+        },
+        {
+            "m_Id": "19075add867e4757b9520d18fe8de1d0"
+        },
+        {
+            "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+        },
+        {
+            "m_Id": "c234e5216678436195ee1a5914bc79da"
+        },
+        {
+            "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+        },
+        {
+            "m_Id": "59bd90a849624124bae6464ee3669aa6"
+        },
+        {
+            "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+        },
+        {
+            "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+        },
+        {
+            "m_Id": "285f6a9863d54ed2a8150727ad749456"
+        },
+        {
+            "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+        },
+        {
+            "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+        },
+        {
+            "m_Id": "dbcb748279484a4590e53518c49122b8"
+        },
+        {
+            "m_Id": "04dc152dd2ba4d519391577eb1156235"
+        },
+        {
+            "m_Id": "9f0de188085746d5a19073da1de85ddb"
+        },
+        {
+            "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+        },
+        {
+            "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+        },
+        {
+            "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+        },
+        {
+            "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+        },
+        {
+            "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+        },
+        {
+            "m_Id": "3c50439118b2496f9e390021b0964606"
+        },
+        {
+            "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+        },
+        {
+            "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+        },
+        {
+            "m_Id": "2a552a0b828f457c911aa19561e410ae"
+        },
+        {
+            "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+        },
+        {
+            "m_Id": "51378bae98a94c309785d14cd5cbb453"
+        },
+        {
+            "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+        },
+        {
+            "m_Id": "7444469eb9884253819add9ef96baa25"
+        },
+        {
+            "m_Id": "67a519f507384ff1861df5d8d5b486be"
+        },
+        {
+            "m_Id": "48390d02257d41bf98eace1deaa4c539"
+        },
+        {
+            "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+        },
+        {
+            "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+        },
+        {
+            "m_Id": "aca823a8188948c782eddaf0f45e1868"
+        },
+        {
+            "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+        },
+        {
+            "m_Id": "163beb4431c34f538340bc0af0991e6f"
+        },
+        {
+            "m_Id": "39f2f84f30304d859fb07569e2695f60"
+        },
+        {
+            "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+        },
+        {
+            "m_Id": "4abff6ff92fa4a05b203f10580988335"
+        },
+        {
+            "m_Id": "319916a5921343f7b7eef0e50dc93def"
+        },
+        {
+            "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+        },
+        {
+            "m_Id": "65c8e64a7535466e933eed08a2f77532"
+        },
+        {
+            "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+        },
+        {
+            "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+        },
+        {
+            "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+        },
+        {
+            "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+        },
+        {
+            "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+        },
+        {
+            "m_Id": "faace8101df943d8956faa31728cb004"
+        },
+        {
+            "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+        },
+        {
+            "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+        },
+        {
+            "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+        },
+        {
+            "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+        },
+        {
+            "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+        },
+        {
+            "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+        },
+        {
+            "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+        },
+        {
+            "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+        },
+        {
+            "m_Id": "dff7a66b353a4023b29c9d937da77960"
+        },
+        {
+            "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+        },
+        {
+            "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+        },
+        {
+            "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+        },
+        {
+            "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+        },
+        {
+            "m_Id": "86e21b7b6b7a44238607e41b8a9fb9a4"
+        },
+        {
+            "m_Id": "0c10df95ee1d4b0a8a00558af49ec45f"
+        },
+        {
+            "m_Id": "e591df3a1eb94e259b762f2830b407e2"
+        },
+        {
+            "m_Id": "83c51d5b2f7b4eb785248f419181cb87"
+        },
+        {
+            "m_Id": "ad3e1d26f4404555a8dd29223caaf1ef"
+        }
+    ],
+    "m_GroupDatas": [
+        {
+            "m_Id": "484b51c50485473b819c4f05087b32d7"
+        },
+        {
+            "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+        },
+        {
+            "m_Id": "42cadae0923e4969b50bbc3f78185934"
+        },
+        {
+            "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+        },
+        {
+            "m_Id": "98934a69591249d5b8b92b39045359a3"
+        },
+        {
+            "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+        },
+        {
+            "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+        },
+        {
+            "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+        }
+    ],
+    "m_StickyNoteDatas": [],
+    "m_Edges": [
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "04dc152dd2ba4d519391577eb1156235"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "19075add867e4757b9520d18fe8de1d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1e12726617b24675958e942eb62e4b09"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "285f6a9863d54ed2a8150727ad749456"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2a552a0b828f457c911aa19561e410ae"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "39f2f84f30304d859fb07569e2695f60"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 5
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4488af8ff6a7421298a7e827f567263b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aca823a8188948c782eddaf0f45e1868"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "67a519f507384ff1861df5d8d5b486be"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7444469eb9884253819add9ef96baa25"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 3
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 7
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b1188549725543d485436c2e921ffbb2"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 6
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dbcb748279484a4590e53518c49122b8"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 1
+            }
+        }
+    ],
+    "m_VertexContext": {
+        "m_Position": {
+            "x": -2506.000244140625,
+            "y": -3749.0
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "48390d02257d41bf98eace1deaa4c539"
+            },
+            {
+                "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+            },
+            {
+                "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+            }
+        ]
+    },
+    "m_FragmentContext": {
+        "m_Position": {
+            "x": -2506.000244140625,
+            "y": -3480.0
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "aca823a8188948c782eddaf0f45e1868"
+            },
+            {
+                "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+            },
+            {
+                "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+            },
+            {
+                "m_Id": "3c50439118b2496f9e390021b0964606"
+            },
+            {
+                "m_Id": "86e21b7b6b7a44238607e41b8a9fb9a4"
+            },
+            {
+                "m_Id": "0c10df95ee1d4b0a8a00558af49ec45f"
+            },
+            {
+                "m_Id": "e591df3a1eb94e259b762f2830b407e2"
+            },
+            {
+                "m_Id": "83c51d5b2f7b4eb785248f419181cb87"
+            },
+            {
+                "m_Id": "ad3e1d26f4404555a8dd29223caaf1ef"
+            }
+        ]
+    },
+    "m_PreviewData": {
+        "serializedMesh": {
+            "m_SerializedMesh": "{\"mesh\":{\"fileID\":10210,\"guid\":\"0000000000000000e000000000000000\",\"type\":0}}",
+            "m_Guid": ""
+        },
+        "preventRotation": false
+    },
+    "m_Path": "TextMeshPro/SRP",
+    "m_GraphPrecision": 0,
+    "m_PreviewMode": 2,
+    "m_OutputNode": {
+        "m_Id": ""
+    },
+    "m_ActiveTargets": [
+        {
+            "m_Id": "94300469581b4924ac7dda496811d45d"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "007c75c776ac4f1babe9cd7ae1fc4f14",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5722.99951171875,
+            "y": -3827.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1356dc7cbdfa4199a6535d3bbf4cd536"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "013228b0fdf1424097798f0973a9a4fb",
+    "m_Title": "Face Texture",
+    "m_Position": {
+        "x": -4813.0,
+        "y": -2949.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "02559cbe5ad441a3904ccb75ded2b2c5",
+    "m_Id": 5,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "03182b3263304258b265266325c21f65",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "045c4f6b050549c7a0efb208e6349779",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "04dc152dd2ba4d519391577eb1156235",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4536.00048828125,
+            "y": -2723.000244140625,
+            "width": 151.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3d04f5ba6e7b40d281f22eb424145acd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "04dfcc9ff13a4bf282ed46faec39d15c",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "05805bc6fcc941fd889922555c6c86d7",
+    "m_Guid": {
+        "m_GuidSerialized": "fe84e680-4cee-4ca5-be86-2e293a9ba093"
+    },
+    "m_Name": "Ambient Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_05805bc6fcc941fd889922555c6c86d7",
+    "m_OverrideReferenceName": "_Ambient",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "0580d4b7e3a049049569f4508643a724",
+    "m_Guid": {
+        "m_GuidSerialized": "eefb88c5-7665-45dc-b3c2-7cf98b9990d6"
+    },
+    "m_Name": "Softness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_D64EC33D",
+    "m_OverrideReferenceName": "_Softness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "068ae649e00b40e198ec5a30ad741fab",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0699eea947fc426cbfeb8744cf120222",
+    "m_Id": 1,
+    "m_DisplayName": "Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "07946387933e416db576b677f0711e5f",
+    "m_Guid": {
+        "m_GuidSerialized": "21d612fb-8153-41f8-9e2f-9de044c19fbf"
+    },
+    "m_Name": "_FaceTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1A08AD4A",
+    "m_OverrideReferenceName": "_FaceTex_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 2.0,
+        "y": 2.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0801f576ce79452483b42e485405244d",
+    "m_Id": 0,
+    "m_DisplayName": "Smoothness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Smoothness",
+    "m_StageCapability": 2,
+    "m_Value": 0.5,
+    "m_DefaultValue": 0.5,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "082e9706dffc4c188270980d4e44ce0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0848ba750e0341198cf0bbd413e0efe4",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "09b1b86c1c074337a4c439d3a308dd2e",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0a67ca5280214bd794dc0ad66b5710a9",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0b57f2d35157477ab2b29a5aac14ae8b",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0ba4932e164847878ddb7b7bcff96985",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "0c10df95ee1d4b0a8a00558af49ec45f",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.NormalTS",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a0206f980dc6455f84f5a8442838c726"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.NormalTS"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0c4dc51f26484c26ad88a3fe4002abcd",
+    "m_Id": 2,
+    "m_DisplayName": "Color (1)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "0d6a57754b824f6db9cefa6953bc06a9",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0d7878dd226d4cfb81a991dc312309fc",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Dilate",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "0f7ffb6d2de4447f9736780cbcee8e07",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0fac35636fca4474a6afaefc3c757775",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "105b1ed1aa714e41bbe1ef5472bdb11f",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4923.99951171875,
+            "y": -4233.0,
+            "width": 158.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8a08179f99d649d289b8053d5fa0ad22"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "109f638d1f9b49d4991d6d21a86d4eb7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5098.99951171875,
+            "y": -3182.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "880bb02c6c6b49b18aa6ebc66dc566a0"
+        },
+        {
+            "m_Id": "1b9cd8f5f4004e2eaf8afbaab803bc04"
+        },
+        {
+            "m_Id": "b224a1cf80604103ad085c799995f3c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "10a99c07aad742349d258db16838c129",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1196ae398cc348349ab0c1a23fdab4bd",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "129f271ebc77450994e18f0a30579bf5",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1356dc7cbdfa4199a6535d3bbf4cd536",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "14ad19bf20a140dd88d58452d7df688b",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "150533bad8e2424aaa2c74e253af8592",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4955.0,
+            "y": -3487.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "72fb5a0d7796446b9e2b929cb32facdc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "163beb4431c34f538340bc0af0991e6f",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3284.0,
+            "y": -3516.0,
+            "width": 119.99999237060547,
+            "height": 149.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c334de01ecd429baa7652fc6002536b"
+        },
+        {
+            "m_Id": "e2d28f29bbac4983a401574480b5ca28"
+        },
+        {
+            "m_Id": "6a7af6143e114a538663e71f56731a21"
+        },
+        {
+            "m_Id": "3e25be96bb3747738c238cf3a741d5df"
+        },
+        {
+            "m_Id": "4907352322c644ebacdf2ca30f2994fd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "19075add867e4757b9520d18fe8de1d0",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4292.0,
+            "y": -3213.000244140625,
+            "width": 124.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c28ee9109014fa086e5de7a3993341d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "0580d4b7e3a049049569f4508643a724"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1b9cd8f5f4004e2eaf8afbaab803bc04",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1bdde3efd3b7464b8934c555be0f8a48",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "1be90d4f96a841748b0c95219b12ad27",
+    "m_Guid": {
+        "m_GuidSerialized": "4c91c146-43bb-4de8-948a-fbf8b1da10e1"
+    },
+    "m_Name": "Bevel Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_97690701",
+    "m_OverrideReferenceName": "_BevelOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": -0.5,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "1c4df61c2fea404eb3b87b270d7c59bc",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4316.0,
+            "y": -3247.000244140625,
+            "width": 148.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "f864c900600e427ba7793f00c715e971"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1d35fa1fb5004f96a65ace54fbe4f1ad",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1db37082bf844442804487b4944352de",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1df58cfa4dad4c449d01ee1c5ea05f2e",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "1e12726617b24675958e942eb62e4b09",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4772.0,
+            "y": -4404.0,
+            "width": 145.00001525878907,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0848ba750e0341198cf0bbd413e0efe4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1f247658c7ba45fb93c41f51e21acb0d",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1f46181633594ae0a1fb2adb76b42981",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "200245fc8bbe4826b209ab5f7ffe074c",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "204dacb5a95b424facf11cb6f65bd188",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "215a82c127204988b751de7d3a39b955",
+    "m_Id": 6,
+    "m_DisplayName": "Outline",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Outline",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "215b30ae27784ec3a13360a9029af283",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "21a7a380e66d42e780e2a2a1baa630d5",
+    "m_Guid": {
+        "m_GuidSerialized": "b2d0099f-e605-49f5-9959-e7cacae37aa3"
+    },
+    "m_Name": "Bevel Type",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_21a7a380e66d42e780e2a2a1baa630d5",
+    "m_OverrideReferenceName": "_BevelType",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e",
+    "m_Guid": {
+        "m_GuidSerialized": "cd167d3a-7465-4d5a-86fc-0f22dc0ef908"
+    },
+    "m_Name": "Outline Color 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_5550EB71",
+    "m_OverrideReferenceName": "_OutlineColor1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "232b1aa09e67479abae141d3c76d3c5b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "256d41e89a204d22951450de1c38051d",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "26e48352a08441bfa694dcea54c06e36",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "281bcee4777040f8a31ee0e10344e98d",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "285f6a9863d54ed2a8150727ad749456",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4181.99951171875,
+            "y": -2415.0,
+            "width": 154.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b42e6dbfbc864097af182cbff5c0c1fb"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.IsFrontFaceNode",
+    "m_ObjectId": "2a552a0b828f457c911aa19561e410ae",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Is Front Face",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4282.0,
+            "y": -3681.3330078125,
+            "width": 121.99999237060547,
+            "height": 77.33348846435547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2ef1d888dc9d49e59d6a6950897ddc93"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "2ac79705aa9e415dbb74ec215233fd1b",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "Composite (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3350.0,
+            "y": -3810.0,
+            "width": 213.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a75f7ac601c446469802fe7754c1f279"
+        },
+        {
+            "m_Id": "8c38a5d8327f456e9783740c05382619"
+        },
+        {
+            "m_Id": "facc84930f544fd7a0205a6176b18ac0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Composite",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2b01ea3023e34c94af1754e4dcea8f2e",
+    "m_Id": 0,
+    "m_DisplayName": "Face Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2bf5f2fdd2984599b7323d10cfb1d240",
+    "m_Id": 1,
+    "m_DisplayName": "Filter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Filter",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "2c10b97b92c947ceb307a93759c0228b",
+    "m_Guid": {
+        "m_GuidSerialized": "6be0b8ff-a766-4c6b-a6e4-3a72758ac95f"
+    },
+    "m_Name": "Bevel Amount",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B01DD93E",
+    "m_OverrideReferenceName": "_BevelAmount",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2c7a9460724b47daad8df1be144de7c6",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "2d0a269511e34bd1ba9056d2c939dff2",
+    "m_Guid": {
+        "m_GuidSerialized": "edbe73dc-53ab-4bc1-9d64-ab36e0e05f03"
+    },
+    "m_Name": "_FaceUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_3A8E0F13",
+    "m_OverrideReferenceName": "_FaceUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "2db15d90c2204143b225ec4ef08d0755",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4387.00048828125,
+            "y": -2381.0,
+            "width": 163.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "def8e0b9d8384982bc5b4c32d877e458"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "2e4eb1ef08bb44178c82e53872485e0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2ef1d888dc9d49e59d6a6950897ddc93",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 2,
+    "m_Value": true,
+    "m_DefaultValue": true
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "30ca940fe2794c949f2a1d4d2caaa446",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "319916a5921343f7b7eef0e50dc93def",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4791.0,
+            "y": -3245.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d219977210094c0082c517d8dc00c8bb"
+        },
+        {
+            "m_Id": "f48f04ad45d046a8b88e71731ed506e7"
+        },
+        {
+            "m_Id": "e6e80c6b0db545cda26b079a9a78fbb3"
+        },
+        {
+            "m_Id": "c6bdb985bc16435fa72f5a3c81bb633c"
+        },
+        {
+            "m_Id": "d1a17e42e7a04dc38984e3c01149445b"
+        },
+        {
+            "m_Id": "fb15d0ba56d54a6192f11e107aeb5fa8"
+        },
+        {
+            "m_Id": "c35312edaa2344788b1964ee2f63a236"
+        },
+        {
+            "m_Id": "c88fcbaeea954a5f9c68c339fa8b604d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "34a67e0fef884f9399e674d9eeaf720c",
+    "m_Id": 6,
+    "m_DisplayName": "Color3",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color3",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "34a72a5ebb04402384a4fd3748111a37",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha Clip Threshold",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AlphaClipThreshold",
+    "m_StageCapability": 2,
+    "m_Value": 0.0010000000474974514,
+    "m_DefaultValue": 0.5,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3535ae87c6dd4769b52b20d9eca61069",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "35cbea6373dd4e4f8d0fea36e8add392",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "36a0c473c4c04c3a930dd38f3920d410",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "36f1b4d96f2941c39e5cd95d9c1d2ce6",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6008.99951171875,
+            "y": -3341.0,
+            "width": 144.99998474121095,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "65b3dc13b2b6484283ffe5abfe87a06a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "373f1de8db6c429c9d46c781f741d7a4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3802c81c3be24823aa1d7c9997a33c29",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "3915c1927ffe49f8967304321cfbe497",
+    "m_Id": 4,
+    "m_DisplayName": "Atlas",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Atlas",
+    "m_StageCapability": 3,
+    "m_BareResource": true,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "39a382d661e2484da71f04c43f48e55f",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "39f2f84f30304d859fb07569e2695f60",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3423.000244140625,
+            "y": -3516.0,
+            "width": 116.0,
+            "height": 94.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4b2d9ea03bf64fa19dcae1511d2581da"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "3c50439118b2496f9e390021b0964606",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.AlphaClipThreshold",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3028.0,
+            "y": -3054.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "34a72a5ebb04402384a4fd3748111a37"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3d04f5ba6e7b40d281f22eb424145acd",
+    "m_Id": 0,
+    "m_DisplayName": "Face Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3db1608e927e4102a3c3a88e9fcab39a",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "3dccd64e7f324bc1a75c1479d7a67c51",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "3e231021af7b47ba97f2871e7f25d0fe",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2803.000244140625,
+            "y": -3520.0,
+            "width": 140.0,
+            "height": 166.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6ccaced3889e4503a9414d808ec33981"
+        },
+        {
+            "m_Id": "7f3d71a6c96847c099da45f95aafbecb"
+        },
+        {
+            "m_Id": "d8edec16956c4f15b7d51d6ec10753f4"
+        },
+        {
+            "m_Id": "39a382d661e2484da71f04c43f48e55f"
+        },
+        {
+            "m_Id": "8764669016f6442f8152593c18a649d7"
+        },
+        {
+            "m_Id": "26e48352a08441bfa694dcea54c06e36"
+        },
+        {
+            "m_Id": "3e94a0d106064bdb864c960512ef4026"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "3e25be96bb3747738c238cf3a741d5df",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "3e372195f4bd4845852a37839e5b602d",
+    "m_Guid": {
+        "m_GuidSerialized": "60abd046-2a1a-48cd-a0af-2f702f7f53ab"
+    },
+    "m_Name": "_MainTex",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_90CBF488",
+    "m_OverrideReferenceName": "_MainTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":28684132378477856,\"guid\":\"8f586378b4e144a9851e7b34d9b748ee\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "3e94a0d106064bdb864c960512ef4026",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "3ec4797e381747829ef4712c85fcf7a1",
+    "m_Guid": {
+        "m_GuidSerialized": "020d65cc-50a8-4b8a-a624-90d7b489f549"
+    },
+    "m_Name": "Specular Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_3ec4797e381747829ef4712c85fcf7a1",
+    "m_OverrideReferenceName": "_SpecularPower",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 4.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "3fdf4b7bc5d4426492dcc057603ef4a6",
+    "m_Guid": {
+        "m_GuidSerialized": "675d2567-3fca-4da6-9462-dfa4924950f1"
+    },
+    "m_Name": "_OutlineUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_D66D89E6",
+    "m_OverrideReferenceName": "_OutlineUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "3ffa095f304e42d2827aa230e2ae3887",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "400d0b6c95dd4540ad3da3e8cb7e50b2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "41986ac6400d46709d0ef043a67f6b34",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "41b9b79b3859472882bcea393703eec0",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "424dbeeb009344efa29c304c4979e3d6",
+    "m_Guid": {
+        "m_GuidSerialized": "314c37de-c6f2-4463-866d-8588f6fc119e"
+    },
+    "m_Name": "Diffuse Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_424dbeeb009344efa29c304c4979e3d6",
+    "m_OverrideReferenceName": "_Diffuse",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "42a586e4f6ec40eeaba891b7fd133864",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4934.0,
+            "y": -4442.99951171875,
+            "width": 133.99998474121095,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "da7a06d393a44089842070d51d2aa0a6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "42cadae0923e4969b50bbc3f78185934",
+    "m_Title": "Face + 3 Outlines + Underlay",
+    "m_Position": {
+        "x": -5468.0,
+        "y": -3558.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4328cdbf78b94c038fd614c59bfe1cac",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "44317f2e371447e2a8d894f8a021a235",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Layer1 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4004.999755859375,
+            "y": -4173.0,
+            "width": 191.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "10a99c07aad742349d258db16838c129"
+        },
+        {
+            "m_Id": "b85d677872b44421bf5536f42ba0267c"
+        },
+        {
+            "m_Id": "75aba700d74d4b2687bf3166cf1da3e2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer1",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "44806230fa384c1e95f9c5918a14f056",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4488af8ff6a7421298a7e827f567263b",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4109.0,
+            "width": 158.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "66f69ef16eac4eb48357bde804cf3c39"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
+    "m_ObjectId": "4590bfa2a0664b65b6f073bae33a071f",
+    "m_Id": 0,
+    "m_DisplayName": "Emission",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Emission",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [],
+    "m_ColorMode": 1,
+    "m_DefaultColor": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "4648b46ad29a4008a80de4f8a5a5b813",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4615.00048828125,
+            "y": -2415.000244140625,
+            "width": 145.0,
+            "height": 130.00001525878907
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b2baf44eae52473cb6cda7b1debece01"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "46fbf3eeb0ea4470869cba7443249295",
+    "m_Guid": {
+        "m_GuidSerialized": "be87c5a3-e361-4b95-89c8-911c39a51c0d"
+    },
+    "m_Name": "Outline Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_A0B54237",
+    "m_OverrideReferenceName": "_OutlineTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "47d020251e9841a5b1f0fd64396026a1",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "48390d02257d41bf98eace1deaa4c539",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Position",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8036d0e6090b456e9b4ea87227868236"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Position"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "484b51c50485473b819c4f05087b32d7",
+    "m_Title": "Underlay",
+    "m_Position": {
+        "x": -5253.0,
+        "y": -4542.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4907352322c644ebacdf2ca30f2994fd",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "49e7c3ad55ce458797f0e60c950cb965",
+    "m_Guid": {
+        "m_GuidSerialized": "31b55db9-0da1-4ec4-af2b-d83747ed5bc4"
+    },
+    "m_Name": "Underlay Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_CE9DEDB3",
+    "m_OverrideReferenceName": "_UnderlayOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4a66dcbe712a4d40bd8f355b834594b5",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "4abff6ff92fa4a05b203f10580988335",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4308.0,
+            "y": -3498.000244140625,
+            "width": 140.0,
+            "height": 166.00001525878907
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b015d1b7e4134c59baf6851e7649802c"
+        },
+        {
+            "m_Id": "d9dc4839ee2847999110bdb234d6041a"
+        },
+        {
+            "m_Id": "91d6a9a5fbc04ea49075cb51835e7264"
+        },
+        {
+            "m_Id": "f42ad06b3c6a45d3ab33de904c063412"
+        },
+        {
+            "m_Id": "ed6c215a65584deeaefad1d2c7743044"
+        },
+        {
+            "m_Id": "edbee7a8952b46529ac5ad0365775774"
+        },
+        {
+            "m_Id": "70337a74f6ad4b7bb6befc825219bab1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4b2d9ea03bf64fa19dcae1511d2581da",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4bda5c294e1949138d033640e1d385b4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4c28ee9109014fa086e5de7a3993341d",
+    "m_Id": 0,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4c334de01ecd429baa7652fc6002536b",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4d1cb1a475df49f9a148195a65f5453a",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4d9ce48719d143748f9f8e22da6f9ddc",
+    "m_Id": 5,
+    "m_DisplayName": "TextureWidth",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureWidth",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4e64dac49ddc47c3b5b1e27b17a08304",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "4eb3c00a1ca44e10be833b7ca61ff059",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4f194ff591484e908fc2bcdacbcf2570",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4303.00048828125,
+            "y": -2771.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2b01ea3023e34c94af1754e4dcea8f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "509e6f38505b4b0695b263706a55028f",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "51378bae98a94c309785d14cd5cbb453",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "GetSurfaceNormal (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4067.333251953125,
+            "y": -3881.99951171875,
+            "width": 263.9999694824219,
+            "height": 189.99998474121095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b0077c23eae443887872f84227deccc"
+        },
+        {
+            "m_Id": "3915c1927ffe49f8967304321cfbe497"
+        },
+        {
+            "m_Id": "4d9ce48719d143748f9f8e22da6f9ddc"
+        },
+        {
+            "m_Id": "ebd6d75abcb84108bcadbfe7ee5f6244"
+        },
+        {
+            "m_Id": "ef9738ec7e894772a14e9dce441c16c6"
+        },
+        {
+            "m_Id": "9eeec1a9713045af8845cea263d5ea48"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GetSurfaceNormal",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "51f76f8a53ad43a4ad028426548ce9ba",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "52798bdb86f6400e86489a7a368e9f8b",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6154.99951171875,
+            "y": -3169.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1df58cfa4dad4c449d01ee1c5ea05f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "53073e5ea924459fa6681a4943e9f947",
+    "m_Guid": {
+        "m_GuidSerialized": "5fdac24e-2d58-4471-80ce-79c3ab9a2564"
+    },
+    "m_Name": "Outline Color 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_DBAB5AEC",
+    "m_OverrideReferenceName": "_OutlineColor2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.009433984756469727,
+        "g": 0.02534518577158451,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "54d7a93ffec5490aa4591da23a21b693",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "55a3403c16184e63b4e78607a6a20cd8",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "55ffa45ec3654d5e88089fb40d2b0465",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "56c25395796e4d2fbe5c892d428d1620",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5102.99951171875,
+            "y": -3427.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "9eb8137a6c2e41bbafdc8b0732dd47a3"
+        },
+        {
+            "m_Id": "36a0c473c4c04c3a930dd38f3920d410"
+        },
+        {
+            "m_Id": "068ae649e00b40e198ec5a30ad741fab"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "57abc172afd449e2a4d567f93432507b",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "582d6e289dbe4fdca7cf0307273eaa2f",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "59a09f50a7ca4cd3a0d248a0f3730b6a",
+    "m_Guid": {
+        "m_GuidSerialized": "3f9e6596-fd53-48cc-96a5-4c4f0cfbb2ba"
+    },
+    "m_Name": "_ScaleRatioA",
+    "m_DefaultRefNameVersion": 1,
+    "m_RefNameGeneratedByDisplayName": "_ScaleRatioA",
+    "m_DefaultReferenceName": "_ScaleRatioA",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "59bd90a849624124bae6464ee3669aa6",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4008.999755859375,
+            "y": -2394.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2e4eb1ef08bb44178c82e53872485e0f"
+        },
+        {
+            "m_Id": "8695190a5e614f2d90081871a8a06fc2"
+        },
+        {
+            "m_Id": "81bdb47901ef48e5a588c6724b1b0142"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "5b0077c23eae443887872f84227deccc",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5b3ff4ee364f4d7a923b530ad60d8762",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5bd258837c514ff7ab0bf7027e762c18",
+    "m_Guid": {
+        "m_GuidSerialized": "2d8f3ee9-1307-4b58-a60d-526e86b07109"
+    },
+    "m_Name": "Bevel Roundness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_AB6A015F",
+    "m_OverrideReferenceName": "_BevelRoundness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5da82bf481f8489ebd05e997f617f51b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": 4.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5e42524569844befad16fda5a94eb9cb",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5fbe253f3e444f2aa8ac717f9c856619",
+    "m_Guid": {
+        "m_GuidSerialized": "0a61c93f-6430-4aa6-af07-79bc3b411ccd"
+    },
+    "m_Name": "Bevel Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B50BBFCC",
+    "m_OverrideReferenceName": "_BevelWidth",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.5,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61133d79a89048c195f54939b2a1d30a",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61a6ac5f29344d109411f26850ab0a96",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6271438664e74b3fbf723bd6a1f50f8b",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "62bc551cea604e88b7858cc37d96a98a",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "636180f6e0504f2baaa5cc086980cb47",
+    "m_Guid": {
+        "m_GuidSerialized": "c1223e37-093d-4d5a-b2b0-cd9cc3e4f88e"
+    },
+    "m_Name": "Outline Offset 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_636180f6e0504f2baaa5cc086980cb47",
+    "m_OverrideReferenceName": "_OutlineOffset1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "63c7cd57fc3c45a9a97b514fdae32693",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5266.99951171875,
+            "y": -3387.0,
+            "width": 156.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c422a9a9ff824176aad2241f58c44d0b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "641eda269d7b4da9acb65f8d50035ea9",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "65b3dc13b2b6484283ffe5abfe87a06a",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "65c8e64a7535466e933eed08a2f77532",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4791.0,
+            "y": -3499.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "256d41e89a204d22951450de1c38051d"
+        },
+        {
+            "m_Id": "0a67ca5280214bd794dc0ad66b5710a9"
+        },
+        {
+            "m_Id": "ebbd94a7102a4457a48ac492de3bff14"
+        },
+        {
+            "m_Id": "6271438664e74b3fbf723bd6a1f50f8b"
+        },
+        {
+            "m_Id": "c9b722d107ce4cd6a748c883472b9b0f"
+        },
+        {
+            "m_Id": "74cf69e61bef44589521f1bf2bf3c59a"
+        },
+        {
+            "m_Id": "6e532f83d1c44e839bcfc5845d3b01d6"
+        },
+        {
+            "m_Id": "cb5e9f9567e84f8fa5463efc0e256e19"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "66f69ef16eac4eb48357bde804cf3c39",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlayColor",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "67a519f507384ff1861df5d8d5b486be",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4278.0,
+            "y": -3939.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c3e6d7c20c184bf39fd8822130e693e7"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "68ec7c31365549d6a8ce883edfc02de2",
+    "m_Id": 4,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6a7af6143e114a538663e71f56731a21",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "6b2f65c1463f4f7bad16c54a95d2fe75",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5101.0,
+            "y": -3301.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1d35fa1fb5004f96a65ace54fbe4f1ad"
+        },
+        {
+            "m_Id": "fa6de3be9f5b4411b5081b49e645f424"
+        },
+        {
+            "m_Id": "400d0b6c95dd4540ad3da3e8cb7e50b2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6ccaced3889e4503a9414d808ec33981",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "6dfc1177dd0541a7a780fbf911ad1956",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6e13f3cd573c467a94379f45d96cb690",
+    "m_Id": 2,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "6e532f83d1c44e839bcfc5845d3b01d6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "6e8946a245e842b38231d4a241bfb3ef",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.BaseColor",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3026.0,
+            "y": -3110.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ef0b93f78372439696f50711eaf57d90"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.BaseColor"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "6fbdcc5a972b4fa883dc5f21e525a376",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "7027aaab25924266a063a05df0aa39b3",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "70337a74f6ad4b7bb6befc825219bab1",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "712da461f71a454db59d349f752d41ee",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "71dd947935b64ce38f0d25406dde447b",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "724e17584e97443e9e285dfa7253c8e3",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 2,
+    "m_Value": 0.15000000596046449,
+    "m_DefaultValue": 1.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "72fb5a0d7796446b9e2b929cb32facdc",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "7444469eb9884253819add9ef96baa25",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4298.0,
+            "y": -3809.99951171875,
+            "width": 144.66648864746095,
+            "height": 129.33323669433595
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "03182b3263304258b265266325c21f65"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "748c31bbcecc4b30bec2e42c0612175b",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "74b41464cbed4e9e8e23af5ab9be40cf",
+    "m_Guid": {
+        "m_GuidSerialized": "41afbdcb-f3ae-4340-8973-1c1998c992a2"
+    },
+    "m_Name": "Outline Offset 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "74cf69e61bef44589521f1bf2bf3c59a",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "757174b6f25040fdbb20355a21752222",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "75aba700d74d4b2687bf3166cf1da3e2",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "75c5657544c648058b20cea090f48dbf",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "767769f736d5478cba5f10a415e28e7f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "773b90134e894e429203c0c83e80b9de",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "77e28f3e930b4c249145630ec961af95",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "79147f6986644769b58d9ed64fe771e1",
+    "m_Id": 0,
+    "m_DisplayName": "OutlineMode",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7984fd094e1147bdabb4e26fbd3d31c8",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3113.000244140625,
+            "y": -3468.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "082e9706dffc4c188270980d4e44ce0f"
+        },
+        {
+            "m_Id": "f2a351a5375c441b8d9ab7e2c9545a77"
+        },
+        {
+            "m_Id": "41986ac6400d46709d0ef043a67f6b34"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "7a046f410ce64aa88438b0bfd412c045",
+    "m_Guid": {
+        "m_GuidSerialized": "d47271f5-5a84-47bf-a09e-c825d2aeb013"
+    },
+    "m_Name": "Outline Color 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_551702C5",
+    "m_OverrideReferenceName": "_OutlineColor3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "7a0f504e4175406dbd8134250f4e350b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7a80e8839f0e4a1d9a6c0814f8793ee6",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4961.99951171875,
+            "y": -3452.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6fbdcc5a972b4fa883dc5f21e525a376"
+        },
+        {
+            "m_Id": "0ba4932e164847878ddb7b7bcff96985"
+        },
+        {
+            "m_Id": "9178663316db43d582f1c4a127d307c6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7acfafd73b8c4dfab8c55c18a887e087",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7b144a976914480baf430c0f6f7f4def",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "7b8a19bd115e4167a25b59cb3218a817",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "7c27ccb2c2dc4ca59c5438c3358630ca",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CategoryData",
+    "m_ObjectId": "7c73ccc923e744b98f19148b971a6090",
+    "m_Name": "",
+    "m_ChildObjectList": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "59a09f50a7ca4cd3a0d248a0f3730b6a"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7d7696aa6d184b4fb9c316a9dec37aee",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4959.0,
+            "y": -3326.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4d1cb1a475df49f9a148195a65f5453a"
+        },
+        {
+            "m_Id": "47d020251e9841a5b1f0fd64396026a1"
+        },
+        {
+            "m_Id": "62bc551cea604e88b7858cc37d96a98a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7d78a616c2754cc28d1f32cf66ade611",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4006.999755859375,
+            "y": -2796.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d9bcb754db834583b6518c5ed5152114"
+        },
+        {
+            "m_Id": "861d4258049a4a3e8164f7297090f88e"
+        },
+        {
+            "m_Id": "a7c06457d7454693a8bc3dc95257b2c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "7e0fadb2533f496192c1ad3e78642010",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4188.0,
+            "width": 173.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d48c3871e3064027a10ae9f4babd3be0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "7f2e6b5f15364ed9835d67d0cf4f8f65",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Tangent",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2586.0,
+            "y": -3592.0,
+            "width": 200.0,
+            "height": 41.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "85ff8667d72947edada4e9fb4ff60559"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Tangent"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7f3d71a6c96847c099da45f95aafbecb",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot",
+    "m_ObjectId": "8036d0e6090b456e9b4ea87227868236",
+    "m_Id": 0,
+    "m_DisplayName": "Position",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Position",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "80e665a5eeb64730a51742f698bf0d48",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "8135ca333f8f4ea78163743e6ec1f55c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4081.999755859375,
+            "y": -3140.0,
+            "width": 156.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d6a6a119394e4082a11bc024a6e42ef8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "53073e5ea924459fa6681a4943e9f947"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "81bdb47901ef48e5a588c6724b1b0142",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "81e8ed0534534674a74263e6161a2a1a",
+    "m_Guid": {
+        "m_GuidSerialized": "78aab961-c4a8-41f3-b203-1239c3b33b13"
+    },
+    "m_Name": "Underlay Dilate",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_D48690B9",
+    "m_OverrideReferenceName": "_UnderlayDilate",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "82af2db1018543d7832af96c1cfc981f",
+    "m_Guid": {
+        "m_GuidSerialized": "37906c7b-9a3a-454b-a62a-9aa097e64bde"
+    },
+    "m_Name": "Light Angle",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_82af2db1018543d7832af96c1cfc981f",
+    "m_OverrideReferenceName": "_LightAngle",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 6.28000020980835
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "82d5443fe54d4a3b9420f8745d00a632",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": 8.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "836f639bd89d42f9b3a0470c3094815e",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "83c51d5b2f7b4eb785248f419181cb87",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Occlusion",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "944ebbc49c8a4cddb5834e3beab965a2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Occlusion"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "84dc74cdbd8c45e1b189e4fd9a69942d",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "85a1ad8e741e41759002e8cdc8cd0b96",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "ScreenSpaceRatio (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5800.99951171875,
+            "y": -3363.0,
+            "width": 258.0,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6e13f3cd573c467a94379f45d96cb690"
+        },
+        {
+            "m_Id": "8e6ed600f6504f4083092f5b511e44c4"
+        },
+        {
+            "m_Id": "93b161cce4504cb79c97b6d8db178de7"
+        },
+        {
+            "m_Id": "2bf5f2fdd2984599b7323d10cfb1d240"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ScreenSpaceRatio",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "85b5940eb77e4625812ded7215bab8d7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4081.999755859375,
+            "y": -3096.0,
+            "width": 156.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ada023d617104472b8ab75a81558c0a1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot",
+    "m_ObjectId": "85ff8667d72947edada4e9fb4ff60559",
+    "m_Id": 0,
+    "m_DisplayName": "Tangent",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Tangent",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "861d4258049a4a3e8164f7297090f88e",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "867a4ae13c0d4a028c71bc1063824c14",
+    "m_Guid": {
+        "m_GuidSerialized": "d483c212-0a30-4f6d-b94d-9abbc83a6522"
+    },
+    "m_Name": "Outline Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_C68C9E14",
+    "m_OverrideReferenceName": "_IsoPerimeter",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 2,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "8695190a5e614f2d90081871a8a06fc2",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "86e21b7b6b7a44238607e41b8a9fb9a4",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Smoothness",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0801f576ce79452483b42e485405244d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Smoothness"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8764669016f6442f8152593c18a649d7",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "880bb02c6c6b49b18aa6ebc66dc566a0",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "88253223d2c34ecfab92b0c344048f94",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "ComputeSDF (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4323.0,
+            "width": 227.99998474121095,
+            "height": 190.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c52a1744a9a14989b0ae452ad6de6061"
+        },
+        {
+            "m_Id": "a03db80c558b4f87a330c5ae0a9443a5"
+        },
+        {
+            "m_Id": "8f1b1d1e8ff24b3284993e52354e54fa"
+        },
+        {
+            "m_Id": "5da82bf481f8489ebd05e997f617f51b"
+        },
+        {
+            "m_Id": "82d5443fe54d4a3b9420f8745d00a632"
+        },
+        {
+            "m_Id": "61133d79a89048c195f54939b2a1d30a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8a08179f99d649d289b8053d5fa0ad22",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Offset",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8b66f4e6bc9d4662b3218ac33a69839f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8c38a5d8327f456e9783740c05382619",
+    "m_Id": 3,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8cbd81814903479ea1d3151c1f38183e",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "8cf8aae64c1d443f9303126886b40f17",
+    "m_Guid": {
+        "m_GuidSerialized": "8d78c9a5-aaef-41fb-af68-2358e401d7ac"
+    },
+    "m_Name": "_UnderlayColor",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_2F5FE804",
+    "m_OverrideReferenceName": "_UnderlayColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8e6aee1173864e58be589084897a3f35",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8e6ed600f6504f4083092f5b511e44c4",
+    "m_Id": 0,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "8ed907a2cc7949b68a283ae243ea1977",
+    "m_Guid": {
+        "m_GuidSerialized": "36803443-a9bc-4f3c-a4f2-7d66a5417ac1"
+    },
+    "m_Name": "Outline Offset 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8f1b1d1e8ff24b3284993e52354e54fa",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9147636b0cfa466a9b37a013d8f693bf",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5421.99951171875,
+            "y": -3902.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a4f471e3221c4134b291bd9d2ba22db6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "9178663316db43d582f1c4a127d307c6",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "91890fe48ebe4717aea61ecaf3ad4861",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2983.000244140625,
+            "y": -3468.0,
+            "width": 119.99999237060547,
+            "height": 149.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3dccd64e7f324bc1a75c1479d7a67c51"
+        },
+        {
+            "m_Id": "e444f2c81d1e48329fa2c91005277e8d"
+        },
+        {
+            "m_Id": "b2c26292b7434733878a9b042f44de89"
+        },
+        {
+            "m_Id": "964fea1fd4b24f4daf5bef84c4b45118"
+        },
+        {
+            "m_Id": "deac82280a2b43078e0e40863e2d974c"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "91d6a9a5fbc04ea49075cb51835e7264",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "928621a3ca2d41c89a10336bbbc81ddc",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "93b161cce4504cb79c97b6d8db178de7",
+    "m_Id": 3,
+    "m_DisplayName": "TextureSize",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureSize",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget",
+    "m_ObjectId": "94300469581b4924ac7dda496811d45d",
+    "m_Datas": [],
+    "m_ActiveSubTarget": {
+        "m_Id": "a0b9274619da48a59f26fe58997479ee"
+    },
+    "m_AllowMaterialOverride": false,
+    "m_SurfaceType": 1,
+    "m_ZTestMode": 4,
+    "m_ZWriteControl": 0,
+    "m_AlphaMode": 0,
+    "m_RenderFace": 0,
+    "m_AlphaClip": true,
+    "m_CastShadows": true,
+    "m_ReceiveShadows": true,
+    "m_AdditionalMotionVectorMode": 0,
+    "m_AlembicMotionVectors": false,
+    "m_SupportsLODCrossFade": false,
+    "m_CustomEditorGUI": "TMPro.EditorUtilities.TMP_SDFShaderGUI",
+    "m_SupportVFX": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "944ebbc49c8a4cddb5834e3beab965a2",
+    "m_Id": 0,
+    "m_DisplayName": "Ambient Occlusion",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Occlusion",
+    "m_StageCapability": 2,
+    "m_Value": 1.0,
+    "m_DefaultValue": 1.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "945b45993dd84a979755b98c48138f72",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "952d0fa5cd744df0b434cd38e9a90b93",
+    "m_Guid": {
+        "m_GuidSerialized": "ce395871-ddeb-47c3-a31d-07855800c197"
+    },
+    "m_Name": "_UnderlaySoftness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_F2B9E3EF",
+    "m_OverrideReferenceName": "_UnderlaySoftness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "95928bcb6a284b8d88105a84c2e1d3ce",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4778.00048828125,
+            "y": -2581.000244140625,
+            "width": 155.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d880558893fb442b9320cf55885d1117"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "964fea1fd4b24f4daf5bef84c4b45118",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "98934a69591249d5b8b92b39045359a3",
+    "m_Title": "Outline1 Texture",
+    "m_Position": {
+        "x": -4670.00048828125,
+        "y": -2474.000244140625
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "998db5e5901e45b29040eb2099370071",
+    "m_Guid": {
+        "m_GuidSerialized": "6f383614-f2ad-4269-be8f-87b0ecb03cf0"
+    },
+    "m_Name": "Bevel Clamp",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_5BD7E808",
+    "m_OverrideReferenceName": "_BevelClamp",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "9c228fac287d446296b91a4acf5cec59",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4600.0,
+            "y": -3498.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "582d6e289dbe4fdca7cf0307273eaa2f"
+        },
+        {
+            "m_Id": "1db37082bf844442804487b4944352de"
+        },
+        {
+            "m_Id": "8b66f4e6bc9d4662b3218ac33a69839f"
+        },
+        {
+            "m_Id": "4a66dcbe712a4d40bd8f355b834594b5"
+        },
+        {
+            "m_Id": "a0285c9c381a49cba194709efa0a7c85"
+        },
+        {
+            "m_Id": "b2728d0dd3ce40678867c94a7d977916"
+        },
+        {
+            "m_Id": "e141833aa78b4fd59ecad949beb43a78"
+        },
+        {
+            "m_Id": "51f76f8a53ad43a4ad028426548ce9ba"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "9c26fdddba244d36a854298c00473247",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "9d3c3383d5934a17bf9efbb7fd9e9043",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5443.0,
+            "y": -3315.0,
+            "width": 144.99998474121095,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "232b1aa09e67479abae141d3c76d3c5b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e6e50a71d9843b49b62ebe1cf7d3d59",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4486.0,
+            "y": -3865.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3535ae87c6dd4769b52b20d9eca61069"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e87ce9607e14015a3790c528ca5dfda",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4635.00048828125,
+            "y": -2239.0,
+            "width": 167.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "75c5657544c648058b20cea090f48dbf"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "9eb8137a6c2e41bbafdc8b0732dd47a3",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "9eeec1a9713045af8845cea263d5ea48",
+    "m_Id": 6,
+    "m_DisplayName": "IsFront",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "IsFront",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "9f0de188085746d5a19073da1de85ddb",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4152.0,
+            "y": -2771.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7c27ccb2c2dc4ca59c5438c3358630ca"
+        },
+        {
+            "m_Id": "373f1de8db6c429c9d46c781f741d7a4"
+        },
+        {
+            "m_Id": "fd0b096ed5b74f9e9ec51327be200731"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "a0206f980dc6455f84f5a8442838c726",
+    "m_Id": 0,
+    "m_DisplayName": "Normal (Tangent Space)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "NormalTS",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [],
+    "m_Space": 3
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a0285c9c381a49cba194709efa0a7c85",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a03db80c558b4f87a330c5ae0a9443a5",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 2,
+    "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalLitSubTarget",
+    "m_ObjectId": "a0b9274619da48a59f26fe58997479ee",
+    "m_WorkflowMode": 1,
+    "m_NormalDropOffSpace": 0,
+    "m_ClearCoat": false,
+    "m_BlendModePreserveSpecular": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "a3f8b6e8ae7f48e2989a029904401502",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "a455bd79094c4413a7b7dd80ca8b9368",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4606.99951171875,
+            "y": -2689.0,
+            "width": 221.99998474121095,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7027aaab25924266a063a05df0aa39b3"
+        },
+        {
+            "m_Id": "2c7a9460724b47daad8df1be144de7c6"
+        },
+        {
+            "m_Id": "55ffa45ec3654d5e88089fb40d2b0465"
+        },
+        {
+            "m_Id": "e495a9f7a11f4eb89334e83be154ceb9"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateShaderProperty",
+    "m_ObjectId": "a4ad98d8828c424384229c344ebe2ed0",
+    "m_Guid": {
+        "m_GuidSerialized": "f98fc1a2-bb81-4bd1-a207-23d3a90d518e"
+    },
+    "m_Name": "SamplerState",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "SamplerState_a4ad98d8828c424384229c344ebe2ed0",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": false,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_filter": 0,
+        "m_wrap": 1,
+        "m_anisotropic": 0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a4f471e3221c4134b291bd9d2ba22db6",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "a535f3bcbeb14622bb177eb6f46e76f4",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4628.00048828125,
+            "y": -2283.0,
+            "width": 157.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6dfc1177dd0541a7a780fbf911ad1956"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "a6bbb32e8d884be9bb36db91fe4b81b1",
+    "m_Guid": {
+        "m_GuidSerialized": "6aa76edf-7b80-46ac-add4-406cf1d85493"
+    },
+    "m_Name": "_GradientScale",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_EAE27356",
+    "m_OverrideReferenceName": "_GradientScale",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 10.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "a6c38edd2e8743a9b057ba8452b9f129",
+    "m_Guid": {
+        "m_GuidSerialized": "9fc942ee-4a1d-4ced-a5a6-81893e3ddb63"
+    },
+    "m_Name": "Light Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_a6c38edd2e8743a9b057ba8452b9f129",
+    "m_OverrideReferenceName": "_SpecularColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "a75f7ac601c446469802fe7754c1f279",
+    "m_Id": 0,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a7942746b5564dc7bbbae1deb2403022",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "a7c06457d7454693a8bc3dc95257b2c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "aa2794b8f0e24bf281d22e0fef0647be",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "aa3e347d733e48f7b65d8a8847370eec",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "EvaluateLight (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3631.0,
+            "y": -3810.0,
+            "width": 230.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0699eea947fc426cbfeb8744cf120222"
+        },
+        {
+            "m_Id": "0c4dc51f26484c26ad88a3fe4002abcd"
+        },
+        {
+            "m_Id": "d5173cc3c6cd4f1998550f3187a3e9c8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "EvaluateLight",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aa87c72ac0e64469acc34f936f00b3d0",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4225.0,
+            "width": 193.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0d7878dd226d4cfb81a991dc312309fc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "abd59150589b436cadf8c9e6f43ccb8e",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "aca823a8188948c782eddaf0f45e1868",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.NormalOS",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2542.0,
+            "y": -3404.000244140625,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "e386b183a18245a796b024022f7f3074"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.NormalOS"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "acd0cd5a177f4a97bf23db7219305e3f",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4348.0,
+            "y": -3905.99951171875,
+            "width": 185.33299255371095,
+            "height": 101.33324432373047
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "945b45993dd84a979755b98c48138f72"
+        },
+        {
+            "m_Id": "e51a636b2621440eb94cc802c1cf4bfc"
+        },
+        {
+            "m_Id": "1bdde3efd3b7464b8934c555be0f8a48"
+        },
+        {
+            "m_Id": "129f271ebc77450994e18f0a30579bf5"
+        },
+        {
+            "m_Id": "3ffa095f304e42d2827aa230e2ae3887"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "ad3e1d26f4404555a8dd29223caaf1ef",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Metallic",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b46afdad84944599b00e887d2ce29cc3"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Metallic"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ada023d617104472b8ab75a81558c0a1",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aef5c44f84e04c3185e0b93e95e34204",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5264.99951171875,
+            "y": -3142.0,
+            "width": 159.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "84dc74cdbd8c45e1b189e4fd9a69942d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b000f852aa984e9dae25b125a4607f4e",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b015d1b7e4134c59baf6851e7649802c",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "b0b352c4503a43d083a64e57352b29a0",
+    "m_Guid": {
+        "m_GuidSerialized": "01cfcc78-60aa-4f71-a1e3-8d8df6dae253"
+    },
+    "m_Name": "Reflectivity Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_b0b352c4503a43d083a64e57352b29a0",
+    "m_OverrideReferenceName": "_Reflectivity",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 5.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 5.0,
+        "y": 15.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "b1188549725543d485436c2e921ffbb2",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4142.0,
+            "y": -2890.0,
+            "width": 116.0,
+            "height": 94.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "281bcee4777040f8a31ee0e10344e98d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "b163c9f1666644b0bba62cf0e12df7bc",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4367.0,
+            "y": -2713.0,
+            "width": 180.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "cce40479b6284b6fa3174db9f09d0ac9"
+        },
+        {
+            "m_Id": "80e665a5eeb64730a51742f698bf0d48"
+        },
+        {
+            "m_Id": "1f46181633594ae0a1fb2adb76b42981"
+        },
+        {
+            "m_Id": "8cbd81814903479ea1d3151c1f38183e"
+        },
+        {
+            "m_Id": "cfaf3f3a5a1146e194cddad30c95aada"
+        },
+        {
+            "m_Id": "b43489e37a5c4df88f15844292a55ec7"
+        },
+        {
+            "m_Id": "cd7281fb41aa4e61ac0fdf71d4f4bd46"
+        },
+        {
+            "m_Id": "f01d52cdcb1647aab35782b4af535efd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 1,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "b224a1cf80604103ad085c799995f3c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b2728d0dd3ce40678867c94a7d977916",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b2baf44eae52473cb6cda7b1debece01",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b2c26292b7434733878a9b042f44de89",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b42e6dbfbc864097af182cbff5c0c1fb",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b43489e37a5c4df88f15844292a55ec7",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b467be738d0e454995e380cbf526efe3",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b46afdad84944599b00e887d2ce29cc3",
+    "m_Id": 0,
+    "m_DisplayName": "Metallic",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Metallic",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "b4a40cb6acd441acb83cfe0240bf910d",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4750.99951171875,
+            "y": -4274.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d0b10e52e21941b183f5f635894c76c8"
+        },
+        {
+            "m_Id": "0d6a57754b824f6db9cefa6953bc06a9"
+        },
+        {
+            "m_Id": "773b90134e894e429203c0c83e80b9de"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "b571db753a1948d5a6f1de4e7d0c7238",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5581.99951171875,
+            "y": -3867.0,
+            "width": 183.99998474121095,
+            "height": 100.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b3ff4ee364f4d7a923b530ad60d8762"
+        },
+        {
+            "m_Id": "c183b5bd9bbe45089f93996e73110918"
+        },
+        {
+            "m_Id": "1196ae398cc348349ab0c1a23fdab4bd"
+        },
+        {
+            "m_Id": "7b144a976914480baf430c0f6f7f4def"
+        },
+        {
+            "m_Id": "836f639bd89d42f9b3a0470c3094815e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b691728a389a417d9b4f2d02541209c2",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b7f9ac55517141868bfb9d2ad6429792",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b85d677872b44421bf5536f42ba0267c",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "bc9afcb18afa4ccc82d2cdc34d3f4641",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5392.0,
+            "y": -3867.0,
+            "width": 125.99999237060547,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5e42524569844befad16fda5a94eb9cb"
+        },
+        {
+            "m_Id": "54d7a93ffec5490aa4591da23a21b693"
+        },
+        {
+            "m_Id": "aa2794b8f0e24bf281d22e0fef0647be"
+        },
+        {
+            "m_Id": "200245fc8bbe4826b209ab5f7ffe074c"
+        },
+        {
+            "m_Id": "fc2e62201c5847e798fd939314413fcd"
+        },
+        {
+            "m_Id": "fe11fa80cc1847a5a37f6757d521cf25"
+        },
+        {
+            "m_Id": "de0c6f7f7af94defa6c3dbc6433de9d4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c183b5bd9bbe45089f93996e73110918",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "c234e5216678436195ee1a5914bc79da",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4446.0,
+            "y": -2347.0,
+            "width": 221.99998474121095,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8e6aee1173864e58be589084897a3f35"
+        },
+        {
+            "m_Id": "3db1608e927e4102a3c3a88e9fcab39a"
+        },
+        {
+            "m_Id": "0f7ffb6d2de4447f9736780cbcee8e07"
+        },
+        {
+            "m_Id": "d4954b7bbbb0412cbc997bcbe7dfa808"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "c35312edaa2344788b1964ee2f63a236",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "c3e6d7c20c184bf39fd8822130e693e7",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "c422a9a9ff824176aad2241f58c44d0b",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "c478c32c45884c57a62f7b2aa8ddc3b0",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c52a1744a9a14989b0ae452ad6de6061",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c6bdb985bc16435fa72f5a3c81bb633c",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c7d4094601ac4bc1aead609c72b1f1c1",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c7ddee91dc5b48dc828309c77fdb0b88",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4266.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a7942746b5564dc7bbbae1deb2403022"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "c88fcbaeea954a5f9c68c339fa8b604d",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c9b722d107ce4cd6a748c883472b9b0f",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c9d7f0dbae7d422985a1cc87c025e76b",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4312.0,
+            "y": -3179.000244140625,
+            "width": 144.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "79147f6986644769b58d9ed64fe771e1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "c9ec735d1a1046769e5601b2c97c849a",
+    "m_Guid": {
+        "m_GuidSerialized": "281a9526-c332-4471-a44e-ece4a1e95ef6"
+    },
+    "m_Name": "Face Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_75569DEA",
+    "m_OverrideReferenceName": "_FaceTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ca2a1083dc014f39ab8af0cdf140866b",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_Guid": {
+        "m_GuidSerialized": "21009d12-8d94-4273-b0d0-a8ee0608ddcf"
+    },
+    "m_Name": "OutlineMode",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_OverrideReferenceName": "_OutlineMode",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cb5e9f9567e84f8fa5463efc0e256e19",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "cb7117ecb1d047a8b2cb00ed552cb181",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Alpha",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3032.66650390625,
+            "y": -3029.33349609375,
+            "width": 200.0,
+            "height": 41.33349609375
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "724e17584e97443e9e285dfa7253c8e3"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Alpha"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cc88101667c9488f9c5a716e851c1b21",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cce40479b6284b6fa3174db9f09d0ac9",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "cd7281fb41aa4e61ac0fdf71d4f4bd46",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cda5e3b4c1054bf3a65c0b7ec6bc778a",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "cdddee3a537c464697357f11b966f9b8",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4420.0,
+            "y": -4483.0,
+            "width": 156.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "41b9b79b3859472882bcea393703eec0"
+        },
+        {
+            "m_Id": "c7d4094601ac4bc1aead609c72b1f1c1"
+        },
+        {
+            "m_Id": "767769f736d5478cba5f10a415e28e7f"
+        },
+        {
+            "m_Id": "b691728a389a417d9b4f2d02541209c2"
+        },
+        {
+            "m_Id": "045c4f6b050549c7a0efb208e6349779"
+        },
+        {
+            "m_Id": "509e6f38505b4b0695b263706a55028f"
+        },
+        {
+            "m_Id": "204dacb5a95b424facf11cb6f65bd188"
+        },
+        {
+            "m_Id": "35cbea6373dd4e4f8d0fea36e8add392"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "cfaf3f3a5a1146e194cddad30c95aada",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d0a791a544614667962a9a9a9ce0c68a",
+    "m_Title": "Screen Space Ratio",
+    "m_Position": {
+        "x": -6179.99951171875,
+        "y": -3422.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d0b10e52e21941b183f5f635894c76c8",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d1a17e42e7a04dc38984e3c01149445b",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d219977210094c0082c517d8dc00c8bb",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d258902c6ec74942afdb9ebf8c1d07f8",
+    "m_Title": "Generate Normal",
+    "m_Position": {
+        "x": -4511.33349609375,
+        "y": -3999.3330078125
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "d30452ac6b244ecca03df4d7b4de9f81",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d48c3871e3064027a10ae9f4babd3be0",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlaySoftness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d4954b7bbbb0412cbc997bcbe7dfa808",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "d4df208fc23b42f2b52364124f1b661c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5268.0,
+            "y": -3261.0,
+            "width": 159.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "757174b6f25040fdbb20355a21752222"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "d5173cc3c6cd4f1998550f3187a3e9c8",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d6a6a119394e4082a11bc024a6e42ef8",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d880558893fb442b9320cf55885d1117",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d8edec16956c4f15b7d51d6ec10753f4",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d9bcb754db834583b6518c5ed5152114",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d9dc4839ee2847999110bdb234d6041a",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "da7a06d393a44089842070d51d2aa0a6",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "daaf032a109749a88c9b8ff8e1f8b541",
+    "m_Title": "Offset Scale",
+    "m_Position": {
+        "x": -5747.99951171875,
+        "y": -3961.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "dbcb748279484a4590e53518c49122b8",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4776.00048828125,
+            "y": -2757.000244140625,
+            "width": 145.0,
+            "height": 130.00001525878907
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7a0f504e4175406dbd8134250f4e350b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "dc75c4e3a1bc4bb0a128086c2b0679a5",
+    "m_Guid": {
+        "m_GuidSerialized": "85cd941f-2fd2-43a3-b0fa-9f728bfb4220"
+    },
+    "m_Name": "Face Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_99AFBB3D",
+    "m_OverrideReferenceName": "_FaceColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "de0c6f7f7af94defa6c3dbc6433de9d4",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "deac82280a2b43078e0e40863e2d974c",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "def8e0b9d8384982bc5b4c32d877e458",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "dff7a66b353a4023b29c9d937da77960",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4602.0,
+            "y": -4298.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7b8a19bd115e4167a25b59cb3218a817"
+        },
+        {
+            "m_Id": "0b57f2d35157477ab2b29a5aac14ae8b"
+        },
+        {
+            "m_Id": "e9e06fcb161e44ba8cc9f6f60264df78"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "e141833aa78b4fd59ecad949beb43a78",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e2d28f29bbac4983a401574480b5ca28",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "e386b183a18245a796b024022f7f3074",
+    "m_Id": 0,
+    "m_DisplayName": "Normal (Object Space)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "NormalOS",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e444f2c81d1e48329fa2c91005277e8d",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "e495a9f7a11f4eb89334e83be154ceb9",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e51a636b2621440eb94cc802c1cf4bfc",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "e591df3a1eb94e259b762f2830b407e2",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Emission",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4590bfa2a0664b65b6f073bae33a071f"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Emission"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e6e80c6b0db545cda26b079a9a78fbb3",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "e818605f8f5a4f01bf61caaa33693581",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "ComputeSDF44 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4144.0,
+            "y": -3369.0,
+            "width": 244.0,
+            "height": 214.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "641eda269d7b4da9acb65f8d50035ea9"
+        },
+        {
+            "m_Id": "f6823778a3cf42d5bbe8a83e5f9c9fa3"
+        },
+        {
+            "m_Id": "9c26fdddba244d36a854298c00473247"
+        },
+        {
+            "m_Id": "f684c5678e9e4f078157a3ab7ef5057b"
+        },
+        {
+            "m_Id": "14ad19bf20a140dd88d58452d7df688b"
+        },
+        {
+            "m_Id": "215a82c127204988b751de7d3a39b955"
+        },
+        {
+            "m_Id": "c478c32c45884c57a62f7b2aa8ddc3b0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF44",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "e9e06fcb161e44ba8cc9f6f60264df78",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebbd94a7102a4457a48ac492de3bff14",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebd6d75abcb84108bcadbfe7ee5f6244",
+    "m_Id": 7,
+    "m_DisplayName": "TextureHeight",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureHeight",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "ec184d6d9fb2494897774c9e7d279e6d",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4778.00048828125,
+            "y": -2626.0,
+            "width": 145.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ca2a1083dc014f39ab8af0cdf140866b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "07946387933e416db576b677f0711e5f"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "ec1f2e8bc9fd4ae38b133c60ee6c49b8",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4957.99951171875,
+            "y": -3204.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "748c31bbcecc4b30bec2e42c0612175b"
+        },
+        {
+            "m_Id": "4bda5c294e1949138d033640e1d385b4"
+        },
+        {
+            "m_Id": "4e64dac49ddc47c3b5b1e27b17a08304"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "ec79eb447dfd47a9b3380344c6a60f43",
+    "m_Guid": {
+        "m_GuidSerialized": "54c77f8b-0534-4b35-a3f0-83ab2ebe6c1f"
+    },
+    "m_Name": "_OutlineTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1774DE83",
+    "m_OverrideReferenceName": "_OutlineTex_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "ecf16c34d46f4502ac601f0c38c7576b",
+    "m_Title": "Vertex Color",
+    "m_Position": {
+        "x": -3448.000244140625,
+        "y": -3579.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ed1d1f1613334c3bb904dd08161cd7e5",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ed6c215a65584deeaefad1d2c7743044",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "edbee7a8952b46529ac5ad0365775774",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
+    "m_ObjectId": "ef0b93f78372439696f50711eaf57d90",
+    "m_Id": 0,
+    "m_DisplayName": "Base Color",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "BaseColor",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.7353569269180298,
+        "y": 0.7353569269180298,
+        "z": 0.7353569269180298
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_ColorMode": 0,
+    "m_DefaultColor": {
+        "r": 0.5,
+        "g": 0.5,
+        "b": 0.5,
+        "a": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "ef9738ec7e894772a14e9dce441c16c6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "f01d52cdcb1647aab35782b4af535efd",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "f23a8b2b7c85478388ff7a8c8a6de740",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Layer4 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3849.999755859375,
+            "y": -3286.0,
+            "width": 193.0,
+            "height": 189.99998474121095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0fac35636fca4474a6afaefc3c757775"
+        },
+        {
+            "m_Id": "cc88101667c9488f9c5a716e851c1b21"
+        },
+        {
+            "m_Id": "68ec7c31365549d6a8ce883edfc02de2"
+        },
+        {
+            "m_Id": "02559cbe5ad441a3904ccb75ded2b2c5"
+        },
+        {
+            "m_Id": "34a67e0fef884f9399e674d9eeaf720c"
+        },
+        {
+            "m_Id": "3802c81c3be24823aa1d7c9997a33c29"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer4",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "f2903158b3624759bca1fcd843698078",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 2.0,
+        "y": 2.0,
+        "z": 2.0,
+        "w": 2.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "f2a351a5375c441b8d9ab7e2c9545a77",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "f383b24f0bc6434dafe44b3e3d338a63",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6012.99951171875,
+            "y": -3209.0,
+            "width": 183.99998474121095,
+            "height": 100.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "fb5e1e2a67c14602808358686bb75091"
+        },
+        {
+            "m_Id": "712da461f71a454db59d349f752d41ee"
+        },
+        {
+            "m_Id": "b000f852aa984e9dae25b125a4607f4e"
+        },
+        {
+            "m_Id": "55a3403c16184e63b4e78607a6a20cd8"
+        },
+        {
+            "m_Id": "b467be738d0e454995e380cbf526efe3"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "f3d31c1f18d8491a8ecf5cbc37e4b7db",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4321.0,
+            "y": -3281.000244140625,
+            "width": 153.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ed1d1f1613334c3bb904dd08161cd7e5"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f42ad06b3c6a45d3ab33de904c063412",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f48f04ad45d046a8b88e71731ed506e7",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "f4ecc442a2d246759f7c2c0412953d28",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Normal",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a3f8b6e8ae7f48e2989a029904401502"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Normal"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f6823778a3cf42d5bbe8a83e5f9c9fa3",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f684c5678e9e4f078157a3ab7ef5057b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 3.0,
+        "y": 2.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "f814deb543c24fbbafbcdb5071d96022",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4600.0,
+            "y": -3245.0,
+            "width": 183.99998474121095,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "abd59150589b436cadf8c9e6f43ccb8e"
+        },
+        {
+            "m_Id": "7acfafd73b8c4dfab8c55c18a887e087"
+        },
+        {
+            "m_Id": "928621a3ca2d41c89a10336bbbc81ddc"
+        },
+        {
+            "m_Id": "b7f9ac55517141868bfb9d2ad6429792"
+        },
+        {
+            "m_Id": "09b1b86c1c074337a4c439d3a308dd2e"
+        },
+        {
+            "m_Id": "1f247658c7ba45fb93c41f51e21acb0d"
+        },
+        {
+            "m_Id": "d30452ac6b244ecca03df4d7b4de9f81"
+        },
+        {
+            "m_Id": "215b30ae27784ec3a13360a9029af283"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f864c900600e427ba7793f00c715e971",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fa6de3be9f5b4411b5081b49e645f424",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DivideNode",
+    "m_ObjectId": "faace8101df943d8956faa31728cb004",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Divide",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5254.99951171875,
+            "y": -3891.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "77e28f3e930b4c249145630ec961af95"
+        },
+        {
+            "m_Id": "f2903158b3624759bca1fcd843698078"
+        },
+        {
+            "m_Id": "30ca940fe2794c949f2a1d4d2caaa446"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "facc84930f544fd7a0205a6176b18ac0",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "fb15d0ba56d54a6192f11e107aeb5fa8",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "fb5e1e2a67c14602808358686bb75091",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "fc2e62201c5847e798fd939314413fcd",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fd0b096ed5b74f9e9ec51327be200731",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "fdb77c3e92ee497b88ca5dc46dc45350",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4208.0,
+            "y": -2371.0,
+            "width": 180.0,
+            "height": 180.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4328cdbf78b94c038fd614c59bfe1cac"
+        },
+        {
+            "m_Id": "04dfcc9ff13a4bf282ed46faec39d15c"
+        },
+        {
+            "m_Id": "71dd947935b64ce38f0d25406dde447b"
+        },
+        {
+            "m_Id": "61a6ac5f29344d109411f26850ab0a96"
+        },
+        {
+            "m_Id": "44806230fa384c1e95f9c5918a14f056"
+        },
+        {
+            "m_Id": "4eb3c00a1ca44e10be833b7ca61ff059"
+        },
+        {
+            "m_Id": "57abc172afd449e2a4d567f93432507b"
+        },
+        {
+            "m_Id": "cda5e3b4c1054bf3a65c0b7ec6bc778a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "fe11fa80cc1847a5a37f6757d521cf25",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Lit.shadergraph.meta b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Lit.shadergraph.meta
new file mode 100644
index 0000000000..54c945eb51
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Lit.shadergraph.meta	
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: a3d800b099a06e0478fb790c5e79057a
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Unlit.shadergraph b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Unlit.shadergraph
new file mode 100644
index 0000000000..d7d31de8c3
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Unlit.shadergraph	
@@ -0,0 +1,11629 @@
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.GraphData",
+    "m_ObjectId": "386c36a1c4c34ea29deb680fb82cfe8b",
+    "m_Properties": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "4a0041116f73406db7a62ae80ff54ef4"
+        }
+    ],
+    "m_Keywords": [],
+    "m_Dropdowns": [],
+    "m_CategoryData": [
+        {
+            "m_Id": "bafc3d388c1e444e820897b9a3d6029a"
+        }
+    ],
+    "m_Nodes": [
+        {
+            "m_Id": "b1188549725543d485436c2e921ffbb2"
+        },
+        {
+            "m_Id": "4488af8ff6a7421298a7e827f567263b"
+        },
+        {
+            "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+        },
+        {
+            "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+        },
+        {
+            "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+        },
+        {
+            "m_Id": "150533bad8e2424aaa2c74e253af8592"
+        },
+        {
+            "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+        },
+        {
+            "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+        },
+        {
+            "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+        },
+        {
+            "m_Id": "9c228fac287d446296b91a4acf5cec59"
+        },
+        {
+            "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+        },
+        {
+            "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+        },
+        {
+            "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+        },
+        {
+            "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+        },
+        {
+            "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+        },
+        {
+            "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+        },
+        {
+            "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+        },
+        {
+            "m_Id": "cdddee3a537c464697357f11b966f9b8"
+        },
+        {
+            "m_Id": "88253223d2c34ecfab92b0c344048f94"
+        },
+        {
+            "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+        },
+        {
+            "m_Id": "1e12726617b24675958e942eb62e4b09"
+        },
+        {
+            "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+        },
+        {
+            "m_Id": "44317f2e371447e2a8d894f8a021a235"
+        },
+        {
+            "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+        },
+        {
+            "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+        },
+        {
+            "m_Id": "19075add867e4757b9520d18fe8de1d0"
+        },
+        {
+            "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+        },
+        {
+            "m_Id": "c234e5216678436195ee1a5914bc79da"
+        },
+        {
+            "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+        },
+        {
+            "m_Id": "59bd90a849624124bae6464ee3669aa6"
+        },
+        {
+            "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+        },
+        {
+            "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+        },
+        {
+            "m_Id": "285f6a9863d54ed2a8150727ad749456"
+        },
+        {
+            "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+        },
+        {
+            "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+        },
+        {
+            "m_Id": "dbcb748279484a4590e53518c49122b8"
+        },
+        {
+            "m_Id": "04dc152dd2ba4d519391577eb1156235"
+        },
+        {
+            "m_Id": "9f0de188085746d5a19073da1de85ddb"
+        },
+        {
+            "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+        },
+        {
+            "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+        },
+        {
+            "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+        },
+        {
+            "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+        },
+        {
+            "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+        },
+        {
+            "m_Id": "3c50439118b2496f9e390021b0964606"
+        },
+        {
+            "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+        },
+        {
+            "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+        },
+        {
+            "m_Id": "2a552a0b828f457c911aa19561e410ae"
+        },
+        {
+            "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+        },
+        {
+            "m_Id": "51378bae98a94c309785d14cd5cbb453"
+        },
+        {
+            "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+        },
+        {
+            "m_Id": "7444469eb9884253819add9ef96baa25"
+        },
+        {
+            "m_Id": "67a519f507384ff1861df5d8d5b486be"
+        },
+        {
+            "m_Id": "48390d02257d41bf98eace1deaa4c539"
+        },
+        {
+            "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+        },
+        {
+            "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+        },
+        {
+            "m_Id": "aca823a8188948c782eddaf0f45e1868"
+        },
+        {
+            "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+        },
+        {
+            "m_Id": "163beb4431c34f538340bc0af0991e6f"
+        },
+        {
+            "m_Id": "39f2f84f30304d859fb07569e2695f60"
+        },
+        {
+            "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+        },
+        {
+            "m_Id": "4abff6ff92fa4a05b203f10580988335"
+        },
+        {
+            "m_Id": "319916a5921343f7b7eef0e50dc93def"
+        },
+        {
+            "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+        },
+        {
+            "m_Id": "65c8e64a7535466e933eed08a2f77532"
+        },
+        {
+            "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+        },
+        {
+            "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+        },
+        {
+            "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+        },
+        {
+            "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+        },
+        {
+            "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+        },
+        {
+            "m_Id": "faace8101df943d8956faa31728cb004"
+        },
+        {
+            "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+        },
+        {
+            "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+        },
+        {
+            "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+        },
+        {
+            "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+        },
+        {
+            "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+        },
+        {
+            "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+        },
+        {
+            "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+        },
+        {
+            "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+        },
+        {
+            "m_Id": "dff7a66b353a4023b29c9d937da77960"
+        },
+        {
+            "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+        },
+        {
+            "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+        },
+        {
+            "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+        },
+        {
+            "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+        }
+    ],
+    "m_GroupDatas": [
+        {
+            "m_Id": "484b51c50485473b819c4f05087b32d7"
+        },
+        {
+            "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+        },
+        {
+            "m_Id": "42cadae0923e4969b50bbc3f78185934"
+        },
+        {
+            "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+        },
+        {
+            "m_Id": "98934a69591249d5b8b92b39045359a3"
+        },
+        {
+            "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+        },
+        {
+            "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+        },
+        {
+            "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+        }
+    ],
+    "m_StickyNoteDatas": [],
+    "m_Edges": [
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "007c75c776ac4f1babe9cd7ae1fc4f14"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "04dc152dd2ba4d519391577eb1156235"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "105b1ed1aa714e41bbe1ef5472bdb11f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "150533bad8e2424aaa2c74e253af8592"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "19075add867e4757b9520d18fe8de1d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1c4df61c2fea404eb3b87b270d7c59bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "1e12726617b24675958e942eb62e4b09"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "285f6a9863d54ed2a8150727ad749456"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2a552a0b828f457c911aa19561e410ae"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "2db15d90c2204143b225ec4ef08d0755"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "36f1b4d96f2941c39e5cd95d9c1d2ce6"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "39f2f84f30304d859fb07569e2695f60"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "163beb4431c34f538340bc0af0991e6f"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 5
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "42a586e4f6ec40eeaba891b7fd133864"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4488af8ff6a7421298a7e827f567263b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4648b46ad29a4008a80de4f8a5a5b813"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "4f194ff591484e908fc2bcdacbcf2570"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aca823a8188948c782eddaf0f45e1868"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "52798bdb86f6400e86489a7a368e9f8b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "63c7cd57fc3c45a9a97b514fdae32693"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "67a519f507384ff1861df5d8d5b486be"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7444469eb9884253819add9ef96baa25"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7984fd094e1147bdabb4e26fbd3d31c8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "65c8e64a7535466e933eed08a2f77532"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "319916a5921343f7b7eef0e50dc93def"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "7e0fadb2533f496192c1ad3e78642010"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "8135ca333f8f4ea78163743e6ec1f55c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "85b5940eb77e4625812ded7215bab8d7"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "44317f2e371447e2a8d894f8a021a235"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9147636b0cfa466a9b37a013d8f693bf"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 3
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "3e231021af7b47ba97f2871e7f25d0fe"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "91890fe48ebe4717aea61ecaf3ad4861"
+                },
+                "m_SlotId": 4
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "95928bcb6a284b8d88105a84c2e1d3ce"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9c228fac287d446296b91a4acf5cec59"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7a80e8839f0e4a1d9a6c0814f8793ee6"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d7696aa6d184b4fb9c316a9dec37aee"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9d3c3383d5934a17bf9efbb7fd9e9043"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e6e50a71d9843b49b62ebe1cf7d3d59"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9e87ce9607e14015a3790c528ca5dfda"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "a535f3bcbeb14622bb177eb6f46e76f4"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 1
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "2ac79705aa9e415dbb74ec215233fd1b"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aa87c72ac0e64469acc34f936f00b3d0"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 4
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 5
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "acd0cd5a177f4a97bf23db7219305e3f"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "51378bae98a94c309785d14cd5cbb453"
+                },
+                "m_SlotId": 7
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "aef5c44f84e04c3185e0b93e95e34204"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b1188549725543d485436c2e921ffbb2"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "7d78a616c2754cc28d1f32cf66ade611"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b163c9f1666644b0bba62cf0e12df7bc"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "9f0de188085746d5a19073da1de85ddb"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "b571db753a1948d5a6f1de4e7d0c7238"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "bc9afcb18afa4ccc82d2cdc34d3f4641"
+                },
+                "m_SlotId": 6
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c234e5216678436195ee1a5914bc79da"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c7ddee91dc5b48dc828309c77fdb0b88"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "c9d7f0dbae7d422985a1cc87c025e76b"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 6
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "88253223d2c34ecfab92b0c344048f94"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "d4df208fc23b42f2b52364124f1b661c"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dbcb748279484a4590e53518c49122b8"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 0
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "dff7a66b353a4023b29c9d937da77960"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "cdddee3a537c464697357f11b966f9b8"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec184d6d9fb2494897774c9e7d279e6d"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "a455bd79094c4413a7b7dd80ca8b9368"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "ec1f2e8bc9fd4ae38b133c60ee6c49b8"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f23a8b2b7c85478388ff7a8c8a6de740"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "aa3e347d733e48f7b65d8a8847370eec"
+                },
+                "m_SlotId": 2
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f383b24f0bc6434dafe44b3e3d338a63"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "85a1ad8e741e41759002e8cdc8cd0b96"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f3d31c1f18d8491a8ecf5cbc37e4b7db"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "e818605f8f5a4f01bf61caaa33693581"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "f814deb543c24fbbafbcdb5071d96022"
+                },
+                "m_SlotId": 7
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "4abff6ff92fa4a05b203f10580988335"
+                },
+                "m_SlotId": 3
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "109f638d1f9b49d4991d6d21a86d4eb7"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "56c25395796e4d2fbe5c892d428d1620"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "6b2f65c1463f4f7bad16c54a95d2fe75"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "faace8101df943d8956faa31728cb004"
+                },
+                "m_SlotId": 2
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "b4a40cb6acd441acb83cfe0240bf910d"
+                },
+                "m_SlotId": 1
+            }
+        },
+        {
+            "m_OutputSlot": {
+                "m_Node": {
+                    "m_Id": "fdb77c3e92ee497b88ca5dc46dc45350"
+                },
+                "m_SlotId": 0
+            },
+            "m_InputSlot": {
+                "m_Node": {
+                    "m_Id": "59bd90a849624124bae6464ee3669aa6"
+                },
+                "m_SlotId": 1
+            }
+        }
+    ],
+    "m_VertexContext": {
+        "m_Position": {
+            "x": -2624.000244140625,
+            "y": -3709.000244140625
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "48390d02257d41bf98eace1deaa4c539"
+            },
+            {
+                "m_Id": "f4ecc442a2d246759f7c2c0412953d28"
+            },
+            {
+                "m_Id": "7f2e6b5f15364ed9835d67d0cf4f8f65"
+            }
+        ]
+    },
+    "m_FragmentContext": {
+        "m_Position": {
+            "x": -2624.000244140625,
+            "y": -3424.000244140625
+        },
+        "m_Blocks": [
+            {
+                "m_Id": "aca823a8188948c782eddaf0f45e1868"
+            },
+            {
+                "m_Id": "6e8946a245e842b38231d4a241bfb3ef"
+            },
+            {
+                "m_Id": "cb7117ecb1d047a8b2cb00ed552cb181"
+            },
+            {
+                "m_Id": "3c50439118b2496f9e390021b0964606"
+            }
+        ]
+    },
+    "m_PreviewData": {
+        "serializedMesh": {
+            "m_SerializedMesh": "{\"mesh\":{\"fileID\":10210,\"guid\":\"0000000000000000e000000000000000\",\"type\":0}}",
+            "m_Guid": ""
+        },
+        "preventRotation": false
+    },
+    "m_Path": "TextMeshPro/SRP",
+    "m_GraphPrecision": 0,
+    "m_PreviewMode": 2,
+    "m_OutputNode": {
+        "m_Id": ""
+    },
+    "m_ActiveTargets": [
+        {
+            "m_Id": "94300469581b4924ac7dda496811d45d"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "007c75c776ac4f1babe9cd7ae1fc4f14",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5868.0,
+            "y": -3787.000244140625,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1356dc7cbdfa4199a6535d3bbf4cd536"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "013228b0fdf1424097798f0973a9a4fb",
+    "m_Title": "Face Texture",
+    "m_Position": {
+        "x": -4779.494140625,
+        "y": -2948.97265625
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "02559cbe5ad441a3904ccb75ded2b2c5",
+    "m_Id": 5,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "03182b3263304258b265266325c21f65",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "045c4f6b050549c7a0efb208e6349779",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "04dc152dd2ba4d519391577eb1156235",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4500.0,
+            "y": -2747.0,
+            "width": 151.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3d04f5ba6e7b40d281f22eb424145acd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "04dfcc9ff13a4bf282ed46faec39d15c",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "05805bc6fcc941fd889922555c6c86d7",
+    "m_Guid": {
+        "m_GuidSerialized": "fe84e680-4cee-4ca5-be86-2e293a9ba093"
+    },
+    "m_Name": "Ambient Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_05805bc6fcc941fd889922555c6c86d7",
+    "m_OverrideReferenceName": "_Ambient",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "0580d4b7e3a049049569f4508643a724",
+    "m_Guid": {
+        "m_GuidSerialized": "eefb88c5-7665-45dc-b3c2-7cf98b9990d6"
+    },
+    "m_Name": "Softness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_D64EC33D",
+    "m_OverrideReferenceName": "_Softness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "068ae649e00b40e198ec5a30ad741fab",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0699eea947fc426cbfeb8744cf120222",
+    "m_Id": 1,
+    "m_DisplayName": "Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "07946387933e416db576b677f0711e5f",
+    "m_Guid": {
+        "m_GuidSerialized": "21d612fb-8153-41f8-9e2f-9de044c19fbf"
+    },
+    "m_Name": "_FaceTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1A08AD4A",
+    "m_OverrideReferenceName": "_FaceTex_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "082e9706dffc4c188270980d4e44ce0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0848ba750e0341198cf0bbd413e0efe4",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "09b1b86c1c074337a4c439d3a308dd2e",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0a67ca5280214bd794dc0ad66b5710a9",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0b57f2d35157477ab2b29a5aac14ae8b",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "0ba4932e164847878ddb7b7bcff96985",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0c4dc51f26484c26ad88a3fe4002abcd",
+    "m_Id": 2,
+    "m_DisplayName": "Color (1)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "0d6a57754b824f6db9cefa6953bc06a9",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "0d7878dd226d4cfb81a991dc312309fc",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Dilate",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 2,
+    "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalUnlitSubTarget",
+    "m_ObjectId": "0eeb5490760e492f8c9691086fa00929"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "0f7ffb6d2de4447f9736780cbcee8e07",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "0fac35636fca4474a6afaefc3c757775",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "105b1ed1aa714e41bbe1ef5472bdb11f",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4923.99951171875,
+            "y": -4233.0,
+            "width": 158.99998474121095,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8a08179f99d649d289b8053d5fa0ad22"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "109f638d1f9b49d4991d6d21a86d4eb7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5068.0,
+            "y": -3182.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "880bb02c6c6b49b18aa6ebc66dc566a0"
+        },
+        {
+            "m_Id": "1b9cd8f5f4004e2eaf8afbaab803bc04"
+        },
+        {
+            "m_Id": "b224a1cf80604103ad085c799995f3c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "10a99c07aad742349d258db16838c129",
+    "m_Id": 1,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1196ae398cc348349ab0c1a23fdab4bd",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1356dc7cbdfa4199a6535d3bbf4cd536",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "14ad19bf20a140dd88d58452d7df688b",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "150533bad8e2424aaa2c74e253af8592",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4923.99951171875,
+            "y": -3486.666259765625,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "72fb5a0d7796446b9e2b929cb32facdc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "163beb4431c34f538340bc0af0991e6f",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3415.000244140625,
+            "y": -3462.0,
+            "width": 120.00000762939453,
+            "height": 149.00001525878907
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c334de01ecd429baa7652fc6002536b"
+        },
+        {
+            "m_Id": "e2d28f29bbac4983a401574480b5ca28"
+        },
+        {
+            "m_Id": "6a7af6143e114a538663e71f56731a21"
+        },
+        {
+            "m_Id": "3e25be96bb3747738c238cf3a741d5df"
+        },
+        {
+            "m_Id": "4907352322c644ebacdf2ca30f2994fd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "19075add867e4757b9520d18fe8de1d0",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4261.33349609375,
+            "y": -3197.33349609375,
+            "width": 124.66650390625,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4c28ee9109014fa086e5de7a3993341d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "0580d4b7e3a049049569f4508643a724"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1b9cd8f5f4004e2eaf8afbaab803bc04",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1bdde3efd3b7464b8934c555be0f8a48",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "1be90d4f96a841748b0c95219b12ad27",
+    "m_Guid": {
+        "m_GuidSerialized": "4c91c146-43bb-4de8-948a-fbf8b1da10e1"
+    },
+    "m_Name": "Bevel Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_97690701",
+    "m_OverrideReferenceName": "_BevelOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": -0.5,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "1c4df61c2fea404eb3b87b270d7c59bc",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4280.0,
+            "y": -3221.33349609375,
+            "width": 145.3330078125,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "f864c900600e427ba7793f00c715e971"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "1d35fa1fb5004f96a65ace54fbe4f1ad",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1d7d96a5770b4f8ebb162bdbde020bca",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1db37082bf844442804487b4944352de",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "1df58cfa4dad4c449d01ee1c5ea05f2e",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "1e12726617b24675958e942eb62e4b09",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4772.0,
+            "y": -4404.0,
+            "width": 145.00001525878907,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0848ba750e0341198cf0bbd413e0efe4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "1f247658c7ba45fb93c41f51e21acb0d",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "1f46181633594ae0a1fb2adb76b42981",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "200245fc8bbe4826b209ab5f7ffe074c",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "204dacb5a95b424facf11cb6f65bd188",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "215a82c127204988b751de7d3a39b955",
+    "m_Id": 6,
+    "m_DisplayName": "Outline",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Outline",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "215b30ae27784ec3a13360a9029af283",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "21a7a380e66d42e780e2a2a1baa630d5",
+    "m_Guid": {
+        "m_GuidSerialized": "b2d0099f-e605-49f5-9959-e7cacae37aa3"
+    },
+    "m_Name": "Bevel Type",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_21a7a380e66d42e780e2a2a1baa630d5",
+    "m_OverrideReferenceName": "_BevelType",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e",
+    "m_Guid": {
+        "m_GuidSerialized": "cd167d3a-7465-4d5a-86fc-0f22dc0ef908"
+    },
+    "m_Name": "Outline Color 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_5550EB71",
+    "m_OverrideReferenceName": "_OutlineColor1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "232b1aa09e67479abae141d3c76d3c5b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "256d41e89a204d22951450de1c38051d",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "26e48352a08441bfa694dcea54c06e36",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "281bcee4777040f8a31ee0e10344e98d",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "285f6a9863d54ed2a8150727ad749456",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4145.0,
+            "y": -2406.0,
+            "width": 154.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b42e6dbfbc864097af182cbff5c0c1fb"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.IsFrontFaceNode",
+    "m_ObjectId": "2a552a0b828f457c911aa19561e410ae",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Is Front Face",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4282.0,
+            "y": -3681.3330078125,
+            "width": 121.99999237060547,
+            "height": 77.33348846435547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2ef1d888dc9d49e59d6a6950897ddc93"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "2ac79705aa9e415dbb74ec215233fd1b",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "Composite (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3277.3330078125,
+            "y": -3841.33349609375,
+            "width": 218.666748046875,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a75f7ac601c446469802fe7754c1f279"
+        },
+        {
+            "m_Id": "8c38a5d8327f456e9783740c05382619"
+        },
+        {
+            "m_Id": "facc84930f544fd7a0205a6176b18ac0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Composite",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2b01ea3023e34c94af1754e4dcea8f2e",
+    "m_Id": 0,
+    "m_DisplayName": "Face Color",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2bf5f2fdd2984599b7323d10cfb1d240",
+    "m_Id": 1,
+    "m_DisplayName": "Filter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Filter",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "2c10b97b92c947ceb307a93759c0228b",
+    "m_Guid": {
+        "m_GuidSerialized": "6be0b8ff-a766-4c6b-a6e4-3a72758ac95f"
+    },
+    "m_Name": "Bevel Amount",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B01DD93E",
+    "m_OverrideReferenceName": "_BevelAmount",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "2c7a9460724b47daad8df1be144de7c6",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "2d0a269511e34bd1ba9056d2c939dff2",
+    "m_Guid": {
+        "m_GuidSerialized": "edbe73dc-53ab-4bc1-9d64-ab36e0e05f03"
+    },
+    "m_Name": "_FaceUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_3A8E0F13",
+    "m_OverrideReferenceName": "_FaceUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "2db15d90c2204143b225ec4ef08d0755",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4350.0,
+            "y": -2396.0,
+            "width": 163.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "def8e0b9d8384982bc5b4c32d877e458"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "2e4eb1ef08bb44178c82e53872485e0f",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "2ef1d888dc9d49e59d6a6950897ddc93",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 2,
+    "m_Value": true,
+    "m_DefaultValue": true
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "30ca940fe2794c949f2a1d4d2caaa446",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "319916a5921343f7b7eef0e50dc93def",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4760.0,
+            "y": -3245.000244140625,
+            "width": 184.0,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d219977210094c0082c517d8dc00c8bb"
+        },
+        {
+            "m_Id": "f48f04ad45d046a8b88e71731ed506e7"
+        },
+        {
+            "m_Id": "e6e80c6b0db545cda26b079a9a78fbb3"
+        },
+        {
+            "m_Id": "c6bdb985bc16435fa72f5a3c81bb633c"
+        },
+        {
+            "m_Id": "d1a17e42e7a04dc38984e3c01149445b"
+        },
+        {
+            "m_Id": "fb15d0ba56d54a6192f11e107aeb5fa8"
+        },
+        {
+            "m_Id": "c35312edaa2344788b1964ee2f63a236"
+        },
+        {
+            "m_Id": "c88fcbaeea954a5f9c68c339fa8b604d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "34a67e0fef884f9399e674d9eeaf720c",
+    "m_Id": 6,
+    "m_DisplayName": "Color3",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color3",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "34a72a5ebb04402384a4fd3748111a37",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha Clip Threshold",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AlphaClipThreshold",
+    "m_StageCapability": 2,
+    "m_Value": 0.0010000000474974514,
+    "m_DefaultValue": 0.5,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3535ae87c6dd4769b52b20d9eca61069",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "35cbea6373dd4e4f8d0fea36e8add392",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "36a0c473c4c04c3a930dd38f3920d410",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "36f1b4d96f2941c39e5cd95d9c1d2ce6",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6314.6669921875,
+            "y": -3285.3330078125,
+            "width": 144.6669921875,
+            "height": 129.33348083496095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "65b3dc13b2b6484283ffe5abfe87a06a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "373f1de8db6c429c9d46c781f741d7a4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3802c81c3be24823aa1d7c9997a33c29",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "3915c1927ffe49f8967304321cfbe497",
+    "m_Id": 4,
+    "m_DisplayName": "Atlas",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Atlas",
+    "m_StageCapability": 3,
+    "m_BareResource": true,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "39a382d661e2484da71f04c43f48e55f",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "39f2f84f30304d859fb07569e2695f60",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3554.000244140625,
+            "y": -3462.0,
+            "width": 116.00000762939453,
+            "height": 94.00000762939453
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4b2d9ea03bf64fa19dcae1511d2581da"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "3c50439118b2496f9e390021b0964606",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.AlphaClipThreshold",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3028.0,
+            "y": -3054.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "34a72a5ebb04402384a4fd3748111a37"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.AlphaClipThreshold"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "3d04f5ba6e7b40d281f22eb424145acd",
+    "m_Id": 0,
+    "m_DisplayName": "Face Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "3db1608e927e4102a3c3a88e9fcab39a",
+    "m_Id": 3,
+    "m_DisplayName": "Transform",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Transform",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "3dccd64e7f324bc1a75c1479d7a67c51",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "3e231021af7b47ba97f2871e7f25d0fe",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2934.000244140625,
+            "y": -3466.0,
+            "width": 141.33349609375,
+            "height": 166.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6ccaced3889e4503a9414d808ec33981"
+        },
+        {
+            "m_Id": "7f3d71a6c96847c099da45f95aafbecb"
+        },
+        {
+            "m_Id": "d8edec16956c4f15b7d51d6ec10753f4"
+        },
+        {
+            "m_Id": "39a382d661e2484da71f04c43f48e55f"
+        },
+        {
+            "m_Id": "8764669016f6442f8152593c18a649d7"
+        },
+        {
+            "m_Id": "26e48352a08441bfa694dcea54c06e36"
+        },
+        {
+            "m_Id": "3e94a0d106064bdb864c960512ef4026"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "3e25be96bb3747738c238cf3a741d5df",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "3e372195f4bd4845852a37839e5b602d",
+    "m_Guid": {
+        "m_GuidSerialized": "60abd046-2a1a-48cd-a0af-2f702f7f53ab"
+    },
+    "m_Name": "_MainTex",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_90CBF488",
+    "m_OverrideReferenceName": "_MainTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":28684132378477856,\"guid\":\"8f586378b4e144a9851e7b34d9b748ee\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "3e94a0d106064bdb864c960512ef4026",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "3ec4797e381747829ef4712c85fcf7a1",
+    "m_Guid": {
+        "m_GuidSerialized": "020d65cc-50a8-4b8a-a624-90d7b489f549"
+    },
+    "m_Name": "Specular Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_3ec4797e381747829ef4712c85fcf7a1",
+    "m_OverrideReferenceName": "_SpecularPower",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 4.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "3fdf4b7bc5d4426492dcc057603ef4a6",
+    "m_Guid": {
+        "m_GuidSerialized": "675d2567-3fca-4da6-9462-dfa4924950f1"
+    },
+    "m_Name": "_OutlineUVSpeed",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_D66D89E6",
+    "m_OverrideReferenceName": "_OutlineUVSpeed",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "400d0b6c95dd4540ad3da3e8cb7e50b2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "41986ac6400d46709d0ef043a67f6b34",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "41b9b79b3859472882bcea393703eec0",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "424dbeeb009344efa29c304c4979e3d6",
+    "m_Guid": {
+        "m_GuidSerialized": "314c37de-c6f2-4463-866d-8588f6fc119e"
+    },
+    "m_Name": "Diffuse Shadow",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_424dbeeb009344efa29c304c4979e3d6",
+    "m_OverrideReferenceName": "_Diffuse",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.30000001192092898,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "42a586e4f6ec40eeaba891b7fd133864",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4934.0,
+            "y": -4442.99951171875,
+            "width": 133.99998474121095,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "da7a06d393a44089842070d51d2aa0a6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "42cadae0923e4969b50bbc3f78185934",
+    "m_Title": "Face + 3 Outlines + Underlay",
+    "m_Position": {
+        "x": -5437.0,
+        "y": -3558.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4328cdbf78b94c038fd614c59bfe1cac",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "44317f2e371447e2a8d894f8a021a235",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Layer1 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4004.999755859375,
+            "y": -4173.0,
+            "width": 191.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "10a99c07aad742349d258db16838c129"
+        },
+        {
+            "m_Id": "b85d677872b44421bf5536f42ba0267c"
+        },
+        {
+            "m_Id": "75aba700d74d4b2687bf3166cf1da3e2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer1",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "44806230fa384c1e95f9c5918a14f056",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4488af8ff6a7421298a7e827f567263b",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4109.0,
+            "width": 158.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "66f69ef16eac4eb48357bde804cf3c39"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "4648b46ad29a4008a80de4f8a5a5b813",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4576.0,
+            "y": -2437.0,
+            "width": 145.0,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b2baf44eae52473cb6cda7b1debece01"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "46fbf3eeb0ea4470869cba7443249295",
+    "m_Guid": {
+        "m_GuidSerialized": "be87c5a3-e361-4b95-89c8-911c39a51c0d"
+    },
+    "m_Name": "Outline Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_A0B54237",
+    "m_OverrideReferenceName": "_OutlineTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "47d020251e9841a5b1f0fd64396026a1",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "48390d02257d41bf98eace1deaa4c539",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Position",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8036d0e6090b456e9b4ea87227868236"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Position"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "484b51c50485473b819c4f05087b32d7",
+    "m_Title": "Underlay",
+    "m_Position": {
+        "x": -5253.0,
+        "y": -4542.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4907352322c644ebacdf2ca30f2994fd",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "49dabfd48a78475882e664526b483ce1",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "49e7c3ad55ce458797f0e60c950cb965",
+    "m_Guid": {
+        "m_GuidSerialized": "31b55db9-0da1-4ec4-af2b-d83747ed5bc4"
+    },
+    "m_Name": "Underlay Offset",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_CE9DEDB3",
+    "m_OverrideReferenceName": "_UnderlayOffset",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "4a0041116f73406db7a62ae80ff54ef4",
+    "m_Guid": {
+        "m_GuidSerialized": "a2d96028-f92f-4076-8376-42249ca40935"
+    },
+    "m_Name": "_ScaleRatioA",
+    "m_DefaultRefNameVersion": 1,
+    "m_RefNameGeneratedByDisplayName": "_ScaleRatioA",
+    "m_DefaultReferenceName": "_ScaleRatioA",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4a66dcbe712a4d40bd8f355b834594b5",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "4abff6ff92fa4a05b203f10580988335",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4293.3330078125,
+            "y": -3497.99951171875,
+            "width": 140.66648864746095,
+            "height": 166.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "b015d1b7e4134c59baf6851e7649802c"
+        },
+        {
+            "m_Id": "d9dc4839ee2847999110bdb234d6041a"
+        },
+        {
+            "m_Id": "91d6a9a5fbc04ea49075cb51835e7264"
+        },
+        {
+            "m_Id": "f42ad06b3c6a45d3ab33de904c063412"
+        },
+        {
+            "m_Id": "ed6c215a65584deeaefad1d2c7743044"
+        },
+        {
+            "m_Id": "edbee7a8952b46529ac5ad0365775774"
+        },
+        {
+            "m_Id": "70337a74f6ad4b7bb6befc825219bab1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4b2d9ea03bf64fa19dcae1511d2581da",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4bda5c294e1949138d033640e1d385b4",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "4c28ee9109014fa086e5de7a3993341d",
+    "m_Id": 0,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4c334de01ecd429baa7652fc6002536b",
+    "m_Id": 0,
+    "m_DisplayName": "In",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "In",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4d1cb1a475df49f9a148195a65f5453a",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "4d9ce48719d143748f9f8e22da6f9ddc",
+    "m_Id": 5,
+    "m_DisplayName": "TextureWidth",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureWidth",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "4e64dac49ddc47c3b5b1e27b17a08304",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "4e90ca54c0cc46a18ea600be7c80413a",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "4eb3c00a1ca44e10be833b7ca61ff059",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "4f194ff591484e908fc2bcdacbcf2570",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4255.0,
+            "y": -2771.0,
+            "width": 134.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2b01ea3023e34c94af1754e4dcea8f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "509e6f38505b4b0695b263706a55028f",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "51378bae98a94c309785d14cd5cbb453",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "GetSurfaceNormal (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4067.333251953125,
+            "y": -3881.99951171875,
+            "width": 263.9999694824219,
+            "height": 189.99998474121095
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b0077c23eae443887872f84227deccc"
+        },
+        {
+            "m_Id": "3915c1927ffe49f8967304321cfbe497"
+        },
+        {
+            "m_Id": "4d9ce48719d143748f9f8e22da6f9ddc"
+        },
+        {
+            "m_Id": "ebd6d75abcb84108bcadbfe7ee5f6244"
+        },
+        {
+            "m_Id": "ef9738ec7e894772a14e9dce441c16c6"
+        },
+        {
+            "m_Id": "9eeec1a9713045af8845cea263d5ea48"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GetSurfaceNormal",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "51f76f8a53ad43a4ad028426548ce9ba",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "52798bdb86f6400e86489a7a368e9f8b",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6460.6669921875,
+            "y": -3113.333251953125,
+            "width": 135.33349609375,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1df58cfa4dad4c449d01ee1c5ea05f2e"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "53073e5ea924459fa6681a4943e9f947",
+    "m_Guid": {
+        "m_GuidSerialized": "5fdac24e-2d58-4471-80ce-79c3ab9a2564"
+    },
+    "m_Name": "Outline Color 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_DBAB5AEC",
+    "m_OverrideReferenceName": "_OutlineColor2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.009433984756469727,
+        "g": 0.02534518577158451,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "54d7a93ffec5490aa4591da23a21b693",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "55ffa45ec3654d5e88089fb40d2b0465",
+    "m_Id": 4,
+    "m_DisplayName": "AnimSpeed",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "AnimSpeed",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "56c25395796e4d2fbe5c892d428d1620",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5071.99951171875,
+            "y": -3427.0,
+            "width": 129.99998474121095,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "9eb8137a6c2e41bbafdc8b0732dd47a3"
+        },
+        {
+            "m_Id": "36a0c473c4c04c3a930dd38f3920d410"
+        },
+        {
+            "m_Id": "068ae649e00b40e198ec5a30ad741fab"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "57abc172afd449e2a4d567f93432507b",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "582d6e289dbe4fdca7cf0307273eaa2f",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "59bd90a849624124bae6464ee3669aa6",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3972.0,
+            "y": -2385.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "2e4eb1ef08bb44178c82e53872485e0f"
+        },
+        {
+            "m_Id": "8695190a5e614f2d90081871a8a06fc2"
+        },
+        {
+            "m_Id": "81bdb47901ef48e5a588c6724b1b0142"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "59cea37675824d99995b370f09cef20a",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "5b0077c23eae443887872f84227deccc",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5b3ff4ee364f4d7a923b530ad60d8762",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5bd258837c514ff7ab0bf7027e762c18",
+    "m_Guid": {
+        "m_GuidSerialized": "2d8f3ee9-1307-4b58-a60d-526e86b07109"
+    },
+    "m_Name": "Bevel Roundness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_AB6A015F",
+    "m_OverrideReferenceName": "_BevelRoundness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5da82bf481f8489ebd05e997f617f51b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": 4.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "5e42524569844befad16fda5a94eb9cb",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "5fbe253f3e444f2aa8ac717f9c856619",
+    "m_Guid": {
+        "m_GuidSerialized": "0a61c93f-6430-4aa6-af07-79bc3b411ccd"
+    },
+    "m_Name": "Bevel Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_B50BBFCC",
+    "m_OverrideReferenceName": "_BevelWidth",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 0.5
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61133d79a89048c195f54939b2a1d30a",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "61a6ac5f29344d109411f26850ab0a96",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6271438664e74b3fbf723bd6a1f50f8b",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "62bc551cea604e88b7858cc37d96a98a",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "636180f6e0504f2baaa5cc086980cb47",
+    "m_Guid": {
+        "m_GuidSerialized": "c1223e37-093d-4d5a-b2b0-cd9cc3e4f88e"
+    },
+    "m_Name": "Outline Offset 1",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector2_636180f6e0504f2baaa5cc086980cb47",
+    "m_OverrideReferenceName": "_OutlineOffset1",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "63c7cd57fc3c45a9a97b514fdae32693",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5235.99951171875,
+            "y": -3386.999755859375,
+            "width": 141.99998474121095,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c422a9a9ff824176aad2241f58c44d0b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "641eda269d7b4da9acb65f8d50035ea9",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "65b3dc13b2b6484283ffe5abfe87a06a",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "65c8e64a7535466e933eed08a2f77532",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4759.99951171875,
+            "y": -3498.666259765625,
+            "width": 186.0,
+            "height": 251.33323669433595
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "256d41e89a204d22951450de1c38051d"
+        },
+        {
+            "m_Id": "0a67ca5280214bd794dc0ad66b5710a9"
+        },
+        {
+            "m_Id": "ebbd94a7102a4457a48ac492de3bff14"
+        },
+        {
+            "m_Id": "6271438664e74b3fbf723bd6a1f50f8b"
+        },
+        {
+            "m_Id": "c9b722d107ce4cd6a748c883472b9b0f"
+        },
+        {
+            "m_Id": "74cf69e61bef44589521f1bf2bf3c59a"
+        },
+        {
+            "m_Id": "6e532f83d1c44e839bcfc5845d3b01d6"
+        },
+        {
+            "m_Id": "cb5e9f9567e84f8fa5463efc0e256e19"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "66f69ef16eac4eb48357bde804cf3c39",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlayColor",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "67a519f507384ff1861df5d8d5b486be",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4278.0,
+            "y": -3939.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c3e6d7c20c184bf39fd8822130e693e7"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "68ec7c31365549d6a8ce883edfc02de2",
+    "m_Id": 4,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6a7af6143e114a538663e71f56731a21",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "6b2f65c1463f4f7bad16c54a95d2fe75",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5070.0,
+            "y": -3301.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "1d35fa1fb5004f96a65ace54fbe4f1ad"
+        },
+        {
+            "m_Id": "fa6de3be9f5b4411b5081b49e645f424"
+        },
+        {
+            "m_Id": "400d0b6c95dd4540ad3da3e8cb7e50b2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6ccaced3889e4503a9414d808ec33981",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "6dfc1177dd0541a7a780fbf911ad1956",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "6e13f3cd573c467a94379f45d96cb690",
+    "m_Id": 2,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "6e532f83d1c44e839bcfc5845d3b01d6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "6e8946a245e842b38231d4a241bfb3ef",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.BaseColor",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3026.0,
+            "y": -3110.0,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ef0b93f78372439696f50711eaf57d90"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.BaseColor"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "6fbdcc5a972b4fa883dc5f21e525a376",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "70337a74f6ad4b7bb6befc825219bab1",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "712da461f71a454db59d349f752d41ee",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "71dd947935b64ce38f0d25406dde447b",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "724e17584e97443e9e285dfa7253c8e3",
+    "m_Id": 0,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 2,
+    "m_Value": 0.15000000596046449,
+    "m_DefaultValue": 1.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "72fb5a0d7796446b9e2b929cb32facdc",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "7444469eb9884253819add9ef96baa25",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4298.0,
+            "y": -3809.99951171875,
+            "width": 144.66648864746095,
+            "height": 129.33323669433595
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "03182b3263304258b265266325c21f65"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "748c31bbcecc4b30bec2e42c0612175b",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "74b41464cbed4e9e8e23af5ab9be40cf",
+    "m_Guid": {
+        "m_GuidSerialized": "41afbdcb-f3ae-4340-8973-1c1998c992a2"
+    },
+    "m_Name": "Outline Offset 2",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset2",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "74cf69e61bef44589521f1bf2bf3c59a",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "757174b6f25040fdbb20355a21752222",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "75aba700d74d4b2687bf3166cf1da3e2",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "75c5657544c648058b20cea090f48dbf",
+    "m_Id": 0,
+    "m_DisplayName": "_OutlineUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "767769f736d5478cba5f10a415e28e7f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "773b90134e894e429203c0c83e80b9de",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "77e28f3e930b4c249145630ec961af95",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "79147f6986644769b58d9ed64fe771e1",
+    "m_Id": 0,
+    "m_DisplayName": "OutlineMode",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7984fd094e1147bdabb4e26fbd3d31c8",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3244.000244140625,
+            "y": -3414.0,
+            "width": 130.0,
+            "height": 118.00000762939453
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "082e9706dffc4c188270980d4e44ce0f"
+        },
+        {
+            "m_Id": "f2a351a5375c441b8d9ab7e2c9545a77"
+        },
+        {
+            "m_Id": "41986ac6400d46709d0ef043a67f6b34"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "7a046f410ce64aa88438b0bfd412c045",
+    "m_Guid": {
+        "m_GuidSerialized": "d47271f5-5a84-47bf-a09e-c825d2aeb013"
+    },
+    "m_Name": "Outline Color 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_551702C5",
+    "m_OverrideReferenceName": "_OutlineColor3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "7a0f504e4175406dbd8134250f4e350b",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7a80e8839f0e4a1d9a6c0814f8793ee6",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4931.0,
+            "y": -3452.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6fbdcc5a972b4fa883dc5f21e525a376"
+        },
+        {
+            "m_Id": "0ba4932e164847878ddb7b7bcff96985"
+        },
+        {
+            "m_Id": "9178663316db43d582f1c4a127d307c6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7acfafd73b8c4dfab8c55c18a887e087",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "7b8a19bd115e4167a25b59cb3218a817",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 1.0,
+        "w": 1.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "7c27ccb2c2dc4ca59c5438c3358630ca",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "7d7696aa6d184b4fb9c316a9dec37aee",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4928.0,
+            "y": -3326.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4d1cb1a475df49f9a148195a65f5453a"
+        },
+        {
+            "m_Id": "47d020251e9841a5b1f0fd64396026a1"
+        },
+        {
+            "m_Id": "62bc551cea604e88b7858cc37d96a98a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "7d78a616c2754cc28d1f32cf66ade611",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3973.0,
+            "y": -2796.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d9bcb754db834583b6518c5ed5152114"
+        },
+        {
+            "m_Id": "861d4258049a4a3e8164f7297090f88e"
+        },
+        {
+            "m_Id": "a7c06457d7454693a8bc3dc95257b2c2"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "7e0fadb2533f496192c1ad3e78642010",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4188.0,
+            "width": 173.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d48c3871e3064027a10ae9f4babd3be0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "7f2e6b5f15364ed9835d67d0cf4f8f65",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Tangent",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2586.0,
+            "y": -3592.0,
+            "width": 200.0,
+            "height": 41.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "85ff8667d72947edada4e9fb4ff60559"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Tangent"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "7f3d71a6c96847c099da45f95aafbecb",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot",
+    "m_ObjectId": "8036d0e6090b456e9b4ea87227868236",
+    "m_Id": 0,
+    "m_DisplayName": "Position",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Position",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "80e665a5eeb64730a51742f698bf0d48",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "8135ca333f8f4ea78163743e6ec1f55c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4050.666259765625,
+            "y": -3139.99951171875,
+            "width": 121.99999237060547,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d6a6a119394e4082a11bc024a6e42ef8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "53073e5ea924459fa6681a4943e9f947"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "81bdb47901ef48e5a588c6724b1b0142",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "81e8ed0534534674a74263e6161a2a1a",
+    "m_Guid": {
+        "m_GuidSerialized": "78aab961-c4a8-41f3-b203-1239c3b33b13"
+    },
+    "m_Name": "Underlay Dilate",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_D48690B9",
+    "m_OverrideReferenceName": "_UnderlayDilate",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "82af2db1018543d7832af96c1cfc981f",
+    "m_Guid": {
+        "m_GuidSerialized": "37906c7b-9a3a-454b-a62a-9aa097e64bde"
+    },
+    "m_Name": "Light Angle",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_82af2db1018543d7832af96c1cfc981f",
+    "m_OverrideReferenceName": "_LightAngle",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 6.28000020980835
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "82d5443fe54d4a3b9420f8745d00a632",
+    "m_Id": 5,
+    "m_DisplayName": "Softness",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Softness",
+    "m_StageCapability": 3,
+    "m_Value": 8.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "849275cac05e4ca8bd0b38ab7ae43bf8",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "84dc74cdbd8c45e1b189e4fd9a69942d",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "85a1ad8e741e41759002e8cdc8cd0b96",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "ScreenSpaceRatio (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6112.0,
+            "y": -3308.0,
+            "width": 258.0,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6e13f3cd573c467a94379f45d96cb690"
+        },
+        {
+            "m_Id": "8e6ed600f6504f4083092f5b511e44c4"
+        },
+        {
+            "m_Id": "93b161cce4504cb79c97b6d8db178de7"
+        },
+        {
+            "m_Id": "2bf5f2fdd2984599b7323d10cfb1d240"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ScreenSpaceRatio",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "85b5940eb77e4625812ded7215bab8d7",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4050.666259765625,
+            "y": -3095.99951171875,
+            "width": 121.99999237060547,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ada023d617104472b8ab75a81558c0a1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot",
+    "m_ObjectId": "85ff8667d72947edada4e9fb4ff60559",
+    "m_Id": 0,
+    "m_DisplayName": "Tangent",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Tangent",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "861d4258049a4a3e8164f7297090f88e",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "867a4ae13c0d4a028c71bc1063824c14",
+    "m_Guid": {
+        "m_GuidSerialized": "d483c212-0a30-4f6d-b94d-9abbc83a6522"
+    },
+    "m_Name": "Outline Width",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_C68C9E14",
+    "m_OverrideReferenceName": "_IsoPerimeter",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 2,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "8695190a5e614f2d90081871a8a06fc2",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8764669016f6442f8152593c18a649d7",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "880bb02c6c6b49b18aa6ebc66dc566a0",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "88253223d2c34ecfab92b0c344048f94",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "ComputeSDF (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4226.0,
+            "y": -4323.0,
+            "width": 227.99998474121095,
+            "height": 190.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "c52a1744a9a14989b0ae452ad6de6061"
+        },
+        {
+            "m_Id": "a03db80c558b4f87a330c5ae0a9443a5"
+        },
+        {
+            "m_Id": "8f1b1d1e8ff24b3284993e52354e54fa"
+        },
+        {
+            "m_Id": "5da82bf481f8489ebd05e997f617f51b"
+        },
+        {
+            "m_Id": "82d5443fe54d4a3b9420f8745d00a632"
+        },
+        {
+            "m_Id": "61133d79a89048c195f54939b2a1d30a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8902cb30b1684db8b996562e0140cb18",
+    "m_Id": 0,
+    "m_DisplayName": "UV_1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV_1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8a08179f99d649d289b8053d5fa0ad22",
+    "m_Id": 0,
+    "m_DisplayName": "Underlay Offset",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8a5d204e1abd4f6894607d1a497f6e69",
+    "m_Id": 3,
+    "m_DisplayName": "Texel Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8b66f4e6bc9d4662b3218ac33a69839f",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "8c38a5d8327f456e9783740c05382619",
+    "m_Id": 3,
+    "m_DisplayName": "Color2",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color2",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8cbd81814903479ea1d3151c1f38183e",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "8cf8aae64c1d443f9303126886b40f17",
+    "m_Guid": {
+        "m_GuidSerialized": "8d78c9a5-aaef-41fb-af68-2358e401d7ac"
+    },
+    "m_Name": "_UnderlayColor",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_2F5FE804",
+    "m_OverrideReferenceName": "_UnderlayColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 0.0,
+        "g": 0.0,
+        "b": 0.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "8e6ed600f6504f4083092f5b511e44c4",
+    "m_Id": 0,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty",
+    "m_ObjectId": "8ed907a2cc7949b68a283ae243ea1977",
+    "m_Guid": {
+        "m_GuidSerialized": "36803443-a9bc-4f3c-a4f2-7d66a5417ac1"
+    },
+    "m_Name": "Outline Offset 3",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "",
+    "m_OverrideReferenceName": "_OutlineOffset3",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "8f1b1d1e8ff24b3284993e52354e54fa",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9147636b0cfa466a9b37a013d8f693bf",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5567.0,
+            "y": -3862.000244140625,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a4f471e3221c4134b291bd9d2ba22db6"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "9178663316db43d582f1c4a127d307c6",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SplitNode",
+    "m_ObjectId": "91890fe48ebe4717aea61ecaf3ad4861",
+    "m_Group": {
+        "m_Id": "ecf16c34d46f4502ac601f0c38c7576b"
+    },
+    "m_Name": "Split",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3114.000244140625,
+            "y": -3414.0,
+            "width": 120.00000762939453,
+            "height": 149.00001525878907
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3dccd64e7f324bc1a75c1479d7a67c51"
+        },
+        {
+            "m_Id": "e444f2c81d1e48329fa2c91005277e8d"
+        },
+        {
+            "m_Id": "b2c26292b7434733878a9b042f44de89"
+        },
+        {
+            "m_Id": "964fea1fd4b24f4daf5bef84c4b45118"
+        },
+        {
+            "m_Id": "deac82280a2b43078e0e40863e2d974c"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "91d6a9a5fbc04ea49075cb51835e7264",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "928621a3ca2d41c89a10336bbbc81ddc",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "93b161cce4504cb79c97b6d8db178de7",
+    "m_Id": 3,
+    "m_DisplayName": "TextureSize",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureSize",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget",
+    "m_ObjectId": "94300469581b4924ac7dda496811d45d",
+    "m_Datas": [],
+    "m_ActiveSubTarget": {
+        "m_Id": "0eeb5490760e492f8c9691086fa00929"
+    },
+    "m_AllowMaterialOverride": false,
+    "m_SurfaceType": 1,
+    "m_ZTestMode": 4,
+    "m_ZWriteControl": 0,
+    "m_AlphaMode": 0,
+    "m_RenderFace": 0,
+    "m_AlphaClip": true,
+    "m_CastShadows": true,
+    "m_ReceiveShadows": true,
+    "m_AdditionalMotionVectorMode": 0,
+    "m_AlembicMotionVectors": false,
+    "m_SupportsLODCrossFade": false,
+    "m_CustomEditorGUI": "TMPro.EditorUtilities.TMP_SDFShaderGUI",
+    "m_SupportVFX": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "945b45993dd84a979755b98c48138f72",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "952d0fa5cd744df0b434cd38e9a90b93",
+    "m_Guid": {
+        "m_GuidSerialized": "ce395871-ddeb-47c3-a31d-07855800c197"
+    },
+    "m_Name": "_UnderlaySoftness",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_F2B9E3EF",
+    "m_OverrideReferenceName": "_UnderlaySoftness",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "95928bcb6a284b8d88105a84c2e1d3ce",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4744.0,
+            "y": -2591.0,
+            "width": 155.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d880558893fb442b9320cf55885d1117"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "964fea1fd4b24f4daf5bef84c4b45118",
+    "m_Id": 3,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "98934a69591249d5b8b92b39045359a3",
+    "m_Title": "Outline1 Texture",
+    "m_Position": {
+        "x": -4746.0,
+        "y": -2497.0
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "998db5e5901e45b29040eb2099370071",
+    "m_Guid": {
+        "m_GuidSerialized": "6f383614-f2ad-4269-be8f-87b0ecb03cf0"
+    },
+    "m_Name": "Bevel Clamp",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_5BD7E808",
+    "m_OverrideReferenceName": "_BevelClamp",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 0.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "9c228fac287d446296b91a4acf5cec59",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4569.0,
+            "y": -3498.000244140625,
+            "width": 184.0,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "582d6e289dbe4fdca7cf0307273eaa2f"
+        },
+        {
+            "m_Id": "1db37082bf844442804487b4944352de"
+        },
+        {
+            "m_Id": "8b66f4e6bc9d4662b3218ac33a69839f"
+        },
+        {
+            "m_Id": "4a66dcbe712a4d40bd8f355b834594b5"
+        },
+        {
+            "m_Id": "a0285c9c381a49cba194709efa0a7c85"
+        },
+        {
+            "m_Id": "b2728d0dd3ce40678867c94a7d977916"
+        },
+        {
+            "m_Id": "e141833aa78b4fd59ecad949beb43a78"
+        },
+        {
+            "m_Id": "51f76f8a53ad43a4ad028426548ce9ba"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "9c26fdddba244d36a854298c00473247",
+    "m_Id": 3,
+    "m_DisplayName": "SDR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SDR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "9d3c3383d5934a17bf9efbb7fd9e9043",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5412.0,
+            "y": -3315.0,
+            "width": 145.0,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "232b1aa09e67479abae141d3c76d3c5b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e6e50a71d9843b49b62ebe1cf7d3d59",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4486.0,
+            "y": -3865.99951171875,
+            "width": 135.3330078125,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "3535ae87c6dd4769b52b20d9eca61069"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3e372195f4bd4845852a37839e5b602d"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "9e87ce9607e14015a3790c528ca5dfda",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4598.0,
+            "y": -2251.0,
+            "width": 167.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "75c5657544c648058b20cea090f48dbf"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "9eb8137a6c2e41bbafdc8b0732dd47a3",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot",
+    "m_ObjectId": "9eeec1a9713045af8845cea263d5ea48",
+    "m_Id": 6,
+    "m_DisplayName": "IsFront",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "IsFront",
+    "m_StageCapability": 3,
+    "m_Value": false,
+    "m_DefaultValue": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "9f0de188085746d5a19073da1de85ddb",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4118.0,
+            "y": -2771.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7c27ccb2c2dc4ca59c5438c3358630ca"
+        },
+        {
+            "m_Id": "373f1de8db6c429c9d46c781f741d7a4"
+        },
+        {
+            "m_Id": "fd0b096ed5b74f9e9ec51327be200731"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a0285c9c381a49cba194709efa0a7c85",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a03db80c558b4f87a330c5ae0a9443a5",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a161b772c7564eee804e3d58f6cb9944",
+    "m_Id": 4,
+    "m_DisplayName": "Texel Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texel Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "a3f8b6e8ae7f48e2989a029904401502",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 1,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "a455bd79094c4413a7b7dd80ca8b9368",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4573.0,
+            "y": -2689.0,
+            "width": 222.0,
+            "height": 142.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4e90ca54c0cc46a18ea600be7c80413a"
+        },
+        {
+            "m_Id": "2c7a9460724b47daad8df1be144de7c6"
+        },
+        {
+            "m_Id": "55ffa45ec3654d5e88089fb40d2b0465"
+        },
+        {
+            "m_Id": "e495a9f7a11f4eb89334e83be154ceb9"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateShaderProperty",
+    "m_ObjectId": "a4ad98d8828c424384229c344ebe2ed0",
+    "m_Guid": {
+        "m_GuidSerialized": "f98fc1a2-bb81-4bd1-a207-23d3a90d518e"
+    },
+    "m_Name": "SamplerState",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "SamplerState_a4ad98d8828c424384229c344ebe2ed0",
+    "m_OverrideReferenceName": "",
+    "m_GeneratePropertyBlock": false,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_filter": 0,
+        "m_wrap": 1,
+        "m_anisotropic": 0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a4f471e3221c4134b291bd9d2ba22db6",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "a535f3bcbeb14622bb177eb6f46e76f4",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4608.0,
+            "y": -2293.0,
+            "width": 177.00001525878907,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "6dfc1177dd0541a7a780fbf911ad1956"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "a6bbb32e8d884be9bb36db91fe4b81b1",
+    "m_Guid": {
+        "m_GuidSerialized": "6aa76edf-7b80-46ac-add4-406cf1d85493"
+    },
+    "m_Name": "_GradientScale",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_EAE27356",
+    "m_OverrideReferenceName": "_GradientScale",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 1,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 10.0,
+    "m_FloatType": 0,
+    "m_RangeValues": {
+        "x": 0.0,
+        "y": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "a6c38edd2e8743a9b057ba8452b9f129",
+    "m_Guid": {
+        "m_GuidSerialized": "9fc942ee-4a1d-4ced-a5a6-81893e3ddb63"
+    },
+    "m_Name": "Light Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_a6c38edd2e8743a9b057ba8452b9f129",
+    "m_OverrideReferenceName": "_SpecularColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "a75f7ac601c446469802fe7754c1f279",
+    "m_Id": 0,
+    "m_DisplayName": "Color1",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color1",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "a7942746b5564dc7bbbae1deb2403022",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "a7c06457d7454693a8bc3dc95257b2c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "aa2794b8f0e24bf281d22e0fef0647be",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "aa3e347d733e48f7b65d8a8847370eec",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "EvaluateLight (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3633.000244140625,
+            "y": -3805.000244140625,
+            "width": 179.00001525878907,
+            "height": 118.00000762939453
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0699eea947fc426cbfeb8744cf120222"
+        },
+        {
+            "m_Id": "0c4dc51f26484c26ad88a3fe4002abcd"
+        },
+        {
+            "m_Id": "d5173cc3c6cd4f1998550f3187a3e9c8"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "EvaluateLight",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aa87c72ac0e64469acc34f936f00b3d0",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4225.0,
+            "width": 193.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0d7878dd226d4cfb81a991dc312309fc"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "abd59150589b436cadf8c9e6f43ccb8e",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "aca823a8188948c782eddaf0f45e1868",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.NormalOS",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -2542.0,
+            "y": -3404.000244140625,
+            "width": 200.0,
+            "height": 40.66650390625
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "e386b183a18245a796b024022f7f3074"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.NormalOS"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "acd0cd5a177f4a97bf23db7219305e3f",
+    "m_Group": {
+        "m_Id": "d258902c6ec74942afdb9ebf8c1d07f8"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4348.0,
+            "y": -3905.99951171875,
+            "width": 185.33299255371095,
+            "height": 101.33324432373047
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "945b45993dd84a979755b98c48138f72"
+        },
+        {
+            "m_Id": "e51a636b2621440eb94cc802c1cf4bfc"
+        },
+        {
+            "m_Id": "1bdde3efd3b7464b8934c555be0f8a48"
+        },
+        {
+            "m_Id": "8a5d204e1abd4f6894607d1a497f6e69"
+        },
+        {
+            "m_Id": "a161b772c7564eee804e3d58f6cb9944"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ada023d617104472b8ab75a81558c0a1",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 3",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "aef5c44f84e04c3185e0b93e95e34204",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5233.99951171875,
+            "y": -3141.999755859375,
+            "width": 143.99998474121095,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "84dc74cdbd8c45e1b189e4fd9a69942d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b000f852aa984e9dae25b125a4607f4e",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b015d1b7e4134c59baf6851e7649802c",
+    "m_Id": 0,
+    "m_DisplayName": "R",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
+    "m_ObjectId": "b0b352c4503a43d083a64e57352b29a0",
+    "m_Guid": {
+        "m_GuidSerialized": "01cfcc78-60aa-4f71-a1e3-8d8df6dae253"
+    },
+    "m_Name": "Reflectivity Power",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector1_b0b352c4503a43d083a64e57352b29a0",
+    "m_OverrideReferenceName": "_Reflectivity",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": 5.0,
+    "m_FloatType": 1,
+    "m_RangeValues": {
+        "x": 5.0,
+        "y": 15.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.VertexColorNode",
+    "m_ObjectId": "b1188549725543d485436c2e921ffbb2",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Vertex Color",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4108.0,
+            "y": -2890.0,
+            "width": 116.0,
+            "height": 94.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "281bcee4777040f8a31ee0e10344e98d"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 2,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "b163c9f1666644b0bba62cf0e12df7bc",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4333.0,
+            "y": -2713.0,
+            "width": 180.0,
+            "height": 180.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "cce40479b6284b6fa3174db9f09d0ac9"
+        },
+        {
+            "m_Id": "80e665a5eeb64730a51742f698bf0d48"
+        },
+        {
+            "m_Id": "1f46181633594ae0a1fb2adb76b42981"
+        },
+        {
+            "m_Id": "8cbd81814903479ea1d3151c1f38183e"
+        },
+        {
+            "m_Id": "cfaf3f3a5a1146e194cddad30c95aada"
+        },
+        {
+            "m_Id": "b43489e37a5c4df88f15844292a55ec7"
+        },
+        {
+            "m_Id": "cd7281fb41aa4e61ac0fdf71d4f4bd46"
+        },
+        {
+            "m_Id": "f01d52cdcb1647aab35782b4af535efd"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 1,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "b224a1cf80604103ad085c799995f3c2",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b2728d0dd3ce40678867c94a7d977916",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b2baf44eae52473cb6cda7b1debece01",
+    "m_Id": 0,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b2c26292b7434733878a9b042f44de89",
+    "m_Id": 2,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b42e6dbfbc864097af182cbff5c0c1fb",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "b43489e37a5c4df88f15844292a55ec7",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"fileID\":-2362172177983852347,\"guid\":\"dda5bcb0d1e9515498f6e4e038bbefe6\",\"type\":2}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.MultiplyNode",
+    "m_ObjectId": "b4a40cb6acd441acb83cfe0240bf910d",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Multiply",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4750.99951171875,
+            "y": -4274.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "d0b10e52e21941b183f5f635894c76c8"
+        },
+        {
+            "m_Id": "0d6a57754b824f6db9cefa6953bc06a9"
+        },
+        {
+            "m_Id": "773b90134e894e429203c0c83e80b9de"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "b571db753a1948d5a6f1de4e7d0c7238",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5727.0,
+            "y": -3827.000244140625,
+            "width": 184.0,
+            "height": 101.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5b3ff4ee364f4d7a923b530ad60d8762"
+        },
+        {
+            "m_Id": "c183b5bd9bbe45089f93996e73110918"
+        },
+        {
+            "m_Id": "1196ae398cc348349ab0c1a23fdab4bd"
+        },
+        {
+            "m_Id": "1d7d96a5770b4f8ebb162bdbde020bca"
+        },
+        {
+            "m_Id": "49dabfd48a78475882e664526b483ce1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b691728a389a417d9b4f2d02541209c2",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "b7f9ac55517141868bfb9d2ad6429792",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "b85d677872b44421bf5536f42ba0267c",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CategoryData",
+    "m_ObjectId": "bafc3d388c1e444e820897b9a3d6029a",
+    "m_Name": "",
+    "m_ChildObjectList": [
+        {
+            "m_Id": "dc75c4e3a1bc4bb0a128086c2b0679a5"
+        },
+        {
+            "m_Id": "867a4ae13c0d4a028c71bc1063824c14"
+        },
+        {
+            "m_Id": "22b7f3c2bb7b48c0a7fdeb50e33e7d5e"
+        },
+        {
+            "m_Id": "53073e5ea924459fa6681a4943e9f947"
+        },
+        {
+            "m_Id": "7a046f410ce64aa88438b0bfd412c045"
+        },
+        {
+            "m_Id": "636180f6e0504f2baaa5cc086980cb47"
+        },
+        {
+            "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+        },
+        {
+            "m_Id": "8ed907a2cc7949b68a283ae243ea1977"
+        },
+        {
+            "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+        },
+        {
+            "m_Id": "0580d4b7e3a049049569f4508643a724"
+        },
+        {
+            "m_Id": "c9ec735d1a1046769e5601b2c97c849a"
+        },
+        {
+            "m_Id": "2d0a269511e34bd1ba9056d2c939dff2"
+        },
+        {
+            "m_Id": "07946387933e416db576b677f0711e5f"
+        },
+        {
+            "m_Id": "46fbf3eeb0ea4470869cba7443249295"
+        },
+        {
+            "m_Id": "ec79eb447dfd47a9b3380344c6a60f43"
+        },
+        {
+            "m_Id": "3fdf4b7bc5d4426492dcc057603ef4a6"
+        },
+        {
+            "m_Id": "8cf8aae64c1d443f9303126886b40f17"
+        },
+        {
+            "m_Id": "49e7c3ad55ce458797f0e60c950cb965"
+        },
+        {
+            "m_Id": "81e8ed0534534674a74263e6161a2a1a"
+        },
+        {
+            "m_Id": "952d0fa5cd744df0b434cd38e9a90b93"
+        },
+        {
+            "m_Id": "21a7a380e66d42e780e2a2a1baa630d5"
+        },
+        {
+            "m_Id": "2c10b97b92c947ceb307a93759c0228b"
+        },
+        {
+            "m_Id": "1be90d4f96a841748b0c95219b12ad27"
+        },
+        {
+            "m_Id": "5fbe253f3e444f2aa8ac717f9c856619"
+        },
+        {
+            "m_Id": "5bd258837c514ff7ab0bf7027e762c18"
+        },
+        {
+            "m_Id": "998db5e5901e45b29040eb2099370071"
+        },
+        {
+            "m_Id": "a6c38edd2e8743a9b057ba8452b9f129"
+        },
+        {
+            "m_Id": "82af2db1018543d7832af96c1cfc981f"
+        },
+        {
+            "m_Id": "3ec4797e381747829ef4712c85fcf7a1"
+        },
+        {
+            "m_Id": "b0b352c4503a43d083a64e57352b29a0"
+        },
+        {
+            "m_Id": "424dbeeb009344efa29c304c4979e3d6"
+        },
+        {
+            "m_Id": "05805bc6fcc941fd889922555c6c86d7"
+        },
+        {
+            "m_Id": "a4ad98d8828c424384229c344ebe2ed0"
+        },
+        {
+            "m_Id": "3e372195f4bd4845852a37839e5b602d"
+        },
+        {
+            "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+        },
+        {
+            "m_Id": "4a0041116f73406db7a62ae80ff54ef4"
+        }
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.CombineNode",
+    "m_ObjectId": "bc9afcb18afa4ccc82d2cdc34d3f4641",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Combine",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5537.0,
+            "y": -3827.000244140625,
+            "width": 126.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "5e42524569844befad16fda5a94eb9cb"
+        },
+        {
+            "m_Id": "54d7a93ffec5490aa4591da23a21b693"
+        },
+        {
+            "m_Id": "aa2794b8f0e24bf281d22e0fef0647be"
+        },
+        {
+            "m_Id": "200245fc8bbe4826b209ab5f7ffe074c"
+        },
+        {
+            "m_Id": "fc2e62201c5847e798fd939314413fcd"
+        },
+        {
+            "m_Id": "fe11fa80cc1847a5a37f6757d521cf25"
+        },
+        {
+            "m_Id": "de0c6f7f7af94defa6c3dbc6433de9d4"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c183b5bd9bbe45089f93996e73110918",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "c234e5216678436195ee1a5914bc79da",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "GenerateUV (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4409.0,
+            "y": -2338.0,
+            "width": 222.0,
+            "height": 142.00001525878907
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "8902cb30b1684db8b996562e0140cb18"
+        },
+        {
+            "m_Id": "3db1608e927e4102a3c3a88e9fcab39a"
+        },
+        {
+            "m_Id": "0f7ffb6d2de4447f9736780cbcee8e07"
+        },
+        {
+            "m_Id": "d4954b7bbbb0412cbc997bcbe7dfa808"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "GenerateUV",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "c35312edaa2344788b1964ee2f63a236",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "c3e6d7c20c184bf39fd8822130e693e7",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "c422a9a9ff824176aad2241f58c44d0b",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Offset 1",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "c478c32c45884c57a62f7b2aa8ddc3b0",
+    "m_Id": 2,
+    "m_DisplayName": "Alpha",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Alpha",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c52a1744a9a14989b0ae452ad6de6061",
+    "m_Id": 0,
+    "m_DisplayName": "SSR",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SSR",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c6bdb985bc16435fa72f5a3c81bb633c",
+    "m_Id": 6,
+    "m_DisplayName": "B",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c7d4094601ac4bc1aead609c72b1f1c1",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c7ddee91dc5b48dc828309c77fdb0b88",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4444.0,
+            "y": -4266.0,
+            "width": 153.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a7942746b5564dc7bbbae1deb2403022"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "c88fcbaeea954a5f9c68c339fa8b604d",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "c9b722d107ce4cd6a748c883472b9b0f",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "c9d7f0dbae7d422985a1cc87c025e76b",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4284.0,
+            "y": -3165.0,
+            "width": 144.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "79147f6986644769b58d9ed64fe771e1"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "cb3c0c3f08654b068bea44c4ffb15f4a"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
+    "m_ObjectId": "c9ec735d1a1046769e5601b2c97c849a",
+    "m_Guid": {
+        "m_GuidSerialized": "281a9526-c332-4471-a44e-ece4a1e95ef6"
+    },
+    "m_Name": "Face Texture",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Texture2D_75569DEA",
+    "m_OverrideReferenceName": "_FaceTex",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "isMainTexture": false,
+    "useTilingAndOffset": false,
+    "m_Modifiable": true,
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ca2a1083dc014f39ab8af0cdf140866b",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceTex_ST",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.BooleanShaderProperty",
+    "m_ObjectId": "cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_Guid": {
+        "m_GuidSerialized": "21009d12-8d94-4273-b0d0-a8ee0608ddcf"
+    },
+    "m_Name": "OutlineMode",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Boolean_cb3c0c3f08654b068bea44c4ffb15f4a",
+    "m_OverrideReferenceName": "_OutlineMode",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cb5e9f9567e84f8fa5463efc0e256e19",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "cb7117ecb1d047a8b2cb00ed552cb181",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "SurfaceDescription.Alpha",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3032.66650390625,
+            "y": -3029.33349609375,
+            "width": 200.0,
+            "height": 41.33349609375
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "724e17584e97443e9e285dfa7253c8e3"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "SurfaceDescription.Alpha"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cc88101667c9488f9c5a716e851c1b21",
+    "m_Id": 3,
+    "m_DisplayName": "Color0",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Color0",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "cce40479b6284b6fa3174db9f09d0ac9",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "cd7281fb41aa4e61ac0fdf71d4f4bd46",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "cda5e3b4c1054bf3a65c0b7ec6bc778a",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "cdddee3a537c464697357f11b966f9b8",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4420.0,
+            "y": -4483.0,
+            "width": 156.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "41b9b79b3859472882bcea393703eec0"
+        },
+        {
+            "m_Id": "c7d4094601ac4bc1aead609c72b1f1c1"
+        },
+        {
+            "m_Id": "767769f736d5478cba5f10a415e28e7f"
+        },
+        {
+            "m_Id": "b691728a389a417d9b4f2d02541209c2"
+        },
+        {
+            "m_Id": "045c4f6b050549c7a0efb208e6349779"
+        },
+        {
+            "m_Id": "509e6f38505b4b0695b263706a55028f"
+        },
+        {
+            "m_Id": "204dacb5a95b424facf11cb6f65bd188"
+        },
+        {
+            "m_Id": "35cbea6373dd4e4f8d0fea36e8add392"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "cfaf3f3a5a1146e194cddad30c95aada",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d0a791a544614667962a9a9a9ce0c68a",
+    "m_Title": "Screen Space Ratio",
+    "m_Position": {
+        "x": -6485.591796875,
+        "y": -3365.3779296875
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d0b10e52e21941b183f5f635894c76c8",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d1a17e42e7a04dc38984e3c01149445b",
+    "m_Id": 7,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d219977210094c0082c517d8dc00c8bb",
+    "m_Id": 0,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "d258902c6ec74942afdb9ebf8c1d07f8",
+    "m_Title": "Generate Normal",
+    "m_Position": {
+        "x": -4511.33349609375,
+        "y": -3999.3330078125
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "d30452ac6b244ecca03df4d7b4de9f81",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d48c3871e3064027a10ae9f4babd3be0",
+    "m_Id": 0,
+    "m_DisplayName": "_UnderlaySoftness",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d4954b7bbbb0412cbc997bcbe7dfa808",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "d4df208fc23b42f2b52364124f1b661c",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5236.99951171875,
+            "y": -3260.999755859375,
+            "width": 143.99998474121095,
+            "height": 33.999996185302737
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "757174b6f25040fdbb20355a21752222"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "74b41464cbed4e9e8e23af5ab9be40cf"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "d5173cc3c6cd4f1998550f3187a3e9c8",
+    "m_Id": 0,
+    "m_DisplayName": "Normal",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Normal",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "d6a6a119394e4082a11bc024a6e42ef8",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Color 2",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "d880558893fb442b9320cf55885d1117",
+    "m_Id": 0,
+    "m_DisplayName": "_FaceUVSpeed",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d8edec16956c4f15b7d51d6ec10753f4",
+    "m_Id": 2,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "d9bcb754db834583b6518c5ed5152114",
+    "m_Id": 0,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "d9dc4839ee2847999110bdb234d6041a",
+    "m_Id": 1,
+    "m_DisplayName": "G",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "da7a06d393a44089842070d51d2aa0a6",
+    "m_Id": 0,
+    "m_DisplayName": "_MainTex",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "daaf032a109749a88c9b8ff8e1f8b541",
+    "m_Title": "Offset Scale",
+    "m_Position": {
+        "x": -5893.0,
+        "y": -3921.000244140625
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVNode",
+    "m_ObjectId": "dbcb748279484a4590e53518c49122b8",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "UV",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4744.0,
+            "y": -2762.0,
+            "width": 145.0,
+            "height": 130.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7a0f504e4175406dbd8134250f4e350b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_OutputChannel": 1
+}
+
+{
+    "m_SGVersion": 3,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty",
+    "m_ObjectId": "dc75c4e3a1bc4bb0a128086c2b0679a5",
+    "m_Guid": {
+        "m_GuidSerialized": "85cd941f-2fd2-43a3-b0fa-9f728bfb4220"
+    },
+    "m_Name": "Face Color",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Color_99AFBB3D",
+    "m_OverrideReferenceName": "_FaceColor",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "r": 1.0,
+        "g": 1.0,
+        "b": 1.0,
+        "a": 1.0
+    },
+    "isMainColor": false,
+    "m_ColorMode": 1
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "de0c6f7f7af94defa6c3dbc6433de9d4",
+    "m_Id": 6,
+    "m_DisplayName": "RG",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RG",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "deac82280a2b43078e0e40863e2d974c",
+    "m_Id": 4,
+    "m_DisplayName": "A",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
+    "m_ObjectId": "def8e0b9d8384982bc5b4c32d877e458",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Texture",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "dff7a66b353a4023b29c9d937da77960",
+    "m_Group": {
+        "m_Id": "484b51c50485473b819c4f05087b32d7"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4602.0,
+            "y": -4298.0,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "7b8a19bd115e4167a25b59cb3218a817"
+        },
+        {
+            "m_Id": "0b57f2d35157477ab2b29a5aac14ae8b"
+        },
+        {
+            "m_Id": "e9e06fcb161e44ba8cc9f6f60264df78"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
+    "m_ObjectId": "e141833aa78b4fd59ecad949beb43a78",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ],
+    "m_Channel": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e2d28f29bbac4983a401574480b5ca28",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
+    "m_ObjectId": "e386b183a18245a796b024022f7f3074",
+    "m_Id": 0,
+    "m_DisplayName": "Normal (Object Space)",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "NormalOS",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_Space": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e444f2c81d1e48329fa2c91005277e8d",
+    "m_Id": 1,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "e495a9f7a11f4eb89334e83be154ceb9",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e51a636b2621440eb94cc802c1cf4bfc",
+    "m_Id": 2,
+    "m_DisplayName": "Height",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Height",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "e6e80c6b0db545cda26b079a9a78fbb3",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "e818605f8f5a4f01bf61caaa33693581",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "ComputeSDF44 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4113.0,
+            "y": -3368.999755859375,
+            "width": 243.99998474121095,
+            "height": 214.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "641eda269d7b4da9acb65f8d50035ea9"
+        },
+        {
+            "m_Id": "f6823778a3cf42d5bbe8a83e5f9c9fa3"
+        },
+        {
+            "m_Id": "9c26fdddba244d36a854298c00473247"
+        },
+        {
+            "m_Id": "f684c5678e9e4f078157a3ab7ef5057b"
+        },
+        {
+            "m_Id": "14ad19bf20a140dd88d58452d7df688b"
+        },
+        {
+            "m_Id": "215a82c127204988b751de7d3a39b955"
+        },
+        {
+            "m_Id": "c478c32c45884c57a62f7b2aa8ddc3b0"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "ComputeSDF44",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "e9e06fcb161e44ba8cc9f6f60264df78",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebbd94a7102a4457a48ac492de3bff14",
+    "m_Id": 5,
+    "m_DisplayName": "G",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "G",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ebd6d75abcb84108bcadbfe7ee5f6244",
+    "m_Id": 7,
+    "m_DisplayName": "TextureHeight",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "TextureHeight",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "ec184d6d9fb2494897774c9e7d279e6d",
+    "m_Group": {
+        "m_Id": "013228b0fdf1424097798f0973a9a4fb"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4754.0,
+            "y": -2625.0,
+            "width": 145.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ca2a1083dc014f39ab8af0cdf140866b"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "07946387933e416db576b677f0711e5f"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SubtractNode",
+    "m_ObjectId": "ec1f2e8bc9fd4ae38b133c60ee6c49b8",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Subtract",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4927.0,
+            "y": -3204.0,
+            "width": 130.0,
+            "height": 117.99999237060547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "748c31bbcecc4b30bec2e42c0612175b"
+        },
+        {
+            "m_Id": "4bda5c294e1949138d033640e1d385b4"
+        },
+        {
+            "m_Id": "4e64dac49ddc47c3b5b1e27b17a08304"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.Internal.Vector4ShaderProperty",
+    "m_ObjectId": "ec79eb447dfd47a9b3380344c6a60f43",
+    "m_Guid": {
+        "m_GuidSerialized": "54c77f8b-0534-4b35-a3f0-83ab2ebe6c1f"
+    },
+    "m_Name": "_OutlineTex_ST",
+    "m_DefaultRefNameVersion": 0,
+    "m_RefNameGeneratedByDisplayName": "",
+    "m_DefaultReferenceName": "Vector4_1774DE83",
+    "m_OverrideReferenceName": "_OutlineTex_ST",
+    "m_GeneratePropertyBlock": true,
+    "m_UseCustomSlotLabel": false,
+    "m_CustomSlotLabel": "",
+    "m_DismissedVersion": 0,
+    "m_Precision": 0,
+    "overrideHLSLDeclaration": false,
+    "hlslDeclarationOverride": 0,
+    "m_Hidden": false,
+    "m_Value": {
+        "x": 1.0,
+        "y": 1.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.GroupData",
+    "m_ObjectId": "ecf16c34d46f4502ac601f0c38c7576b",
+    "m_Title": "Vertex Color",
+    "m_Position": {
+        "x": -3614.000244140625,
+        "y": -3549.000244140625
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "ed1d1f1613334c3bb904dd08161cd7e5",
+    "m_Id": 0,
+    "m_DisplayName": "_GradientScale",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "ed6c215a65584deeaefad1d2c7743044",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "edbee7a8952b46529ac5ad0365775774",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot",
+    "m_ObjectId": "ef0b93f78372439696f50711eaf57d90",
+    "m_Id": 0,
+    "m_DisplayName": "Base Color",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "BaseColor",
+    "m_StageCapability": 2,
+    "m_Value": {
+        "x": 0.7353569269180298,
+        "y": 0.7353569269180298,
+        "z": 0.7353569269180298
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y",
+        "Z"
+    ],
+    "m_ColorMode": 0,
+    "m_DefaultColor": {
+        "r": 0.5,
+        "g": 0.5,
+        "b": 0.5,
+        "a": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
+    "m_ObjectId": "ef9738ec7e894772a14e9dce441c16c6",
+    "m_Id": 2,
+    "m_DisplayName": "UV",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "UV",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0
+    },
+    "m_Labels": [
+        "X",
+        "Y"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
+    "m_ObjectId": "f01d52cdcb1647aab35782b4af535efd",
+    "m_Id": 3,
+    "m_DisplayName": "Sampler",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Sampler",
+    "m_StageCapability": 3,
+    "m_BareResource": false
+}
+
+{
+    "m_SGVersion": 1,
+    "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode",
+    "m_ObjectId": "f23a8b2b7c85478388ff7a8c8a6de740",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Layer4 (Custom Function)",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -3819.0,
+            "y": -3286.0,
+            "width": 193.0,
+            "height": 190.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "0fac35636fca4474a6afaefc3c757775"
+        },
+        {
+            "m_Id": "cc88101667c9488f9c5a716e851c1b21"
+        },
+        {
+            "m_Id": "68ec7c31365549d6a8ce883edfc02de2"
+        },
+        {
+            "m_Id": "02559cbe5ad441a3904ccb75ded2b2c5"
+        },
+        {
+            "m_Id": "34a67e0fef884f9399e674d9eeaf720c"
+        },
+        {
+            "m_Id": "3802c81c3be24823aa1d7c9997a33c29"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SourceType": 0,
+    "m_FunctionName": "Layer4",
+    "m_FunctionSource": "96de908384869cd409c75efa351d5edf",
+    "m_FunctionBody": "Enter function body here..."
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
+    "m_ObjectId": "f2903158b3624759bca1fcd843698078",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 2.0,
+        "y": 2.0,
+        "z": 2.0,
+        "w": 2.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "f2a351a5375c441b8d9ab7e2c9545a77",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DPropertiesNode",
+    "m_ObjectId": "f383b24f0bc6434dafe44b3e3d338a63",
+    "m_Group": {
+        "m_Id": "d0a791a544614667962a9a9a9ce0c68a"
+    },
+    "m_Name": "Texel Size",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -6318.6669921875,
+            "y": -3153.3330078125,
+            "width": 185.33348083496095,
+            "height": 101.33348846435547
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "fb5e1e2a67c14602808358686bb75091"
+        },
+        {
+            "m_Id": "712da461f71a454db59d349f752d41ee"
+        },
+        {
+            "m_Id": "b000f852aa984e9dae25b125a4607f4e"
+        },
+        {
+            "m_Id": "849275cac05e4ca8bd0b38ab7ae43bf8"
+        },
+        {
+            "m_Id": "59cea37675824d99995b370f09cef20a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.PropertyNode",
+    "m_ObjectId": "f3d31c1f18d8491a8ecf5cbc37e4b7db",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Property",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4291.33349609375,
+            "y": -3246.0,
+            "width": 154.0,
+            "height": 34.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "ed1d1f1613334c3bb904dd08161cd7e5"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 1,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_Property": {
+        "m_Id": "a6bbb32e8d884be9bb36db91fe4b81b1"
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f42ad06b3c6a45d3ab33de904c063412",
+    "m_Id": 3,
+    "m_DisplayName": "A",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "A",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "f48f04ad45d046a8b88e71731ed506e7",
+    "m_Id": 4,
+    "m_DisplayName": "R",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "R",
+    "m_StageCapability": 2,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.BlockNode",
+    "m_ObjectId": "f4ecc442a2d246759f7c2c0412953d28",
+    "m_Group": {
+        "m_Id": ""
+    },
+    "m_Name": "VertexDescription.Normal",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": 0.0,
+            "y": 0.0,
+            "width": 0.0,
+            "height": 0.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "a3f8b6e8ae7f48e2989a029904401502"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": true,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_SerializedDescriptor": "VertexDescription.Normal"
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f6823778a3cf42d5bbe8a83e5f9c9fa3",
+    "m_Id": 1,
+    "m_DisplayName": "SD",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "SD",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f684c5678e9e4f078157a3ab7ef5057b",
+    "m_Id": 4,
+    "m_DisplayName": "Isoperimeter",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Isoperimeter",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 3.0,
+        "y": 2.0,
+        "z": 1.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "f814deb543c24fbbafbcdb5071d96022",
+    "m_Group": {
+        "m_Id": "42cadae0923e4969b50bbc3f78185934"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4569.0,
+            "y": -3245.000244140625,
+            "width": 184.0,
+            "height": 253.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "abd59150589b436cadf8c9e6f43ccb8e"
+        },
+        {
+            "m_Id": "7acfafd73b8c4dfab8c55c18a887e087"
+        },
+        {
+            "m_Id": "928621a3ca2d41c89a10336bbbc81ddc"
+        },
+        {
+            "m_Id": "b7f9ac55517141868bfb9d2ad6429792"
+        },
+        {
+            "m_Id": "09b1b86c1c074337a4c439d3a308dd2e"
+        },
+        {
+            "m_Id": "1f247658c7ba45fb93c41f51e21acb0d"
+        },
+        {
+            "m_Id": "d30452ac6b244ecca03df4d7b4de9f81"
+        },
+        {
+            "m_Id": "215b30ae27784ec3a13360a9029af283"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "f864c900600e427ba7793f00c715e971",
+    "m_Id": 0,
+    "m_DisplayName": "Outline Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fa6de3be9f5b4411b5081b49e645f424",
+    "m_Id": 1,
+    "m_DisplayName": "B",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "B",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 2.0,
+        "e01": 2.0,
+        "e02": 2.0,
+        "e03": 2.0,
+        "e10": 2.0,
+        "e11": 2.0,
+        "e12": 2.0,
+        "e13": 2.0,
+        "e20": 2.0,
+        "e21": 2.0,
+        "e22": 2.0,
+        "e23": 2.0,
+        "e30": 2.0,
+        "e31": 2.0,
+        "e32": 2.0,
+        "e33": 2.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DivideNode",
+    "m_ObjectId": "faace8101df943d8956faa31728cb004",
+    "m_Group": {
+        "m_Id": "daaf032a109749a88c9b8ff8e1f8b541"
+    },
+    "m_Name": "Divide",
+    "m_DrawState": {
+        "m_Expanded": true,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -5400.0,
+            "y": -3851.000244140625,
+            "width": 130.0,
+            "height": 118.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "77e28f3e930b4c249145630ec961af95"
+        },
+        {
+            "m_Id": "f2903158b3624759bca1fcd843698078"
+        },
+        {
+            "m_Id": "30ca940fe2794c949f2a1d4d2caaa446"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "facc84930f544fd7a0205a6176b18ac0",
+    "m_Id": 2,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
+    "m_ObjectId": "fb15d0ba56d54a6192f11e107aeb5fa8",
+    "m_Id": 1,
+    "m_DisplayName": "Texture",
+    "m_SlotType": 0,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Texture",
+    "m_StageCapability": 3,
+    "m_BareResource": false,
+    "m_Texture": {
+        "m_SerializedTexture": "{\"texture\":{\"instanceID\":0}}",
+        "m_Guid": ""
+    },
+    "m_DefaultType": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
+    "m_ObjectId": "fb5e1e2a67c14602808358686bb75091",
+    "m_Id": 0,
+    "m_DisplayName": "Width",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Width",
+    "m_StageCapability": 3,
+    "m_Value": 0.0,
+    "m_DefaultValue": 0.0,
+    "m_Labels": [
+        "X"
+    ]
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
+    "m_ObjectId": "fc2e62201c5847e798fd939314413fcd",
+    "m_Id": 4,
+    "m_DisplayName": "RGBA",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGBA",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0,
+        "w": 0.0
+    },
+    "m_Labels": []
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
+    "m_ObjectId": "fd0b096ed5b74f9e9ec51327be200731",
+    "m_Id": 2,
+    "m_DisplayName": "Out",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "Out",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "e00": 0.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 0.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 0.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 0.0
+    },
+    "m_DefaultValue": {
+        "e00": 1.0,
+        "e01": 0.0,
+        "e02": 0.0,
+        "e03": 0.0,
+        "e10": 0.0,
+        "e11": 1.0,
+        "e12": 0.0,
+        "e13": 0.0,
+        "e20": 0.0,
+        "e21": 0.0,
+        "e22": 1.0,
+        "e23": 0.0,
+        "e30": 0.0,
+        "e31": 0.0,
+        "e32": 0.0,
+        "e33": 1.0
+    }
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
+    "m_ObjectId": "fdb77c3e92ee497b88ca5dc46dc45350",
+    "m_Group": {
+        "m_Id": "98934a69591249d5b8b92b39045359a3"
+    },
+    "m_Name": "Sample Texture 2D",
+    "m_DrawState": {
+        "m_Expanded": false,
+        "m_Position": {
+            "serializedVersion": "2",
+            "x": -4171.0,
+            "y": -2362.0,
+            "width": 180.0,
+            "height": 181.0
+        }
+    },
+    "m_Slots": [
+        {
+            "m_Id": "4328cdbf78b94c038fd614c59bfe1cac"
+        },
+        {
+            "m_Id": "04dfcc9ff13a4bf282ed46faec39d15c"
+        },
+        {
+            "m_Id": "71dd947935b64ce38f0d25406dde447b"
+        },
+        {
+            "m_Id": "61a6ac5f29344d109411f26850ab0a96"
+        },
+        {
+            "m_Id": "44806230fa384c1e95f9c5918a14f056"
+        },
+        {
+            "m_Id": "4eb3c00a1ca44e10be833b7ca61ff059"
+        },
+        {
+            "m_Id": "57abc172afd449e2a4d567f93432507b"
+        },
+        {
+            "m_Id": "cda5e3b4c1054bf3a65c0b7ec6bc778a"
+        }
+    ],
+    "synonyms": [],
+    "m_Precision": 0,
+    "m_PreviewExpanded": false,
+    "m_DismissedVersion": 0,
+    "m_PreviewMode": 0,
+    "m_CustomColors": {
+        "m_SerializableColors": []
+    },
+    "m_TextureType": 0,
+    "m_NormalMapSpace": 0,
+    "m_EnableGlobalMipBias": true,
+    "m_MipSamplingMode": 0
+}
+
+{
+    "m_SGVersion": 0,
+    "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot",
+    "m_ObjectId": "fe11fa80cc1847a5a37f6757d521cf25",
+    "m_Id": 5,
+    "m_DisplayName": "RGB",
+    "m_SlotType": 1,
+    "m_Hidden": false,
+    "m_ShaderOutputName": "RGB",
+    "m_StageCapability": 3,
+    "m_Value": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_DefaultValue": {
+        "x": 0.0,
+        "y": 0.0,
+        "z": 0.0
+    },
+    "m_Labels": []
+}
+
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Unlit.shadergraph.meta b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Unlit.shadergraph.meta
new file mode 100644
index 0000000000..248825ca14
--- /dev/null
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF-URP Unlit.shadergraph.meta	
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: 124c112a6e8f1a54e8b0870e881b56d8
+ScriptedImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 2
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
+  script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
diff --git a/Assets/TextMesh Pro/Shaders/TMP_SDF.shader b/Assets/TextMesh Pro/Shaders/TMP_SDF.shader
index 011ee199aa..bbcfd119df 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_SDF.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_SDF.shader	
@@ -4,10 +4,10 @@ Properties {
 	_FaceTex			("Face Texture", 2D) = "white" {}
 	_FaceUVSpeedX		("Face UV Speed X", Range(-5, 5)) = 0.0
 	_FaceUVSpeedY		("Face UV Speed Y", Range(-5, 5)) = 0.0
-	[HDR]_FaceColor		("Face Color", Color) = (1,1,1,1)
+	_FaceColor		    ("Face Color", Color) = (1,1,1,1)
 	_FaceDilate			("Face Dilate", Range(-1,1)) = 0
 
-	[HDR]_OutlineColor	("Outline Color", Color) = (0,0,0,1)
+	_OutlineColor	    ("Outline Color", Color) = (0,0,0,1)
 	_OutlineTex			("Outline Texture", 2D) = "white" {}
 	_OutlineUVSpeedX	("Outline UV Speed X", Range(-5, 5)) = 0.0
 	_OutlineUVSpeedY	("Outline UV Speed Y", Range(-5, 5)) = 0.0
@@ -21,7 +21,7 @@ Properties {
 	_BevelRoundness		("Bevel Roundness", Range(0,1)) = 0
 
 	_LightAngle			("Light Angle", Range(0.0, 6.2831853)) = 3.1416
-	[HDR]_SpecularColor	("Specular", Color) = (1,1,1,1)
+	_SpecularColor	    ("Specular", Color) = (1,1,1,1)
 	_SpecularPower		("Specular", Range(0,4)) = 2.0
 	_Reflectivity		("Reflectivity", Range(5.0,15.0)) = 10
 	_Diffuse			("Diffuse", Range(0,1)) = 0.5
@@ -37,13 +37,13 @@ Properties {
 	_EnvMatrixRotation	("Texture Rotation", vector) = (0, 0, 0, 0)
 
 
-	[HDR]_UnderlayColor	("Border Color", Color) = (0,0,0, 0.5)
+	_UnderlayColor	    ("Border Color", Color) = (0,0,0, 0.5)
 	_UnderlayOffsetX	("Border OffsetX", Range(-1,1)) = 0
 	_UnderlayOffsetY	("Border OffsetY", Range(-1,1)) = 0
 	_UnderlayDilate		("Border Dilate", Range(-1,1)) = 0
 	_UnderlaySoftness	("Border Softness", Range(0,1)) = 0
 
-	[HDR]_GlowColor			("Color", Color) = (0, 1, 0, 0.5)
+	_GlowColor		    ("Color", Color) = (0, 1, 0, 0.5)
 	_GlowOffset			("Offset", Range(-1,1)) = 0
 	_GlowInner			("Inner", Range(0,1)) = 0.05
 	_GlowOuter			("Outer", Range(0,1)) = 0.05
@@ -127,17 +127,18 @@ SubShader {
 		#include "TMPro_Properties.cginc"
 		#include "TMPro.cginc"
 
-		struct vertex_t {
+		struct vertex_t
+		{
 			UNITY_VERTEX_INPUT_INSTANCE_ID
 			float4	position		: POSITION;
 			float3	normal			: NORMAL;
 			fixed4	color			: COLOR;
-			float2	texcoord0		: TEXCOORD0;
+			float4	texcoord0		: TEXCOORD0;
 			float2	texcoord1		: TEXCOORD1;
 		};
 
-
-		struct pixel_t {
+		struct pixel_t
+		{
 			UNITY_VERTEX_INPUT_INSTANCE_ID
 			UNITY_VERTEX_OUTPUT_STEREO
 			float4	position		: SV_POSITION;
@@ -147,16 +148,20 @@ SubShader {
 			float4	mask			: TEXCOORD2;		// Position in object space(xy), pixel Size(zw)
 			float3	viewDir			: TEXCOORD3;
 
-		#if (UNDERLAY_ON || UNDERLAY_INNER)
+		    #if (UNDERLAY_ON || UNDERLAY_INNER)
 			float4	texcoord2		: TEXCOORD4;		// u,v, scale, bias
 			fixed4	underlayColor	: COLOR1;
-		#endif
-			float4 textures			: TEXCOORD5;
+		    #endif
+
+		    float4 textures			: TEXCOORD5;
 		};
 
 		// Used by Unity internally to handle Texture Tiling and Offset.
 		float4 _FaceTex_ST;
 		float4 _OutlineTex_ST;
+		float _UIMaskSoftnessX;
+        float _UIMaskSoftnessY;
+        int _UIVertexColorAlwaysGammaSpace;
 
 		pixel_t VertShader(vertex_t input)
 		{
@@ -167,7 +172,7 @@ SubShader {
 			UNITY_TRANSFER_INSTANCE_ID(input,output);
 			UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
 
-			float bold = step(input.texcoord1.y, 0);
+			float bold = step(input.texcoord0.w, 0);
 
 			float4 vert = input.position;
 			vert.x += _VertexOffsetX;
@@ -178,7 +183,7 @@ SubShader {
 			float2 pixelSize = vPosition.w;
 			pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
 			float scale = rsqrt(dot(pixelSize, pixelSize));
-			scale *= abs(input.texcoord1.y) * _GradientScale * (_Sharpness + 1);
+			scale *= abs(input.texcoord0.w) * _GradientScale * (_Sharpness + 1);
 			if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
 
 			float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0;
@@ -188,13 +193,13 @@ SubShader {
 
 			float alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _OutlineSoftness * _ScaleRatioA);
 
-		#if GLOW_ON
+		    #if GLOW_ON
 			alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB);
-		#endif
+		    #endif
 
 			alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight;
 
-		#if (UNDERLAY_ON || UNDERLAY_INNER)
+		    #if (UNDERLAY_ON || UNDERLAY_INNER)
 			float4 underlayColor = _UnderlayColor;
 			underlayColor.rgb *= underlayColor.a;
 
@@ -205,23 +210,28 @@ SubShader {
 			float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth;
 			float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight;
 			float2 bOffset = float2(x, y);
-		#endif
+		    #endif
 
 			// Generate UV for the Masking Texture
 			float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
 			float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy);
 
 			// Support for texture tiling and offset
-			float2 textureUV = UnpackUV(input.texcoord1.x);
+			float2 textureUV = input.texcoord1;
 			float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex);
 			float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex);
 
 
+            if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+            {
+                input.color.rgb = UIGammaToLinear(input.color.rgb);
+            }
 			output.position = vPosition;
 			output.color = input.color;
 			output.atlas =	input.texcoord0;
 			output.param =	float4(alphaClip, scale, bias, weight);
-			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy));
+			const half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+			output.mask = half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * maskSoftness + pixelSize.xy));
 			output.viewDir =	mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz);
 			#if (UNDERLAY_ON || UNDERLAY_INNER)
 			output.texcoord2 = float4(input.texcoord0 + bOffset, bScale, bBias);
@@ -239,9 +249,9 @@ SubShader {
 
 			float c = tex2D(_MainTex, input.atlas).a;
 
-		#ifndef UNDERLAY_ON
+		    #ifndef UNDERLAY_ON
 			clip(c - input.param.x);
-		#endif
+		    #endif
 
 			float	scale	= input.param.y;
 			float	bias	= input.param.z;
@@ -261,7 +271,7 @@ SubShader {
 
 			faceColor = GetColor(sd, faceColor, outlineColor, outline, softness);
 
-		#if BEVEL_ON
+		    #if BEVEL_ON
 			float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0);
 			float3 n = GetSurfaceNormal(input.atlas, weight, dxy);
 
@@ -278,36 +288,35 @@ SubShader {
 
 			fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n));
 			faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a;
-		#endif
+		    #endif
 
-		#if UNDERLAY_ON
+		    #if UNDERLAY_ON
 			float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z;
 			faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a);
-		#endif
+		    #endif
 
-		#if UNDERLAY_INNER
+		    #if UNDERLAY_INNER
 			float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z;
 			faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a);
-		#endif
+		    #endif
 
-		#if GLOW_ON
+		    #if GLOW_ON
 			float4 glowColor = GetGlowColor(sd, scale);
 			faceColor.rgb += glowColor.rgb * glowColor.a;
-		#endif
+		    #endif
 
 		// Alternative implementation to UnityGet2DClipping with support for softness.
-		#if UNITY_UI_CLIP_RECT
+		    #if UNITY_UI_CLIP_RECT
 			half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw);
 			faceColor *= m.x * m.y;
-		#endif
+		    #endif
 
-		#if UNITY_UI_ALPHACLIP
+		    #if UNITY_UI_ALPHACLIP
 			clip(faceColor.a - 0.001);
-		#endif
+		    #endif
 
-  		return faceColor * input.color.a;
+  		    return faceColor * input.color.a;
 		}
-
 		ENDCG
 	}
 }
diff --git a/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader b/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader
index adccc04c5c..4012a081db 100644
--- a/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader	
+++ b/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader	
@@ -2,18 +2,18 @@ Shader "TextMeshPro/Sprite"
 {
 	Properties
 	{
-		_MainTex ("Sprite Texture", 2D) = "white" {}
-		_Color ("Tint", Color) = (1,1,1,1)
-		
-		_StencilComp ("Stencil Comparison", Float) = 8
-		_Stencil ("Stencil ID", Float) = 0
-		_StencilOp ("Stencil Operation", Float) = 0
-		_StencilWriteMask ("Stencil Write Mask", Float) = 255
-		_StencilReadMask ("Stencil Read Mask", Float) = 255
-		
-		_CullMode ("Cull Mode", Float) = 0
-		_ColorMask ("Color Mask", Float) = 15
-		_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
+        _MainTex            ("Sprite Texture", 2D) = "white" {}
+		_Color              ("Tint", Color) = (1,1,1,1)
+
+		_StencilComp        ("Stencil Comparison", Float) = 8
+		_Stencil            ("Stencil ID", Float) = 0
+		_StencilOp          ("Stencil Operation", Float) = 0
+		_StencilWriteMask   ("Stencil Write Mask", Float) = 255
+		_StencilReadMask    ("Stencil Read Mask", Float) = 255
+
+		_CullMode           ("Cull Mode", Float) = 0
+		_ColorMask          ("Color Mask", Float) = 15
+		_ClipRect           ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
 
 		[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
 	}
@@ -21,19 +21,19 @@ Shader "TextMeshPro/Sprite"
 	SubShader
 	{
 		Tags
-		{ 
-			"Queue"="Transparent" 
-			"IgnoreProjector"="True" 
-			"RenderType"="Transparent" 
+		{
+			"Queue"="Transparent"
+			"IgnoreProjector"="True"
+			"RenderType"="Transparent"
 			"PreviewType"="Plane"
 			"CanUseSpriteAtlas"="True"
 		}
-		
+
 		Stencil
 		{
 			Ref [_Stencil]
 			Comp [_StencilComp]
-			Pass [_StencilOp] 
+			Pass [_StencilOp]
 			ReadMask [_StencilReadMask]
 			WriteMask [_StencilWriteMask]
 		}
@@ -47,59 +47,76 @@ Shader "TextMeshPro/Sprite"
 
 		Pass
 		{
+            Name "Default"
 		CGPROGRAM
 			#pragma vertex vert
 			#pragma fragment frag
+            #pragma target 2.0
 
 			#include "UnityCG.cginc"
 			#include "UnityUI.cginc"
 
-			#pragma multi_compile __ UNITY_UI_CLIP_RECT
-			#pragma multi_compile __ UNITY_UI_ALPHACLIP
-			
+            #pragma multi_compile __ UNITY_UI_CLIP_RECT
+            #pragma multi_compile __ UNITY_UI_ALPHACLIP
+
 			struct appdata_t
 			{
 				float4 vertex   : POSITION;
 				float4 color    : COLOR;
 				float2 texcoord : TEXCOORD0;
+                UNITY_VERTEX_INPUT_INSTANCE_ID
 			};
 
 			struct v2f
 			{
-				float4 vertex   : SV_POSITION;
-				fixed4 color    : COLOR;
-				half2 texcoord  : TEXCOORD0;
-				float4 worldPosition : TEXCOORD1;
+				float4 vertex			: SV_POSITION;
+				fixed4 color			: COLOR;
+                float2 texcoord			: TEXCOORD0;
+				float4 worldPosition	: TEXCOORD1;
+				float4 mask				: TEXCOORD2;
+                UNITY_VERTEX_OUTPUT_STEREO
 			};
-			
+
+            sampler2D _MainTex;
 			fixed4 _Color;
 			fixed4 _TextureSampleAdd;
 			float4 _ClipRect;
+            float4 _MainTex_ST;
+		    float _UIMaskSoftnessX;
+            float _UIMaskSoftnessY;
+            int _UIVertexColorAlwaysGammaSpace;
 
-			v2f vert(appdata_t IN)
+            v2f vert(appdata_t v)
 			{
 				v2f OUT;
-				OUT.worldPosition = IN.vertex;
-				OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
+                UNITY_SETUP_INSTANCE_ID(v);
+                UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
+				float4 vPosition = UnityObjectToClipPos(v.vertex);
+            	OUT.worldPosition = v.vertex;
+				OUT.vertex = vPosition;
 
-				OUT.texcoord = IN.texcoord;
-				
-				#ifdef UNITY_HALF_TEXEL_OFFSET
-				OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1);
-				#endif
-				
-				OUT.color = IN.color * _Color;
+            	float2 pixelSize = vPosition.w;
+                pixelSize /= abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy));
+
+				float4 clampedRect = clamp(_ClipRect, -2e10, 2e10);
+                OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
+                OUT.mask = half4(v.vertex.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_UIMaskSoftnessX, _UIMaskSoftnessY) + abs(pixelSize.xy)));
+
+                if (_UIVertexColorAlwaysGammaSpace && !IsGammaSpace())
+                {
+                    v.color.rgb = UIGammaToLinear(v.color.rgb);
+                }
+                OUT.color = v.color * _Color;
 				return OUT;
 			}
 
-			sampler2D _MainTex;
-
 			fixed4 frag(v2f IN) : SV_Target
 			{
 				half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
-				
-				#if UNITY_UI_CLIP_RECT
-					color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
+
+                #if UNITY_UI_CLIP_RECT
+				half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw);
+				color *= m.x * m.y;
 				#endif
 
 				#ifdef UNITY_UI_ALPHACLIP
@@ -108,7 +125,7 @@ Shader "TextMeshPro/Sprite"
 
 				return color;
 			}
-		ENDCG
+		    ENDCG
 		}
 	}
 }
diff --git a/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta b/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta
index 0d6eb56ce1..f21163e223 100644
--- a/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta	
+++ b/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta	
@@ -4,6 +4,6 @@ ShaderImporter:
   externalObjects: {}
   defaultTextures: []
   nonModifiableTextures: []
-  userData: 
+  userData: Version 2.0
   assetBundleName: 
   assetBundleVariant: 
diff --git a/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc b/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc
index 5969fec1a3..d145a773fc 100644
--- a/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc	
+++ b/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc	
@@ -1,20 +1,22 @@
-struct vertex_t {
+struct vertex_t
+{
     UNITY_VERTEX_INPUT_INSTANCE_ID
     float4	position		: POSITION;
     float3	normal			: NORMAL;
     float4	color			: COLOR;
-    float2	texcoord0		: TEXCOORD0;
+    float4	texcoord0		: TEXCOORD0;
     float2	texcoord1		: TEXCOORD1;
 };
 
-struct pixel_t {
+struct pixel_t
+{
     UNITY_VERTEX_INPUT_INSTANCE_ID
     UNITY_VERTEX_OUTPUT_STEREO
     float4	position		: SV_POSITION;
     float4	faceColor		: COLOR;
     float4	outlineColor	: COLOR1;
     float4	texcoord0		: TEXCOORD0;
-    float4	param			: TEXCOORD1;		// weight, scaleRatio
+    float4	param			: TEXCOORD1;		// x = weight, y = no longer used
     float2	mask			: TEXCOORD2;
     #if (UNDERLAY_ON || UNDERLAY_INNER)
     float4	texcoord2		: TEXCOORD3;
@@ -22,10 +24,14 @@ struct pixel_t {
     #endif
 };
 
-float4 SRGBToLinear(float4 rgba) {
+float4 SRGBToLinear(float4 rgba)
+{
     return float4(lerp(rgba.rgb / 12.92f, pow((rgba.rgb + 0.055f) / 1.055f, 2.4f), step(0.04045f, rgba.rgb)), rgba.a);
 }
 
+float _UIMaskSoftnessX;
+float _UIMaskSoftnessY;
+
 pixel_t VertShader(vertex_t input)
 {
     pixel_t output;
@@ -35,7 +41,7 @@ pixel_t VertShader(vertex_t input)
     UNITY_TRANSFER_INSTANCE_ID(input, output);
     UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
 
-    float bold = step(input.texcoord1.y, 0);
+    float bold = step(input.texcoord0.w, 0);
 
     float4 vert = input.position;
     vert.x += _VertexOffsetX;
@@ -71,7 +77,7 @@ pixel_t VertShader(vertex_t input)
     output.faceColor = faceColor;
     output.outlineColor = outlineColor;
     output.texcoord0 = float4(input.texcoord0.xy, maskUV.xy);
-    output.param = float4(0.5 - weight, 1.3333 * _GradientScale * (_Sharpness + 1) / _TextureWidth, _OutlineWidth * _ScaleRatioA * 0.5, 0);
+    output.param = float4(0.5 - weight, 0, _OutlineWidth * _ScaleRatioA * 0.5, 0);
 
     float2 mask = float2(0, 0);
     #if UNITY_UI_CLIP_RECT
@@ -99,8 +105,9 @@ float4 PixShader(pixel_t input) : SV_Target
 
     float d = tex2D(_MainTex, input.texcoord0.xy).a;
 
-    float2 UV = input.texcoord0.xy;
-    float scale = rsqrt(abs(ddx(UV.x) * ddy(UV.y) - ddy(UV.x) * ddx(UV.y))) * input.param.y;
+    float pixelSize = abs(ddx(input.texcoord0.y)) + abs(ddy(input.texcoord0.y));
+    pixelSize *= _TextureHeight * 0.75;
+    float scale = 1 / pixelSize * _GradientScale * (_Sharpness + 1);
 
     #if (UNDERLAY_ON | UNDERLAY_INNER)
     float layerScale = scale;
@@ -112,7 +119,7 @@ float4 PixShader(pixel_t input) : SV_Target
 
     float4 faceColor = input.faceColor * saturate((d - input.param.x) * scale + 0.5);
 
-    #ifdef OUTLINE_ON
+    #if OUTLINE_ON
     float4 outlineColor = lerp(input.faceColor, input.outlineColor, sqrt(min(1.0, input.param.z * scale * 2)));
     faceColor = lerp(outlineColor, input.faceColor, saturate((d - input.param.x - input.param.z) * scale + 0.5));
     faceColor *= saturate((d - input.param.x + input.param.z) * scale + 0.5);
@@ -130,7 +137,7 @@ float4 PixShader(pixel_t input) : SV_Target
     faceColor += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - layerBias)) * sd * (1 - faceColor.a);
     #endif
 
-    #ifdef MASKING
+    #if MASKING
     float a = abs(_MaskInverse - tex2D(_MaskTex, input.texcoord0.zw).a);
     float t = a + (1 - _MaskWipeControl) * _MaskEdgeSoftness - _MaskWipeControl;
     a = saturate(t / _MaskEdgeSoftness);
@@ -140,7 +147,8 @@ float4 PixShader(pixel_t input) : SV_Target
 
     // Alternative implementation to UnityGet2DClipping with support for softness
     #if UNITY_UI_CLIP_RECT
-    float2 maskZW = 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + (1 / scale));
+    half2 maskSoftness = half2(max(_UIMaskSoftnessX, _MaskSoftnessX), max(_UIMaskSoftnessY, _MaskSoftnessY));
+    float2 maskZW = 0.25 / (0.25 * maskSoftness + 1 / scale);
     float2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * maskZW);
     faceColor *= m.x * m.y;
     #endif
diff --git a/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc b/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc
index 2e962588cf..b806b4f956 100644
--- a/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc	
+++ b/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc	
@@ -66,11 +66,6 @@ uniform float		_MaskID;
 uniform sampler2D	_MaskTex;
 uniform float4		_MaskCoord;
 uniform float4		_ClipRect;	// bottom left(x,y) : top right(z,w)
-//uniform float		_MaskWipeControl;
-//uniform float		_MaskEdgeSoftness;
-//uniform fixed4		_MaskEdgeColor;
-//uniform bool		_MaskInverse;
-
 uniform float		_MaskSoftnessX;
 uniform float		_MaskSoftnessY;
 
diff --git a/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc b/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc
index 622ae87583..2153a9a7ca 100644
--- a/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc	
+++ b/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc	
@@ -5,7 +5,7 @@ void VertShader(inout appdata_full v, out Input data)
 
 	UNITY_INITIALIZE_OUTPUT(Input, data);
 
-	float bold = step(v.texcoord1.y, 0);
+	float bold = step(v.texcoord.w, 0);
 
 	// Generate normal for backface
 	float3 view = ObjSpaceViewDir(v.vertex);
@@ -20,14 +20,12 @@ void VertShader(inout appdata_full v, out Input data)
 
 	pixelSize /= float2(_ScaleX, _ScaleY) * mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy);
 	float scale = rsqrt(dot(pixelSize, pixelSize));
-	scale *= abs(v.texcoord1.y) * _GradientScale * (_Sharpness + 1);
+	scale *= abs(v.texcoord.w) * _GradientScale * (_Sharpness + 1);
 	scale = lerp(scale * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(v.normal.xyz), normalize(WorldSpaceViewDir(vert)))));
 	data.param.y = scale;
 #endif
 
-	data.param.x = (lerp(_WeightNormal, _WeightBold, bold) / 4.0 + _FaceDilate) * _ScaleRatioA * 0.5; // 
-
-	v.texcoord1.xy = UnpackUV(v.texcoord1.x);
+	data.param.x = (lerp(_WeightNormal, _WeightBold, bold) / 4.0 + _FaceDilate) * _ScaleRatioA * 0.5; //
 	data.viewDirEnv = mul((float3x3)_EnvMatrix, WorldSpaceViewDir(v.vertex));
 }
 
@@ -82,7 +80,7 @@ void PixShader(Input input, inout SurfaceOutput o)
 	float3 n = float3(0, 0, -1);
 	float3 emission = float3(0, 0, 0);
 #endif
-	
+
 #if GLOW_ON
 	float4 glowColor = GetGlowColor(sd, scale);
 	glowColor.a *= input.color.a;
diff --git a/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta b/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta
index 1c0e16f405..762cf15c92 100644
--- a/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta	
+++ b/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta	
@@ -1,7 +1,8 @@
 fileFormatVersion: 2
-guid: d8db04a148f81484ba96113d5621f7ca
+guid: 8f05276190cf498a8153f6cbe761d4e6
+timeCreated: 1480316860
+licenseType: Pro
 TextScriptImporter:
-  externalObjects: {}
   userData: 
   assetBundleName: 
   assetBundleVariant: 
diff --git a/Assets/Textures/UI/button_Disabled.png.meta b/Assets/Textures/UI/button_Disabled.png.meta
index 3be36ce557..e0c9ac4f45 100644
--- a/Assets/Textures/UI/button_Disabled.png.meta
+++ b/Assets/Textures/UI/button_Disabled.png.meta
@@ -1,9 +1,5 @@
 fileFormatVersion: 2
-<<<<<<< HEAD:Assets/BossRoom/Textures/UI/button_Disabled.png.meta
 guid: 830c96afe1b19f9408d5ead518a09fe9
-=======
-guid: 62d7fb22c0ec4164f9c6ef1c5846ca8c
->>>>>>> origin/release/v0.1.0-experimental:Assets/BossRoom/Textures/Environment/env_deco_boss_arena_mtl.tga.meta
 TextureImporter:
   internalIDToNameTable: []
   externalObjects: {}
diff --git a/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Mobile_Low.asset b/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Mobile_Low.asset
index 8c7f5e8cf9..25311b7ed8 100644
--- a/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Mobile_Low.asset
+++ b/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Mobile_Low.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:62ae1d73a7e79f82f466f0cca0ffd7d7f3c647af0c5d7876e8f28aed6ba195da
-size 3501
+oid sha256:a14e787d75e40f95ac253c8ff8f4024f220abe97989868c59132ca6946c77e43
+size 4358
diff --git a/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Renderer_Mobile_Low.asset b/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Renderer_Mobile_Low.asset
index e60691c2cd..eddaadcf50 100644
--- a/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Renderer_Mobile_Low.asset
+++ b/Assets/URP/Mobile/0_UniversalRenderPipelineAsset_Renderer_Mobile_Low.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:cfd1e6e94dd95313459d0ee504b25aa791fbcfbcad12587104e3f43bd9f15e50
-size 2608
+oid sha256:2ee8e9a75cc7d541ccfb345312c6231deb9bbd94c838d1470e539a01424f4620
+size 1864
diff --git a/Assets/URP/Mobile/1_UniversalRenderPipelineAsset_Mobile_Medium.asset b/Assets/URP/Mobile/1_UniversalRenderPipelineAsset_Mobile_Medium.asset
index 52cf4af4ec..dd1ac1297d 100644
--- a/Assets/URP/Mobile/1_UniversalRenderPipelineAsset_Mobile_Medium.asset
+++ b/Assets/URP/Mobile/1_UniversalRenderPipelineAsset_Mobile_Medium.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:ec3b54e2206ca1aca321f2f0b9961bf14937f8e15821aa8342e45835b965db81
-size 3504
+oid sha256:61fd1498ae417613b1e4fc43d90f62a1a8eacb61953ed8defc91082077be5148
+size 4361
diff --git a/Assets/URP/Mobile/2_UniversalRenderPipelineAsset_Mobile_High.asset b/Assets/URP/Mobile/2_UniversalRenderPipelineAsset_Mobile_High.asset
index ddd784b092..bbd68c3440 100644
--- a/Assets/URP/Mobile/2_UniversalRenderPipelineAsset_Mobile_High.asset
+++ b/Assets/URP/Mobile/2_UniversalRenderPipelineAsset_Mobile_High.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:78565188a9b121a758c685ad1b4da264123ab20dc15b2de49725c527140b8ae0
-size 3502
+oid sha256:95bc4e0a16a45168277872febc3470a47559b5388c278832a3df1e3573839f34
+size 4359
diff --git a/Assets/URP/Windows/0_UniversalRenderPipelineAsset_Windows_Low.asset b/Assets/URP/Windows/0_UniversalRenderPipelineAsset_Windows_Low.asset
index ae1ae60d17..a21ed98cbb 100644
--- a/Assets/URP/Windows/0_UniversalRenderPipelineAsset_Windows_Low.asset
+++ b/Assets/URP/Windows/0_UniversalRenderPipelineAsset_Windows_Low.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:156f546b1b47dd12ebf17462717d52e8b9225b90057649a6f994d1b9a05df6d3
-size 3673
+oid sha256:b2208c1fefb455a174645cb2d6f7f6cb6bc074cdec65f73f0d5c27bb83bd58a2
+size 4350
diff --git a/Assets/URP/Windows/1_UniversalRenderPipelineAsset_Windows_Medium.asset b/Assets/URP/Windows/1_UniversalRenderPipelineAsset_Windows_Medium.asset
index 67025e14f4..441f82751e 100644
--- a/Assets/URP/Windows/1_UniversalRenderPipelineAsset_Windows_Medium.asset
+++ b/Assets/URP/Windows/1_UniversalRenderPipelineAsset_Windows_Medium.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:664825d50ebaca88798a13d93675e3c4c5bb7d155e963ee13cf2bc79f5f8d86f
-size 3681
+oid sha256:3c1d9864c4d2c4ead0ff0dff29f14e21309acc8ab0f0aee67a08fd1ed7ae3f30
+size 4358
diff --git a/Assets/URP/Windows/2_UniversalRenderPipelineAsset_Windows_High.asset b/Assets/URP/Windows/2_UniversalRenderPipelineAsset_Windows_High.asset
index 96f2f92e94..9405afa2b1 100644
--- a/Assets/URP/Windows/2_UniversalRenderPipelineAsset_Windows_High.asset
+++ b/Assets/URP/Windows/2_UniversalRenderPipelineAsset_Windows_High.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:6031aaba9d7ac0ca61ea9f6cc34c9133e0b65e4be56559ca2641975bfb980f54
-size 3673
+oid sha256:6c0d47cc8fbafe78df3db51ebedce43631a947c7f7a203250ba9ac03f5fa8d7f
+size 4350
diff --git a/Assets/URP/Windows/3_UniversalRenderPipelineAsset_Windows_Ultra.asset b/Assets/URP/Windows/3_UniversalRenderPipelineAsset_Windows_Ultra.asset
index 782d7e5f3a..37cf7134a8 100644
--- a/Assets/URP/Windows/3_UniversalRenderPipelineAsset_Windows_Ultra.asset
+++ b/Assets/URP/Windows/3_UniversalRenderPipelineAsset_Windows_Ultra.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:e410deed7cd331c908f7de7defdf7a2994eb002e3384c8ad69357c033d25b665
-size 3675
+oid sha256:28d385e1d260174bbd8cee17dc41f84e17fec5b306384add1bbfb55b31f161fa
+size 4352
diff --git a/Assets/UniversalRenderPipelineGlobalSettings.asset b/Assets/UniversalRenderPipelineGlobalSettings.asset
index 83829b821c..e0ec1201fc 100644
--- a/Assets/UniversalRenderPipelineGlobalSettings.asset
+++ b/Assets/UniversalRenderPipelineGlobalSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:ad47c9a555fa0774e8982e52f039ce9c33a21b1524c18d7e430d1505708bb014
-size 1183
+oid sha256:8505bb67f60142799e6e7c60fe6b0776808faeaadf5ecd42e73eecfb482f75b3
+size 21653
diff --git a/Assets/VFX/Materials/FX_M_ArcherArrow.mat b/Assets/VFX/Materials/FX_M_ArcherArrow.mat
index 9660d56a5f..a4dff5272a 100644
--- a/Assets/VFX/Materials/FX_M_ArcherArrow.mat
+++ b/Assets/VFX/Materials/FX_M_ArcherArrow.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -132,6 +134,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8191775615506968980
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -144,4 +147,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_CharaterSneaky.mat b/Assets/VFX/Materials/FX_M_CharaterSneaky.mat
index 034a1bbfa3..6d095b8a8d 100644
--- a/Assets/VFX/Materials/FX_M_CharaterSneaky.mat
+++ b/Assets/VFX/Materials/FX_M_CharaterSneaky.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -25,13 +25,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -95,3 +97,4 @@ Material:
     - _NoiseTileSpeed: {r: 0.05, g: 0.01, b: 0, a: 0.5}
     - _NotmalTileSpeed: {r: 0.05, g: 0.02, b: 0, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_CharaterSneaky_LessSneak.mat b/Assets/VFX/Materials/FX_M_CharaterSneaky_LessSneak.mat
index d654dafe6e..49ca10c0f2 100644
--- a/Assets/VFX/Materials/FX_M_CharaterSneaky_LessSneak.mat
+++ b/Assets/VFX/Materials/FX_M_CharaterSneaky_LessSneak.mat
@@ -12,13 +12,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -82,6 +84,7 @@ Material:
     - _NoiseTileSpeed: {r: 0.05, g: 0.01, b: 0, a: 0.5}
     - _NotmalTileSpeed: {r: 0.05, g: 0.02, b: 0, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &335327079362466641
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -94,4 +97,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Chest.mat b/Assets/VFX/Materials/FX_M_Chest.mat
index c893d13332..5f4a4e6c4c 100644
--- a/Assets/VFX/Materials/FX_M_Chest.mat
+++ b/Assets/VFX/Materials/FX_M_Chest.mat
@@ -24,6 +24,7 @@ Material:
   - ALWAYS
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -141,6 +142,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SoftParticleFadeParams: {r: 0, g: 4.5454545, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7142477515504277183
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -153,4 +155,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Circle_Sheet_01.mat b/Assets/VFX/Materials/FX_M_Circle_Sheet_01.mat
index 47849a96d6..566eb06561 100644
--- a/Assets/VFX/Materials/FX_M_Circle_Sheet_01.mat
+++ b/Assets/VFX/Materials/FX_M_Circle_Sheet_01.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -22,6 +23,7 @@ Material:
     RenderType: Transparent
   disabledShaderPasses:
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -126,6 +128,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -138,4 +141,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Circle_Sheet_02.mat b/Assets/VFX/Materials/FX_M_Circle_Sheet_02.mat
index c222ac5585..8748d3109d 100644
--- a/Assets/VFX/Materials/FX_M_Circle_Sheet_02.mat
+++ b/Assets/VFX/Materials/FX_M_Circle_Sheet_02.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -22,6 +23,7 @@ Material:
     RenderType: Transparent
   disabledShaderPasses:
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -126,6 +128,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -138,4 +141,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Circle_Sheet_03.mat b/Assets/VFX/Materials/FX_M_Circle_Sheet_03.mat
index 58cd36f53d..12d54ea328 100644
--- a/Assets/VFX/Materials/FX_M_Circle_Sheet_03.mat
+++ b/Assets/VFX/Materials/FX_M_Circle_Sheet_03.mat
@@ -148,6 +148,7 @@ Material:
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -160,4 +161,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Circle_Sheet_04.mat b/Assets/VFX/Materials/FX_M_Circle_Sheet_04.mat
index c07b6393b8..a40e14903c 100644
--- a/Assets/VFX/Materials/FX_M_Circle_Sheet_04.mat
+++ b/Assets/VFX/Materials/FX_M_Circle_Sheet_04.mat
@@ -148,6 +148,7 @@ Material:
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -160,4 +161,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Circle_Sheet_05.mat b/Assets/VFX/Materials/FX_M_Circle_Sheet_05.mat
index 8570c1bbbc..cecdc3fefb 100644
--- a/Assets/VFX/Materials/FX_M_Circle_Sheet_05.mat
+++ b/Assets/VFX/Materials/FX_M_Circle_Sheet_05.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -22,6 +23,7 @@ Material:
     RenderType: Transparent
   disabledShaderPasses:
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -126,6 +128,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -138,4 +141,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Crystal.mat b/Assets/VFX/Materials/FX_M_Crystal.mat
index 2c9dbcf99a..f90292360b 100644
--- a/Assets/VFX/Materials/FX_M_Crystal.mat
+++ b/Assets/VFX/Materials/FX_M_Crystal.mat
@@ -25,13 +25,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -150,6 +152,7 @@ Material:
     - _TintBlack: {r: 0.047169805, g: 0.014836603, b: 0.006897471, a: 0}
     - _TintWhite: {r: 1, g: 0.05020623, b: 0.042452812, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &6389523636818495645
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -162,4 +165,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Crystal_Broken.mat b/Assets/VFX/Materials/FX_M_Crystal_Broken.mat
index b5c997e77b..0add12e235 100644
--- a/Assets/VFX/Materials/FX_M_Crystal_Broken.mat
+++ b/Assets/VFX/Materials/FX_M_Crystal_Broken.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -25,13 +25,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -165,3 +167,4 @@ Material:
     - _TintBlack: {r: 0.047169805, g: 0.014836603, b: 0.006897471, a: 0}
     - _TintWhite: {r: 1, g: 0.05020623, b: 0.042452812, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Flame.mat b/Assets/VFX/Materials/FX_M_Flame.mat
index 741adb2b9c..ffa81d4471 100644
--- a/Assets/VFX/Materials/FX_M_Flame.mat
+++ b/Assets/VFX/Materials/FX_M_Flame.mat
@@ -14,12 +14,14 @@ Material:
   m_ValidKeywords: []
   m_InvalidKeywords:
   - ETC1_EXTERNAL_ALPHA
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -136,6 +138,7 @@ Material:
     - _Texture1TileSpeed: {r: 1, g: 0.5, b: 0, a: -0.5}
     - _Texture2TileSpeed: {r: 0.5, g: 1, b: 0, a: -1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &5486005863881349433
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -148,4 +151,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Flare_01.mat b/Assets/VFX/Materials/FX_M_Flare_01.mat
index 54e06b5beb..ba561d74e7 100644
--- a/Assets/VFX/Materials/FX_M_Flare_01.mat
+++ b/Assets/VFX/Materials/FX_M_Flare_01.mat
@@ -22,6 +22,7 @@ Material:
     RenderType: Transparent
   disabledShaderPasses:
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,6 +129,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +142,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Flash_01.mat b/Assets/VFX/Materials/FX_M_Flash_01.mat
index 91ffab3a22..edaa379cf4 100644
--- a/Assets/VFX/Materials/FX_M_Flash_01.mat
+++ b/Assets/VFX/Materials/FX_M_Flash_01.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -139,6 +140,7 @@ Material:
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -151,4 +153,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_GlowLine.mat b/Assets/VFX/Materials/FX_M_GlowLine.mat
index 2fe494ae9b..fc7426f942 100644
--- a/Assets/VFX/Materials/FX_M_GlowLine.mat
+++ b/Assets/VFX/Materials/FX_M_GlowLine.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -140,6 +141,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SoftParticleFadeParams: {r: 0, g: 0.6896551, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1865182808327881390
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -152,4 +154,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Glow_Additive_01.mat b/Assets/VFX/Materials/FX_M_Glow_Additive_01.mat
index 763b48fc10..5871a12976 100644
--- a/Assets/VFX/Materials/FX_M_Glow_Additive_01.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_Additive_01.mat
@@ -14,6 +14,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _SWITCH_ALPHA_ON
   - _USE_ALPHA_ON
   m_LightmapFlags: 2
@@ -25,6 +26,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -90,6 +92,7 @@ Material:
     - Boolean_236a513c11c34f97b3d22cc5b0fdd0bd: 1
     - _AlphaClip: 0
     - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
     - _Blend: 2
     - _BumpScale: 1
     - _CastShadows: 0
@@ -129,6 +132,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -141,4 +145,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Glow_Additive_02.mat b/Assets/VFX/Materials/FX_M_Glow_Additive_02.mat
index 324eda9c8f..094fd69c77 100644
--- a/Assets/VFX/Materials/FX_M_Glow_Additive_02.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_Additive_02.mat
@@ -14,6 +14,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _USE_ALPHA_ON
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
@@ -24,6 +25,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -89,6 +91,7 @@ Material:
     - Boolean_236a513c11c34f97b3d22cc5b0fdd0bd: 0
     - _AlphaClip: 0
     - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
     - _Blend: 2
     - _BumpScale: 1
     - _CastShadows: 0
@@ -128,6 +131,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +144,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Glow_Additive_03.mat b/Assets/VFX/Materials/FX_M_Glow_Additive_03.mat
index 03bd4b2c51..d8cf213fb4 100644
--- a/Assets/VFX/Materials/FX_M_Glow_Additive_03.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_Additive_03.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,3 +130,4 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_01.mat b/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_01.mat
index c581c8201d..f2ef6eaaca 100644
--- a/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_01.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_01.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -157,6 +158,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 0.638, g: 0.638, b: 0.638, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -169,4 +171,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_02.mat b/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_02.mat
index ef38fe9f15..022fa34d69 100644
--- a/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_02.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_NoDepthAlpha_02.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -157,6 +158,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 0.638, g: 0.638, b: 0.638, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -169,4 +171,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Glow_SoftParticleAlpha_02.mat b/Assets/VFX/Materials/FX_M_Glow_SoftParticleAlpha_02.mat
index 4cbbb0e30d..a0da5561e6 100644
--- a/Assets/VFX/Materials/FX_M_Glow_SoftParticleAlpha_02.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_SoftParticleAlpha_02.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -159,6 +160,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 0.638, g: 0.638, b: 0.638, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -171,4 +173,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_01.mat b/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_01.mat
index 52e101e8f3..4ee79e8d65 100644
--- a/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_01.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_01.mat
@@ -14,6 +14,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _SWITCH_ALPHA_ON
   - _USE_ALPHA_ON
   m_LightmapFlags: 2
@@ -25,6 +26,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -90,6 +92,7 @@ Material:
     - Boolean_236a513c11c34f97b3d22cc5b0fdd0bd: 1
     - _AlphaClip: 0
     - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
     - _Blend: 0
     - _BumpScale: 1
     - _CastShadows: 0
@@ -129,6 +132,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -141,4 +145,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_02.mat b/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_02.mat
index b8e2c0215c..94b7cce86f 100644
--- a/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_02.mat
+++ b/Assets/VFX/Materials/FX_M_Glow_UnlitAlpha_02.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -157,6 +158,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 0.638, g: 0.638, b: 0.638, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -169,4 +171,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_GroundClick.mat b/Assets/VFX/Materials/FX_M_GroundClick.mat
index 993594450b..c53cf91a36 100644
--- a/Assets/VFX/Materials/FX_M_GroundClick.mat
+++ b/Assets/VFX/Materials/FX_M_GroundClick.mat
@@ -24,6 +24,7 @@ Material:
   - ALWAYS
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -221,6 +222,7 @@ Material:
     - _SpecColor: {r: 1, g: 1, b: 1, a: 1}
     - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1404380302047346808
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -233,4 +235,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_GroundCrack_01.mat b/Assets/VFX/Materials/FX_M_GroundCrack_01.mat
index b32ae47873..bac6b663e1 100644
--- a/Assets/VFX/Materials/FX_M_GroundCrack_01.mat
+++ b/Assets/VFX/Materials/FX_M_GroundCrack_01.mat
@@ -13,8 +13,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -168,6 +170,7 @@ Material:
     - _TileSpeedDissolveTexture: {r: 0.5, g: 0.5, b: 0, a: 0.2}
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &2265183433606947597
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -180,4 +183,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_GroundCrack_02.mat b/Assets/VFX/Materials/FX_M_GroundCrack_02.mat
index 9179890360..2399a2d1dc 100644
--- a/Assets/VFX/Materials/FX_M_GroundCrack_02.mat
+++ b/Assets/VFX/Materials/FX_M_GroundCrack_02.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -181,3 +183,4 @@ Material:
     - _TileSpeedDissolveTexture: {r: 0.5, g: 0.5, b: 0, a: 0.2}
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Hit.mat b/Assets/VFX/Materials/FX_M_Hit.mat
index 51d7d03d59..1223e53461 100644
--- a/Assets/VFX/Materials/FX_M_Hit.mat
+++ b/Assets/VFX/Materials/FX_M_Hit.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -27,6 +27,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _SWITCH_ALPHA_ON
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
@@ -37,6 +38,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -157,3 +159,4 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Ice.mat b/Assets/VFX/Materials/FX_M_Ice.mat
index 0f5bab5c64..af1ba057b1 100644
--- a/Assets/VFX/Materials/FX_M_Ice.mat
+++ b/Assets/VFX/Materials/FX_M_Ice.mat
@@ -13,13 +13,15 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
   m_InvalidKeywords:
+  - _EMISSION
   - _USEZMASK_ON
-  m_LightmapFlags: 0
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -91,6 +93,7 @@ Material:
     - _MaskOffset: {r: 0, g: 0, b: 0, a: 0}
     - _TileSpeedDissolveTexture: {r: 0.4, g: 0.2, b: 0, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &2264527173027742895
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -103,4 +106,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_ImpExplosionFire.mat b/Assets/VFX/Materials/FX_M_ImpExplosionFire.mat
index 19d6e8aefa..e2effa007e 100644
--- a/Assets/VFX/Materials/FX_M_ImpExplosionFire.mat
+++ b/Assets/VFX/Materials/FX_M_ImpExplosionFire.mat
@@ -13,8 +13,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -172,6 +174,7 @@ Material:
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 0}
     - _TintColor: {r: 1, g: 1, b: 1, a: 0.08235294}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -184,4 +187,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_MaskedPanner.mat b/Assets/VFX/Materials/FX_M_MaskedPanner.mat
index 413488611f..b2904eeebf 100644
--- a/Assets/VFX/Materials/FX_M_MaskedPanner.mat
+++ b/Assets/VFX/Materials/FX_M_MaskedPanner.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -191,3 +193,4 @@ Material:
     - _TileSpeedDissolveTexture: {r: 2, g: 0.5, b: 0, a: 1.5}
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 2.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_MotionFlash.mat b/Assets/VFX/Materials/FX_M_MotionFlash.mat
index ea3d628266..5fc9d2dde1 100644
--- a/Assets/VFX/Materials/FX_M_MotionFlash.mat
+++ b/Assets/VFX/Materials/FX_M_MotionFlash.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -213,3 +215,4 @@ Material:
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 2.5}
     - _Tint: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Point.mat b/Assets/VFX/Materials/FX_M_Point.mat
index 95b3977da5..ecc1b18ca3 100644
--- a/Assets/VFX/Materials/FX_M_Point.mat
+++ b/Assets/VFX/Materials/FX_M_Point.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -22,6 +23,7 @@ Material:
     RenderType: Transparent
   disabledShaderPasses:
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -127,6 +129,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -139,4 +142,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_RotatingSniper_01.mat b/Assets/VFX/Materials/FX_M_RotatingSniper_01.mat
index 4d359e32f4..1d83c31b2b 100644
--- a/Assets/VFX/Materials/FX_M_RotatingSniper_01.mat
+++ b/Assets/VFX/Materials/FX_M_RotatingSniper_01.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,6 +130,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +143,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_RotatingSniper_02.mat b/Assets/VFX/Materials/FX_M_RotatingSniper_02.mat
index d47167d9c9..6ebb4c1c60 100644
--- a/Assets/VFX/Materials/FX_M_RotatingSniper_02.mat
+++ b/Assets/VFX/Materials/FX_M_RotatingSniper_02.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -88,6 +90,7 @@ Material:
     - Boolean_f3c76e1f79d04ab0a9f91a5dd13e3822: 0
     - _AlphaClip: 0
     - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
     - _Blend: 0
     - _BumpScale: 1
     - _CastShadows: 0
@@ -127,6 +130,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -139,4 +143,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_RotatingTexture.mat b/Assets/VFX/Materials/FX_M_RotatingTexture.mat
index 43eaf1e842..7222905b9e 100644
--- a/Assets/VFX/Materials/FX_M_RotatingTexture.mat
+++ b/Assets/VFX/Materials/FX_M_RotatingTexture.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,6 +130,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +143,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_ShapeSheet.mat b/Assets/VFX/Materials/FX_M_ShapeSheet.mat
index 2f506743a5..c442ca1ea2 100644
--- a/Assets/VFX/Materials/FX_M_ShapeSheet.mat
+++ b/Assets/VFX/Materials/FX_M_ShapeSheet.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -129,6 +131,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -141,4 +144,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_ShapeSheet_Additive.mat b/Assets/VFX/Materials/FX_M_ShapeSheet_Additive.mat
index a4d5522d61..abdbb319b8 100644
--- a/Assets/VFX/Materials/FX_M_ShapeSheet_Additive.mat
+++ b/Assets/VFX/Materials/FX_M_ShapeSheet_Additive.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -129,6 +131,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -141,4 +144,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Shield.mat b/Assets/VFX/Materials/FX_M_Shield.mat
index d792dab26f..a7ee9ba71f 100644
--- a/Assets/VFX/Materials/FX_M_Shield.mat
+++ b/Assets/VFX/Materials/FX_M_Shield.mat
@@ -19,9 +19,10 @@ Material:
   - _CUSTOMDATA_ON
   - _DISSOLVETYPE_CUSTOM
   - _DISTYPE_UV
+  - _EMISSION
   - _GLOWWAVE_ON
   - _SLASHUVCLAMP_ON
-  m_LightmapFlags: 0
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -30,6 +31,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -152,6 +154,7 @@ Material:
     - _Panner: {r: 0, g: 0.01, b: 0, a: 0}
     - _Tint: {r: 1.1509433, g: 1.5869627, b: 4, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &9095613563911183581
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -164,4 +167,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Shockwave.mat b/Assets/VFX/Materials/FX_M_Shockwave.mat
index 6e7575afac..82cf72975f 100644
--- a/Assets/VFX/Materials/FX_M_Shockwave.mat
+++ b/Assets/VFX/Materials/FX_M_Shockwave.mat
@@ -14,6 +14,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _SWITCH_ALPHA_ON
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
@@ -24,6 +25,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -138,6 +140,7 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &3071497466691043028
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -150,4 +153,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_SlashSimple.mat b/Assets/VFX/Materials/FX_M_SlashSimple.mat
index fc55b1cfd4..190d7433b4 100644
--- a/Assets/VFX/Materials/FX_M_SlashSimple.mat
+++ b/Assets/VFX/Materials/FX_M_SlashSimple.mat
@@ -20,7 +20,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -121,6 +122,7 @@ Material:
     - _Slash: {r: -0.3, g: 0.01, b: 0, a: 0}
     - _Tint: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &53157128346539290
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -133,4 +135,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Slash_01.mat b/Assets/VFX/Materials/FX_M_Slash_01.mat
index f87523891a..b61a93db32 100644
--- a/Assets/VFX/Materials/FX_M_Slash_01.mat
+++ b/Assets/VFX/Materials/FX_M_Slash_01.mat
@@ -25,13 +25,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -94,6 +96,7 @@ Material:
     - _NoiseTileSpeed: {r: 0.5, g: 1, b: 2, a: 1}
     - _NoiseTileSpeed_1: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4323903490161272775
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -106,4 +109,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Slash_02.mat b/Assets/VFX/Materials/FX_M_Slash_02.mat
index 1f5d388869..7d46707aad 100644
--- a/Assets/VFX/Materials/FX_M_Slash_02.mat
+++ b/Assets/VFX/Materials/FX_M_Slash_02.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -25,13 +25,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -93,3 +95,4 @@ Material:
     - _Color: {r: 4.5895233, g: 4.5895233, b: 4.5895233, a: 0}
     - _NoiseTileSpeed: {r: 0.5, g: 2, b: 3, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Smoke.mat b/Assets/VFX/Materials/FX_M_Smoke.mat
index 6844585821..6a5489d8da 100644
--- a/Assets/VFX/Materials/FX_M_Smoke.mat
+++ b/Assets/VFX/Materials/FX_M_Smoke.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -130,6 +132,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 1, g: 1, b: 1, a: 0.08235294}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -142,4 +145,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_SmokeDissolve.mat b/Assets/VFX/Materials/FX_M_SmokeDissolve.mat
index 4fc99dc776..f49a358707 100644
--- a/Assets/VFX/Materials/FX_M_SmokeDissolve.mat
+++ b/Assets/VFX/Materials/FX_M_SmokeDissolve.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -37,6 +37,7 @@ Material:
   - ALWAYS
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -180,3 +181,4 @@ Material:
     - _SoftParticleFadeParams: {r: 0, g: 1, b: 0, a: 0}
     - _Tint: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_SmokeDissolveMultip.mat b/Assets/VFX/Materials/FX_M_SmokeDissolveMultip.mat
index 94d8a5d42b..15bae5b2da 100644
--- a/Assets/VFX/Materials/FX_M_SmokeDissolveMultip.mat
+++ b/Assets/VFX/Materials/FX_M_SmokeDissolveMultip.mat
@@ -25,6 +25,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -171,6 +172,7 @@ Material:
     - _Panner: {r: 0, g: 0, b: 0, a: 0}
     - _Tint: {r: 2, g: 2, b: 2, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4102017799771018984
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -183,4 +185,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_SmokeDissolve_Additive.mat b/Assets/VFX/Materials/FX_M_SmokeDissolve_Additive.mat
index a444c6a893..6ea991c998 100644
--- a/Assets/VFX/Materials/FX_M_SmokeDissolve_Additive.mat
+++ b/Assets/VFX/Materials/FX_M_SmokeDissolve_Additive.mat
@@ -15,8 +15,9 @@ Material:
   - _DISSOLVE_TYPE_CUSTOM
   - _DIS_DISSOLVETEXRED
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -25,6 +26,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -190,6 +192,7 @@ Material:
     - _Panner: {r: 0.5, g: 0, b: 0, a: 0}
     - _Tint: {r: 0.20803954, g: 0.20803954, b: 0.20803954, a: 0.56078434}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &6153093471787320360
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -202,4 +205,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Snowflake_Additive.mat b/Assets/VFX/Materials/FX_M_Snowflake_Additive.mat
index f4176d5f23..23e2ec1c25 100644
--- a/Assets/VFX/Materials/FX_M_Snowflake_Additive.mat
+++ b/Assets/VFX/Materials/FX_M_Snowflake_Additive.mat
@@ -14,6 +14,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _USE_ALPHA_ON
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
@@ -24,6 +25,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -89,6 +91,7 @@ Material:
     - Boolean_236a513c11c34f97b3d22cc5b0fdd0bd: 0
     - _AlphaClip: 0
     - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
     - _Blend: 0
     - _BumpScale: 1
     - _CastShadows: 0
@@ -128,6 +131,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +144,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_SoftParticle_Smoke.mat b/Assets/VFX/Materials/FX_M_SoftParticle_Smoke.mat
index 098b90b8cf..ad591f2689 100644
--- a/Assets/VFX/Materials/FX_M_SoftParticle_Smoke.mat
+++ b/Assets/VFX/Materials/FX_M_SoftParticle_Smoke.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -130,6 +132,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 1, g: 1, b: 1, a: 0.08235294}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -142,4 +145,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Sparks.mat b/Assets/VFX/Materials/FX_M_Sparks.mat
index 4d1ddadeda..723192c3f3 100644
--- a/Assets/VFX/Materials/FX_M_Sparks.mat
+++ b/Assets/VFX/Materials/FX_M_Sparks.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -27,6 +27,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _SWITCH_ALPHA_ON
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
@@ -37,6 +38,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -147,3 +149,4 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_SpawnDoor.mat b/Assets/VFX/Materials/FX_M_SpawnDoor.mat
index 07f4f2f3da..1997fa89ff 100644
--- a/Assets/VFX/Materials/FX_M_SpawnDoor.mat
+++ b/Assets/VFX/Materials/FX_M_SpawnDoor.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,7 +26,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
@@ -37,6 +38,7 @@ Material:
   - ALWAYS
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -235,3 +237,4 @@ Material:
     - _SpecColor: {r: 1, g: 1, b: 1, a: 1}
     - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Star_01.mat b/Assets/VFX/Materials/FX_M_Star_01.mat
index ea10669133..8bac0fd01f 100644
--- a/Assets/VFX/Materials/FX_M_Star_01.mat
+++ b/Assets/VFX/Materials/FX_M_Star_01.mat
@@ -14,6 +14,7 @@ Material:
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
   m_InvalidKeywords:
+  - _EMISSION
   - _SWITCH_ALPHA_ON
   - _USE_ALPHA_ON
   m_LightmapFlags: 2
@@ -25,6 +26,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -90,11 +92,13 @@ Material:
     - Boolean_236a513c11c34f97b3d22cc5b0fdd0bd: 1
     - _AlphaClip: 0
     - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
     - _Blend: 0
     - _BumpScale: 1
     - _CastShadows: 0
     - _Cull: 2
     - _Cutoff: 0.5
+    - _Depth_Blend: 0
     - _DstBlend: 10
     - _EnvironmentReflections: 1
     - _GlossMapScale: 0
@@ -113,6 +117,7 @@ Material:
     - _Surface: 1
     - _Switch_Alpha: 1
     - _UseAlpha: 1
+    - _UseSoftParticles: 0
     - _Use_alpha: 1
     - _WorkflowMode: 1
     - _ZTest: 4
@@ -129,6 +134,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -141,4 +147,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Star_02.mat b/Assets/VFX/Materials/FX_M_Star_02.mat
index 6554c8055e..205cb2419a 100644
--- a/Assets/VFX/Materials/FX_M_Star_02.mat
+++ b/Assets/VFX/Materials/FX_M_Star_02.mat
@@ -28,8 +28,9 @@ Material:
   - _DISSOLVE_TYPE_SLIDER
   - _DIS_TYPE_UV
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -38,6 +39,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -147,6 +149,7 @@ Material:
     - _Panner: {r: 0, g: 0, b: 0, a: 0}
     - _Tint: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1797981942091286106
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -159,4 +162,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Star_03.mat b/Assets/VFX/Materials/FX_M_Star_03.mat
index 88a03349fa..b3a6abe0c9 100644
--- a/Assets/VFX/Materials/FX_M_Star_03.mat
+++ b/Assets/VFX/Materials/FX_M_Star_03.mat
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -149,6 +151,7 @@ Material:
     - _Panner: {r: 0, g: 0, b: 0, a: 0}
     - _Tint: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1797981942091286106
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -161,4 +164,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_StylizeSmoke_01.mat b/Assets/VFX/Materials/FX_M_StylizeSmoke_01.mat
index 4182d75ca8..a424ede176 100644
--- a/Assets/VFX/Materials/FX_M_StylizeSmoke_01.mat
+++ b/Assets/VFX/Materials/FX_M_StylizeSmoke_01.mat
@@ -13,8 +13,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -169,6 +171,7 @@ Material:
     - _TileSpeedDissolveTexture: {r: 1, g: 1, b: 0.2, a: 0}
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &5901454594436781990
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -181,4 +184,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_StylizeSmoke_02.mat b/Assets/VFX/Materials/FX_M_StylizeSmoke_02.mat
index d3a90004cc..deaee84a07 100644
--- a/Assets/VFX/Materials/FX_M_StylizeSmoke_02.mat
+++ b/Assets/VFX/Materials/FX_M_StylizeSmoke_02.mat
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -182,6 +184,7 @@ Material:
     - _TileSpeedDissolveTexture: {r: 0.5, g: 1, b: 0.2, a: 0}
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4749499643331255210
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -194,4 +197,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_StylizeSmoke_Falldown.mat b/Assets/VFX/Materials/FX_M_StylizeSmoke_Falldown.mat
index a6dfc8d503..8ee7653298 100644
--- a/Assets/VFX/Materials/FX_M_StylizeSmoke_Falldown.mat
+++ b/Assets/VFX/Materials/FX_M_StylizeSmoke_Falldown.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -179,3 +181,4 @@ Material:
     - _TileSpeedDissolveTexture: {r: 1, g: 1, b: 0.2, a: 0}
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Swirls.mat b/Assets/VFX/Materials/FX_M_Swirls.mat
index d96a427251..5f73ef33fe 100644
--- a/Assets/VFX/Materials/FX_M_Swirls.mat
+++ b/Assets/VFX/Materials/FX_M_Swirls.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -141,6 +142,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -153,4 +155,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TargetReticule_Friendly.mat b/Assets/VFX/Materials/FX_M_TargetReticule_Friendly.mat
index c4a87a1804..011ba4339b 100644
--- a/Assets/VFX/Materials/FX_M_TargetReticule_Friendly.mat
+++ b/Assets/VFX/Materials/FX_M_TargetReticule_Friendly.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,7 +26,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
@@ -37,6 +38,7 @@ Material:
   - ALWAYS
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -154,3 +156,4 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_TargetReticule_Hostile.mat b/Assets/VFX/Materials/FX_M_TargetReticule_Hostile.mat
index 1d7313787b..68b2c68240 100644
--- a/Assets/VFX/Materials/FX_M_TargetReticule_Hostile.mat
+++ b/Assets/VFX/Materials/FX_M_TargetReticule_Hostile.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
@@ -24,6 +25,7 @@ Material:
   - ALWAYS
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -141,6 +143,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &3149301631376533502
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -153,4 +156,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TargetingSphere_InRange.mat b/Assets/VFX/Materials/FX_M_TargetingSphere_InRange.mat
index 6e9e55d21d..cfc0394193 100644
--- a/Assets/VFX/Materials/FX_M_TargetingSphere_InRange.mat
+++ b/Assets/VFX/Materials/FX_M_TargetingSphere_InRange.mat
@@ -24,6 +24,7 @@ Material:
   - ALWAYS
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -169,6 +170,7 @@ Material:
     - _NotmalTileSpeed: {r: 0.05, g: 0.02, b: 0, a: 0.5}
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &2737022605668316232
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -181,4 +183,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TargetingSphere_OutOfRange.mat b/Assets/VFX/Materials/FX_M_TargetingSphere_OutOfRange.mat
index 9433e12dfe..986a8a3a24 100644
--- a/Assets/VFX/Materials/FX_M_TargetingSphere_OutOfRange.mat
+++ b/Assets/VFX/Materials/FX_M_TargetingSphere_OutOfRange.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -36,6 +36,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -147,3 +148,4 @@ Material:
     - _NotmalTileSpeed: {r: 0.05, g: 0.02, b: 0, a: 0.5}
     - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_TilingTexture_01.mat b/Assets/VFX/Materials/FX_M_TilingTexture_01.mat
index 920bd43285..1fae9859f3 100644
--- a/Assets/VFX/Materials/FX_M_TilingTexture_01.mat
+++ b/Assets/VFX/Materials/FX_M_TilingTexture_01.mat
@@ -12,13 +12,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -123,6 +125,7 @@ Material:
     - _Maintextilespeed: {r: 0.5, g: 1, b: -2, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7164378478731420604
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -135,4 +138,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TilingTexture_02.mat b/Assets/VFX/Materials/FX_M_TilingTexture_02.mat
index 79ac33f5ca..b581720856 100644
--- a/Assets/VFX/Materials/FX_M_TilingTexture_02.mat
+++ b/Assets/VFX/Materials/FX_M_TilingTexture_02.mat
@@ -12,13 +12,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -123,6 +125,7 @@ Material:
     - _Maintextilespeed: {r: 0.6, g: 1, b: -2, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7164378478731420604
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -135,4 +138,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TilingTexture_03.mat b/Assets/VFX/Materials/FX_M_TilingTexture_03.mat
index c035796182..2dd44866df 100644
--- a/Assets/VFX/Materials/FX_M_TilingTexture_03.mat
+++ b/Assets/VFX/Materials/FX_M_TilingTexture_03.mat
@@ -12,13 +12,15 @@ Material:
   m_Parent: {fileID: 0}
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -123,6 +125,7 @@ Material:
     - _Maintextilespeed: {r: 1, g: 1, b: -3, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7164378478731420604
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -135,4 +138,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TilingTexture_04.mat b/Assets/VFX/Materials/FX_M_TilingTexture_04.mat
index 91b878b03d..44c24d10d3 100644
--- a/Assets/VFX/Materials/FX_M_TilingTexture_04.mat
+++ b/Assets/VFX/Materials/FX_M_TilingTexture_04.mat
@@ -14,13 +14,15 @@ Material:
   m_ValidKeywords: []
   m_InvalidKeywords:
   - _CHANGEMASKTOX_ON
+  - _EMISSION
   - _HASMASK_ON
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -125,6 +127,7 @@ Material:
     - _Maintextilespeed: {r: 1, g: 1, b: 3, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7164378478731420604
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -137,4 +140,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TilingTexture_05.mat b/Assets/VFX/Materials/FX_M_TilingTexture_05.mat
index 1ff4653682..acd3c4c0fc 100644
--- a/Assets/VFX/Materials/FX_M_TilingTexture_05.mat
+++ b/Assets/VFX/Materials/FX_M_TilingTexture_05.mat
@@ -14,6 +14,7 @@ Material:
   m_ValidKeywords: []
   m_InvalidKeywords:
   - _CHANGEMASKTOX_ON
+  - _EMISSION
   - _HASMASK_ON
   - _INVERTMASK_ON
   m_LightmapFlags: 2
@@ -21,7 +22,8 @@ Material:
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: -1
   stringTagMap: {}
-  disabledShaderPasses: []
+  disabledShaderPasses:
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -126,6 +128,7 @@ Material:
     - _Maintextilespeed: {r: 0.6, g: 1, b: -3, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &7164378478731420604
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -138,4 +141,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_TorchFire.mat b/Assets/VFX/Materials/FX_M_TorchFire.mat
index d4d80be6d9..8b2087bd94 100644
--- a/Assets/VFX/Materials/FX_M_TorchFire.mat
+++ b/Assets/VFX/Materials/FX_M_TorchFire.mat
@@ -13,8 +13,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -200,6 +202,7 @@ Material:
     - _TileSpeedMainTexture: {r: 1, g: 1, b: 0, a: 0}
     - _Tint: {r: 2.1185474, g: 2.1185474, b: 2.1185474, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &1675669253379797283
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -212,4 +215,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Trail_01.mat b/Assets/VFX/Materials/FX_M_Trail_01.mat
index 68b833f28d..6810d96475 100644
--- a/Assets/VFX/Materials/FX_M_Trail_01.mat
+++ b/Assets/VFX/Materials/FX_M_Trail_01.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,6 +130,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +143,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Trail_02.mat b/Assets/VFX/Materials/FX_M_Trail_02.mat
index 0699541770..70baf1554b 100644
--- a/Assets/VFX/Materials/FX_M_Trail_02.mat
+++ b/Assets/VFX/Materials/FX_M_Trail_02.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,6 +130,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +143,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Trail_03.mat b/Assets/VFX/Materials/FX_M_Trail_03.mat
index 38195dc224..bcf8c68f90 100644
--- a/Assets/VFX/Materials/FX_M_Trail_03.mat
+++ b/Assets/VFX/Materials/FX_M_Trail_03.mat
@@ -13,7 +13,8 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
+  m_InvalidKeywords:
+  - _EMISSION
   m_LightmapFlags: 2
   m_EnableInstancingVariants: 1
   m_DoubleSidedGI: 0
@@ -23,6 +24,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,6 +130,7 @@ Material:
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -140,4 +143,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Wave_01.mat b/Assets/VFX/Materials/FX_M_Wave_01.mat
index d7e96d6acb..4a06ccddaf 100644
--- a/Assets/VFX/Materials/FX_M_Wave_01.mat
+++ b/Assets/VFX/Materials/FX_M_Wave_01.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -138,3 +140,4 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Wave_02.mat b/Assets/VFX/Materials/FX_M_Wave_02.mat
index 73b00c766d..de8d5a8264 100644
--- a/Assets/VFX/Materials/FX_M_Wave_02.mat
+++ b/Assets/VFX/Materials/FX_M_Wave_02.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,3 +130,4 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Wave_02_TossedAttack_Display.mat b/Assets/VFX/Materials/FX_M_Wave_02_TossedAttack_Display.mat
index 623f861410..77066f33cc 100644
--- a/Assets/VFX/Materials/FX_M_Wave_02_TossedAttack_Display.mat
+++ b/Assets/VFX/Materials/FX_M_Wave_02_TossedAttack_Display.mat
@@ -12,7 +12,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
 --- !u!21 &2100000
 Material:
   serializedVersion: 8
@@ -26,8 +26,9 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords:
   - _SURFACE_TYPE_TRANSPARENT
-  m_InvalidKeywords: []
-  m_LightmapFlags: 0
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 2
   m_EnableInstancingVariants: 0
   m_DoubleSidedGI: 0
   m_CustomRenderQueue: 3000
@@ -36,6 +37,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -128,3 +130,4 @@ Material:
     - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
     - _MainTextureTilingOffset: {r: 1, g: 1, b: 0, a: 0}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
diff --git a/Assets/VFX/Materials/FX_M_Wave_03.mat b/Assets/VFX/Materials/FX_M_Wave_03.mat
index c4d8d7965b..f8e6abb01b 100644
--- a/Assets/VFX/Materials/FX_M_Wave_03.mat
+++ b/Assets/VFX/Materials/FX_M_Wave_03.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -144,6 +145,7 @@ Material:
     - _Panner: {r: 0, g: 0, b: 0, a: 0}
     - _Tint: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4289071827490950352
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -156,4 +158,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_Wave_04.mat b/Assets/VFX/Materials/FX_M_Wave_04.mat
index d05304f32c..baf6fdbb19 100644
--- a/Assets/VFX/Materials/FX_M_Wave_04.mat
+++ b/Assets/VFX/Materials/FX_M_Wave_04.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - DepthOnly
   - SHADOWCASTER
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -144,6 +145,7 @@ Material:
     - _Panner: {r: 0, g: 0, b: 0, a: 0}
     - _Tint: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &4289071827490950352
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -156,4 +158,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/Assets/VFX/Materials/FX_M_WigglyRing.mat b/Assets/VFX/Materials/FX_M_WigglyRing.mat
index 7e78aeccd6..077e43efe9 100644
--- a/Assets/VFX/Materials/FX_M_WigglyRing.mat
+++ b/Assets/VFX/Materials/FX_M_WigglyRing.mat
@@ -23,6 +23,7 @@ Material:
   disabledShaderPasses:
   - SHADOWCASTER
   - DepthOnly
+  - MOTIONVECTORS
   m_LockedProperties: 
   m_SavedProperties:
     serializedVersion: 3
@@ -141,6 +142,7 @@ Material:
     - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
     - _TintColor: {r: 1, g: 1, b: 1, a: 1}
   m_BuildTextureStacks: []
+  m_AllowLocking: 1
 --- !u!114 &8601509238882469189
 MonoBehaviour:
   m_ObjectHideFlags: 11
@@ -153,4 +155,4 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  version: 7
+  version: 10
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8a3446e973..585e06561b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,10 +6,78 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 Additional documentation and release notes are available at [Multiplayer Documentation](https://docs-multiplayer.unity3d.com).
 
-## [unreleased] yyyy-mm-dd
+## [3.0.0] 2025-08-06
+
+### Added
+* Added a welcome dialog to guide users on their first time experience (#888)
+  * Added a Table of Contents with helpful resources, that can be accessed from the `Tutorials > Show Tutorials` menu
+* Added the Multiplayer Play Mode package v1.3.1 to the project (#890)
+* An In-Editor Tutorial walking through the process of associating your Unity project with a Unity Cloud ID has been added (#898)
+* Boss Room's assembly definitions now include Unity.Netcode.Runtime.Tests (#914)
+
+### Changed
+* Upgraded editor version to 6000.0.25f1 and upgraded Boss Room to Netcode for GameObjects v2.0.0 (#890)
+* Replaced Lobby and Relay standalone packages with the Multiplayer Services package v1.0.2 and the Sessions framework (#892)
+* Upgraded editor version to 6000.0.32f1 and Multiplayer Services package to v1.1.0 (#894)
+  * Removed usage of ISession's deprecated PlayerLeft callback to the new PlayerHasLeft callback
+* Upgraded several packages to their recommended versions (#895) They include:
+  * com.unity.cinemachine from v2.10.3 to v3.1.2. Camera using deprecated CinemachineFreeLook component has been re-implemented with CinemachineCamera component
+  * com.unity.multiplayer.playmode from v1.3.2 to v1.3.3
+  * com.unity.multiplayer.tools from v2.2.1 to v2.2.3
+  * com.unity.netcode.gameobjects from v2.0.0 to v2.1.1
+* VContainer package upgraded from v1.11.0 to v1.14.0 (#896) This upgrade removes warning messages related to IL weaving as code gen is refactored in v1.14.0
+* Upgraded the project to the New Input System v1.11.2 (#897) Compatibility mode with the previous version has been disabled.
+* Upgraded editor version to 6000.0.42f1 and upgraded packages (#901):
+  * com.unity.ai.navigation from v2.0.5 to v2.0.6
+  * com.unity.collab-proxy from v2.6.0 to v2.7.1
+  * com.unity.inputsystem from v1.11.2 to v1.13.1
+  * com.unity.learn.iet-framework from v4.0.3 to v4.0.4
+  * com.unity.memoryprofiler from v1.1.3 to v1.1.5
+  * com.unity.netcode.gameobjects from v2.1.1 to v2.2.0
+  * com.unity.render-pipelines-universal from v17.0.3 to v17.0.4
+  * com.unity.services.multiplayer from v1.1.0 to v1.1.1
+  * com.unity.test-framework from v1.4.5 to v1.4.6
+* Upgraded editor version to 6000.0.44f1 and upgraded packages (#902):
+  * com.unity.ide.rider from v3.0.34 to v3.0.35
+  * com.unity.services.multiplayer from v1.1.1 to v1.1.2
+  * com.unity.test-framework from v1.4.6 to v1.5.1
+  * com.unity.transport from v2.4.0 to v2.5.0
+  * com.unity.cinemachine from v.3.1.2 to 3.1.3
+  * com.unity.services.authentication from 3.4.0 to 3.4.1
+  * jp.hadashikick.vcontainer from 1.14.0 to 1.16.8
+  * com.unity.memoryprofiler from 1.1.5 to 1.1.6
+  * com.unity.timeline from 1.8.7 to 1.8.8
+* Upgraded Unity Transport package to 2.5.1 (#906)
+* Upgraded the project to use Netcode for GameObject's recommended OnConnectionEvent callback (#907)
+* Upgraded the project to the latest releases of packages and editor (#918) Changes include:
+  * Unity editor upgrade to 6000.0.52f1
+    * com.unity.multiplayer.tools upgraded to v2.2.4
+    * com.unity.multiplayer.playmode upgraded to v1.5.0
+    * com.unity.inputsystem upgraded to v1.14.0
+    * com.unity.postprocessing upgraded to v3.5.0
+  * Netcode for GameObjects upgraded to v2.4.3
+  * Multiplayer Services upgraded to v1.1.4
+* Upgraded to Authentication package v3.5.1, fixing switching profile issues (#920)
+* Navigation of In-Editor Tutorials improved and resource links updated (#919)
+
+### Cleanup
+* Removed ParrelSync from the project (#890)
+* Removed warnings on first project launch (#896) Included:
+  * Asset meta files with merge conflicts resolved
+  * RenderGraph compatibility mode disabled
 
 ### Fixed
+* Fix a Healer ability doesn't work (#893)
+  * Changed the way characters are oriented when using skills.
+  * Added the GetTotalDamage API to the IDamageable interface. This number is your maximum health minus your current health.
+  * Changed the way MeleeAction selects a target when there are multiple targets to collide with. The target with the highest GetTotalDamage value (mentioned above) will be selected.
+* Fixed a visual issue where a selected party member's party HUD slot would be displayed as selected (green) when the same or new party member joins the session in-game (#899)
+* Fixed Render Graph API compatibility mode warning and switched active input handling settings to "both" for removing InvalidOperationException (#901) 
+* Fixed error logged when unsubscribing from Session events when removed from a Session (#905)
+* Fixed error logged when attempting to despawn an already despawned LoadingProgressTracker NetworkObject (#907)
+* Fixed error logged when a Melee action was acted on a Breakable object (#908)
 * Internal standards job fix (#915)
+* Fixed last index of names not being used (#922)
 
 ## [2.5.0] - 2024-04-18
 
diff --git a/Documentation/Unity-Relay/README.md b/Documentation/Unity-Relay/README.md
deleted file mode 100644
index 42da363aa3..0000000000
--- a/Documentation/Unity-Relay/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Unity Relay
-
-* add `cloudProjectId`, `organizationId` and `projectName`in `ProjectSettings.asset` (or do it via the editor)
-* add scoped registry to `manifest.json`
-* add `com.unity.services.relay`, `com.unity.services.authentication`, `com.unity.transport` and `com.unity.multiplayer.transport.utp`
-* update version of `com.unity.multiplayer.mlapi`
diff --git a/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md b/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md
index d3af256181..238e305e4d 100644
--- a/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md
+++ b/Packages/com.unity.multiplayer.samples.coop/CHANGELOG.md
@@ -1,5 +1,17 @@
 # Multiplayer Samples Co-op Changelog
 
+## [2.0.0] - 2025-08-06
+
+### Changed
+* Replaced Lobby and Relay standalone packages with the Multiplayer Services package v1.0.2 (#892)
+  * Removed UnityRelayUtilities
+* Upgrading Editor version dependency to 6000.0 (#902)
+Upgrading package dependencies:
+  * Tutorial Framework upgraded to  v4.0.4
+  * Multiplayer Tools to v2.2.3
+  * Netcode for GameObjects to v2.2.0
+* Upgraded Utilities package to use Netcode for GameObject's recommended OnConnectionEvent callback (#907)
+
 ## [1.9.0] - 2024-04-18
 
 ### Changed
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/EditorChildSceneLoader.cs b/Packages/com.unity.multiplayer.samples.coop/Utilities/EditorChildSceneLoader.cs
index b7fe4dcae0..8d290a1bd6 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/EditorChildSceneLoader.cs
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/EditorChildSceneLoader.cs
@@ -6,6 +6,7 @@
 #endif
 using UnityEngine;
 using UnityEngine.SceneManagement;
+using Object = UnityEngine.Object;
 
 /// 
 /// Allows setting a scene as a root scene and setting its child scenes. To use this, drag this component on any object in a scene to make that scene a root scene. In the background, ChildSceneLoader will automatically manage this.
@@ -88,7 +89,7 @@ static void OnSceneLoaded(Scene _, OpenSceneMode mode)
     {
         if (mode != OpenSceneMode.Single || BuildPipeline.isBuildingPlayer) return; // try to load child scenes only for root scenes or if not building
 
-        var scenesToLoadObjects = GameObject.FindObjectsOfType();
+        var scenesToLoadObjects = Object.FindObjectsByType(FindObjectsSortMode.None);
         if (scenesToLoadObjects.Length > 1)
         {
             throw new Exception("Should only have one root scene at once loaded");
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/com.unity.multiplayer.samples.utilities.clientauthority.asmdef b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/com.unity.multiplayer.samples.utilities.clientauthority.asmdef
index 2eacc29c83..725f3f84c7 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/com.unity.multiplayer.samples.utilities.clientauthority.asmdef
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/com.unity.multiplayer.samples.utilities.clientauthority.asmdef
@@ -2,7 +2,6 @@
     "name": "Unity.Multiplayer.Samples.Utilities.ClientAuthority",
     "rootNamespace": "",
     "references": [
-        "Unity.Netcode.Components",
         "Unity.Netcode.Runtime"
     ],
     "includePlatforms": [],
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorCustomization.cs b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorCustomization.cs
index 99ae203a09..28e316032a 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorCustomization.cs
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorCustomization.cs
@@ -1,5 +1,7 @@
+using System;
 using Unity.Multiplayer.Tools.NetStatsMonitor;
 using UnityEngine;
+using UnityEngine.InputSystem;
 
 namespace Unity.Multiplayer.Samples.Utilities
 {
@@ -8,33 +10,25 @@ public class NetStatsMonitorCustomization : MonoBehaviour
         [SerializeField]
         RuntimeNetStatsMonitor m_Monitor;
 
-        const int k_NbTouchesToOpenWindow = 3;
+        [SerializeField]
+        InputActionReference m_ToggleNetworkStatsAction;
 
         void Start()
         {
             m_Monitor.Visible = false;
+
+            m_ToggleNetworkStatsAction.action.performed += OnToggleNetworkStatsActionperformed;
         }
 
-        void Update()
+        void OnDestroy()
         {
-            if (Input.GetKeyUp(KeyCode.S) || Input.touchCount == k_NbTouchesToOpenWindow && AnyTouchDown())
-            {
-                m_Monitor.Visible = !m_Monitor.Visible; // toggle. Using "Visible" instead of "Enabled" to make sure RNSM keeps updating in the background
-                // while not visible. This way, when bring it back visible, we can make sure values are up to date.
-            }
+            m_ToggleNetworkStatsAction.action.performed -= OnToggleNetworkStatsActionperformed;
         }
 
-        static bool AnyTouchDown()
+        void OnToggleNetworkStatsActionperformed(InputAction.CallbackContext obj)
         {
-            foreach (var touch in Input.touches)
-            {
-                if (touch.phase == TouchPhase.Began)
-                {
-                    return true;
-                }
-            }
-
-            return false;
+            m_Monitor.Visible = !m_Monitor.Visible; // toggle. Using "Visible" instead of "Enabled" to make sure RNSM keeps updating in the background
+            // while not visible. This way, when bring it back visible, we can make sure values are up to date.
         }
     }
 }
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorPrefab.prefab b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorPrefab.prefab
index 3a1e952384..38c5f615e0 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorPrefab.prefab
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/NetStatsMonitorPrefab.prefab
@@ -81,6 +81,7 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   m_Monitor: {fileID: 2974514019541307268}
+  m_ToggleNetworkStatsAction: {fileID: -2038963145091817163, guid: add476edce0d24d26bcdaf1681449ecf, type: 3}
 --- !u!1 &3283172432546924609
 GameObject:
   m_ObjectHideFlags: 0
@@ -189,15 +190,17 @@ MonoBehaviour:
   m_lineSpacingMax: 0
   m_paragraphSpacing: 0
   m_charWidthMaxAdj: 0
-  m_enableWordWrapping: 1
+  m_TextWrappingMode: 1
   m_wordWrappingRatios: 0.4
   m_overflowMode: 0
   m_linkedTextComponent: {fileID: 0}
   parentLinkedComponent: {fileID: 0}
   m_enableKerning: 1
+  m_ActiveFontFeatures: 6e72656b
   m_enableExtraPadding: 0
   checkPaddingRequired: 0
   m_isRichText: 1
+  m_EmojiFallbackSupport: 1
   m_parseCtrlCharacters: 1
   m_isOrthographic: 1
   m_isCullingEnabled: 0
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/RNSM Panel Settings.asset b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/RNSM Panel Settings.asset
index 08c9fa8718..388134a19d 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/RNSM Panel Settings.asset	
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/RNSM Panel Settings.asset	
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:18d4006445e63eea32af095e61207d100b8441840e7b2db8fdf8fe83b44aba3c
-size 1256
+oid sha256:5f0ffde61371799f9a65b96ac680b14358aaa8a96efb9a4f975c20d28a92e8f6
+size 1447
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/com.unity.multiplayer.samples.utilities.rnsm.asmdef b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/com.unity.multiplayer.samples.utilities.rnsm.asmdef
index 5f2db97f3f..cab56fbd01 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/com.unity.multiplayer.samples.utilities.rnsm.asmdef
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/com.unity.multiplayer.samples.utilities.rnsm.asmdef
@@ -2,7 +2,8 @@
     "name": "Unity.Multiplayer.Samples.Utilities.RNSM",
     "rootNamespace": "",
     "references": [
-        "GUID:2c360f3794ebc41388fc11424ddbfdd0"
+        "GUID:2c360f3794ebc41388fc11424ddbfdd0",
+        "GUID:75469ad4d38634e559750d17036d5f7c"
     ],
     "includePlatforms": [],
     "excludePlatforms": [],
@@ -15,4 +16,4 @@
     ],
     "versionDefines": [],
     "noEngineReferences": false
-}
+}
\ No newline at end of file
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs
deleted file mode 100644
index f792fe1d2f..0000000000
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using System;
-using System.Linq;
-using System.Threading.Tasks;
-using UnityEngine;
-using Unity.Services.Relay;
-using Unity.Services.Relay.Models;
-
-namespace Unity.Multiplayer.Samples.BossRoom
-{
-    public static class UnityRelayUtilities
-    {
-        const string k_KDtlsConnType = "dtls";
-
-        /// 
-        /// Deprecated, please see updated ConnectionManager sample code for an example on how to connect to Relay
-        /// 
-        /// 
-        /// 
-        /// 
-        /// 
-        /// 
-        public static async Task<(string ipv4address, ushort port, byte[] allocationIdBytes, byte[] connectionData, byte[] key, string joinCode)>
-            AllocateRelayServerAndGetJoinCode(int maxConnections, string region = null)
-        {
-            Allocation allocation;
-            string joinCode;
-
-            try
-            {
-                allocation = await RelayService.Instance.CreateAllocationAsync(maxConnections, region);
-            }
-            catch (Exception exception)
-            {
-                throw new Exception($"Creating allocation request has failed: \n {exception.Message}");
-            }
-
-            Debug.Log($"server: connection data: {allocation.ConnectionData[0]} {allocation.ConnectionData[1]}, allocation ID:{allocation.AllocationId}, region:{allocation.Region}");
-
-            try
-            {
-                joinCode = await RelayService.Instance.GetJoinCodeAsync(allocation.AllocationId);
-            }
-            catch (Exception exception)
-            {
-                throw new Exception($"Creating join code request has failed: \n {exception.Message}");
-            }
-
-            var dtlsEndpoint = allocation.ServerEndpoints.First(e => e.ConnectionType == k_KDtlsConnType);
-            return (dtlsEndpoint.Host, (ushort)dtlsEndpoint.Port, allocation.AllocationIdBytes,
-                allocation.ConnectionData, allocation.Key, joinCode);
-        }
-
-        /// 
-        /// Deprecated, please see updated ConnectionManager sample code for an example on how to connect to Relay
-        /// 
-        /// 
-        /// 
-        /// 
-        /// 
-        public static async Task<(string ipv4address, ushort port, byte[] allocationIdBytes, Guid allocationId, byte[] connectionData, byte[] hostConnectionData, byte[] key)>
-            JoinRelayServerFromJoinCode(string joinCode)
-        {
-            JoinAllocation allocation;
-            try
-            {
-                allocation = await RelayService.Instance.JoinAllocationAsync(joinCode);
-            }
-            catch (Exception exception)
-            {
-                throw new Exception($"Creating join code request has failed: \n {exception.Message}");
-            }
-
-            Debug.Log($"client: {allocation.ConnectionData[0]} {allocation.ConnectionData[1]}");
-            Debug.Log($"host: {allocation.HostConnectionData[0]} {allocation.HostConnectionData[1]}");
-            Debug.Log($"client: {allocation.AllocationId}");
-
-            var dtlsEndpoint = allocation.ServerEndpoints.First(e => e.ConnectionType == k_KDtlsConnType);
-            return (dtlsEndpoint.Host, (ushort)dtlsEndpoint.Port, allocation.AllocationIdBytes, allocation.AllocationId,
-                allocation.ConnectionData, allocation.HostConnectionData, allocation.Key);
-        }
-    }
-}
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs.meta b/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs.meta
deleted file mode 100644
index 5f7c5d785d..0000000000
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs.meta
+++ /dev/null
@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 4022140b8f4a4975976098b76e62e4eb
-timeCreated: 1629198174
\ No newline at end of file
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/LoadingProgressManager.cs b/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/LoadingProgressManager.cs
index 2a333c6440..459b33b21a 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/LoadingProgressManager.cs
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/LoadingProgressManager.cs
@@ -50,8 +50,7 @@ public AsyncOperation LocalLoadOperation
         /// 
         public float LocalProgress
         {
-            get => IsSpawned && ProgressTrackers.ContainsKey(NetworkManager.LocalClientId) ?
-                ProgressTrackers[NetworkManager.LocalClientId].Progress.Value : m_LocalProgress;
+            get => IsSpawned && ProgressTrackers.ContainsKey(NetworkManager.LocalClientId) ? ProgressTrackers[NetworkManager.LocalClientId].Progress.Value : m_LocalProgress;
             private set
             {
                 if (IsSpawned && ProgressTrackers.ContainsKey(NetworkManager.LocalClientId) && ProgressTrackers[NetworkManager.LocalClientId].IsSpawned)
@@ -69,18 +68,17 @@ public override void OnNetworkSpawn()
         {
             if (IsServer)
             {
-                NetworkManager.OnClientConnectedCallback += AddTracker;
-                NetworkManager.OnClientDisconnectCallback += RemoveTracker;
-                AddTracker(NetworkManager.LocalClientId);
+                NetworkManager.OnConnectionEvent += OnConnectionEvent;
             }
         }
+
         public override void OnNetworkDespawn()
         {
             if (IsServer)
             {
-                NetworkManager.OnClientConnectedCallback -= AddTracker;
-                NetworkManager.OnClientDisconnectCallback -= RemoveTracker;
+                NetworkManager.OnConnectionEvent -= OnConnectionEvent;
             }
+
             ProgressTrackers.Clear();
             onTrackersUpdated?.Invoke();
         }
@@ -107,7 +105,7 @@ void ClientUpdateTrackersRpc()
             if (!IsHost)
             {
                 ProgressTrackers.Clear();
-                foreach (var tracker in FindObjectsOfType())
+                foreach (var tracker in FindObjectsByType(FindObjectsSortMode.None))
                 {
                     // If a tracker is despawned but not destroyed yet, don't add it
                     if (tracker.IsSpawned)
@@ -120,9 +118,30 @@ void ClientUpdateTrackersRpc()
                     }
                 }
             }
+
             onTrackersUpdated?.Invoke();
         }
 
+        void OnConnectionEvent(NetworkManager networkManager, ConnectionEventData connectionEventData)
+        {
+            if (IsServer)
+            {
+                switch (connectionEventData.EventType)
+                {
+                    case ConnectionEvent.ClientConnected:
+                    {
+                        AddTracker(connectionEventData.ClientId);
+                        break;
+                    }
+                    case ConnectionEvent.ClientDisconnected:
+                    {
+                        RemoveTracker(connectionEventData.ClientId);
+                        break;
+                    }
+                }
+            }
+        }
+
         void AddTracker(ulong clientId)
         {
             if (IsServer)
@@ -141,9 +160,7 @@ void RemoveTracker(ulong clientId)
             {
                 if (ProgressTrackers.ContainsKey(clientId))
                 {
-                    var tracker = ProgressTrackers[clientId];
                     ProgressTrackers.Remove(clientId);
-                    tracker.NetworkObject.Despawn();
                     ClientUpdateTrackersRpc();
                 }
             }
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/ServerAdditiveSceneLoader.cs b/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/ServerAdditiveSceneLoader.cs
index b955b13eb8..13559c884a 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/ServerAdditiveSceneLoader.cs
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/ServerAdditiveSceneLoader.cs
@@ -54,7 +54,7 @@ public override void OnNetworkSpawn()
             {
                 // Adding this to remove all pending references to a specific client when they disconnect, since objects
                 // that are destroyed do not generate OnTriggerExit events.
-                NetworkManager.OnClientDisconnectCallback += RemovePlayer;
+                NetworkManager.OnConnectionEvent += OnConnectionEvent;
 
                 NetworkManager.SceneManager.OnSceneEvent += OnSceneEvent;
                 m_PlayersInTrigger = new List();
@@ -65,7 +65,7 @@ public override void OnNetworkDespawn()
         {
             if (IsServer)
             {
-                NetworkManager.OnClientDisconnectCallback -= RemovePlayer;
+                NetworkManager.OnConnectionEvent -= OnConnectionEvent;
                 NetworkManager.SceneManager.OnSceneEvent -= OnSceneEvent;
             }
         }
@@ -136,11 +136,14 @@ void FixedUpdate()
             }
         }
 
-        void RemovePlayer(ulong clientId)
+        void OnConnectionEvent(NetworkManager networkManager, ConnectionEventData connectionEventData)
         {
-            // remove all references to this clientId. There could be multiple references if a single client owns
-            // multiple NetworkObjects with the m_PlayerTag, or if this script's GameObject has overlapping colliders
-            while (m_PlayersInTrigger.Remove(clientId)) { }
+            if (connectionEventData.EventType == ConnectionEvent.ClientDisconnected)
+            {
+                // remove all references to this clientId. There could be multiple references if a single client owns
+                // multiple NetworkObjects with the m_PlayerTag, or if this script's GameObject has overlapping colliders
+                while (m_PlayersInTrigger.Remove(connectionEventData.ClientId)) { }
+            }
         }
 
         IEnumerator WaitToUnloadCoroutine()
diff --git a/Packages/com.unity.multiplayer.samples.coop/Utilities/com.unity.multiplayer.samples.utilities.asmdef b/Packages/com.unity.multiplayer.samples.coop/Utilities/com.unity.multiplayer.samples.utilities.asmdef
index 203c3c9839..18ba591734 100644
--- a/Packages/com.unity.multiplayer.samples.coop/Utilities/com.unity.multiplayer.samples.utilities.asmdef
+++ b/Packages/com.unity.multiplayer.samples.coop/Utilities/com.unity.multiplayer.samples.utilities.asmdef
@@ -2,9 +2,7 @@
     "name": "Unity.Multiplayer.Samples.Utilities",
     "rootNamespace": "",
     "references": [
-        "Unity.Netcode.Components",
         "Unity.Netcode.Runtime",
-        "Unity.Services.Relay",
         "Unity.Collections"
     ],
     "includePlatforms": [],
diff --git a/Packages/com.unity.multiplayer.samples.coop/package.json b/Packages/com.unity.multiplayer.samples.coop/package.json
index 0faf440a90..7344c615d3 100644
--- a/Packages/com.unity.multiplayer.samples.coop/package.json
+++ b/Packages/com.unity.multiplayer.samples.coop/package.json
@@ -1,15 +1,13 @@
 {
   "name": "com.unity.multiplayer.samples.coop",
   "displayName": "Multiplayer Samples Utilities",
-  "version": "1.9.0",
+  "version": "2.0.0",
   "type": "template",
   "host": "hub",
-  "unity": "2020.3",
+  "unity": "6000.0",
   "description": "Utilities package built on top of Netcode for GameObjects, providing useful scripts and tools.",
   "dependencies": {
-    "com.unity.learn.iet-framework": "3.1.3",
-    "com.unity.multiplayer.tools": "1.1.0",
-    "com.unity.netcode.gameobjects": "1.8.1",
-    "com.unity.services.relay": "1.0.5"
+    "com.unity.multiplayer.tools": "2.2.3",
+    "com.unity.netcode.gameobjects": "2.2.0"
   }
 }
\ No newline at end of file
diff --git a/Packages/manifest.json b/Packages/manifest.json
index 37dec26d27..b83b584076 100644
--- a/Packages/manifest.json
+++ b/Packages/manifest.json
@@ -1,30 +1,31 @@
 {
   "dependencies": {
     "com.unity.2d.sprite": "1.0.0",
-    "com.unity.ai.navigation": "1.1.5",
-    "com.unity.cinemachine": "2.9.5",
-    "com.unity.collab-proxy": "2.3.1",
-    "com.unity.ide.rider": "3.0.28",
-    "com.unity.ide.visualstudio": "2.0.22",
-    "com.unity.ide.vscode": "1.2.5",
-    "com.unity.learn.iet-framework": "3.1.3",
-    "com.unity.memoryprofiler": "1.1.0",
-    "com.unity.multiplayer.tools": "2.0.0-pre.3",
-    "com.unity.netcode.gameobjects": "1.8.1",
-    "com.unity.performance.profile-analyzer": "1.2.2",
-    "com.unity.postprocessing": "3.4.0",
-    "com.unity.render-pipelines.universal": "14.0.10",
-    "com.unity.services.authentication": "2.7.2",
-    "com.unity.services.lobby": "1.1.0",
-    "com.unity.services.relay": "1.0.5",
-    "com.unity.test-framework": "1.1.33",
-    "com.unity.textmeshpro": "3.0.6",
-    "com.unity.timeline": "1.7.6",
-    "com.unity.toolchain.macos-x86_64-linux-x86_64": "2.0.4",
-    "com.unity.transport": "2.0.2",
-    "com.unity.ugui": "1.0.0",
-    "com.veriorpies.parrelsync": "https://github.com/VeriorPies/ParrelSync.git?path=/ParrelSync#bb3d5067e49e403d8b8ba15c036d313b4dd2c696",
-    "jp.hadashikick.vcontainer": "1.11.0",
+    "com.unity.ai.navigation": "2.0.8",
+    "com.unity.cinemachine": "3.1.3",
+    "com.unity.collab-proxy": "2.8.2",
+    "com.unity.ide.rider": "3.0.36",
+    "com.unity.ide.visualstudio": "2.0.23",
+    "com.unity.inputsystem": "1.14.0",
+    "com.unity.learn.iet-framework": "4.0.4",
+    "com.unity.learn.iet-framework.authoring": "1.2.2",
+    "com.unity.memoryprofiler": "1.1.6",
+    "com.unity.multiplayer.center": "1.0.0",
+    "com.unity.multiplayer.playmode": "1.5.0",
+    "com.unity.multiplayer.tools": "2.2.4",
+    "com.unity.netcode.gameobjects": "2.4.3",
+    "com.unity.performance.profile-analyzer": "1.2.3",
+    "com.unity.postprocessing": "3.5.0",
+    "com.unity.render-pipelines.universal": "17.0.4",
+    "com.unity.services.authentication": "3.5.1",
+    "com.unity.services.multiplayer": "1.1.4",
+    "com.unity.test-framework": "1.5.1",
+    "com.unity.timeline": "1.8.8",
+    "com.unity.toolchain.macos-x86_64-linux-x86_64": "2.0.10",
+    "com.unity.transport": "2.5.1",
+    "com.unity.ugui": "2.0.0",
+    "jp.hadashikick.vcontainer": "1.16.8",
+    "com.unity.modules.accessibility": "1.0.0",
     "com.unity.modules.ai": "1.0.0",
     "com.unity.modules.androidjni": "1.0.0",
     "com.unity.modules.animation": "1.0.0",
diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json
index fd5333fa33..06b91dac7b 100644
--- a/Packages/packages-lock.json
+++ b/Packages/packages-lock.json
@@ -7,7 +7,7 @@
       "dependencies": {}
     },
     "com.unity.ai.navigation": {
-      "version": "1.1.5",
+      "version": "2.0.8",
       "depth": 0,
       "source": "registry",
       "dependencies": {
@@ -16,7 +16,7 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.burst": {
-      "version": "1.8.12",
+      "version": "1.8.23",
       "depth": 1,
       "source": "registry",
       "dependencies": {
@@ -26,29 +26,31 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.cinemachine": {
-      "version": "2.9.5",
+      "version": "3.1.3",
       "depth": 0,
       "source": "registry",
       "dependencies": {
-        "com.unity.test-framework": "1.1.31"
+        "com.unity.splines": "2.0.0",
+        "com.unity.modules.imgui": "1.0.0"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.collab-proxy": {
-      "version": "2.3.1",
+      "version": "2.8.2",
       "depth": 0,
       "source": "registry",
       "dependencies": {},
       "url": "https://packages.unity.com"
     },
     "com.unity.collections": {
-      "version": "2.1.4",
+      "version": "2.5.1",
       "depth": 1,
       "source": "registry",
       "dependencies": {
-        "com.unity.burst": "1.8.4",
-        "com.unity.modules.unityanalytics": "1.0.0",
-        "com.unity.nuget.mono-cecil": "1.11.4"
+        "com.unity.burst": "1.8.17",
+        "com.unity.test-framework": "1.4.5",
+        "com.unity.nuget.mono-cecil": "1.11.4",
+        "com.unity.test-framework.performance": "3.0.3"
       },
       "url": "https://packages.unity.com"
     },
@@ -60,14 +62,13 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.ext.nunit": {
-      "version": "1.0.6",
+      "version": "2.0.5",
       "depth": 1,
-      "source": "registry",
-      "dependencies": {},
-      "url": "https://packages.unity.com"
+      "source": "builtin",
+      "dependencies": {}
     },
     "com.unity.ide.rider": {
-      "version": "3.0.28",
+      "version": "3.0.36",
       "depth": 0,
       "source": "registry",
       "dependencies": {
@@ -76,7 +77,7 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.ide.visualstudio": {
-      "version": "2.0.22",
+      "version": "2.0.23",
       "depth": 0,
       "source": "registry",
       "dependencies": {
@@ -84,15 +85,17 @@
       },
       "url": "https://packages.unity.com"
     },
-    "com.unity.ide.vscode": {
-      "version": "1.2.5",
+    "com.unity.inputsystem": {
+      "version": "1.14.0",
       "depth": 0,
       "source": "registry",
-      "dependencies": {},
+      "dependencies": {
+        "com.unity.modules.uielements": "1.0.0"
+      },
       "url": "https://packages.unity.com"
     },
     "com.unity.learn.iet-framework": {
-      "version": "3.1.3",
+      "version": "4.0.4",
       "depth": 0,
       "source": "registry",
       "dependencies": {
@@ -101,55 +104,83 @@
       },
       "url": "https://packages.unity.com"
     },
+    "com.unity.learn.iet-framework.authoring": {
+      "version": "1.2.2",
+      "depth": 0,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.learn.iet-framework": "3.1.3"
+      },
+      "url": "https://packages.unity.com"
+    },
     "com.unity.mathematics": {
-      "version": "1.2.6",
+      "version": "1.3.2",
       "depth": 1,
       "source": "registry",
       "dependencies": {},
       "url": "https://packages.unity.com"
     },
     "com.unity.memoryprofiler": {
-      "version": "1.1.0",
+      "version": "1.1.6",
       "depth": 0,
       "source": "registry",
       "dependencies": {
+        "com.unity.burst": "1.8.0",
+        "com.unity.collections": "1.2.3",
+        "com.unity.mathematics": "1.2.1",
+        "com.unity.profiling.core": "1.0.0",
         "com.unity.editorcoroutines": "1.0.0"
       },
       "url": "https://packages.unity.com"
     },
+    "com.unity.multiplayer.center": {
+      "version": "1.0.0",
+      "depth": 0,
+      "source": "builtin",
+      "dependencies": {
+        "com.unity.modules.uielements": "1.0.0"
+      }
+    },
+    "com.unity.multiplayer.playmode": {
+      "version": "1.5.0",
+      "depth": 0,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.nuget.newtonsoft-json": "2.0.2"
+      },
+      "url": "https://packages.unity.com"
+    },
     "com.unity.multiplayer.samples.coop": {
       "version": "file:com.unity.multiplayer.samples.coop",
       "depth": 0,
       "source": "embedded",
       "dependencies": {
-        "com.unity.learn.iet-framework": "3.1.3",
-        "com.unity.multiplayer.tools": "1.1.0",
-        "com.unity.netcode.gameobjects": "1.8.1",
-        "com.unity.services.relay": "1.0.5"
+        "com.unity.multiplayer.tools": "2.2.3",
+        "com.unity.netcode.gameobjects": "2.2.0"
       }
     },
     "com.unity.multiplayer.tools": {
-      "version": "2.0.0-pre.3",
+      "version": "2.2.4",
       "depth": 0,
       "source": "registry",
       "dependencies": {
-        "com.unity.profiling.core": "1.0.0-pre.1",
-        "com.unity.nuget.newtonsoft-json": "2.0.0",
-        "com.unity.nuget.mono-cecil": "1.10.1",
-        "com.unity.collections": "1.1.0",
+        "com.unity.burst": "1.8.18",
+        "com.unity.collections": "2.5.1",
+        "com.unity.mathematics": "1.3.2",
+        "com.unity.profiling.core": "1.0.2",
+        "com.unity.nuget.mono-cecil": "1.11.4",
         "com.unity.modules.uielements": "1.0.0",
-        "com.unity.burst": "1.6.6",
-        "com.unity.mathematics": "1.2.6"
+        "com.unity.nuget.newtonsoft-json": "3.2.1"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.netcode.gameobjects": {
-      "version": "1.8.1",
+      "version": "2.4.3",
       "depth": 0,
       "source": "registry",
       "dependencies": {
-        "com.unity.nuget.mono-cecil": "1.10.1",
-        "com.unity.transport": "1.4.0"
+        "com.unity.transport": "2.4.0",
+        "com.unity.nuget.mono-cecil": "1.11.4"
       },
       "url": "https://packages.unity.com"
     },
@@ -168,14 +199,14 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.performance.profile-analyzer": {
-      "version": "1.2.2",
+      "version": "1.2.3",
       "depth": 0,
       "source": "registry",
       "dependencies": {},
       "url": "https://packages.unity.com"
     },
     "com.unity.postprocessing": {
-      "version": "3.4.0",
+      "version": "3.5.0",
       "depth": 0,
       "source": "registry",
       "dependencies": {
@@ -191,212 +222,234 @@
       "url": "https://packages.unity.com"
     },
     "com.unity.render-pipelines.core": {
-      "version": "14.0.10",
+      "version": "17.0.4",
       "depth": 1,
       "source": "builtin",
       "dependencies": {
-        "com.unity.ugui": "1.0.0",
+        "com.unity.burst": "1.8.20",
+        "com.unity.mathematics": "1.3.2",
+        "com.unity.ugui": "2.0.0",
+        "com.unity.collections": "2.4.3",
         "com.unity.modules.physics": "1.0.0",
         "com.unity.modules.terrain": "1.0.0",
-        "com.unity.modules.jsonserialize": "1.0.0"
+        "com.unity.modules.jsonserialize": "1.0.0",
+        "com.unity.rendering.light-transport": "1.0.1"
       }
     },
     "com.unity.render-pipelines.universal": {
-      "version": "14.0.10",
+      "version": "17.0.4",
       "depth": 0,
       "source": "builtin",
       "dependencies": {
-        "com.unity.mathematics": "1.2.1",
-        "com.unity.burst": "1.8.9",
-        "com.unity.render-pipelines.core": "14.0.10",
-        "com.unity.shadergraph": "14.0.10",
-        "com.unity.render-pipelines.universal-config": "14.0.9"
+        "com.unity.render-pipelines.core": "17.0.4",
+        "com.unity.shadergraph": "17.0.4",
+        "com.unity.render-pipelines.universal-config": "17.0.3"
       }
     },
     "com.unity.render-pipelines.universal-config": {
-      "version": "14.0.9",
+      "version": "17.0.3",
       "depth": 1,
       "source": "builtin",
       "dependencies": {
-        "com.unity.render-pipelines.core": "14.0.9"
+        "com.unity.render-pipelines.core": "17.0.3"
+      }
+    },
+    "com.unity.rendering.light-transport": {
+      "version": "1.0.1",
+      "depth": 2,
+      "source": "builtin",
+      "dependencies": {
+        "com.unity.collections": "2.2.0",
+        "com.unity.mathematics": "1.2.4",
+        "com.unity.modules.terrain": "1.0.0"
       }
     },
     "com.unity.searcher": {
-      "version": "4.9.2",
+      "version": "4.9.3",
       "depth": 2,
       "source": "registry",
       "dependencies": {},
       "url": "https://packages.unity.com"
     },
     "com.unity.services.authentication": {
-      "version": "2.7.2",
+      "version": "3.5.1",
       "depth": 0,
       "source": "registry",
       "dependencies": {
+        "com.unity.ugui": "1.0.0",
+        "com.unity.services.core": "1.15.1",
         "com.unity.nuget.newtonsoft-json": "3.2.1",
-        "com.unity.services.core": "1.10.1",
-        "com.unity.modules.unitywebrequest": "1.0.0",
-        "com.unity.ugui": "1.0.0"
+        "com.unity.modules.unitywebrequest": "1.0.0"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.services.core": {
-      "version": "1.12.4",
+      "version": "1.15.1",
       "depth": 1,
       "source": "registry",
       "dependencies": {
-        "com.unity.modules.unitywebrequest": "1.0.0",
+        "com.unity.modules.androidjni": "1.0.0",
         "com.unity.nuget.newtonsoft-json": "3.2.1",
-        "com.unity.modules.androidjni": "1.0.0"
+        "com.unity.modules.unitywebrequest": "1.0.0"
       },
       "url": "https://packages.unity.com"
     },
-    "com.unity.services.lobby": {
-      "version": "1.1.0",
-      "depth": 0,
+    "com.unity.services.deployment": {
+      "version": "1.3.0",
+      "depth": 1,
       "source": "registry",
       "dependencies": {
-        "com.unity.services.core": "1.8.2",
-        "com.unity.modules.unitywebrequest": "1.0.0",
-        "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
-        "com.unity.modules.unitywebrequestaudio": "1.0.0",
-        "com.unity.modules.unitywebrequesttexture": "1.0.0",
-        "com.unity.modules.unitywebrequestwww": "1.0.0",
-        "com.unity.nuget.newtonsoft-json": "3.0.2",
-        "com.unity.services.authentication": "2.1.1",
-        "com.unity.services.wire": "1.1.8"
+        "com.unity.services.core": "1.12.0",
+        "com.unity.services.deployment.api": "1.0.0"
       },
       "url": "https://packages.unity.com"
     },
-    "com.unity.services.qos": {
-      "version": "1.2.1",
-      "depth": 1,
+    "com.unity.services.deployment.api": {
+      "version": "1.0.0",
+      "depth": 2,
+      "source": "registry",
+      "dependencies": {},
+      "url": "https://packages.unity.com"
+    },
+    "com.unity.services.multiplayer": {
+      "version": "1.1.4",
+      "depth": 0,
       "source": "registry",
       "dependencies": {
-        "com.unity.services.core": "1.4.0",
+        "com.unity.transport": "2.5.0",
+        "com.unity.collections": "2.2.1",
+        "com.unity.services.qos": "1.3.0",
+        "com.unity.services.core": "1.13.0",
+        "com.unity.services.wire": "1.4.0",
+        "com.unity.services.deployment": "1.3.0",
+        "com.unity.nuget.newtonsoft-json": "3.2.1",
         "com.unity.modules.unitywebrequest": "1.0.0",
-        "com.unity.nuget.newtonsoft-json": "3.0.2",
-        "com.unity.services.authentication": "2.0.0",
-        "com.unity.collections": "1.2.4"
+        "com.unity.services.authentication": "3.3.3"
       },
       "url": "https://packages.unity.com"
     },
-    "com.unity.services.relay": {
-      "version": "1.0.5",
-      "depth": 0,
+    "com.unity.services.qos": {
+      "version": "1.3.0",
+      "depth": 1,
       "source": "registry",
       "dependencies": {
-        "com.unity.services.core": "1.4.0",
-        "com.unity.services.authentication": "2.0.0",
-        "com.unity.services.qos": "1.1.0",
-        "com.unity.modules.unitywebrequest": "1.0.0",
-        "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
-        "com.unity.modules.unitywebrequestaudio": "1.0.0",
-        "com.unity.modules.unitywebrequesttexture": "1.0.0",
-        "com.unity.modules.unitywebrequestwww": "1.0.0",
+        "com.unity.collections": "1.2.4",
+        "com.unity.services.core": "1.12.4",
         "com.unity.nuget.newtonsoft-json": "3.0.2",
-        "com.unity.transport": "1.3.0"
+        "com.unity.modules.unitywebrequest": "1.0.0",
+        "com.unity.services.authentication": "2.0.0"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.services.wire": {
-      "version": "1.2.2",
+      "version": "1.4.0",
       "depth": 1,
       "source": "registry",
       "dependencies": {
-        "com.unity.services.core": "1.11.0",
+        "com.unity.services.core": "1.12.5",
         "com.unity.nuget.newtonsoft-json": "3.2.1",
-        "com.unity.services.authentication": "2.7.2"
+        "com.unity.services.authentication": "2.7.4"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.settings-manager": {
-      "version": "2.0.1",
+      "version": "2.1.0",
       "depth": 1,
       "source": "registry",
       "dependencies": {},
       "url": "https://packages.unity.com"
     },
     "com.unity.shadergraph": {
-      "version": "14.0.10",
+      "version": "17.0.4",
       "depth": 1,
       "source": "builtin",
       "dependencies": {
-        "com.unity.render-pipelines.core": "14.0.10",
-        "com.unity.searcher": "4.9.2"
+        "com.unity.render-pipelines.core": "17.0.4",
+        "com.unity.searcher": "4.9.3"
       }
     },
+    "com.unity.splines": {
+      "version": "2.8.1",
+      "depth": 1,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.mathematics": "1.2.1",
+        "com.unity.modules.imgui": "1.0.0",
+        "com.unity.settings-manager": "1.0.3"
+      },
+      "url": "https://packages.unity.com"
+    },
     "com.unity.sysroot": {
-      "version": "2.0.5",
+      "version": "2.0.10",
       "depth": 1,
       "source": "registry",
       "dependencies": {},
       "url": "https://packages.unity.com"
     },
     "com.unity.sysroot.linux-x86_64": {
-      "version": "2.0.4",
+      "version": "2.0.9",
       "depth": 1,
       "source": "registry",
       "dependencies": {
-        "com.unity.sysroot": "2.0.5"
+        "com.unity.sysroot": "2.0.10"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.test-framework": {
-      "version": "1.1.33",
+      "version": "1.5.1",
       "depth": 0,
-      "source": "registry",
+      "source": "builtin",
       "dependencies": {
-        "com.unity.ext.nunit": "1.0.6",
+        "com.unity.ext.nunit": "2.0.3",
         "com.unity.modules.imgui": "1.0.0",
         "com.unity.modules.jsonserialize": "1.0.0"
-      },
-      "url": "https://packages.unity.com"
+      }
     },
-    "com.unity.textmeshpro": {
-      "version": "3.0.6",
-      "depth": 0,
+    "com.unity.test-framework.performance": {
+      "version": "3.1.0",
+      "depth": 2,
       "source": "registry",
       "dependencies": {
-        "com.unity.ugui": "1.0.0"
+        "com.unity.test-framework": "1.1.33",
+        "com.unity.modules.jsonserialize": "1.0.0"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.timeline": {
-      "version": "1.7.6",
+      "version": "1.8.8",
       "depth": 0,
       "source": "registry",
       "dependencies": {
+        "com.unity.modules.audio": "1.0.0",
         "com.unity.modules.director": "1.0.0",
         "com.unity.modules.animation": "1.0.0",
-        "com.unity.modules.audio": "1.0.0",
         "com.unity.modules.particlesystem": "1.0.0"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.toolchain.macos-x86_64-linux-x86_64": {
-      "version": "2.0.4",
+      "version": "2.0.10",
       "depth": 0,
       "source": "registry",
       "dependencies": {
-        "com.unity.sysroot": "2.0.5",
-        "com.unity.sysroot.linux-x86_64": "2.0.4"
+        "com.unity.sysroot": "2.0.10",
+        "com.unity.sysroot.linux-x86_64": "2.0.9"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.transport": {
-      "version": "2.0.2",
+      "version": "2.5.1",
       "depth": 0,
       "source": "registry",
       "dependencies": {
-        "com.unity.collections": "2.1.4",
-        "com.unity.burst": "1.8.4",
-        "com.unity.mathematics": "1.2.6"
+        "com.unity.burst": "1.8.12",
+        "com.unity.collections": "2.2.1",
+        "com.unity.mathematics": "1.3.1"
       },
       "url": "https://packages.unity.com"
     },
     "com.unity.ugui": {
-      "version": "1.0.0",
+      "version": "2.0.0",
       "depth": 0,
       "source": "builtin",
       "dependencies": {
@@ -404,22 +457,19 @@
         "com.unity.modules.imgui": "1.0.0"
       }
     },
-    "com.veriorpies.parrelsync": {
-      "version": "https://github.com/VeriorPies/ParrelSync.git?path=/ParrelSync#bb3d5067e49e403d8b8ba15c036d313b4dd2c696",
-      "depth": 0,
-      "source": "git",
-      "dependencies": {},
-      "hash": "bb3d5067e49e403d8b8ba15c036d313b4dd2c696"
-    },
     "jp.hadashikick.vcontainer": {
-      "version": "1.11.0",
+      "version": "1.16.8",
       "depth": 0,
       "source": "registry",
-      "dependencies": {
-        "com.unity.nuget.mono-cecil": "1.10.1"
-      },
+      "dependencies": {},
       "url": "https://package.openupm.com"
     },
+    "com.unity.modules.accessibility": {
+      "version": "1.0.0",
+      "depth": 0,
+      "source": "builtin",
+      "dependencies": {}
+    },
     "com.unity.modules.ai": {
       "version": "1.0.0",
       "depth": 0,
@@ -467,6 +517,12 @@
         "com.unity.modules.animation": "1.0.0"
       }
     },
+    "com.unity.modules.hierarchycore": {
+      "version": "1.0.0",
+      "depth": 1,
+      "source": "builtin",
+      "dependencies": {}
+    },
     "com.unity.modules.imageconversion": {
       "version": "1.0.0",
       "depth": 0,
@@ -555,7 +611,8 @@
       "dependencies": {
         "com.unity.modules.ui": "1.0.0",
         "com.unity.modules.imgui": "1.0.0",
-        "com.unity.modules.jsonserialize": "1.0.0"
+        "com.unity.modules.jsonserialize": "1.0.0",
+        "com.unity.modules.hierarchycore": "1.0.0"
       }
     },
     "com.unity.modules.umbra": {
diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset
index 8e686c063c..649ea91483 100644
--- a/ProjectSettings/EditorBuildSettings.asset
+++ b/ProjectSettings/EditorBuildSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:437a3072f7463a7664548b95f70f8fab91c81e4c8fc8847f9efd132d66549529
-size 984
+oid sha256:5d90838a4e9d8f3d5ff4a08f8ee287653afffd664138b4160c85898988d7f894
+size 1128
diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset
index 5aca060ce2..d88ebb90c6 100644
--- a/ProjectSettings/EditorSettings.asset
+++ b/ProjectSettings/EditorSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:42ee6a6f99514a629df089bba8bcbbf33b2dd796f76c6ae4301773307f85858a
-size 1337
+oid sha256:f9cf939be65d0c552f3fa42891780ec323fa600f87b47ce7eee99b08d27889a8
+size 1518
diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset
index 6b3f04ccb0..8ad9e81355 100644
--- a/ProjectSettings/GraphicsSettings.asset
+++ b/ProjectSettings/GraphicsSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:b871b6cbfdde40d5380bf9a12ed50bcc4132841e37811a6953a60e76e4dbb3a1
-size 3953
+oid sha256:c7cec3c146cbb300673f75dd5464cd23953c4ca2ccfd7d9aa38cf410d6bd5b5e
+size 3949
diff --git a/ProjectSettings/MultiplayerManager.asset b/ProjectSettings/MultiplayerManager.asset
new file mode 100644
index 0000000000..a241e60c46
--- /dev/null
+++ b/ProjectSettings/MultiplayerManager.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aba89fd1a1ddad182727ad82727e536d27372e90328a8196da2a4560398983dd
+size 157
diff --git a/ProjectSettings/Packages/com.unity.learn.iet-framework/Settings.json b/ProjectSettings/Packages/com.unity.learn.iet-framework/Settings.json
index a08ca69eaa..91c8442610 100644
--- a/ProjectSettings/Packages/com.unity.learn.iet-framework/Settings.json
+++ b/ProjectSettings/Packages/com.unity.learn.iet-framework/Settings.json
@@ -4,12 +4,12 @@
             {
                 "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
                 "key": "IET.ShowTutorialsClosedDialog",
-                "value": "{\"m_Value\":false}"
+                "value": "{\"m_Value\":true}"
             },
             {
                 "type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
                 "key": "IET.DisplayWelcomeDialogOnStartup",
-                "value": "{\"m_Value\":false}"
+                "value": "{\"m_Value\":true}"
             }
         ]
     }
diff --git a/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset b/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset
new file mode 100644
index 0000000000..7e462f93bb
--- /dev/null
+++ b/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5c0c545e8f374c8c1e2f6f13a13060dc1de399d73fd6c0bb2a42f1bf8a6ccdb1
+size 423
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
index 704d423463..171ea1c1b8 100644
--- a/ProjectSettings/ProjectSettings.asset
+++ b/ProjectSettings/ProjectSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:64886b811e9b46e1e4fb83a6f7da286f1a8b2f65d5c90aacbb5d507dc8b0d856
-size 27139
+oid sha256:0c25a44d1b9df3697e1b22ea14fc5a65a43d549ad4d65a6a3ec409362e61c206
+size 27878
diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt
index c47c8be787..ce2bc70628 100644
--- a/ProjectSettings/ProjectVersion.txt
+++ b/ProjectSettings/ProjectVersion.txt
@@ -1,2 +1,2 @@
-m_EditorVersion: 2022.3.22f1
-m_EditorVersionWithRevision: 2022.3.22f1 (887be4894c44)
+m_EditorVersion: 6000.0.52f1
+m_EditorVersionWithRevision: 6000.0.52f1 (9e4086222921)
diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json
index e6b1d38eac..cdbbb54057 100644
--- a/ProjectSettings/SceneTemplateSettings.json
+++ b/ProjectSettings/SceneTemplateSettings.json
@@ -9,164 +9,123 @@
         {
             "userAdded": false,
             "type": "UnityEngine.AnimationClip",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEditor.Animations.AnimatorController",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.AnimatorOverrideController",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEditor.Audio.AudioMixerController",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.ComputeShader",
-            "ignore": true,
-            "defaultInstantiationMode": 1,
-            "supportsModification": true
+            "defaultInstantiationMode": 1
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Cubemap",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.GameObject",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEditor.LightingDataAsset",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": false
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.LightingSettings",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Material",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEditor.MonoScript",
-            "ignore": true,
-            "defaultInstantiationMode": 1,
-            "supportsModification": true
+            "defaultInstantiationMode": 1
         },
         {
             "userAdded": false,
             "type": "UnityEngine.PhysicMaterial",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.PhysicsMaterial",
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.PhysicsMaterial2D",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Rendering.VolumeProfile",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEditor.SceneAsset",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": false
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Shader",
-            "ignore": true,
-            "defaultInstantiationMode": 1,
-            "supportsModification": true
+            "defaultInstantiationMode": 1
         },
         {
             "userAdded": false,
             "type": "UnityEngine.ShaderVariantCollection",
-            "ignore": true,
-            "defaultInstantiationMode": 1,
-            "supportsModification": true
+            "defaultInstantiationMode": 1
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Texture",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Texture2D",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         },
         {
             "userAdded": false,
             "type": "UnityEngine.Timeline.TimelineAsset",
-            "ignore": false,
-            "defaultInstantiationMode": 0,
-            "supportsModification": true
+            "defaultInstantiationMode": 0
         }
     ],
     "defaultDependencyTypeInfo": {
         "userAdded": false,
         "type": "",
-        "ignore": false,
-        "defaultInstantiationMode": 1,
-        "supportsModification": true
+        "defaultInstantiationMode": 1
     },
     "newSceneOverride": 0
 }
\ No newline at end of file
diff --git a/ProjectSettings/ShaderGraphSettings.asset b/ProjectSettings/ShaderGraphSettings.asset
index f4a219d763..62cf15dffd 100644
--- a/ProjectSettings/ShaderGraphSettings.asset
+++ b/ProjectSettings/ShaderGraphSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:dd7b0e5c5b40aea5d5c546731cb576959d0829155cddf50e862a0be072195ca9
-size 489
+oid sha256:773803237466ffe9bbfed9ecef9bbe25f63196dd47ab6b3003f0cd1649fd2bd0
+size 524
diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset
index 260d9c8165..e1eb77d6c3 100644
--- a/ProjectSettings/TagManager.asset
+++ b/ProjectSettings/TagManager.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:8c80414c6128b1578c110d3ad72690943f5bddac547991cf54d55b66ce3c0960
-size 671
+oid sha256:14258a72bdb9b78c1e9c978fd6007b6b9a2917f1c946204952c1bfd318f0978e
+size 840
diff --git a/ProjectSettings/TimelineSettings.asset b/ProjectSettings/TimelineSettings.asset
index c6c19d5808..bec00b3aa9 100644
--- a/ProjectSettings/TimelineSettings.asset
+++ b/ProjectSettings/TimelineSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:4333bb60f63529ab4ad88b65fe5dfaf7af05a7b4f2b9d64ad4e970ad17cc1514
-size 411
+oid sha256:1c63fbda5a79fb6a2ee33f5c664a234633dd0f9524e8669cb28dc82132047309
+size 436
diff --git a/ProjectSettings/URPProjectSettings.asset b/ProjectSettings/URPProjectSettings.asset
index dfca260c9c..26ae555a16 100644
--- a/ProjectSettings/URPProjectSettings.asset
+++ b/ProjectSettings/URPProjectSettings.asset
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:3e9d9f824875297ef6b9315fa7a3ac7ec1b047042395404a23c368fc971a8f3e
-size 410
+oid sha256:596d5c8bf4f957b03684c949bebc252ae1918f25415a1147a00684c4b086efda
+size 411
diff --git a/ProjectSettings/VirtualProjectsConfig.json b/ProjectSettings/VirtualProjectsConfig.json
new file mode 100644
index 0000000000..fea182f0f2
--- /dev/null
+++ b/ProjectSettings/VirtualProjectsConfig.json
@@ -0,0 +1,4 @@
+{
+  "PlayerTags": [],
+  "version": "1.5.0"
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index ee6720369b..492b730c34 100644
--- a/README.md
+++ b/README.md
@@ -5,9 +5,9 @@
 ###  Made with and Including Utilities for Netcode for GameObjects
 
-[](https://unity.com/releases/editor/whats-new/2022.3.0)
-[](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/releases/tag/ngo%2F1.8.1)
-[](https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/tag/v2.5.0)
+[](https://unity.com/releases/editor/whats-new/6000.0.52)
+[](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/releases/tag/v2.4.3)
+[](https://github.com/Unity-Technologies/com.unity.multiplayer.samples.coop/releases/tag/v3.0.0)
 
 
 Boss Room is a fully functional co-op multiplayer RPG made with Unity Netcode. It is an educational sample designed to showcase typical netcode [patterns](https://docs-multiplayer.unity3d.com/netcode/current/learn/bossroom/bossroom-actions/index.html) that are frequently featured in similar multiplayer games.
@@ -15,7 +15,7 @@ Boss Room is a fully functional co-op multiplayer RPG made with Unity Netcode. I
 
 # Boss Room Sample Overview
 
-Boss Room is designed to be used in its entirety to help you explore the concepts and patterns behind a multiplayer game flow; such as character abilities, casting animations to hide latency, replicated objects, RPCs, and integration with the [Relay](https://unity.com/products/relay), [Lobby](https://unity.com/products/lobby), and [Authentication](https://unity.com/products/authentication) services.
+Boss Room is designed to be used in its entirety to help you explore the concepts and patterns behind a multiplayer game flow; such as character abilities, casting animations to hide latency, replicated objects, RPCs, and integration with [Multiplayer Services sessions](https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual) and [Authentication](https://unity.com/products/authentication) services.
 
 You can use the project as a reference starting point for your own Unity game or use elements individually.
 
@@ -56,12 +56,12 @@ For more information on the art of Boss Room, see [ART_NOTES.md](Documentation/A
 - ### [Testing multiplayer](#testing-multiplayer-1) 
   - [Local Multiplayer Setup](#local-multiplayer-setup)
   - [Multiplayer over Internet](#multiplayer-over-internet)
-  - [Relay Setup](#relay-setup) 
+  - [Multiplayer Services Setup](#multiplayer-services-setup) 
 - ### [Index of resources in this project](#index-of-resources-in-this-project-1)
   - [Gameplay](#gameplay)
   - [Game Flow](#game-flow)
   - [Connectivity](#connectivity)
-  - [Services (Lobby, Relay, etc)](#services-lobby-relay-etc)
+  - [Services (Sessions and Authentication)](#services-sessions-authentication)
   - [Tools and Utilities](#tools-and-utilities)
 - ### [Troubleshooting](#troubleshooting-1)
   - [Bugs](#bugs)
@@ -71,7 +71,7 @@ For more information on the art of Boss Room, see [ART_NOTES.md](Documentation/A
 - ### [Community](#community-1)
 - ### [Feedback Form](#feedback-form-1)
 - ### [Other samples](#other-samples-1)
-  - [Bite-size Samples](#bite-size-samples)
+  - [Bitesize Samples](#bitesize-samples)
 
 
 ------
@@ -86,7 +86,7 @@ For more information on the art of Boss Room, see [ART_NOTES.md](Documentation/A
 
 ## Requirements
 
-BossRoom is compatible with the latest Unity Long Term Support (LTS) editor version, currently [2022 LTS](https://unity.com/releases/editor/qa/lts-releases?version=2022.3). Please include standalone support for Windows/Mac in your installation.
+BossRoom is compatible with the latest Unity Long Term Support (LTS) editor version, currently [6000.0 LTS](https://unity.com/releases/editor/archive). Please include standalone support for Windows/Mac in your installation.
 
 **PLEASE NOTE:** You will also need Netcode for Game Objects to use these samples. See the [Installation Documentation](https://docs-multiplayer.unity3d.com/netcode/current/installation) to prepare your environment. You can also complete the [Get Started With NGO](https://docs-multiplayer.unity3d.com/netcode/current/tutorials/get-started-ngo) tutorial to familiarize yourself with Netcode For Game Objects.
 
@@ -112,7 +112,7 @@ Boss Room uses Git Large Files Support (LFS) to handle all large assets required
 ## Opening the project for the first time
 
 Once you have downloaded the project, follow the steps below to get up and running:
- - Check that you have installed the most recent [LTS editor version](https://unity.com/releases/2021-lts).
+ - Check that you have installed the most recent [LTS editor version](https://unity.com/releases/unity-6-releases).
  	- Include standalone support for Windows/Mac in your installation. 
  - Add the project to the _Unity Hub_ by clicking on the **Add** button and pointing it to the root folder of the downloaded project.
  	- __Please note :__ the first time you open the project Unity will import all assets, which will take longer than usual.
@@ -135,12 +135,12 @@ Code is organized in domain-based assemblies. See the [Boss Room architecture do
 
 ### Registering the project with Unity Gaming Services (UGS)
 
-Boss Room leverages several services from UGS to facilitate connectivity between players. To use these services inside your project, you must [create an organization](https://support.unity.com/hc/en-us/articles/208592876-How-do-I-create-a-new-Organization-) inside the Unity Dashboard, and enable the [Relay](https://docs.unity.com/relay/get-started.html) and [Lobby](https://docs.unity.com/lobby/game-lobby-sample.html) services. Otherwise, you can still use Boss Room without UGS.
+Boss Room leverages several services from UGS to facilitate connectivity between players. To use these services inside your project, you must [create an organization](https://support.unity.com/hc/en-us/articles/208592876-How-do-I-create-a-new-Organization-) inside the Unity Dashboard. Otherwise, you can still use Boss Room without UGS.
 
  
 ## Testing multiplayer
 
-In order to see the multiplayer functionality in action we can either run multiple instances of the game locally on your computer - using either ParrelSync or builds - or choose to connect to a friend over the internet. See [how to test](https://docs-multiplayer.unity3d.com/netcode/current/tutorials/testing/testing_locally) for more info.
+In order to see the multiplayer functionality in action we can either run multiple instances of the game locally on your computer - using either Multiplayer Play Mode or builds - or choose to connect to a friend over the internet. See [how to test](https://docs-multiplayer.unity3d.com/netcode/current/tutorials/testing/testing_locally) for more info.
 
 
 ### Local multiplayer setup
@@ -167,9 +167,9 @@ It is possible to connect between multiple instances of the same executable OR b
 Running the game over internet currently requires setting up a relay. 
   
   
-### Relay Setup
+### Multiplayer Services Setup
  
-- Boss Room provides an integration with [Unity Relay](https://docs-multiplayer.unity3d.com/netcode/current/relay/). You can find our Unity Relay setup guide [here](https://docs.unity.com/ugs/en-us/manual/relay/manual/get-started)
+- Boss Room uses the Multiplayer Services Package to integrate [Sessions](https://docs.unity.com/ugs/en-us/manual/mps-sdk/manual) for grouping and connecting players.
 
 - Alternatively you can use Port Forwarding. The https://portforward.com/ site has guides on how to enable port forwarding on a huge number of routers.
 - Boss Room uses `UDP` and needs a `9998` external port to be open. 
@@ -230,15 +230,15 @@ Running the game over internet currently requires setting up a relay.
 * Session manager - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/SessionManager.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/SessionManager.cs)
 * RTT stats - [Assets/Scripts/Utils/NetworkOverlay/NetworkStats.cs](Assets/Scripts/Utils/NetworkOverlay/NetworkStats.cs)
 
-### Services (Lobby, Relay, etc)
-* Lobby and relay - host creation - CreateLobbyRequest() in [Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs ](Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs)
-* Lobby and relay - client join - JoinLobbyRequest() in [Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs ](Assets/Scripts/Gameplay/UI/Lobby/LobbyUIMediator.cs)
-* Relay Join - StartClientLobby() in [Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs ](Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs)
-* Relay Create - StartHostLobby() in [Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs ](Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs)
-* Subscribing to LobbyEvents - SubscribeToJoinedLobby() in [Assets/Scripts/UnityServices/Lobbies/LobbyServiceFacade.cs ](Assets/Scripts/UnityServices/Lobbies/LobbyServiceFacade.cs)
+### Services (Sessions and Authentication)
+* Session - host creation - CreateSessionRequest() in [Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs ](Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs)
+* Session - client join - JoinSessionRequest() in [Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs ](Assets/Scripts/Gameplay/UI/Session/SessionUIMediator.cs)
+* Session Join with Relay - StartClientSession() in [Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs ](Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs)
+* Session Create with Relay - StartHostSession() in [Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs ](Assets/Scripts/ConnectionManagement/ConnectionState/OfflineState.cs)
+* Subscribing to SessionEvents - SubscribeToJoinedSessionAsync() in [Assets/Scripts/UnityServices/Sessions/MultiplayerServicesFacade.cs ](Assets/Scripts/UnityServices/Sessions/MultiplayerServicesFacade.cs)
 * Authentication - EnsurePlayerIsAuthorized() in [Assets/Scripts/UnityServices/Auth/AuthenticationServiceFacade.cs ](Assets/Scripts/UnityServices/Auth/AuthenticationServiceFacade.cs)
-* Authentication - Profile management for ParrelSync/local instances - GetProfile() in [Assets/Scripts/Utils/ProfileManager.cs](Assets/Scripts/Utils/ProfileManager.cs)
-* Profile manager for ParrelSync and local play [Assets/Scripts/Utils/ProfileManager.cs](Assets/Scripts/Utils/ProfileManager.cs)
+* Authentication - Profile management for local instances - GetProfile() in [Assets/Scripts/Utils/ProfileManager.cs](Assets/Scripts/Utils/ProfileManager.cs)
+* Profile manager for local play [Assets/Scripts/Utils/ProfileManager.cs](Assets/Scripts/Utils/ProfileManager.cs)
 
 ### Tools and Utilities
 * Networked message channel (inter-class and networked messaging) - [Assets/Scripts/Infrastructure/PubSub/NetworkedMessageChannel.cs](Assets/Scripts/Infrastructure/PubSub/NetworkedMessageChannel.cs)
@@ -248,12 +248,11 @@ Running the game over internet currently requires setting up a relay.
 * Netcode hooks - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/NetcodeHooks.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/NetcodeHooks.cs)
 * Spawner for in-scene objects - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/NetworkObjectSpawner.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/NetworkObjectSpawner.cs)
 * Session manager for reconnection - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/SessionManager.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/SessionManager.cs)
-* Relay utils - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/UnityRelayUtilities.cs)
 * Client authority - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/ClientAuthority/)
 * Scene utils with synced loading screens - [Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/ ](Packages/com.unity.multiplayer.samples.coop/Utilities/SceneManagement/)
 * RNSM custom config - [Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/CustomNetStatsMonitorConfiguration.asset ](Packages/com.unity.multiplayer.samples.coop/Utilities/Net/RNSM/CustomNetStatsMonitorConfiguration.asset)
 * NetworkSimulator usage through UI - [Assets/Scripts/Utils/NetworkSimulatorUIMediator.cs ](Assets/Scripts/Utils/NetworkSimulatorUIMediator.cs)
-* ParrelSync - [ Packages/manifest.json ](Packages/manifest.json)
+* Multiplayer Play Mode - [ Packages/manifest.json ](Packages/manifest.json)
 
 
 -------
@@ -292,7 +291,7 @@ git clone https://github.com/Unity-Technologies/com.unity.multiplayer.samples.co
 
 
 ## Community
-For help, questions, networking advice, or discussions about Netcode for GameObjects and its samples, please join our [Discord Community](https://discord.gg/FM8SE9E) or create a post in the [Unity Multiplayer Forum](https://forum.unity.com/forums/netcode-for-gameobjects.661/).
+For help, questions, networking advice, or discussions about Netcode for GameObjects and its samples, please join our [Discord Community](https://discord.com/channels/489222168727519232/1390346492019212368) or create a post in the [Unity Multiplayer Forum](https://forum.unity.com/forums/netcode-for-gameobjects.661/).
 
 
 ## Feedback Form
@@ -303,13 +302,13 @@ Thank you for cloning Boss Room and taking a look at the project. To help us imp
 
 
 ## Other samples
-### Bite-size Samples
+### Bitesize Samples
 - The [Bitesize Samples](https://github.com/Unity-Technologies/com.unity.multiplayer.samples.bitesize)  repository is currently being expanded and contains a collection of smaller samples and games, showcasing sub-features of NGO. You can review these samples with documentation to understand our APIs and features better.
 
 
 [](https://docs-multiplayer.unity3d.com/netcode/current/learn/bossroom/bossroom)
 [](https://forum.unity.com/forums/multiplayer.26/)
-[](https://discord.gg/FM8SE9E)
+[](https://discord.com/channels/489222168727519232/1390346492019212368)
 
   
   
\ No newline at end of file
diff --git a/Third Party Notices.md b/Third Party Notices.md
index 5c7ecb0b05..435c8e2b31 100644
--- a/Third Party Notices.md	
+++ b/Third Party Notices.md	
@@ -34,22 +34,6 @@ OTHER DEALINGS IN THE SOFTWARE.
 
 For more information, please refer to 
 
----------
-Component Name: ParrelSync
-
-License Type: MIT
-
-Copyright (c) 2018 Greg M
-Copyright (c) 2020 Ian and Contributors
-
-https://github.com/VeriorPies/ParrelSync
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
 ---------
 Component Name: LiteNetLib