diff --git a/Assets/Models/image-slide-model.fbx b/Assets/Models/image-slide-model.fbx index b64fd08..fbaf6b6 100644 Binary files a/Assets/Models/image-slide-model.fbx and b/Assets/Models/image-slide-model.fbx differ diff --git a/Assets/Textures/SplashScreen/ImageSlide.png b/Assets/Textures/SplashScreen/ImageSlide.png index 952fa88..ed8b5c5 100644 Binary files a/Assets/Textures/SplashScreen/ImageSlide.png and b/Assets/Textures/SplashScreen/ImageSlide.png differ diff --git a/Assets/Textures/SplashScreen/ImageSlideViewer.png b/Assets/Textures/SplashScreen/ImageSlideViewer.png index 48a495c..f067b38 100644 Binary files a/Assets/Textures/SplashScreen/ImageSlideViewer.png and b/Assets/Textures/SplashScreen/ImageSlideViewer.png differ diff --git a/Prefabs/ImageSlideViewer.prefab b/Prefabs/ImageSlideViewer.prefab index 923a26c..3ad4145 100644 --- a/Prefabs/ImageSlideViewer.prefab +++ b/Prefabs/ImageSlideViewer.prefab @@ -1548,8 +1548,15 @@ MonoBehaviour: PrefabModifications: [] SerializationNodes: [] _udonSharpBackingUdonBehaviour: {fileID: 36657328902437027} + logLevel: 0 splashImage: {fileID: 643319091859997542} splashImageFitter: {fileID: 2269522274416780085} + isObjectSyncEnabled: 0 + rootGameObject: {fileID: 7862952628220398662} + seekDisabled: 0 + presentationTransform: {fileID: 5123357268474587353} + mainView: {fileID: 5369278872376500450} + slideList: {fileID: 9077831920044016191} imageSlide: {fileID: 0} animator: {fileID: 5470781304978789982} slideMainView: {fileID: 7496012666510957034} @@ -2002,10 +2009,10 @@ RectTransform: - {fileID: 5199394745126046611} m_Father: {fileID: 349200529895163626} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 960, y: -388} - m_SizeDelta: {x: 1920, y: 776} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &7299699285408374151 MonoBehaviour: @@ -2393,7 +2400,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5369278872376500450} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0.00008278423} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -2403,9 +2410,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 960, y: -388} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 1920, y: 776} - m_Pivot: {x: 0.5, y: 0.5} + m_Pivot: {x: 0, y: 1} --- !u!222 &5921960647118335595 CanvasRenderer: m_ObjectHideFlags: 0 @@ -3646,7 +3653,6 @@ GameObject: - component: {fileID: 6321506635606379757} - component: {fileID: 4802096402255859169} - component: {fileID: 5470781304978789982} - - component: {fileID: 4884114067088642543} m_Layer: 13 m_Name: GameObject m_TagString: Untagged @@ -3772,19 +3778,6 @@ Animator: m_AllowConstantClipSamplingOptimization: 1 m_KeepAnimatorStateOnDisable: 0 m_WriteDefaultValuesOnDisable: 0 ---- !u!114 &4884114067088642543 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7862952628220398662} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: -1783056023, guid: 661092b4961be7145bfbe56e1e62337b, type: 3} - m_Name: - m_EditorClassIdentifier: - AllowCollisionOwnershipTransfer: 1 --- !u!1 &7891373250867704291 GameObject: m_ObjectHideFlags: 0 @@ -4310,7 +4303,7 @@ RectTransform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 9077831920044016191} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: 0.13189597} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -4320,9 +4313,9 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 960, y: -930} + m_AnchoredPosition: {x: 0, y: -780} m_SizeDelta: {x: 1920, y: 300} - m_Pivot: {x: 0.5, y: 0.5} + m_Pivot: {x: 0, y: 1} --- !u!114 &6958512940954748803 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Runtime/Editor/ImageSlideEditor.cs b/Runtime/Editor/ImageSlideEditor.cs index e094da3..16267d1 100644 --- a/Runtime/Editor/ImageSlideEditor.cs +++ b/Runtime/Editor/ImageSlideEditor.cs @@ -1,4 +1,5 @@ -using System; +#if UNITY_EDITOR +using System; using System.Collections.Generic; using System.Linq; using jp.ootr.common; @@ -332,4 +333,5 @@ public static void ApplyArray(this SerializedProperty property, string[] data) for (var i = 0; i < data.Length; i++) property.GetArrayElementAtIndex(i).stringValue = data[i]; } } -} \ No newline at end of file +} +#endif diff --git a/Runtime/Editor/ImageSlideViewerEditor.cs b/Runtime/Editor/ImageSlideViewerEditor.cs index ca85df1..b5841e4 100644 --- a/Runtime/Editor/ImageSlideViewerEditor.cs +++ b/Runtime/Editor/ImageSlideViewerEditor.cs @@ -1,20 +1,26 @@ -using jp.ootr.common; +#if UNITY_EDITOR +using jp.ootr.common; using jp.ootr.ImageSlide.Viewer; using UnityEditor; using UnityEngine; +using VRC.SDK3.Components; using VRC.SDKBase.Editor.BuildPipeline; -namespace jp.ootr.ImageSlide.Editor +namespace jp.ootr.ImageSlide.Editor.Viewer { [CustomEditor(typeof(ImageSlideViewer))] public class ImageSlideViewerEditor : UnityEditor.Editor { private bool _debug; private SerializedProperty _imageSlide; + private SerializedProperty _isObjectSyncEnabled; + private SerializedProperty _seekDisabled; public virtual void OnEnable() { _imageSlide = serializedObject.FindProperty("imageSlide"); + _seekDisabled = serializedObject.FindProperty("seekDisabled"); + _isObjectSyncEnabled = serializedObject.FindProperty("isObjectSyncEnabled"); } public override void OnInspectorGUI() @@ -48,12 +54,24 @@ public override void OnInspectorGUI() EditorGUILayout.Space(); + serializedObject.Update(); + EditorGUILayout.PropertyField(_seekDisabled, new GUIContent("Seek Disabled")); + serializedObject.ApplyModifiedProperties(); + + EditorGUILayout.Space(); + + serializedObject.Update(); + EditorGUILayout.PropertyField(_isObjectSyncEnabled, new GUIContent("Object Sync Enabled")); + serializedObject.ApplyModifiedProperties(); + script.splashImage.texture = (Texture)EditorGUILayout.ObjectField("Splash Image", script.splashImage.texture, typeof(Texture), false); if (!EditorGUI.EndChangeCheck()) return; + script.SetSeekDisabled(script.seekDisabled); + ImageSlideViewerUtils.UpdateObjectSync(script); EditorUtility.SetDirty(script); } @@ -65,9 +83,9 @@ private void ShowScriptName() } [InitializeOnLoad] - public class PlayModeNotifier_ImageSlideviewer + public class PlayModeNotifier { - static PlayModeNotifier_ImageSlideviewer() + static PlayModeNotifier() { EditorApplication.playModeStateChanged += OnPlayModeStateChanged; } @@ -78,12 +96,12 @@ private static void OnPlayModeStateChanged(PlayModeStateChange state) { var imageSlideViewer = ComponentUtils.GetAllComponents(); - ImageSlideViewerUtils.ValidateImageSlide(imageSlideViewer.ToArray()); + ImageSlideViewerUtils.ValidateImageSlides(imageSlideViewer.ToArray()); } } } - public class SetObjectReferences_ImageSlideViewer : UnityEditor.Editor, IVRCSDKBuildRequestedCallback + public class SetObjectReferences : UnityEditor.Editor, IVRCSDKBuildRequestedCallback { public int callbackOrder => 12; @@ -91,30 +109,50 @@ public bool OnBuildRequested(VRCSDKRequestedBuildType requestedBuildType) { var imageSlideViewer = ComponentUtils.GetAllComponents(); - return ImageSlideViewerUtils.ValidateImageSlide(imageSlideViewer.ToArray()); + return ImageSlideViewerUtils.ValidateImageSlides(imageSlideViewer.ToArray()); } } public static class ImageSlideViewerUtils { - public static bool ValidateImageSlide(ImageSlideViewer[] imageSlideViewers) + public static bool ValidateImageSlides(ImageSlideViewer[] imageSlideViewers) { var flag = true; foreach (var viewer in imageSlideViewers) - { - if (viewer.imageSlide == null) - { - Debug.LogWarning("ImageSlideViewer: ImageSlide is not assigned"); + if (!ValidateImageSlide(viewer)) flag = false; - continue; - } - if (viewer.imageSlide.listeners.Has(viewer)) continue; - viewer.imageSlide.listeners = viewer.imageSlide.listeners.Append(viewer); - EditorUtility.SetDirty(viewer.imageSlide); + return flag; + } + + public static bool ValidateImageSlide(ImageSlideViewer imageSlideViewer) + { + if (imageSlideViewer.imageSlide == null) + { + Debug.LogWarning("ImageSlideViewer: ImageSlide is not assigned"); + return false; } - return flag; + UpdateObjectSync(imageSlideViewer); + + if (imageSlideViewer.imageSlide.listeners.Has(imageSlideViewer)) return true; + imageSlideViewer.imageSlide.listeners = imageSlideViewer.imageSlide.listeners.Append(imageSlideViewer); + EditorUtility.SetDirty(imageSlideViewer.imageSlide); + return true; + } + + public static void UpdateObjectSync(ImageSlideViewer imageSlideViewer) + { + var currentSyncObj = imageSlideViewer.rootGameObject.GetComponent(); + if (imageSlideViewer.isObjectSyncEnabled) + { + if (currentSyncObj == null) imageSlideViewer.rootGameObject.AddComponent(); + } + else + { + if (currentSyncObj != null) Object.DestroyImmediate(currentSyncObj); + } } } -} \ No newline at end of file +} +#endif diff --git a/Runtime/jp.ootr.ImageSlide/Scripts.meta b/Runtime/jp.ootr.ImageSlide/Scripts.meta new file mode 100644 index 0000000..e59e5f0 --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7fceb08efe089a34aa6c4bcbf9e810af +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/jp.ootr.ImageSlide/00_Utils.cs b/Runtime/jp.ootr.ImageSlide/Scripts/00_Utils.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/00_Utils.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/00_Utils.cs index 7334542..c2bdd45 100644 --- a/Runtime/jp.ootr.ImageSlide/00_Utils.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/00_Utils.cs @@ -49,4 +49,4 @@ public enum QueueType SeekTo, UpdateList } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/00_Utils.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/00_Utils.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/00_Utils.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/00_Utils.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/11_UIAnimationHandler.cs b/Runtime/jp.ootr.ImageSlide/Scripts/11_UIAnimationHandler.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/11_UIAnimationHandler.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/11_UIAnimationHandler.cs index f65736c..a12114c 100644 --- a/Runtime/jp.ootr.ImageSlide/11_UIAnimationHandler.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/11_UIAnimationHandler.cs @@ -37,4 +37,4 @@ public void OnCloseOverlay() animator.SetInteger(_animatorOverlay, 0); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/11_UIAnimationHandler.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/11_UIAnimationHandler.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/11_UIAnimationHandler.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/11_UIAnimationHandler.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/12_UIErrorModal.cs b/Runtime/jp.ootr.ImageSlide/Scripts/12_UIErrorModal.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/12_UIErrorModal.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/12_UIErrorModal.cs index 15e67d4..0308a41 100644 --- a/Runtime/jp.ootr.ImageSlide/12_UIErrorModal.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/12_UIErrorModal.cs @@ -28,4 +28,4 @@ public void CloseErrorModal() errorModal.SetActive(false); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/12_UIErrorModal.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/12_UIErrorModal.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/12_UIErrorModal.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/12_UIErrorModal.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/13_UISyncingModal.cs b/Runtime/jp.ootr.ImageSlide/Scripts/13_UISyncingModal.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/13_UISyncingModal.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/13_UISyncingModal.cs index 262d261..7403d38 100644 --- a/Runtime/jp.ootr.ImageSlide/13_UISyncingModal.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/13_UISyncingModal.cs @@ -25,4 +25,4 @@ protected virtual void HideSyncingModal() syncingModal.SetActive(false); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/13_UISyncingModal.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/13_UISyncingModal.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/13_UISyncingModal.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/13_UISyncingModal.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/21_LogicSync.cs b/Runtime/jp.ootr.ImageSlide/Scripts/21_LogicSync.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/21_LogicSync.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/21_LogicSync.cs index f56a8e4..3375fcc 100644 --- a/Runtime/jp.ootr.ImageSlide/21_LogicSync.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/21_LogicSync.cs @@ -48,4 +48,4 @@ public override void _OnDeserialization() SendCustomEventDelayedFrames(nameof(DoSyncQueue), 1, EventTiming.LateUpdate); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/21_LogicSync.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/21_LogicSync.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/21_LogicSync.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/21_LogicSync.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/22_LogicQueue.cs b/Runtime/jp.ootr.ImageSlide/Scripts/22_LogicQueue.cs similarity index 73% rename from Runtime/jp.ootr.ImageSlide/22_LogicQueue.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/22_LogicQueue.cs index 19ada86..9ce7070 100644 --- a/Runtime/jp.ootr.ImageSlide/22_LogicQueue.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/22_LogicQueue.cs @@ -10,15 +10,22 @@ namespace jp.ootr.ImageSlide public class LogicQueue : LogicSync { public int currentIndex; + + public int slideCount; + + private readonly string[] _logicQueuePrefix = { "LogicQueue" }; private string _currentOptions; private QueueType _currentType; private string _currentUrl; + private string[][] _fileNames = new string[0][]; private bool _isProcessing; private string[] _queue = new string[0]; + protected string[] Options = new string[0]; + + protected string[] Sources = new string[0]; + public Texture2D[][] Textures = new Texture2D[0][]; - public int slideCount; - private string[][] _fileNames = new string[0][]; public string[][] FileNames { get => _fileNames; @@ -31,39 +38,48 @@ public string[][] FileNames slideCount = count; } } - protected string[] Options = new string[0]; - - protected string[] Sources = new string[0]; - public Texture2D[][] Textures = new Texture2D[0][]; protected void AddSourceQueue(string url, string options) { - ConsoleDebug($"[AddSourceQueue] {url}, {options}"); var dic = new DataDictionary(); dic.SetValue("type", (int)QueueType.AddSourceLocal); dic.SetValue("url", url); dic.SetValue("options", options); - if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) return; + if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) + { + ConsoleError($"failed to serialize add source json: {json}, {url}, {options}", _logicQueuePrefix); + return; + } + ConsoleDebug($"add source to queue: {url}, {options}", _logicQueuePrefix); AddQueue(json.String); } protected void RemoveSourceQueue(string url) { - ConsoleDebug($"[RemoveSourceQueue] {url}"); var dic = new DataDictionary(); dic.SetValue("type", (int)QueueType.RemoveSource); dic.SetValue("url", url); - if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) return; + if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) + { + ConsoleError($"failed to serialize remove source json: {json}, {url}", _logicQueuePrefix); + return; + } + ConsoleDebug($"remove source from queue: {url}", _logicQueuePrefix); AddSyncQueue(json.String); } private void AddQueue(string queue) { - ConsoleDebug($"[AddQueue] {queue}, isProcessing: {_isProcessing}"); - if (queue.IsNullOrEmpty()) return; + if (queue.IsNullOrEmpty()) + { + ConsoleWarn("failed to add queue due to empty queue", _logicQueuePrefix); + return; + } + _queue = _queue.Append(queue); + ConsoleDebug($"add queue: {queue}", _logicQueuePrefix); if (_isProcessing) return; _isProcessing = true; @@ -75,7 +91,11 @@ protected void SeekTo(int index) var dic = new DataDictionary(); dic.SetValue("type", (int)QueueType.SeekTo); dic.SetValue("index", index); - if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) return; + if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) + { + ConsoleError($"failed to serialize seek to json: {json}, {index}", _logicQueuePrefix); + return; + } AddSyncQueue(json.String); } @@ -86,14 +106,20 @@ private void ProcessQueue() { _isProcessing = false; HideSyncingModal(); + ConsoleDebug("Queue is empty", _logicQueuePrefix); return; } _queue = _queue.__Shift(out var queue); - if (!VRCJson.TryDeserializeFromJson(queue, out var data)) return; + if (!VRCJson.TryDeserializeFromJson(queue, out var data)) + { + ConsoleError($"failed to deserialize queue: {queue}", _logicQueuePrefix); + return; + } + var type = Utils.ParseQueue(data); _currentType = type; - ConsoleDebug($"Processing Queue: {queue}, Type: {type}"); + ConsoleDebug($"process from queue: {type}, {queue}", _logicQueuePrefix); switch (type) { case QueueType.AddSourceLocal: @@ -125,33 +151,52 @@ private void ProcessQueue() private void AddSourceLocal(DataToken data) { - ConsoleDebug($"[AddSourceLocal] {data}"); if (!data.DataDictionary.TryGetValue("url", out var url) || - !data.DataDictionary.TryGetValue("options", out var options)) return; + !data.DataDictionary.TryGetValue("options", out var options)) + { + ConsoleError($"url or options not found in local source: {data}", _logicQueuePrefix); + return; + } + options.String.ParseSourceOptions(out var type); _currentUrl = url.String; _currentOptions = options.String; ShowSyncingModal($"Loading {_currentUrl}"); + ConsoleDebug($"load local source: {_currentUrl}, {type}, {options}", _logicQueuePrefix); LLIFetchImage(_currentUrl, type, _currentOptions); } private void AddSource(DataToken data) { - ConsoleDebug($"[AddSource] {data}"); if (!data.DataDictionary.TryGetValue("url", out var url) || - !data.DataDictionary.TryGetValue("options", out var options)) return; + !data.DataDictionary.TryGetValue("options", out var options)) + { + ConsoleError($"url or options not found in source: {data}", _logicQueuePrefix); + return; + } + options.String.ParseSourceOptions(out var type); _currentUrl = url.String; _currentOptions = options.String; ShowSyncingModal($"Loading {_currentUrl}"); + ConsoleDebug($"load source: {_currentUrl}, {type}, {options}", _logicQueuePrefix); LLIFetchImage(_currentUrl, type, _currentOptions); } private void RemoveSource(DataToken data) { - if (!data.DataDictionary.TryGetValue("url", out var url)) return; + if (!data.DataDictionary.TryGetValue("url", out var url)) + { + ConsoleError($"url not found in remove source: {data}", _logicQueuePrefix); + return; + } + var source = url.String; - if (!Sources.Has(source, out var index)) return; + if (!Sources.Has(source, out var index)) + { + ConsoleError($"source not found in current sources: {source}", _logicQueuePrefix); + return; + } Sources = Sources.Remove(index, out var sourceUrl); Options = Options.Remove(index); @@ -160,7 +205,10 @@ private void RemoveSource(DataToken data) for (var i = 0; i < removeFileNames.Length; i++) controller.CcReleaseTexture(sourceUrl, removeFileNames[i]); if (currentIndex >= slideCount && Networking.IsOwner(gameObject)) + { + ConsoleDebug($"seek to last index: {slideCount - 1}", _logicQueuePrefix); SeekTo(slideCount - 1); + } UrlsUpdated(); ProcessQueue(); @@ -193,11 +241,13 @@ private void SyncAll(DataToken data) !data.DataDictionary.TryGetValue("index", TokenType.Double, out var indexToken) || sources.DataList.Count != options.DataList.Count) { - ConsoleError($"[SyncAll] Invalid data: {data}"); + ConsoleError($"sources or options not found in sync all: {data}", _logicQueuePrefix); ProcessQueue(); return; } + ConsoleDebug($"sync all: {sources}, {options}, {indexToken}", _logicQueuePrefix); + var newSources = sources.DataList.ToStringArray(); var newOptions = options.DataList.ToStringArray(); @@ -213,28 +263,36 @@ private void SyncAll(DataToken data) Sources = Sources.Remove(index, out var source); Options = Options.Remove(index); FileNames = FileNames.Remove(index); - controller.UnloadFilesFromUrl((IControlledDevice)this, source); + controller.UnloadFilesFromUrl(this, source); } foreach (var index in toLoad) { - ConsoleDebug($"{index}"); if (index < 0 || index >= newSources.Length) continue; var dic = new DataDictionary(); dic.SetValue("type", (int)QueueType.AddSource); dic.SetValue("url", newSources[index]); dic.SetValue("options", newOptions[index]); - if (VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) AddQueue(json.String); + if (VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) + AddQueue(json.String); + else + ConsoleError( + $"failed to serialize add source json: {json}, {newSources[index]}, {newOptions[index]}", + _logicQueuePrefix); } data.DataDictionary.SetValue("type", (int)QueueType.UpdateList); if (VRCJson.TrySerializeToJson(data.DataDictionary, JsonExportType.Minify, out var json1)) AddQueue(json1.String); + else + ConsoleError($"failed to serialize update list json: {json1}", _logicQueuePrefix); data.DataDictionary.SetValue("type", (int)QueueType.SeekTo); data.DataDictionary.SetValue("index", indexToken); if (VRCJson.TrySerializeToJson(data.DataDictionary, JsonExportType.Minify, out var json2)) AddQueue(json2.String); + else + ConsoleError($"failed to serialize seek to json: {json2}", _logicQueuePrefix); UrlsUpdated(); ProcessQueue(); @@ -255,7 +313,11 @@ private void DoSyncAll() dic.SetValue("sources", sourceDic); dic.SetValue("options", optionDic); dic.SetValue("index", currentIndex); - if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) return; + if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) + { + ConsoleError($"failed to serialize sync all json: {json}", _logicQueuePrefix); + return; + } AddSyncQueue(json.String); ProcessQueue(); @@ -265,7 +327,12 @@ private void UpdateList(DataToken data) { if (!data.DataDictionary.TryGetValue("sources", out var sources) || !data.DataDictionary.TryGetValue("options", out var options) || - sources.DataList.Count != options.DataList.Count) return; + sources.DataList.Count != options.DataList.Count) + { + ConsoleError($"sources or options not found in update list: {data}", _logicQueuePrefix); + return; + } + Sources = sources.DataList.ToStringArray(); Options = options.DataList.ToStringArray(); UrlsUpdated(); @@ -280,6 +347,7 @@ private void Abort() public override void OnPlayerJoined(VRCPlayerApi player) { if (!Networking.IsOwner(gameObject)) return; + ConsoleDebug("try to request resync all due to player joined", _logicQueuePrefix); RequestReSyncAll(); } @@ -287,16 +355,21 @@ public void RequestReSyncAll() { var dic = new DataDictionary(); dic.SetValue("type", (int)QueueType.RequestSyncAll); - if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) return; + if (!VRCJson.TrySerializeToJson(dic, JsonExportType.Minify, out var json)) + { + ConsoleError($"failed to serialize request sync all json: {json}", _logicQueuePrefix); + return; + } + ConsoleDebug("request resync all", _logicQueuePrefix); AddQueue(json.String); } public override void _OnDeserialization() { base._OnDeserialization(); - ConsoleDebug($"[OnDeserialization] {SyncQueue}"); if (SyncQueue.IsNullOrEmpty()) return; + ConsoleDebug($"add sync queue from deserialization: {SyncQueue}", _logicQueuePrefix); AddQueue(SyncQueue); } @@ -304,11 +377,11 @@ public override void OnFilesLoadSuccess(string source, string[] fileNames) { base.OnFilesLoadSuccess(source, fileNames); ShowSyncingModal($"Loaded {source}"); - ConsoleDebug($"[OnFilesLoadSuccess] {source} current: {_currentUrl}, currentType: {_currentType}"); + ConsoleDebug($"success to load files: {source}, {fileNames}", _logicQueuePrefix); if (source != _currentUrl) return; if (_currentType == QueueType.AddSourceLocal) { - ConsoleDebug($"[OnFilesLoadSuccess] AddSourceLocal: {_currentUrl}"); + ConsoleDebug($"send add source to other clients: {_currentUrl}", _logicQueuePrefix); var dic = new DataDictionary(); dic.SetValue("type", (int)QueueType.AddSource); dic.SetValue("url", _currentUrl); @@ -321,7 +394,7 @@ public override void OnFilesLoadSuccess(string source, string[] fileNames) } else if (_currentType == QueueType.AddSource) { - ConsoleDebug($"[OnFilesLoadSuccess] AddSource: {_currentUrl}"); + ConsoleDebug($"add source to current sources: {_currentUrl}", _logicQueuePrefix); Sources = Sources.Append(_currentUrl); Options = Options.Append(_currentOptions); FileNames = FileNames.Append(fileNames); @@ -347,6 +420,7 @@ public override void OnFilesLoadFailed(LoadError error) base.OnFilesLoadFailed(error); HideSyncingModal(); error.ParseMessage(out var title, out var description); + ConsoleWarn($"failed to load files: {title}, {description}", _logicQueuePrefix); ShowErrorModal(title, description); ProcessQueue(); } @@ -359,4 +433,4 @@ protected virtual void IndexUpdated(int index) { } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/22_LogicQueue.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/22_LogicQueue.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/22_LogicQueue.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/22_LogicQueue.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/31_UISourceList.cs b/Runtime/jp.ootr.ImageSlide/Scripts/31_UISourceList.cs similarity index 90% rename from Runtime/jp.ootr.ImageSlide/31_UISourceList.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/31_UISourceList.cs index 5fdbcb3..c34f7ba 100644 --- a/Runtime/jp.ootr.ImageSlide/31_UISourceList.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/31_UISourceList.cs @@ -31,14 +31,16 @@ public class UISourceList : LogicQueue [SerializeField] protected Slider sourceVideoIntervalSlider; [SerializeField] protected TMP_InputField sourceVideoIntervalInput; - protected Toggle[] SourceToggles; + private readonly string[] _uiSourceListPrefix = { "UISourceList" }; + protected Toggle[] SourceToggles; protected void AddUrl(VRCUrl url, URLType type, string options) { if (definedSources.Has(url.ToString())) { ShowErrorModal("Error", "This source is already added."); + ConsoleWarn($"this source is already added: {url}", _uiSourceListPrefix); return; } @@ -85,14 +87,19 @@ public void BuildSourceList(string[] sources = null, string[] options = null) options = definedSourceOptions; } - if (sources.Length != options.Length) return; + if (sources.Length != options.Length) + { + ConsoleError($"invalid source list length: {sources.Length} != {options.Length}", _uiSourceListPrefix); + return; + } + rootSourceObject.transform.ClearChildren(); Generate(sources, options); } private void Generate(string[] sources, string[] options) { - ConsoleDebug($"Generate {sources.Length}"); + ConsoleDebug($"generate source list: {sources.Length}", _uiSourceListPrefix); var children = rootSourceObject.transform.GetChildren(); var baseObject = originalSourceNameInput.transform.parent.gameObject; SourceToggles = new Toggle[sources.Length]; @@ -132,8 +139,7 @@ private Texture2D GetIcon(URLType type) protected override void UrlsUpdated() { base.UrlsUpdated(); - ConsoleDebug($"[UrlsUpdated] {Sources.Length}, {Options.Length}"); BuildSourceList(Sources, Options); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/31_UISourceList.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/31_UISourceList.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/31_UISourceList.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/31_UISourceList.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/32_EventSourceList.cs b/Runtime/jp.ootr.ImageSlide/Scripts/32_EventSourceList.cs similarity index 86% rename from Runtime/jp.ootr.ImageSlide/32_EventSourceList.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/32_EventSourceList.cs index cb21daa..1be182f 100644 --- a/Runtime/jp.ootr.ImageSlide/32_EventSourceList.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/32_EventSourceList.cs @@ -11,6 +11,12 @@ public void OnSourceEndEdit() { GetUrl(out var url, out var type, out var options); if (url.ToString().IsNullOrEmpty()) return; + if (!url.ToString().IsValidUrl(out var error)) + { + OnFilesLoadFailed(error); + return; + } + AddUrl(url, type, options); ResetInputs(); } @@ -19,6 +25,12 @@ public void OnVideoSourceEndEdit() { var source = sourceVideoUrlInput.GetUrl(); if (source.ToString().IsNullOrEmpty()) return; + if (!source.ToString().IsValidUrl(out var error)) + { + OnFilesLoadFailed(error); + return; + } + sourceVideoUrlInput.SetUrl(VRCUrl.Empty); var options = UrlUtil.BuildSourceOptions(URLType.Video, sourceVideoOffsetSlider.value, sourceVideoIntervalSlider.value); @@ -57,4 +69,4 @@ public void OnSourceDelete() RemoveSourceQueue(SourceToggles[index].transform.parent.name); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/32_EventSourceList.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/32_EventSourceList.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/32_EventSourceList.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/32_EventSourceList.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/41_UIDeviceList.cs b/Runtime/jp.ootr.ImageSlide/Scripts/41_UIDeviceList.cs similarity index 90% rename from Runtime/jp.ootr.ImageSlide/41_UIDeviceList.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/41_UIDeviceList.cs index 8cc9954..aa9752f 100644 --- a/Runtime/jp.ootr.ImageSlide/41_UIDeviceList.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/41_UIDeviceList.cs @@ -29,7 +29,6 @@ public override void InitController() } _deviceToggles = _deviceToggles.Resize(index); - Debug.Log($"device toggle: {_deviceToggles.Length}, {rootDeviceTransform.childCount}"); } public void OnDeviceListUpdate() @@ -42,8 +41,7 @@ public void OnDeviceListUpdate() deviceSelectedUuids[index++] = toggle.name; } - Debug.Log($"device: {deviceSelectedUuids.Length}"); deviceSelectedUuids = deviceSelectedUuids.Resize(index); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/41_UIDeviceList.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/41_UIDeviceList.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/41_UIDeviceList.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/41_UIDeviceList.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/42_UISlide.cs b/Runtime/jp.ootr.ImageSlide/Scripts/42_UISlide.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/42_UISlide.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/42_UISlide.cs index d4dcf13..4b56924 100644 --- a/Runtime/jp.ootr.ImageSlide/42_UISlide.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/42_UISlide.cs @@ -119,4 +119,4 @@ private void SetNote(int index) { } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/42_UISlide.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/42_UISlide.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/42_UISlide.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/42_UISlide.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/51_UIStopWatch.cs b/Runtime/jp.ootr.ImageSlide/Scripts/51_UIStopWatch.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/51_UIStopWatch.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/51_UIStopWatch.cs index 3d6b92a..a94683c 100644 --- a/Runtime/jp.ootr.ImageSlide/51_UIStopWatch.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/51_UIStopWatch.cs @@ -52,4 +52,4 @@ public void CountUpStopWatch() SendCustomEventDelayedSeconds(nameof(CountUpStopWatch), 0.1f); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/51_UIStopWatch.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/51_UIStopWatch.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/51_UIStopWatch.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/51_UIStopWatch.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/61_EventHandler.cs b/Runtime/jp.ootr.ImageSlide/Scripts/61_EventHandler.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/61_EventHandler.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/61_EventHandler.cs index ba3ae23..0297655 100644 --- a/Runtime/jp.ootr.ImageSlide/61_EventHandler.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/61_EventHandler.cs @@ -30,4 +30,4 @@ protected override void HideSyncingModal() foreach (var listener in listeners) listener.HideSyncingModal(); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/61_EventHandler.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/61_EventHandler.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/61_EventHandler.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/61_EventHandler.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/ImageSlide.cs b/Runtime/jp.ootr.ImageSlide/Scripts/ImageSlide.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/ImageSlide.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/ImageSlide.cs index 1a80065..0f3aed6 100644 --- a/Runtime/jp.ootr.ImageSlide/ImageSlide.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/ImageSlide.cs @@ -20,4 +20,4 @@ public override bool IsCastableDevice() return false; } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/ImageSlide.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/ImageSlide.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/ImageSlide.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/ImageSlide.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/Viewer.meta b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/Viewer.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer.meta diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/11_BaseClass.cs b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/11_BaseClass.cs similarity index 83% rename from Runtime/jp.ootr.ImageSlide/Viewer/11_BaseClass.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/11_BaseClass.cs index 39921da..6267347 100644 --- a/Runtime/jp.ootr.ImageSlide/Viewer/11_BaseClass.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/11_BaseClass.cs @@ -7,6 +7,8 @@ public class BaseClass : common.BaseClass { [SerializeField] public RawImage splashImage; [SerializeField] public AspectRatioFitter splashImageFitter; + [SerializeField] public bool isObjectSyncEnabled; + [SerializeField] public GameObject rootGameObject; public virtual void UrlsUpdated() { @@ -28,4 +30,4 @@ public virtual void HideSyncingModal() { } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/11_BaseClass.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/11_BaseClass.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/Viewer/11_BaseClass.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/11_BaseClass.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/12_UISeekDisable.cs b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/12_UISeekDisable.cs new file mode 100644 index 0000000..5573156 --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/12_UISeekDisable.cs @@ -0,0 +1,20 @@ +using jp.ootr.common; +using UnityEngine; + +namespace jp.ootr.ImageSlide.Viewer +{ + public class UISeekDisable : BaseClass + { + [SerializeField] public bool seekDisabled; + [SerializeField] private RectTransform presentationTransform; + [SerializeField] private GameObject mainView; + [SerializeField] private GameObject slideList; + + public void SetSeekDisabled(bool disabled) + { + seekDisabled = disabled; + slideList.SetActive(!seekDisabled); + presentationTransform.ToFillChildrenVertical(4); + } + } +} diff --git a/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/12_UISeekDisable.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/12_UISeekDisable.cs.meta new file mode 100644 index 0000000..028be1a --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/12_UISeekDisable.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: c53408f5f02f4f0bb910363e25c47570 +timeCreated: 1725345803 \ No newline at end of file diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/12_UISlide.cs b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/13_UISlide.cs similarity index 94% rename from Runtime/jp.ootr.ImageSlide/Viewer/12_UISlide.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/13_UISlide.cs index 6d80177..db1a14b 100644 --- a/Runtime/jp.ootr.ImageSlide/Viewer/12_UISlide.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/13_UISlide.cs @@ -5,7 +5,7 @@ namespace jp.ootr.ImageSlide.Viewer { - public class UISlide : BaseClass + public class UISlide : UISeekDisable { [SerializeField] public ImageSlide imageSlide; @@ -83,7 +83,7 @@ public override void IndexUpdated(int index) public void OnSlideListClicked() { - if (!_slideListToggles.HasChecked(out var index)) return; + if (!_slideListToggles.HasChecked(out var index) || seekDisabled) return; _followMaster = false; animator.SetBool(_animatorFollowMaster, false); _localIndex = index; @@ -92,7 +92,7 @@ public void OnSlideListClicked() public void SeekToNext() { - if (imageSlide.slideCount <= _localIndex + 1) return; + if (imageSlide.slideCount <= _localIndex + 1 || seekDisabled) return; _followMaster = false; animator.SetBool(_animatorFollowMaster, false); SeekTo(++_localIndex); @@ -100,7 +100,7 @@ public void SeekToNext() public void SeekToPrevious() { - if (_localIndex <= 0) return; + if (_localIndex <= 0 || seekDisabled) return; _followMaster = false; animator.SetBool(_animatorFollowMaster, false); SeekTo(--_localIndex); @@ -137,4 +137,4 @@ private void SetTexture(int index) slideMainViewFitter.aspectRatio = (float)texture.width / texture.height; } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/12_UISlide.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/13_UISlide.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/Viewer/12_UISlide.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/13_UISlide.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/13_UISyncingModal.cs b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/14_UISyncingModal.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/Viewer/13_UISyncingModal.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/14_UISyncingModal.cs index 72a6eb5..63cbc56 100644 --- a/Runtime/jp.ootr.ImageSlide/Viewer/13_UISyncingModal.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/14_UISyncingModal.cs @@ -25,4 +25,4 @@ public override void HideSyncingModal() syncingModal.SetActive(false); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/13_UISyncingModal.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/14_UISyncingModal.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/Viewer/13_UISyncingModal.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/14_UISyncingModal.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/14_UISplashScreen.cs b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/15_UISplashScreen.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/Viewer/14_UISplashScreen.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/15_UISplashScreen.cs index c9d70da..8def052 100644 --- a/Runtime/jp.ootr.ImageSlide/Viewer/14_UISplashScreen.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/15_UISplashScreen.cs @@ -12,4 +12,4 @@ public override void UrlsUpdated() animator.SetBool(_animatorSplash, imageSlide.slideCount == 0); } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/14_UISplashScreen.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/15_UISplashScreen.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/Viewer/14_UISplashScreen.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/15_UISplashScreen.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.cs b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/ImageSlideViewer.cs similarity index 99% rename from Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.cs rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/ImageSlideViewer.cs index 0a43512..c97f119 100644 --- a/Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.cs +++ b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/ImageSlideViewer.cs @@ -15,4 +15,4 @@ public override string GetDisplayName() return "ImageSlideViewer"; } } -} \ No newline at end of file +} diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.cs.meta b/Runtime/jp.ootr.ImageSlide/Scripts/Viewer/ImageSlideViewer.cs.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.cs.meta rename to Runtime/jp.ootr.ImageSlide/Scripts/Viewer/ImageSlideViewer.cs.meta diff --git a/Runtime/jp.ootr.ImageSlide/Udon.meta b/Runtime/jp.ootr.ImageSlide/Udon.meta new file mode 100644 index 0000000..a7e7051 --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Udon.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b299e9083337f0429ce268bab36d21e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/jp.ootr.ImageSlide/Udon/7a85f9265bb7acf4c995fea9560a3467.asset b/Runtime/jp.ootr.ImageSlide/Udon/7a85f9265bb7acf4c995fea9560a3467.asset new file mode 100644 index 0000000..da546e8 --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Udon/7a85f9265bb7acf4c995fea9560a3467.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: bf61d954ecb803046953c666facfb904, type: 3} + m_Name: 7a85f9265bb7acf4c995fea9560a3467 + m_EditorClassIdentifier: + serializedProgramCompressedBytes: 1f8b080000000000000aec7d779c1445f3f7cc6c38504454544090034182084b3080a8e424205904150eb803240a071215051405151513a2822282a2a2624e985131e70c46cc3e8a39bdd33355b3357d557bdb3b8bfcfe788fcfd1d73ddddfaed43d1d6b9c6696fb633771ff1b64f5b33a5a4dad81d6286b9235d1fdaba31b4e70fff9314cef634d71c3d1eeff45eeb32656613925d54f03bb9afb7f773736d52a754b4eb346bae158ef797fabd8fdbbbb5bb6d88da9d412f7b7d8cd65c7dd4203ad4ed6f1566f6b7f7bdf7220067985a6429aadf8b22bb8ff77b066ba4f8b3da25425cdbc47fbbbfff5779f4cf59e4d7089c67c43ad933db626b8cf46ba65a658e35dcc111e628565bf5bde1f961f9c08e1100807bbbf15e1ef18fc5d01fe96d210e324088746c01806e108084bfc30f6941b262daba00589abe7a3212c80e72db5e7a3082da740584cd24e86fc4f435ac2b2e6ad24692acf70927f248445e9fc677e93055fa7423841e3eb198daf67cae10b9f53bec6327c8d81fc9b19be36439e710c5fe3d3f9cf9e97055f93219caaf1f5acc6d7b3e5f085cf295f9318be2642fee718be9e833ca7317c4d49e79fdf360bbea6433853e3eb798dafe7cbe10b9f53bea6317c9542fe2d0c5f5b20cfe90c5f33085fbf65c1d71c08cfd4f87a41e3eb8572f8c2e794afd90c5fb320ff8b0c5f2f429eb90c5f67a4f32fd898055ff300f325a0b31589bbbd70fc371f2b5108e92f43bec3481c7154fae1103f0be24740fc6c08e743b800c28590efc82c683d57c328c9016311f0f3691679cff3f32e5c02f1f3210459584bd2b23ea702a42df6e596ccd4562e80f0c2305eec15e0a33589635f8b7a3ec84af7c950b7b514d22ed2e85b9ace537f7d16fc16407831a9cff43d5419c24b22605c0a32ed03f176208f57413e6d485c3def0ce94759a1b6177b8dd08018af873182bc6fa4f37a7f635e15be0965da92b8abe38a4b356c2cf716e43f9ac455f836a41f43e2aafc3288bf03cf8f2571b79e0a737c79541ca3e1bd07f9db91b8c2bb0ce2efc2f3f624aec2f7895c2e87b40f08ffef9334157e08381d485cf15f55a3eb35083f22581f59e1fef235c0ea487447f20534770acb3428ff0629efd65d00b45a5784f1acab080d4097b5dc4ab7d7519076252997c95ed1365740787539f93361e4faec060857427823a1e17a08d790b45510de94e67bd100485b0db2d94af2af85704f78b68dc8701b3c5b47d2b642dacd69fcf3966a181f83be3a9338d5e727f0bc0b89bbb6b53bbe6f3979e0bbb50aa1fd16bffedd1fca428ed817dea1d1fa29e10ddf0f77913ab0de8d697e17d784b43b21bc95607c0669b791b4cf21ed7692f605a46d20727c9d9445ac8aa42c62552465110bd3ee86b4ed246d7708ef21cf94fcbb6acfef25f572cfef23f571cfef273472cf1f80f46e5afa8350ee2b78de9dc455f82591db97beadec8176cbe9bc0a840928f335e0f6207117a332e643fb7904c287d33ad9efe52cea292171dacf3d0ae1260893103e06f98ecb808d76fbb815b6d76f882c702ef5449ade25a3b4fcdf5ae1b6f8ad15b2ebd877f0bc2789bbb2d9b34206da9ed4f842fe91af6cc6643837c3b927cebdd4df38977c96f0857d36ce5bb668e5a14cec7ba0a11789abe7cfa7b10ec0b97726fa5e8210c7ee2f13fa702cfe4a1af3021cdbe2f8e4b570f9d80f56789cf74306bab01f7843a301ea8dfd4fe3f17ff03cdb3123e21d0ce57f04bcde24eedac05e9532c8a97e58f7b19f343bfac9c7d8a72ae47b13c2b7b4ba7fd6e4f2b3192fb15fa0fcf19007c657b15f211dc793ef40fa6f90de9794c7fcf4793f2887e3a7df353ca4ff8f707a80f7bbf61cf160bc16fb53c3ab07e97f09787f6acffb69cfff86f4fe24ae70715cf70f843b20df0012577aaa14ce671542be8110ffc0977b7cb31feeb75ab3837734fc9e61fc20ff8710e218314f76606d85f010083f26e5a00eeb9374b90bf0fdb18d94c3fc380e68cc60d5cb02ab31c98fe3017cdf7fed97a98d74631f4ede7141fff255ba8e0b713eba1dc2cfd3cf6a6f0a97530ba99e2c0791b892e9bf907e02e4877740dc2e5b77dcd1306c92aec298159a1f7971a5e76e1a0e968b43fec1619dc4134cdd49928663846f49396e6cf19d568ffe1cdf0bfad803fae178052b34f688c3fb2f5e90a6c5931fe509d7793a85d3b14ff4e264de5215ed0afbeb2610fe54b60e6b475abf17e1bae18fa41ccae7673fcf801910ffc58f37caf4fec6771cf479de784785bfa5eb5cd20ed27ef7e335d1fefed0cafc99a6258e34fd45d27683b4bfd3d84b57937c58ae22c987e5300dfba47fc3f520767c772bf43e8ca36e275a65fb8e49693a1ce05125535c9bb407acc376d2e56a60b99881ac737db617d05109783c91c455b887155a5ff0e28ab638c42bc3f32124ee3eab06b20fe4b38f95ee1354fea13e6fd5d76bb830a68eefa9e1eee9e3561f20e09694830b63e378150db70ae0ae1770dfe17133ca1431f66668332d3bdaa02c8c856cec3770bcb71fb13b950efb2cd6fec4f6687a3588c31e8d8df6b72fc4497bb2616dcede8d49db9da4c13aa05d89f008eb1ef61e5660fb6a892f5b3ebdf294cf0c656c98af58b007605749d7b904d7b4e1bd15dfcb0abd9b82f7d8de69dae37b93bc2adcc70abfaff6f1edaae6640d1bcb5585fcc3c274c5f72575a03ef72279c8bb2778beb7157af7c4a9dd619cbc270ec8c286ed7dfcbc4b6768f4ef27c8667f42f7fe24af0ad19eda92b82b9b5a83356c2c573d2c1b2fae684299750be70ff8dc3fcc674ddc5bcbc427d068d586908cc56cb0f78c63b1dac49e6b015f19f601b01d7879b19efd7dec03ebc9e502db073ae335c27af0e2541f0758a171b21777693b10d736e7417a2d2bb44713071e0ec4365108cf8703add5acf4389db461ca0fcb77f530fdf601c45e60bdcbae9996f355ad481ae64179d520581a8647af9e7620295b4ba33f93ac1b4048d64432e6ff9c94d3d6f7e28406c48dd7b6f8b644792824795558c70ab7a53abebe0a9fd4b0b15c5d2bdc96ea427890663f0792748c93b526c40bda5aa1156a6b8555c33856ddec6416af67b1f3eb787d2b3c7fc57a717cde9794c7fcf4b936bf8e3708e3d9c86fc3707a80d7407baecdafe38d343cd44f6301af91f6bc9ff6fc102b34bf8ee33c13da6b1cc6f2f143add0fcda8bbbfaafdbd3d7435db06b1bf465d7099747be037a9b025e1189ab7ac710fde1d876ac15b44f7b8cac5b1b6ccc3ea89c3a7b6975663917b7516628936656682dc18bdb96f15e653c25d86273cd16612d2ede42b3c514c94f9febb6d852b31db4dd569aeda4487efabc9ff6fc30cd760ed36c07f6cfe34768b673846f3bf560ffba1e8cd96d983bdb0dc2e5033a8fd4f487ebb1516ca621848d84ba5a6b75656b2b8d3519b4d66c0570ed7dd3656b95966f2b36b64f5c67c9b06f7f30b63d0c0f85e759ce1f5979619b017985d69090a64ce39646e9fc36b4173b152e1f6fa3c91ef7b7b35d336b08fcefc8c04701c98bf434b7b29ef7c68fb2f836dbd60ab7316c43475be1367b14c94f9f431bb3715c748c86076773e2c70a78c768cffb69cfdb59e1368bbac636db1ec20e56b8cd76f065dab0ad2fa386b04767439bb70f0f970fe8ec6885db2cee214569b34768b4621d03c37598b62db4e978272b3c468175b0609c8467347a92b82b9b469b201f8e4da96d1d6985d69b6c6cffa6b6cdc903cf8a601f46c7b85d202dd318b70ba1b306c1d230e238ffeb06fc8f207197ffc6837dfcc63026b4c1b6eda3359c1e56b87df7c8834d1c13a6d16e972eb71ce66d369c45897727bcc1baa8b7de8f32401bee10ce5386fe5e5698fe2c7518d489f6749c15dac7f5e2ae3c0fad16ce6fe398b827e41f49e224bfdd49a3bb17e41fe5cb2c0e74db9d35997549d37a28b4f3430be159572d6fb774ded4602d6f772d6f8f74de96a55adee3b4bc3dd3795b1fa9e5eda5e5ed9dce7b541f2deff15ade3ee9bcbd3fd5f2f6f5e3c7d523e9e479c6f731dac4f120e362788e63ae3e56786c753c495721f6dffd205f0989abb037a48f2671a5eb277d1a9bb6d2e8e8afd181f386011a1dfd49ba0ab1ef1ca4d13128331d4df13d80efadfe1a3d2758e1b68e7b3451daba4e33d631305c873d305d471cd67cec41e93aae1e45d2300fe607bd04fb3203c3755af5c2e936d6a9ef039da8f18fef1a667fdc469b1aa2610cd6f81d6285e74e983fdbb1e9d030be77064b939377de0ab1707de8fa34d66ed98c5571bdec248b6f1b276b367912495721ac03c7876936896b0a43359b1ceadb646aab4f63f33e1a1dc32dbe6d1469740c27e92ac4f7dc488d8e9199e9680e67396cd4efc91a3da334dbc0332e51dac6291acd58c7c0701da1b601f2c8d8368a497ebc43a1b70dbcafa1b70dd05799b651a2f10f7265db06e8c42ed2308a357e71dfa288c44ddac688307ea86da0dde4a36de0bb7e8cc5b78db19a4d8e21e92a84bb24f1719a4d8ef36daf25bce35a611b005bb54769f59fa6e9e0b4e83618d0365eb303e411e6b0f66822dbf19046ea8dc33d199bd4bba22a49c33c386e2bf1796fb5d5cf7b188ccf6da0c71e17ae6b67f06e8fd7782473ed809f49240deeb2d893098f73481ae6411e27107c4c43ba61cdc19ecad4599ac6bf0ec7c3534839c4827b2936dc7db1675becb90e7b0653c74c9206f776ec59a4de4f491ae6c17a4f07fccfd3f9f1fc878de767711de30ca6ee33d3e5aec731c95c520ef5897df494b2b4c6a75ae179df1492aec2c956780d7cb26f6f476cd770b01cda17f67bb07f6fcf237a4d963dd3619fa595d79f9f6d85f7a3508f25244ed6c8d574d97b5e07c2ba56989f1e56889f23713d669e96af95960fd7ede68771033a509ed05eec05243d53fbcbb6af5e28d45b1aae370efdb1b72601180d70dc7c8e153a67629f6b65bd0664e3fc7f9a15eac383b59be956b80f9f46d255be451007db8fcf80fc6349dc9573eb0d3e4dade1fca47d5ef9340698b300f3541257e16c481f47e22a9c09e9e3499cb69bb95a1b98ebd3d866804f539b52ad5c5dad5c0f1257e19cb4aebdbf15d67d42dd73006382961ffba4f3b3900b62d649d76b2f0e3fb3c99aeac0e1907681815dc079d3f8599a5dc01da938b6df3e241fa6ab7c70f7290eed2abe40b30b6c47f3acf0b8739e2f8fa3b6fab4b61dacd1b3304c4f30fe3d47a3672149a7f4c09db5f8228d9e4519e85121f6cdf8b74b63db0540e35f1a8de7597c5b3a5fa3f13c924edb12ea728946e312523fa511ee40c6e93be50c9fc6a31bfa341ebd56d3c705803191c4557821a4e3ba0acaeb222d3fca73a996ff42928e74507b07ba8ec1be0bfbc18b35195e6c85fb55789eedb8c6bea47c5bb72f857099261be479b1464b91464bb67dfc651afea59a2c918e2bd2656f403ee03e589cdcdfb3afd4e8bc4cc3bb2c0bbc6504ef2aa01dc77bcbd3cfbc7a551ab95f15070c7b054983fb5ef635e93a57af25f9b05c45920fcb61dab5404763868e650c1d5732745c95051d57327490fb69f675105eaff1bb9aa9fb46620378266b4dbaee9b71bc780384abd2cfd6e27c612560127eed9b20c4767b0543c3553b81062adfe5106eb04263cae05d7607c97b07c9abc2ebadf03b56c5dd76dfa99a868de5ee84fc93489cd675ab8677ab8fd7a182cf478776611b8edf15a619f1bc748ad743c38375e08e70f6d85ea7b50d3a1702ccd05c08cefe649c0b6d4ce767e742376bed602a5367b673a15b20843d7c1bc66165e642b73175dc9eae63fd3c48bb15ca71731cd4e5ddc41e71bc7f2779c6cd07502f1b85e7988ef305bc2b5842e264bed07e1eb1e73cdb70d74d1a76441beeb4c5a7b9339e0bbe249a0d77aee9e375c5f7c43d16bfcf7b8d153e9b01f744e2d75ae17dd97b487efa5c3f9bb1328c17f08174df6085e69271e88fe26bb472f7103cfa5c3f477493566e9956df6aad3e38db1e5f27d47793f6bc9ff6fc162bbcef0c6d2bd877863b9af1fbacf0bef37dbe5eba609f72b796ff362bbc0609774ccb9cc1213ab591265dc6b76b3ceb32b93ffcdcaea3d1723bc9a742bc175a44e28ab62cc761e5b5d34eb0cf178cfbf05c328eef055b0df611755b5d41f233b61ad4735db89ef8759a0df72771aae35556b86f1840e2ae8ebbe1fcf65e2d3fdafe40121774dc1dd788600e69dfaf61a15db72671039d0432b85190b5d61e83f31fd8defa92f2989f3ed765bd365c4f301fd2dbe15a92aec2c502decd9aeee07d596efbc47b0dd86f0e207157773d70bcfe8096dfa07df68075341bee4ddb0f6958d83e5b93b889ee1eb6c26b3d8f58d99ff779d0e2df030f69fa86bbd1f187357d3f48f2d3e7d84f3e02711ce73c1a8e07ef41f479a4d270bc86e7f307913c98aec2cd56f8ddb9d9d759cfcd1a0e967bd60af783cf42b849b3b947b4746d1d3ac0dba2e1c1be58fc310def512dfdb4304ed00f3e6785fac1e3b0ad5f580e9d888bebb30f92fcf4b9feae7c5ca0f30901ef71edb97ea6ebc9301eaecbc69f126ce649ed793fedf9d356b8ed3e6d85dbee339a1d0c2071d70e7a57f1e5d81bc7da200ffb31ad3cda456b1237687fec3ac2e3421d03c3757067b9ec27acecd7e45077e81b4a5f93435f50341fa6ab10fc17c5d16f4f0989abf0452bbcaef4a22fdbe3c7fb341effbe46c76b613a025b7b5da3e33592ae42b83b1f7f53a3e3cd0c74a8f085b48ebcbf5ddafac0fcafcf228d47f4f93391c455883e7f3a6bb4bca3e5c7b1f0bb5afeb7493ad241d7b780aebe3096b7f11cd9539aec3ed0ecf0833cd8e1d39a0cd01fd1441257f932ac0b85e6a168cf28a3f735bcf7b3c0a373d1cd56f8ddf5ac81ed43ff69e31d34ec8fa7965f36d80342bf49ad48dcd5533f38ffdf6f7806d9820ddae87b22dbb5bf9701fb49193b783f7f64f1efe7ad56f8fd8cfadd6685fbda8f487efabc9ff61c7d00f52771dad77e02e1a756b8affdd497577ff07fd51fc73ad07fd8af69e53fd36cfcb33cd8388eafd1ff46b67a7853a06da0469be1bd07fb2d3fefad788602efe37d6ef1eb0dc41f50fc0b925785dbadf01867bb2fef819d346c2cf725e41f46e28a26ece3ba85f307630ff41104638f0159f825b4a13fb4f1ecefbb6939ddba40a30f7d05e9bc7f4d78ff9ae455e1371aefdff8bc0f2ad5b0b11cface1916a62bfe1da903fc12d8ef913c646d29788efd5ab7701d81bcd04711c86be0862ce4b51542e8d7e3e8e300f9817b0c36b97b10077f3836b97b70fb2648dbe6cbe3045c07c7355db05b7a2fde067b62efc5832dd8db35fad06f4d6b125798f49e059c81cefa9e0562ff4030703def4b9287e824788e36846b9b5f0bf4965a217a6d7a5f11fa3bbb769adec20cf72982f705de0340df3be8e714cfecff144eb7bff7b1871442fc07525e853b345a91860cf75e066ff5d34f9c13c6b2c97d4a1b79fe96a4fd48d254b8833c039f12f6cf4cda2f695a36e079b59f20246d8add8ffe89a1ed3786b6dfff7bda82772bfab0417fb8876be978d6e0172ddf115a3ae6fb55cb77a4968e6781f0fe00fa1ac23be170dfc1465f43b8a70f7729ecbfb4fc78d7e26f2d7fa63e087d73e09e1ffa4f9a45e2aead0d85f1cf50dc0bfa37cb72b8ee7428a90f75d19460550cd313477f4d83c2f5c5ff08a7c77f27e92a44594d2071978e9360dd487577a17afe16eaf9279ceed8243f3e5721fae4e945e22a2f1dbf609f98e5f8c5011f3d16de2d423dcf2671952f96c6db00ef6707e714409f9320b205da9c64badcc959f87a730a0896ed0f9942b2a940d255685ba1f7440264171a87a14c987198837980ff442ccc7f02e5b47bbaec5d305e77c0df4bc22175c1fdbb440270da91b80a93903e87c45588be88e66afca3ff8f4124aeeac13b6c9a4fdb4485342d0146450da3024957e16e5668ace3c55d7a8afa6838580e7de80c263aa6cf2b859f0732c172d0873895487e6533e4fc74027dbd64383f9dd883f0ba47b89cb327d1099cbd4b544e638d8071bb03fe4d12247f82a6297acf80bc55345b41df22682bd01e1ce25b2401fe3e9c7dd2756f043e1c7896a842f257d1647566385df70713e4df5ba3656fa213953e4fcbbf8f961f7ce43870163881fe39ce227115eeabd935fad580331e09f429d29ed829b50d7cde299c8e63db805e18db9e826379c6be134e34fb1ed149c3c172a8d7619afdefafd5b3bf56ae1aa19de83e489f6765c57311da07ca16eea0535f3d280feaab2748db49be7a1cf0bbe3809f9504fa76e949e2ae5c47a2af32b8c7ea54267573ef20c0c5315aa286865b0370715ed82a0bdc04c9df32cbfc4b641a0319a0ce0f009ac9183381be4fc81833510bd2705ce8d633b827298b58154959c4aa48ca2216f677d5c27424d0c74729892bba338ce9476dcaa093ea1a7e6d0d1ffc3f3884f64421a4917bb17757216998077900bd16c3bdc862c0766a85f1b2f5b1eb1ca8e986f82c0f74f321a39b8fd2f883705c50db0acda132cecf605c93a86385e6614e21495721fa6f2925f1727454324aaedfa9a3e11fa4e11fc4e8a85e163aaa575647255bfdbca3c1ee9cba61bc6c7594a86fb1f394201de6290eae9de1b80e7dbee0772260dc9368184ec7be89cee512e0fb82cee5bc722a2dc35c2e71309143bdb0aca96d057552db3a38836dd50fdb9673b01faf11cfc2d6501ee87be66c125758c06b027dd0cc2771153681f405244ecb3582e70b495c85e8abe61ca0a38d96aecd0b039c2ce6850116fa923997c455883e611669753433a803ed05fdbf9c4de2947ff4f3329fc455887e5e1690382d87fe661692b80ad1cf0bcaadad96aecdbf039c6c78422cf419732e89abf0704d6e4769e959d4e1403bc1719c43f64f12b016e1e01e8d6bc3f77423699807db89b209d7c6c735f1f38e6b27d7ef3409d78b7525d087cc30125721fa826947e22a44bf2773485c85e86be4181257edb57e9a9783e665a103d8874ba08f924124ae9ea3df0bb0a3601c7b745a2e01c631618c20efb144e6c792bc2a6c6785c7b6ed7c194f28d5b0b15c7b4d7eed2144df24e791b88b33fe6d5f16e3b7fae1849e847e157624b4c1b83718d7a2ff958e5a5d289363888c48f9e079cb30ed01eeb10457d186f3d043c3784e33421bd0eba4d2fabd0fd6459ca6a45c166b77c19d2fa4a773984fbc9f9340d97781e72349dc95edc476725d4e73a1aeae9a4cd11703730f2b2b1ed0c6ba693476031a3fcd40630b81c6ee803586c473a0d101fd5bb09f18ea7be08c69c6bea78755a6ef99b4d6cf3b29c377409c56e13a8c658be3babe16bf46731cb1334ceb994e730ef3ebd2cf4427d0e7c8205206d35588fe24da92b8cb7329d89973b8808b38e86f03fd9836d19ef7d19e23ed7d895e60af38d14fa3b52f4957617f8dd6fe406b350d07cba1af8dc18416fa7c6098b604eca32606a569b38e2369645d27c88b3e2fce2771150e86f4c55a7ef443b184c4553844cb3f98a4ab107d1bc058c1eaa9a55f40ec84b62bf4f9d091c455883e1ff07b61bdb474f091e0e0b7d6b0ed90752a0bda68c675aa53d2f913a7687a39339c5e669d0af3a3df89d9248ebcd23512cc3f5ccb3f1c68c2f5a8222bbc4e5504e1082b3c1e401f04b84e35d20aaf53f52574d0e79dc2e9812e905ed4455fed795ff2dc95e5645cdbe8a9e5eba9e583f6e0e05a39eaa5755af60e8ec5da306947a5d370edc7694bf40c6b3f0e8e3fdc3a1fc0f727be67eb40bc5d3a4f6916fb940eca12e714646ce0801e1cf28e4dc0392da7334903b9385dd2753fb183e4c37215493e2c8769e0632a318ae0822d27887f04dc4f4a90fd93c46892a6c2b1a01fc00ccaf6d19e5fa4d5732a530ff92e68e25492a6c2f1e17abcb8db1f4ecf30ff0fea22fe1aac2e248df6719817efc79f4fe22a9c6485fb2ccc8ff7d49790b80a4fd3f24f22e92ac4fbf2d8c775d5d2a18f73ba5afc3b096c2381f7ce879138b19304de87c7bd8643b4f2d385e7f49b9fb0c7ef74d3ca6867009cee5a9dfa73f461d64d4bc73e05ef817727711512bf0f09980f26a6117bee49d2549cf8e87a0ace6439f8bec4bbe9b877d38ba4ab38da2df6a778ff7b2c89c7fdcfb386f2e15d73d453372dfd649f9e99d5c2cf9dbee4b94ac73d33bc87abcf75c8bde6c49924af0ae759e131c33c9fd6d93b346c2c7796663b6741b8c02adb3617927a17903415ceb7c26d733ec86887cff3acc1617c07c73eddb47438df963857b3039cb79f43683847ab7b3489abf06c92f76c9f9e5970ff7b36ac213a03b4fa71dcb248ab1fd60712e711b9e03d18721e28017343f13c10d242e905da6617026df82d2ebd9de25d74bd9d2e26f5031ff87d97a04c57ed39ae974fe59f3b68732b84e7380e44fd69dff44de07d777867cfc4f37099e604999e0df065346714a10bd333cd47f1597f429fa20b7c9139381ec573661793b87a8edf137779781af4e2a0df33f4c9866365bc775d50963607c6780e8e33d197d56350368b6fd739d8462fd068bd200b5ae9181fe617ce702bdcef3032758a08af585e97a9c9373b408f6754f2e93c639980f94e18d381b169027d1a5c4ce2d9f08e3c103db1f3da91d1eb492c0dd79380f741027d125c4ae22a44ff0dcb485c859740fa655a3afa22b85c4b5f06e970efdc194570b01ce65321fa20401df7d3d2d156710c1ac1762d5cb7c73eef722bbc9672b99f671eb63b1ce3e2b7eb87433e726e3d981322bf74dc8a7643cffd009fced834c63399bea5827d0dcaf94aa07916892b9a61fdefac2ae17289abacf0fc1e7d368cd6f07a86f1cec2b111c8ddfb2e79a63eae58a373b946e772c09d0774de172e97b85aa3f36a8dcee51a9d88f78326a772e874c685f33b744c8e3646cfaee23c8c9c5d7d16e6b4cef8eceaccc626f1ee5c02df752349dccd33bf10ea8471bd83ebc6382f217e2b029b84bbacce698c4d121f6016f0e14c4d633c97c559e58076b85790c03bb323495cd10ef7031c1c17e37e06ce41ae6368877bb5ce7486763a2780fb67ce8c34c6f3d9acfd615f00e7d3132b35da57fa7916c0bd6907c7e530c6b560ff33b18aa17d15e49dcdd04e7c3e5978be6a2ea11ddb4536b4e33807ef148f247137cf4218573a302e72604c6ac1d9b5c40d0ced3740de790ced6791343c6b75761a630beea5e438be72605cbc10ef7d164288e705f0fef21012577ce2ba03cc039c73c2f2b11642b94ce71af14c09de1dbe32435e53fea0cf4ddc6885fbb81be139f83449acb1c27ddc1a9fbf735e0fe358c40f0d5b1fe0057d27deaf6e4be22eeeb968db30af711669f4e0bde8d624aeb54907e61ab44d3ab066c1b649431e126badf0da3cca729d26cb755a39bceb7d9556ef68824be3987fb9f6bc3c3ab9f59ef58005737d07d75ef0fe38de7d05fd276e0ba727d693fcf439be13e15e4ae2760d6f0da46f10f06ed79e231eac4d24eed0f0c0af4502fd93f4d5f0eed09e5f1d7eee7d9bdef4bd0877f213e8c304c7e2ebb4f4d3648c40dee8fb05f9b995a4ab107dcaac2071954fbbb71fc8fb1e010f7c6a24eed5f0c0978375bb8687f2be4fc0837740e27e0d0ffc3924d0b7c6a924ae42bc8f3f8ec45588f7f7c793b8aa6f4339fac17379d846f0de7e5b1277fb91c5e0ff7031f6a1e0672681f7fa3b87f1128f68783d343cbcf3887741ef2c87cebb347cf41f700d89ab7013a417937836f899de594b7cde2b67f27bfc0491a3aaffdaf271333e83337f65be3989e7e9aa58e139754d88c39cc981b9ba05dfbbd8d5df96742ecc428670d73481fe080691b87a8e63a127acf07e0fc83ef118a4b7d0f01ed374739df6fc49adbec748bacaf7093c6fa9e16dcbc1a6be048ca7b53a9fd6787c46e311ee5b279e82f4951ade53028ff87cb356df53245de5c33b759d34bced39f08867f69ed3ead4fc5c24d0af47471257e1b31a8f3f91748e477cbe45abef5992aef2e15dbb4e1ade8f39f068d086b3f99eaaa3d67dd4f87a13c4f17c22aedda02f819e24eef6a317c3991007d79ae07bf3cea58427bc3744fc3ae2f79a9dcbaca01dbf504af261b98a241f9683fc177f0321d270b946c3150c0d5732345c95c67ca51dc9a7d37055061a32dcabb271cd1a7d63cc257115a26f8cd924aeeac37122fa9c684fe22a445f19ab485c85e8fb027c44daf85d6b9c87a20f8c1b485c856f40fa628283e92a7c059eaf0ee326d09fc58d24aec237c378c13bfecbb44c03d960fb6f43f260ba0af19e735b1277edef8aaa1a0eb973e9bd23dc3c976ed7f27cafd5f5bd56e70ff07c0c89d37ee35bf2dcd5fda57f69e5e999ffef489a0af12ef9d124ae42bc333c97c45588f77cd790b8cbd3b2517eddcbc0ffc9e5df68783b343c98bf26f04ee96c12a7b686f787db6b3a465f238b491c75ac42bca77e13c1a1e96bb5745cf75e45e22a44bf20d76bf9d13fc63a125721ded1be59cbbf1dd26f2171157ea4e5ff80a4ab705bd8c613ef917415e25d5bdc7b7b85a4abf063ad3cd283776fd793b80af1dd7e2b298fe92ac4fbadba5c31fd362d7dab26d7ad10a2bf0c989fd9b83ffa99a6d74f49ba0a3f87e71b347d7f4ee294df2fb5b6f2a5957ec7aab682772f2a41fb85f3bf57b4b3c4fe33e8ef249b41dbbc5ecb8fb6b78ec4a98dddace5471bbb85c4391b7b8fa4539b5a4de8a136853e2fe66bf549badaa6f1b38de07036863a415bba43d331ea7e31c9a7eb9aebd73fd7ca519b5021faead840e8c274da06d1765fd4d2d1571df7ce847946708f0de71783c3cf13dabdecc41f9afde1bdec3124ae42bce7dd42c3fb4bc3fb4bc3fb3b8c17d059427009dd41fee5e1e7de77000dc77c36b49104de11c7fd10b40bbc13de87e4c374db7be48736e42b2171b72d2e576b026e5b5c0e76e8c05a8b7d6c665a035cc70aad1924e12e6512ef338f237115c6acd09a4132965d7decf815e785b0fee15c93c6c03bc2ceb5e9b46402d2ae236949485b6905e3bb372a91b28855919445ac8aa42c6265e0c146bb463b1a0bb2b893c4151ef40ddeb777d4f30932265bcfa4b03d26713edf96c45d7dacd8e8f3bb027d2ec359b064052bd41e102f5941c3eb11c6bb06e6aecef51ade6e613ce7060d17faac24ae2ff422713bdabab083fddbe4747ea4cba67b749c1c2786e9b4f12cdc602b237fc80ff60f49bccb3d86c45558d10af7471335bd550cc76d3ca3b75cd333d683f7ee3b6af4eda1d1b747b87cb2b2465f650d77cff0f300b75298ce006fcf309dc1f372e4cdb671985fd85349dd88574aeac5f6bc97a6ef44597fe75e1e4a930aa798d3666bdf5249e21dfcb624eeb68b95e0ff7a25ec9bd9b03f97c43bf883c278c97d34bc1e61bc5578be768d86b76f182f686733c973151e6085db19bccf22b533fc66c8ac747ea4cba6fbaa9c1c6784e9b4f10ce3302b237fc84f60a7e85b600c89ab107d19ac0ce3057aab1a8edb784e737998aea01ef403d051a3af9a465fb570f964758dbeea1a6e8df0f30077ff309d015e8d309dc1f372e4cdb633fcbe03eebfae237ac47dde9bd3694918d33bb7a46de1cd45240df3a0edc05cd09e6b4e5ba6752f1bcec7246b812c3a93b80af15ebc76ff2e593b4d47b2b656a6d00ab7631577dbddeaf15a9d78071ec65ec93a10e23defbbb4f483207d20a18dd68fcf5b86d303fbc03bf830afba617d18c726df33c9ba0f43dba9a7d92edc77b6711d51dbb349d62775615a436233887bb086db90a4abb09126eb46beacd760bf72ab8687e5f1fe33be8b71dc4aceab26f17b159fa46df4f64d90b6cdafe74618ffaea944f85221f13b9a3c44d3437da2079411c9e7d1a89edf1da63928dfd00ae951bde2280f656406b2b2d1e7bcae8b06e5e8e26a421fa70ba45bd0c54d2033e7360d4fd205f69b86bab8a9939f7ed395842f15926f0d26f15e7009c94375714d389fa92ed6e0193d5c33c1735ae4bb1c6823ce9d695edec133311b4839ecfbee0ad316c26a90051699d7b07d37ee47c37eb1f73d1d858df7e90791b80af1cebe6e47e4beac737718cbb9b7ac8d39f7a5697e0fefdcdee3eb725d438249e58d77f63b6ab4a6c2b406343527b26a4ef2aa10efeab72571b7ee9b276bd8580eeff0c338d5b99fc843e331d9320b1ee1fcffcdddc2bc265b111c3c9f22f08f7563be80c6bbc3b407e59b93f26eddebd0561ed078a136d62c0b1b5b99d9c6d87707ccad92e84f00c7b130664f1ea1d9dfe1245d857897bf2389ab10fd196cd4ea69add5b35ab395c3b438e65faee1b411e83d8a4fd7f1936db4fc88bfc6b78bf568270f86cb39c447ca7b5b210dce5278dfc28267eb0787cb05cf0c74e3c059081bfb6c72c7c8c6be6d26b111f40b99e1dbb249728f10bf2deb7d7f29c7f19cf3a85fcf07b04eef6c82e7dd211e4bd312f81c7ccc8f4ffa2b0b7cd8c3b7616dd6599fc6bb6180f60cf6f393e883e1061257cf214ca2ef8131244e9fb7d36cba1d84ed211df7c580c724fa5d6847e2767a6f26d9119eb7277115a28f845524aec2ce900e6b30167ca324d945aba78b564f57ad1eb81393eca6d5837d5df7703dc9ce245d8578170edb5c7b92ae42f40db190c4953e60ad3689f76bef2571f51cf65092786ff63e8d4f4c87bedd7952d373bbb40d64bad3eac059041bd6b7e977b56d584ba7dfd54ec25c3ad377b5bd3c8801fdb937f6316ddb4f4359a0df86fd3c1bf6a36cdccf2b32c4c5b55df403d086c45588fe05f09b4bd82ff649f31060f40d630479fb1199f5237955a8f90448824f803b276bd8580eef9e1f4de22ac4bb3073495c857897e9181257b4c1d98324defb3a96c4ddfaef78dfd7e79d68fb38df1b4c78c17b6b25240fed0790b61335da7a87cb07cf3b85790d70fb115c97a63bea69f21d42681aa2d12bc8f7ae428d162ca7f95408e43894d4813e0b1e0c970de81d12a6f7ce0519ec0fd745d16f411b125721fa3f40df1dc833f14b10600cd3304e21e92a1caec962b82f8b8d0d351c2c57a4d9da49c2f34ee1f4400ea784e570d78c308e43fd3866db5ee17c9603be3e9d67ada0eff910c72070d62a3982e80cee9b2547024db3495c9581f5c7e00cd1c3e172ce5e39d00ae7b01c5c6bdc4268059b709ef77570f73c88bf002159470aeecd94b397e6bca8d5f732a90fefb6bd04f53de4a7df0d3e1a9c5722d4fb6ad9b2811f861cf6ff021b27be0c1c984b278b413f83481e4c57618966e3253ebff755d370b01c9e711b46e22a24ef393c3b9b1c9b4e4b8e21692a3c15703a90b85befbdf57c39dffb8350ff38ad7edc3b44df08e791b8c22b05bc39e5e04ed070713f0dedfb91707e87acfd04ba6b945977583668efa3ac507bbf07dbf9aab27504b6554e1dacbde19c13fd3a0c2271f51ce7cab877d493c4952dbc1dc6f17c6165b2ef946697b827d696c45ddcfb9127384f867740027ad0af436b12b723ee4118f290441f162d3459a28f8a41244ecbe1bdf2abc2e502999ca6c531fff2f0f3f2e864694779a18f8ab924aec2d3ad709f8efe34b1ee69f0bc3d89ab10f73c5691b80a712f06e68c0ede97817338c9d9f0fc06125721fa95584c70305d8533e0f9ea306e726eb85c20437286339001de416d43f260ba0af16e675b12776d73534f0d87acaf797e71dc3c0f35d4f25cabd575ad56277ebf730c89d3fe600579eedaec436db5f264bd30790d495321de613d9ac455b852b3819510ae82f43524ae785a0d75c3b72137d5d3f06ed0f050a7783f6e3689539bc27b82ed355de2bdb41b495c85f334db984bd255883e246e22f8347dad968efe185691b80acf0adb6e907f01a4af237115ce87f45bb5fce867e2161257e1422dff7c92aec245611bf7e8c17415ae81e7f3b5fad05fc37a1257e179907e33694388a3c2c55a7de79174155e21c815d36fd3d2d14fc92a125721fa68807c0eb609f42bb098e4c37415a2ef800d9ade97923879eee0fdc4d1daf34edaf3124207f7fc1d6297748c8e7c2ed3f8c4f9e0c51a9ff8adaf57b4e758df1be17c49f47df0a81687757a6cfb411f8177e661ccf0208e19dafaed77139cffdd84fbd7dc3804fb73a94d60dbbb5dcb8f6d6b1d89d33674ab961fdbd02d24ceb5a1b3483a6d33ab093db4cda05fa0f95a7d922d621bbb5ecb7fbec60fb659bd0d61fe251a3fd8e6166bf9f5367581c6cf2292aec273c2fc386f9663d3f85cb2697c2ed8343e0f6cf41cedf95be17ce5d9a8d8b6e79274dab6f5f7f9c55ab9a5245d85e80764038923dd2abc348c1be84b6ab3e8dfe3761247bb52e1e51adea5249deb23a769e919ceaf0663fbce567a3c81695dd26981ee6f22f9709d682dd43388e4c17415ae83e76d49dced1b9e5aa1e16039bc7f3c8cc455784bb81ea7134957e17aad9ef5504fdb307e88d74e6579c5fa82671dc2f4b07d18d278ab40e3ad244ec75c3785db4e12efa7437ffa24ce5d2e27b4988ebf61be94d4ee563bbd49ba8ae3f818ed10ef468f2571579e4ff709e773d0c76bb14ff3d3c3b5f4e3cde80dcecea07de077124d78463f0d70063e89f7b93791b80af1bef66324ae42bc5b3d8ec4151eae0d3e6e480ffafd80b57987f8dd77706ffa239206f6e16c2569a007679b15cc233f42ff2b78f6ff9ef2e5ea7cea97b5e06cac85be34e1dcbcf339f08c7bf44f90b80af1aef82012a77d04de0def42e2aedd6cdeace1dcabe1e01d716c0b78277c8c560ef64f9c4fe0f9609f9fcd7026d8f942e00fcf7198e80dd65d920f846975f03ce983e1f4e403245d85780fbd2389ab10efb3b7d0ea7958ab07d77d469372348ef9976b388f08f43ecaa7ebf8c947b4fc880f6b30cfe1dac7f67039e7abb46d6e451bfe12c2f1e967cf2dd2cae13313ddc0f72c1dd43b6d53b85e41db14ae896c2569704637639b7a32030d705fcef98ea1613a43c3e90c0d33b2a0e1a90c34c0bd40e7078686d90c0d73181ae666414386bec5817b80ce8f0c0df3181ace6268383b1a0dc94d90e769125765e1ce59f231783e84c45d5b7e01fb0718df394b2dd9161324ff8e2cf3a78467aa2c8ce582f68777fa7b90b84be3cb6dc3f91dd83f4d3e01f9479238cdff4bb85cf249c83fcaa72389f71f608f9ade7d76706f81dc7d7e05cf71ffcee4ff2343fe3f99fc7f65c8ff3793ff9f0cf9ff2d9b5f8958ca1fb3cdf0630e831fcb903fcee44f64c89f34a4a780c1af90217f4526ff6e19f2efcee4af24e747fb8ac13d8de45356780cf014d825ec63c52a33f85534acbdd3f57c0cef92187c772db617a145d5f38c46ff3e0c7ed5fce1b36d19ce58076df9692bdc969ff665f07a8570fea02da32f8b91244ef2c7f60d974b6eb6c26d19c65731b843407d08c4e03c3ef521f03ab4ef5835267ff50cf96b30f90fc890bf2693bf5686fc0732f96b67c85f68885f87c95f3743fe8398fcf532e4af6f48cfc186f26fc0e46f98217f23267f63393fda57d0969fb5c26df959b04b580b8c1dc2e01faa61716d0ddbea5e8416d2d602fa9b32f8cdf287cfb665d8cf88c1bb3b9813a1af96cd244edb3cfa6a194ce22a449f2bcf92b8c2a5773d012b893e4c0691b81b06eb63e867a32d89bbfa7813de3978de8cde190dd256a6d3d83194e67b26f992c6cf4b045ba52fd2cae11ac2cb5ab99749fda41c2bfb9b3599a23f8fb624aef8dde4ebf14db4db75f01cfd8d0c0ae3255fd5f07a84f1de021a63cd35bcd735bc1b345c5c3bc7fbfdbd485ce58bb03f1cc3f9e12d243fd0e5dd4fcaa0cb20dfcd0483ac6349fc213f810da0bf953124ae42f4dfb2328c17e8edb570dcd1fc0a067ac67ad04743478dbeb734fade0a974fbeadd1f7b686fb4ef87980fb6698ce00ef9d309dc1f372e4cdea00d799ded37880752907d79bd007444f12776df29d27c3384e397eea102fd001ce9bda92b88bfb2eb4bf18de1958a4d1b30dcab526f188b66cca4312fd5c6c0c974fa21f8b41244ecb6d85e75785cb0532f9508b63fee5e1e7e5d1c9a5c5905758cb8a1d4e6403eb5631f27dc124ac07c68e4ccbeb970d240df3e07b0fcfe5df93832de29938f4b33188c45588eb69fa1d9bcf080f88f1791823c8fb05e1ed0b925785db355bdceedbe207e3356c2cf725e487bb2fb1d6844e9471459217650c72d4efbebcff839ffe4127c2970abf2238e0c729e83b3eb3427d12d68df9021aef0ed31e94ff829477eb7e1fd6ce636d345ee8dd175c87cd70f7c5bb8361a87f5cff8d1de5632e85bdda18fa2a86719cfd0fc1c63b70ffa669195a55aec381f18d837393e7cc6874707e88df3ec4f1d4b18638f82ec7bb102fe58613c3fcf80edb0a386043b176900efd630cf7675c39fdda4ec3009b88b5d730f07d07fd4eac731ae3b7948601e3ab58270d039ee318d1f9487bde259c2f584f7b34471b8273e5b1aee676e860db411f6383485c85e8434dbfff4cfc950518df853182bcdfa7f326bf277955887ed3da92b8db3f6cdba1616339f4790663d9587742a79239bd330aeba099ee8c6e9be1a76fdb42f85221f1af98fc316c3349f4e5d6315c37e60b686c19a63d28ff3d29afd6e6618c14eb11c6a3df1f45ba327d7fd45bdb377d47e2d96f1c8fe3dd8f9e24eecae963905b0ceed1c4ca39c31de0e23c698786bbc3c7fd04d63b623dcd706338aeff59c3fd1970e1ce47acb7212ede55f945c3fd0570715da78f212ede51f955c3fdd5c7fdb410f2f533c4053fd4c9df34dcdf0017f63362030c71f1aec6ef1aeeef808b7dfa20435cf82666f20f0df70f1ff733583b890d36c485be30f9a786fb27e0ce837c43cc702ddc7bfb4bc3fd0b70b1ed0e35c3c5bb09c9bf35dcbf7ddccff15d7392196e0cefbafca3e1fe03b838d738c51017cf7ffcabe1fe0bb85b21df7043dc223f544be814d78bbbb85fc0b83b36c21017d66d0b6c0dd7065c3847141b65880b77230a1c0dd7015cd8838d9518e2c2bbb220a6e1c67cdceded20df1843dcb18013d770e3808beb86a71ae2c2598c8284869b005cd8ff8c8d37c4853df382a4869bf471bfc4b1ce44435c98b7141468b8e07beccb95906fb2212eec6d1754d0702b002eae9b4e31c485bdf0828a1a6e451ff72b7cff941ae2c279b482dd34dcdd0017ce89c5a61be2c25e7ac1ee1aeeee3eae1ad278f96618e2c23d82824a1a2ef802fd1adf13b30c71612fbe600f0d17fcff7e8df3fe3986b8b0775f5059c3adece37e83fb476718e2c2f9db823d35dc3d017738e49b67887b16e054d170ab002eae939c6d883b1f70f6d270f7f271bf85fdc5d802435c38e75bb0b7860bbecdbec5fef11c435c380f5cb08f86bb0fe06e827c8b0c71615daea0aa865bd5c7fd0ec7bfe71be2c279d8827d35dc7d0117fbb12586b870eeb8603f0d773fc0c5f1ef8586b870ceb7607f0d777f1ff7fb42c8b7d41017ce891454d370ab012ef6379718e2c2be7441750db73ae0e2f87799212e9c272ea8a1e1d6f0717fc0f1efe586b8b0f7567080867b00e0ce837c571ae2c2ba6d414d0db726e0e2f877b9212edc192aa8a5e1d6f271ff87e3df1586b8b0575870a0867b20e062fbbdd61017ee6315d4d6706b03ee56c8b7d2107715e0146ab8853eee8f38febdde10f706c0a9a3e1d6015c6c67ab0d71e10e56415d0db72ee0e2f8778d212e9cbd2e3848c33dc8c7fda91de45b6b88bb0e70ea69b8f50017dbc3cd86b870cebda0be865b1f7071fcbbde1017cea6171cace11eece3eec0f1ef6d86b8703ebca08186db0070d16e3718e2c27e4e41430db721e0e2f8f74e435c38e35dd048c36de4e3fe8ce3df8d86b8b03750d058c36d0cb8685ff718e2c21e53c1211aee213eae5a3ef2f2dd67880b67720b9a68b84d0017df3f0f64819b20f91fd4eac1715aeb0c658767a0177c73c5c037570c7d73dd49e26e88f75962e8a3cbd03735debd8895b3e712eb10ce5f803eeb6691b82bbf5f61fdf7d70de172059aefbb025863c535ed00afa78607fd9f03eb7ddefe42263a1f09d71bec473c6f269758678d3ef413d783c45dfa7e1f1cce8fdf772d40ff7923499ce67f345cae00fdc8c179b70238a711db0461a772f87e2ccb7c8f6799ef892cf33d995dbe705ac2b6d57a4937abd82ab2265bcdbc03a8aa271a64f5b33a5a4dad81d6286b9235d1fdaba31b4e70fff9314cc7924dacc272ca78eb4aea3ff5d3c0abb6d49ae9162db66c3556eeef46a6ba49c56e7e85d1dd2d536ab5b45a78d813dc67235d9c29d6786bac35c2aaee7d33036befe8fd5fe4e618eb816e292853c5fd65aa50c48d77ff15bbc54add828ac8a96e7a573765a2fb3bc54d1be9c67bbaa12a35dc6a6e0d75ff855106b9d58eb7a6b9b101eeff933dbce12ed9657396c7d2c96eaa5ea69f8b39d1a36e829b82029decc6c77b14f6f7fe9fee515aec51dfdd4d2b75d31437a3ad0e6e38c3abad2cef53dcbfb93a0780c8781a4f364ab7ed0a444d9d5c6e14f5cd3c5bfcff1ad9151af19661b714f8cd30decc3bcd777e194dfc7f19fa9d8c5af4ed0e18cd3d91d9a1b4165633efbc7dbf321234e7b12c87bc7dfbf23edc6a9591175e324add07781ca435fceeef97db171ef0fbcf89306b2dad666a69dafbd64c26d6320956e135b4f72b8390998544229e5284eae2b739f17b5714faff87e2f7f38df5f2992b20e9bdfcc20ab0d5d2c0a92e714ddd4c933c7825a2096e86d1eee3fe1ef0288f0d2eb58cde52aa92024ff4655face5912f09dfe184efadf90ed825b63fb49c7e8f177f85808bb4f89b79a3a56a198c54aacb1b465581b11436a3f8b00b5eddd03ffecd11f167fa576d3f75c929d3d6b5bc62e0f805c3aabdffd14f478d5fb067fd26cbdefd7e74974667df3eaed23e63ee59b831d6f194d125d75f327edfe9f7bc7675dd83d70c59fecfe97d2e3f73ee51b54f9d5070c1dceddbab970efd7bd323a73c3ba17bf799e75558f0d03e8f5d73d892593f265f3ff6c26b1fbf7d46dd155fb72ba99ae0ed6037cf0e72e14eb284186709bbfdd7cdb0fcf74e263bd83de02b6d07ea87976125a12d95478324c13827c1dd77cd7b2437f9a9cda4fdb3965fe58caf0153e92518e9a594f4f66488f266f81535a2143d027892534da5fffe1de377d0e3cb19b0f0ca513d52edb2ca399657ce5ee28b22330d927a0a38f5a8c4bdb9579fc5e9a740d64f054e3fde15a2b13b553f03dd347f6ed9d97b3ad69b90a86165b19babd4ad4949be853bc551b29272a3867ab9e128b7cc786fb09a49976a97ee504d68bc1eab7a7a54ab353b8f5649e71539ad78972f27ec12adb4f7d2d550a9d4e322139f34af3fe5cc5e3bfb66ad9dfd3ced34cfa09dfcd12c6969374e4bde55d471bb444b8839c98babda702892bff6b33f37e0f3b6e89b65d0457e28839d5bffa740189f55f70c63e7132319c5ee9c517877194fdaa9465176b110ffeae0961de32a6bba67dad3a029e8f933abbd46d60df3004ffe8516b7e469469124e14a9c84bddd8991bba4d9a951abaaa9c83a9dcc2733d9932a9159de35b396772d4fde0d32d87b6ef449d2df8393be776f7ffc2e947e7bb7b45a3451eb9cfd826ebc8b57a2d4ab259a3e0ecc5a1fb53d7da4cad547748a250d5596068c85f91830eec9e9dfbb5b34f43fe9dffabbc3ace35c129bbaa1925a11f90bd7b1d3bd09e6ceacdd3adc4bcdf3db509bf463b9d55c379b97d6419ed144af4c32892a9c49a837953adcc0ce3b0da6787b7116e179b328d9853dc20037ef68986e75f510a6c1b65aeebd40fdac7b81833d85362eb717c88d4a49cd7b4b6a6ec0a8b96ea2c3741335ef23813764c0bf49dc769c097855ce86bcb1e6a9bbc486baba9c28f4e3dd89f9a9d04be77720dd286b5b6aecd952d30cb6940f6a259bda97d38c771675d74c45fb017f03dc724596dacf2cf1b8999067fd1c92b57e9a58e54d45f347b3a4a5fd382d79de6846ed542d0d70a9ebe33d4b2f87f4f24a8d81f481ae75aa3e2bcca9943bb34e0ecd5a274d3d9da89e29df144a1ad89fd1404a69a01947b4de353695bbc66a9c6a3d674ebb72c0ddd12ba3ea55ffabb5cd59eedff91b70a7b25675732bbb0177748a25d557e754afeca14536aa6f2cabbe06a77acf67d7ae5a9cddb97d6ecbac95deca2a7f717667f5b507482dfdb0882dbd2607ac6ce0f06c809bcbc0b5383bf26afb2ff79ad5b3491e8ad28bf9368c3a307a883e57e1cde3488bdfa42d9f0449e90772ba51d364750c36f2a4ba36a7204f6b03ff4305d1a30cb91d0768633113694f74d5cbf0914d6df0cd01ff479a3cb7f5949d5b0592ba0b25751f9d0f75d7e1d0d5544af93d893a1daf2b811f9b07f083387065a8ed18cda794e6bd63ca36a8b0a1adf64c7a7a935e659f7dbd7cead755ae4e465b998c7a927a3a64d35366d04c7d49781df320bc8325aa3b45a4ba01d77dd4feafbb0f3afbccadfbe8cc751f857cf7914d6d5db2e93eba0add47361548dd47434ed3ea85ab2ee5947d87e9aa3e52567523a90176971a600f4d0806cdacb154d97152653d73afec10a9b25e5265bd73afac0957996a31c773952913ec534e655de5ca0e9538eb2b71d62f77ce9a4a95f5972a1b907b65cd98ca9a796fb79dbb15179ed4abbf8759eaf0d364b78e526f4e57eca28ecacba283ea42b39b940cb2702b2ebff449bd4c8a53b55a033e812359576b2d59adcd396035ed199c0d702b19b80507ac66ca2766039c61a6dc9203565b9543b201ae2a03b792808746043e4c023e2922f0e15c9bf406853b77d1a0ecce55d983160ac1cf37d07b874a6dc264f3eee4acdbe729162e1aec3c5aa5b67a04a76ea59561d9a8fb1459dd474ac0c32302b7e6ecc81bff17ed543bcabc8a973ea61f7585b1286bbb19e1d98d9a1ae48f36c94eda70ea546fd491d9a87390accea33860a5ce51d9008f9081db4a141747a4f8680e58bdb54a2c6124e37d563c3dd7ace4694c5d75f20f1929dbc3bd73b371ce315c5bf026a1bbf2c811dd3c2eef085bf9ed614cd6ed61ac95dd912353faa436712c67086a38726a3616966138d24e021e1711b83d07aca698e3b301ceb044dc81035643be09d9006718f275e42cbcfeaeeeeda90545b3ee89595bf7a42c7b7b13da24cbee24757193a52e0ebe24efff9875629db9ca54273685a9ac99b75895ff363eb51cfac7caf477916cbf34a2ed77e580d5719769d900d79681bb49ddc0f488dd40770e58755ca747ecb87a70c06a8236231be00c13b4e33860a5bc991195d75352deac88caebc5012be5cd8ea8bcde5c57eb2de116efc2aeb6bf8b30c5f2fd05e07995685dee9cacbbdcb95e97dba8dcce26171aa5aef7784ebd6afe7d4636eacd30ffeec301ab2d04e59851df42787aaf650f9b6c21f4e5c0551f3e2f1baa3374aefd246b3f2ba2b5f797c47136238e0a25475d6e228e011cb85a679f6f455c671fc835526f597f575ccacdcd39c10297d25aba10e0876f880badcc17734d3d0c0ce2f4a3a4784e26d274352d94d5740257813aa27eaec50ca0d43168e5d62fd300a4ba5cd960ae32b52d775e366d24c3fedd891cb0da293d3fc89c06fed7fd29035e49061f2251ad1c83e6db758201d34325ba964494e64912f0051cc3bb79f9a2b172b254e3851159398503562aba281be00c73816192c52d652caea7cd34ca0c16375c12c7c511c5512489e39288e2182189e352461c350dc53152a27a5944aa4749c09745042e96802f8f085cc201abc180724aab0f06d4429ec96060b4047e25036e19828f916cfaaa88363d5692f5f288b23e55b2e9ab199baee798d9f438491c2b228a63bc248e6b228a6382248e6b1971ec306ce21325715c17511c932471ac8c288ec992385631e2f8cbd03a4e93c4717d44714c91c4714344714c95c4b19a11c7164371944ae2b831a238a649e25813511cd32571dcc488e3f59899384e97c4b136a2386648e25817511c332571dccc8863b5a1386649e2b825a238664be2581f511c732471dcca88637ddc4c1c732571dc16511c6748e2b83da238ce94c4b18111c71c4371cc63c09b798700d5c2cc7fe94e82f757cb5d3d2c7b96021d96aa45bb128f0a95aea828dfcf6de6358e3b02f990bd0befdc6267cbfa3fc485f26ebd9bb73eceafbc282fe60dff8fd12cadea9cc519bcb2c98d8c32528a69e54b7db7033cee75dbbf4bb6fdb3a57aee91eab937a77ae64b5d8e72c15e66c1406d5a0c73a53ed1eae4b522df8d6e91b77030cb4a7b1032e99b167014a8a98bf2e9ab4f5d54cc64eab290eb42bcd3b613776917a2d6ea95ffe2a9dedfd3c160077875a7fd6946e91c94ab7b7d95118f87f0cdf041af19b6c8a219e6837aa9819dc369cc3bb23c79976aacbf68ecfd3c6c756fae34b2d694c3fe98dea57b67a85b65a1977cd17888addaabca3f122437553545e5996d844bb622baa377ae68a237be173bf6873d8bfa2f2997acea5cc6aabceef411a93b7d34a7ee7491341edac48c873627ccc643e749e08f31e03b0cc1cf97c01f67c0ab25cdc01773e06aaf4a7d9020d25ed512e9fdf5a4156dc87c81248fa718792c3394c78512d54f736f5db56954e49afb28d7fca7baed4f8d610aadd32cbc3f56e88e6ea6788da0d05bbe97dfcb6ddc1cb3ad943bd13011c54592289e6144719fa128964aa2d81c5181174bc0cf4604be44027e2e22f0a5929c9f67e43cbec04ccecb24aab77026a7460ac38c88bf8cc16fe65dc851fbf6ffd5a671369ef9f937affad470454d0c6a05927fb3bd68a937dbbe6538cbe8c05e90dce59ce4bcdb45ffe576bbee3fc74c7a2f71a6cf4aee658bdf662faf7e497a57488de615a6d16cae68d668aee4c0d5919357b369ea198e9c5c2501bf1611783907ac6653af5bd13782aee6c0d56bfc0d2be26b7c8584fc6654e46ba47eefad88bdf5b512f0db1181af9364f14e5459ac94487e3722c9ab24ab7b2f0f5677bd44f5fb11a9be41ea3a3e60ba8e4dbb99751dab397075e4f2c36ca8ce70a3f646491c1f4514c71a09786b44e09b24ebd89607eb582b29f163468985bb9b29719da4c44f222af16609f8d388c0b748e2f88c11c74a4371ac97c03f67c0c7543203bf5512c9171145729b64d7db23daf5ed12f097118137480de6ab3c34983b3870a5c4af1925563154e29d9212bf89a8c4bb24e06f23026fe48095acbfcb83acefe6c0d5b2d3f7c1036dd9497d11d77cd9e91eae1e6560ffb398c99d3a233accfd97727fd55ac178abc48babaf1e4ef176564c8cf55ea9ee1fb9baf786bad55d6d557bfa7662ee14dc2751f05379dce3171d73affb7ea9ee1d99b91fe6723ed94a7f9830770a1e9028f899a3a02ae15ef92252eb4a5d60fa38d5fdcb5f47f26f7d9b50f1a044c52f1c15b50815d952a3f2a9a966a9115d0f49bdddaf4c6ff7d71e66bdddc352dff15b1efa8e4724f0df19f00a86e08f4a1dd31f52c7f4674e1dd326c92cfe929a47174fc523ad3156fa64b27f005fad6c4cf4329b18c0631c056a07f06fcbe018fe8372058f4b16f60f6361eb2b9b59d8131cb87aedfd6b457bed3d291980f7bd63ce00d49aa0b9013c25198063471b233dcd012b49c66cf68b5565c1f792c19f91741ab7cbea74c19e663add2c8924115124cf4a2249e64124cf4922296044f2b2a1489e97445221a248b648c0156da6ff51ece36bc8dfc7c6ed12152a07157d0cb74e5e90eadf2d22632f72c0eab5ba7b36c0194e74bd24e9b912a3e77a55ccf4fcb2248e3d228ae315491c95238ae355491c7b32e21863288ed7247154e1ac13dd4716799b7ca372daca7b5d62672f869dcd86ecbc21b1b337c78e7a8b858f18145aea6b65856e069f49b5af8963c1f4ce6513688c668cbf2931be0fc3f8b2bdcc187f4b62bc2ac7787d8f71756646b198ded84d4f855010ea12da186fdc53e8a68ff75c2ff9ee9972dbc87d5ba2735f8e4e85801324935adee16a5103d7fdecb20357f529609381ebbb120bfb732ca82f764e339ecbbc27d5518dab433d08cfe54cea7a9fa9ab99e7dc6ee7fa1ec9f4ad9d1e9e314eb43abbf9277b5b70a5a18d4d130f65d56dd36368356cf441923f1aa5cdc30fa45ee100a657a8b48f59aff0a1045e93015f6108fe9164a3b5381b553ed132753423bd9429d0bd84f3e4dad96c95d83f9061ff7543f6b771e0ea7d5f3be2fbfe6309b83022f02792c2ea441cfa7c2ac9b92e23e7c2aa6672fe4c023f88015f6908fe3907ae8605f5b2114986c9ed1712d5f5b9e99b21d5db25aa0f8e48f59712708388c05f4936dd30a24d7f2dc9b91123e7018672fe461247e388e2f8566a89874873c2f462793e96abbf93ea6fc2d5bf0fa91f87c3bd2dfffa43ee347c2fd1702847431542434797fbae56b1f7baa59f8036a9fd07a9f6a65cedd5adb28bc51215b92d12ff4fb2e3668c1dcfdbcfcc8e7f94ec3815d18e7f92809b4704dec10037f3fc22ef9a6f3b8755acbe359eff6f3bb7e064c68e4f5bdae57d64393ff44a63d69f25636dc518eb6a4363fd45023f8c01df6808feab047e3803bec310fc370e5ccd3a8f60669deac764d6f9bb44f9910ce5f1fdcd28ff43026fcd80f73104ff53124b9b3c88e52fa91f3f2ae298f66f09b86d44e07f24591fcdc8fa6d4359ff2b517d0cf75a531e2d4bdca8df538edaa9ab5fe94d1d8ded6319b6ab543363dbe6c01531ed222acb9180db47048e49e2e8c04d990cc51197a8eec8598102eae3f5fdfe9260a995db2dca84546b27ae56f51e4bbb7b325bb14a4a3575e66aaae0d5a40664a5b0a562565b01579b3a0cdbc52e7b18d636390c5b413282aedcdacf016646509103579ba7ddb231dd0c4e4a77e380557fde3d0ffdf9ee12788f3c80579234791ca349a363cd7b48c83da322579604d28b1148354381ec2919606f6ed661688055a4567a7cc4be732f09b80fd7fcf1c0939ab38db4e84748739fbbee2d51d097a3801e78ea6f8d716938dd9b02a84b747e87e40fba4dcf95ec2369af1fb7ba5bd34c7b552516fb4bd3f36ed097e783b57da5da0744b49dfd24990d6464b6be9699ccf697c00731e0150e3403af26819fc0cd8b0cc1ab4be08319f0aab5cdc06b70e06af1efc4888b7f0748c0432202d794cc6f6844f3ab25c9f92446cea586723e50a2fae48854d796804f89085c2889631867d375cdc45147a27a38d78329a713dc5c48bfc9ac76acf87dac53613f909b29f97fb5309c33d595c453c488a7e14166e2394812cf084e3caa5565dabe4b5f058f3a51ac27313d92617a9421d3f525a64745b4e48325aa8b19aab7d733a3ba81447509a7aa9481254ff1d026790e544cecd944340d25d18c664433a0be99681a49a2192359712696d34e0c387b3661bab1c4f45886e9a5864c1f22819fca80bf6c08de44021fc780573bd80cfc50495de339751d2c58327644d4ffc42808fd1c0a599d879919ca65a2c0a692182670dd90a1189a49e01339051a82a724194fe2645c9974ec518dbeb9c4d664ce741a98b1d5429a089f968795819612f814063c6908de4a52c8544e212a3ad63b99a7b6704cc47f9824fe526e3ed8d04cfc874b4c4ce398686cf00e5269c5d6b8204fbede3b4748e298ce88e31b43711c29819fce0de41b9981b796c06770935443f0369222674add435fd2cd8ef50ec9a6bb5713851c25b1358b61eb3743b6da4ae0b319f00d8dcdc08f966436879359a160fc9c63a4e23c74bbc748accfe5c69e86ac1f2bf58c67e4a1db6dc78037f3be52acbe22b16b8e9ee25fead36ae32cb552687ae0f44c9bf1a0e77d22b9d0ca7ca4349bbaf7f290d3174725cf77f36c7548201f354ac700da4b7677166377930f31b3bb0e52933b9b6b726aa97db2a7ecf449fecc83f9dcde291da5d6309f690d0586ada113d71abc2f600fdca9ad81ffd8504bb7763c3462f8e1a3800f62ffde07b7ab97e1239bda16ba7815d42e9e125ab5432deb37d796ea29879ceedf6bddb08ffb3bc7fd7dbd89d81acef15a436ef54bf6df59b2ff7319fbafd9c4ccfebb70e0aa6b5cc4f42e29d5bb301d835e9fea1384faba4acc9cc730d3cd90996e1233e7ef1c66ba4bcc2ce6466786ccf4909859b27398394e62e60286999586ccf49498b970e730d34b62e62286992d86ccf4969859ba7398395e62e6626e406bc84c1f89994b760e337d25662e6598a972a81933fd24f065dcd4b4a919787f69a87019375450ae8cfd0b59855e1f5fa85d9d2a74ff57b7ded400c277303cca9bf74cb4fc8351233da8f0ca616ee3f60192502e678462353313ca40492857d8d156ba074943a02bf33021384112c9558c4816198a64b02492e59c9d2896f89bd826d23a5162e86a86a11f0c191a2231b4429a96a64ff6956fca5177af864aac5fc3b0de3665c6fa4912f8b50cf87dcdcdc04f96e47a1d27d706113a94e89dc8299220567283d0166682182681af62c0571b820f97c0af67c02bb534032f92547803a7c21aa1a6b1739ac30889ddd50cbb830dd91d2981dfc8b5b55666e0a32459aee1647910690eb2e1cbbb70b93583624900373102d8682880120e5c2d39acb5239eee1bcd217bdfcccae62d9de104cb18496737477cfd8f955effb7e4e1f57faaa4c5f58c168f3ccc4c8be32491dcca99b1f2781fde1c968d7967dc5d1e2f89e2364614571a8a62826476b74734bb8912f08688c09324b3bb230f663759b28c3b233696d32425dec54d100d95384592f5c688b29e2a01df1d11b85452e23d7950e23449d6f772cb24879bc97aba047e1f033ed910fc740e5cdda2bc3f1b7967b8453943027e2022f04c49910fe64191b324f37b28a2f9cd9694f830a3c426864a9c23813fc280bf6d083e5752e4a31115798604bc2922f09992853c96070b9927f5d78f736f72f5890ceefa7cf42bec6749743cc1d181d7e85be4f51afdd9120d4f7234d0ab08ea02bbfab495a2a3c8db981e60e57a9d7ebe64fd4f71d3f123cdac7f81c4e2d31c8beabb1efa9192f11e83a53060f34fd6e4362c5b2831fa0cc3e85f868c9e23816fe666c4adcdc0cf95c09fe5160a0cc11731e0cddc4e6e576ee4a7b7b473f51cf59c5dd673d4ee96ffc36f333e6f67b3e99e0d65d2a6e379921ab7306adc64a8c6f325f017b897581b33f0c512f88b0c78bda3ccc09748ef9b97f2f0beb940a2fc6586f25686945f28f56eaf70bd9b776c3034bd34e9bd2ee2ea52cdf455c6d2f7404bd72b50462e54b05492d46b8ca4aa1c6326a98b2549bdce49ead03292ca6579163f75a760c7e7f8ceb84412ca1b8c500a0d8572a904fe2603bec2107c9924f1b7e437af24b1a8eba797498cbecdf54d868c5e2ecd39de8938e7b8820356a3b077b3013e4806be5212c77b8c381a1e6b268eab24f0f739a332045f2ec9fa8388b2be5a02fe3022f00a6e7473841bb50758ffddc1aca8c7b23ee2a4c08e62b67aa3986a6578cbfda8d4359c6a9404b765a39aadf20be75ac9523fe60615edcc2cf53a09fc1306fc2143f09592483e8d28925512f0671181af97c4f139b7c266288e1b24aabf8848f56a09787b44e01b25e02f2302afe180d576d35776c4eda69b240d7ecd68b05d7b330dae95c0bfe19aa221f83a09fc5b067c750733f09b25f0ef18f0784733f05b24f0ef19f00586e0eb25f01f18f03186e0b74a8b83ff8bb838789b04fc6344e0dba559e04f7998056e9064bd8391f59186b2be8303571f43f93978404efba9eb55bfd8b97c0ce54e6944ff2b37a2c70f5535cfcb67baee92eafe8dab3bfda1aa23f2e6f774a344c1ef1c05fb59e9c552e536114f88e4e36355774bc6f407634cdbbb9819d33d12f89f0cf8955dcdc0ef95c0ff62c0b7743303bf4f02ff9b016fd2dd0cfc7e49fbff70da578d2fdb2b8cd35c7b1ce52defa9d878ef969c5a51287b95d1c4461e9084f12f238c453dcc84f1a004aebe8750c6000dc11f92246d3bc2d728f27759d444c20f4b42701821fc6628844724f018035ee13833f047a5375ddc29fba68b1bbee93649942718cac7f436a3fc31c936929c6d482e0078db08af3d45b58ec72531143062b8cf500c4f48e01518f0cd86e04f4ae01519f01ffa98813f252970374e81ca1b49d46558be7bcd4da94f4ba2d99d114dbbbe66a2794602afc4802f3504df2c81efc1806f34047f5602afcc803f6908fe9c34b8ddd31106b7559c5c06b7cf73eb746a3a6ccfb2fe8b5dc881ae95aae788360162e98f47aaae0cf17a5bca27e9e95e6b186775f68ec2aa7c03bca1ed68ef697a5f5042cfbce6b79763faed9bbd1db5f6778c65ed52aea475c42d52dfb30fd7f728af84ea84837fff574947c5d03f617bef2561d277bcc0d9576b655fc3ff13fbf2f7863bc0698da690dec73bde30d3c36befd5a0ef266389ccb652d5c9767d785fcf46ea111b894a99a4ef17a56e693fa65bbab29f59b7f492644cfb73c6d4d4b23c05cd0cc6205342a655082e94f53148d831d1642212353e99040ef8471919e2cb9258aa3162596b289657a4a165756668a93e6f6632b47c55a2bc0643f9ebfdcd287f4d52e80192424dfca45155e77ba8f9ba24969a8c580a079889e50d492cb538b1a875976c2cdb84bd3725f60e64d83bc990bdb724f0da0cf82243f0b725d91572b253adc45f0b9aea86e941ab59eb7e4762a80ec3d08281660cbd2bb5eeba4cebb60c5bf77b92b40e925ecfb8be963e9797fbeadefb52edf5caabbd7b507bee5afb801b1cb451838321bb7070e05b636e0382fa590f080ef6060407963b20c84c8d3408f85032d9067930d98f24a369c8716f600f5ba556dc8869c55b0799b5e26d1cb8da226cec44dc22fc98435687280ec9461e99be3e2809ba4944417f2a09fa5046d00d4f3013f46712d54db93e45453b7b57c1540b3261e273a99e665c3d4a1f03ac31e08d2d7c4dcd4f5359551b56fb15332d7499a9fab4a646747d210937c508779ea170b74b4c37e798ae63a901786e4ce7362afb52a2af05475f652bbd59e65f80cdfd55f69554734baee64a16dda89aeaceb514dfe69b525f4bca6ec5283b35d84cd9df70e0eafd785836ed5fbd6104e06fa5d7c3e179783d7c2729e28888bdd6f792ac8f6464bdc450d63f48e0adb9c56543f0ff49f26e930779ff28517e1443f98013cd28ff495266db88cadc2189e4e83c88e4670e5c71798ca33e369c05f85e32f82f12f8b17900ff55026f9707f0df2499b767646e1bcafc77c90c3b701b288666f88764861db9ce5d91dedcc81aff94c4de8915fbbc634dc4fe97447c678e78b53c9472871c871931f0b7c44017de6e8c18f8471ae0768d38c0fd5702ee1611d8720463ecce18e3b293cc8cd1e6c0956e7a48dbb16aaa3e1d56c7ca7e0e227df8414d65d574558dd9d2e3af42ab8e75b4958bef4d4712c3718c183e3514438c03571b503db3515e86afa5c525aa7b3154d73cd98cea0407ae4cae7744934b4ac0c747042e90c4d1875bb936144705c996fb72b6ac9c818ef66cb4d81ba1975a653f08116dafb9a2c46c3fce620d99dd8d016f76941bdd659f485642545bf925deec77c24ef84472ffac57a40638e57f22391ff44a6b56bb4bfdc9c088fd4925c9a606714be9c3cc6c6a0f09fc04ae751a8257e6c0d525c3c1d988a4aa0cbc2707ac468227e661f45d4512c9104624f5869b89642f0e5c5da31b9a8d481acbc07b4bc0274504de47b2eb9323da7555a9ef3e25d38a4777ab93db487bbb8db9bbd5c5fdedec7675263df4be9276877147bc469869773fc92e873376e918dae5fe12e5459c5d8e32a3bc9a043e82015f61085e5d021fc98057293603afc181ab85f1515117c60f900cb438e2e2414dc94c4af2d07dd592843d9a11f67043611f28818f61c0371982d796c0c732e02f1b82174ae0a732e0ed4accc0eb48e0e318f08d86e07525f0f10c787cb419f84112f80406fc2143f07a12f8446e2634c60cbcbe043e89016f62087eb0043e99016f6b08de800357f94f63173b0adb9b2c763494289fc2506e8d33a3bc91d4d74e8ddad736e690d579b3d26cfadab132f021525f3b2d0f7d6d1349d8d319616f3114f6a112f8e90cf8fa0966e04da5e9fe8c88d3fd6612f0cc88c0294991b3f2a0c8e692ac6733b25e30d14cd62d24f0390c78c34966e02d25f0b90cf81c43f05612f8190cf85643f0c324f03319f09e93cdc00f97c0e731e0ab0dc18f90c0cfe29afd1433f02325f0b3b9b144a919786b6932373fe264ae8dd43a17e4a1751e25812fcc03785be99d764ed477dad112f2b951918f9104b28811481543811c2b19e0798c01be6d6880ed24cacfcf832adb4b942f66281f30cd8cf20ed262d692888b591d39607537fe826c8033dc8def24c9fac23cc8bab3047e511ec0bb48e04bf300de55b2928b192b39f274332be926ad195cc22d6aa971bc5ad46a95b7fbeedda5fa2fe5ea4707a52df3eaa0b48744c3b24c324007a55d2d7561a897f77f119ccc2d32aaff38a9fecbb8fa6b90facba743e598e2a59950d45332b9cb19939b3cc3cce47a31e0cdd440da2eb276f527353b794878e7b3c8bb4c63ea93f30aae1b64b780ae74d416507d4b3f941c853669bba7b7d46b5f15b1d73e5eb2dee59cf52a04ff1aadd912641fae16e517f26aa7ecfdc14a96c5f7b219fc42f695d858c1b1c1a26720bf9f847e0d875ec5cb37d5d5aaef14b8c81ae1d97b27f7176ddda4f6fe52edd772b557b7e8b583cc54e4d6bd0c90ba97eb98eee5875966ddcb4089d9951cb3aad65184a1816ef258c37b1583a41a577135d6b4a8b3ef31de5b74bc5b631f3754f16eb0a13fc96be0b9bfd54e90a8ba9ea36a0f42157e53acbb5ba6c83b806052ef60692c74431ec642274a96b39ab19cfbe69859ce100e5c7d65e546a68fc19f32152c942b18cabdf98e566fbefff2f3b99de024c900c036f7d3b8c6613e1fad2e64339fafcda6b69a8130f9f7e44d0eff69dc6cb0a5f7e1499cb2d58dffb5c10372925ced37af7372b9f17fb2d40c6f967afe8ee05da2d4bbead5dfeb0a265b2778bc8e743b0893c6788ab4747f0bb374ffc2962d479b2cdd0f931ae37aa6318e9a6bd618874b72bb95939bfaf672cafdd786fc6f22a722a9e9df96a7a63f4292d5ed8cac869f6126ab9112f806067cb321f828491177708a50eb06b33d1574b294ffe436de314a1a6b11c44c14542c35d73ba5e67a574ecdb54412e54646944be6998972b424cabbb319836790ce1809f89e88c063a5dd917b23ee8e9c2ac9f93e46cedd0ce53c4e02bf9f016f7bb619f87849240f4414c90409f8c188c01325e08722024f92168c1f8eba603c59d2e0238c060be79b69f034a9b53c1ab1b54c91803745049e2a69f0b1881a2c95e4fc3823e7f70d5bca3409fc090edc5089d325593f1951d6a74bc04f45049e2129f1e9884a9c29c9f91946ce571aca799604be99035f60063e5b92f5b311653d47027e2e22f05c4989cf4754e219929cb7707b4186723e53027f81035f68063e4f92f58b11657d9604fc5244e0b32525be1c5189f32539bfc2c8b98aa19c1748e0af32e02b0cc1174ae3ebd7a4f1f5eb398dafcf9174fa06379b50cb469ddce92f3a44ebeb259baafb5c49706f72bb19e79a096e91c4d05b1c43caa393f2f03615fc36b5f75c3128775beafe0ef54017be9d86fe037ca7ce533d4f5063ac22cff7642ac7bb3fe74994bf2dad0a9f6a4db69abaea50cbf753dcbf4686bceda5791968957aeb54669f7e3a5f6a95ef446c958b2546dfe518550b4e746fd384852592a5bdc7585a9f256696768104fe3e033ee60233f00b25f00f18f06586e01749e01f32e01b979a812f95d69b3fcac37af3c512f8d63c805f2289651b2396d4c56662b954a2fce33c50be4c6a519f447c335f26017f1a11f87249d69f71266828eb2b24597f9e07595f2989e48b8822b94a02de1e11783907acde7c5fba0f2a6ac04d3871bc28835f2dc9faab3cc87a8564255f3356f2e4d56656728d24ef6f22cafb5a4924dfe64124d771e08acbef9ce81e32564ae0dfe7017c9524961f18b1fcebfe9888e57ac952fec758caa26bcc2ce506c9527ee4062cc75afe98528dc3942f632c839ffe088f31d38e040bbd414ea91796782e348bbcf166b1f649c4a2a03ce731c1d447c26a89b79f22b6821b258dece04630d79969648d04fe3303fec34a33f09b24f05f18f0bfae37035fcb81ab733fbf6623ef0ce77ed649c0bf4504be596ab7bfe7a13bbb85036fee46ffc886ea96f2f9a1f512d57fe681ea5b250bf98bb19095379a59c86d12f8df0c78939bccc06f97c0ff61c07f3304dfc081abefdbfd9b8d32337cdfee0e095879938e027ca76425ca0f51542bb94b92b5132b2beb4e6bcd64bd51eab76331e158d558ef0c033aab38cdb843bf5b6227ceb0f39b213bf770e06aeb2a118bb87575af643bc988b6739f643b0579b09dfb2561576084fdfe3a33613f20815764c0d7de6c06fea004be1b03de70bd19f8439232778fa8cc8725e04a11811f91c4b107238e2d86e2785402afcc80b7bad50c7c9304be27033ed810fc3109bc0a033ec610fc71097c2fcebe0dc19f909afdde4cb33fd7366bf64f4a94efc350befe7633ca9f92c0ab32e0953698813f2dbd8ff6e5de474a5e38a3c14fbc9b7fe0fd1989a1fd1886166d3463683307ae1ce2ec9f4d8f90c121ceb31270b588c0cf49e2a8cef506779b89e379e9055d23ea0b7a8b64390764238f4c1fdf915a6a4da6a5aa6d069396faa224ec5a8cb0571b0afb2549d8074615f6cb92b06b4714f62b92b00b19619b3a577d5502af9387a1d66b9226eb329a2cbddf4c93af4bb3f28362cc3e6ea11bade73e48c62dffa7a9fb5350764337c36cfd0d49c1f5b97e58f52633b4f5a5d1eee3c96435a989f71122df33fa586fb5c97fd6029e9dee5dd048af40b534ecc5df944474b024a206d144f49624a2869c885279105191b75b3ec63b067f424471bd2d51df489af8a9c5459573a2b7cded7f3cd1a4c677b81ad55dafc6b1b287b12b835aca5490e1aed7bb52777748d4eeee3d0e59ddf068122b7b6522a5ae4cd4b4e6ddfdebcf675e57a1ac49a97541a19ef7a53ee450a60f79e819b33ee40349e34d23f6d91f4add6ab33c74ab1f4954a72252bd55026e1e11789b74e0a14536c0190e3c7c2cc9b9651ee4fc89248e5611c5f1a964d38771eb3d8636fd9944f5e15c2fa6c60b665f21f99cc16fa67666ec61d67f77b5cbcfe7bf11fa7b5ff21beba61c1ffa8cadf975af23986e177ff80b5b47c6d485ad83ca709e2b7dd225ae2f249369cd98ccdb9bcd4c66bb04de865b8f78ce0cfc4ba9ed1f15b1ed7f2501b78d08fcb5248ea319715479de4c1cdf483dd6314c8f1537ecb1be95283f96a17c9921e5df4994b7632837fd16e5f712e5ed19caab6d31a3fc0789f20e0ce58e21e5ff9328efc850bec290f21f25ca3be561eef793f4a6e8ccbd29d4c5c31edee8bcc8f3c13dd5f0a5b74362a54b1e58f95902efca80ef6e08fe0b07ae3c6e75e3a65187a97cee830a4aad0aeeaf17dc41f18b967592fbbbc4fd7dc8fdfdc6fdadf99265f5747fe7b8bfebdddff7dddf4a2f5bcc29e373e401feaf920e7b703a5477df1b8ffeecf489a9b5a92f537fa57aa6664daf3ded84d419a91352c35226dafc4daaf738ae5ee5c9a57ebf89a9a3a6bdd4e79254c9f927a68e4bd9a90e25975e7649aa47aa53aa247541df35a7949c7f82fbd799eeeff1a9e1a9816eba0945bf4b14f5e42852ca19e88e4f7a5a3d5323c79de0d6d82175be2b87a1a94b8d6afd43aab5972487e2be57f753d2c6da2b0c18e972dc29b5d8958992c203332e8824873f258a7a4b72b83e757beac1d4fdae35bc3ae2e00103534b72b087bfa45a8fe76a2d541dbba5be5c3bc93add1d05f9a3c429d63418418df23653957ca65a97a42a8ebebfdfb8541499fc2d51d7476a259b526b523fa5be75dbc8b3a971a9e6279e509c4b2bf947aab72f57af3ae195df36f1af547f3f6945e3942bfe19fafeb011c3f61ce6b7d6d1a9138d6ab462428dfdb91ad53721be72e57c7baa5bdf9e505f8754ba3dd85e5acf948b61b5b28e746703f8d767bd77ef3d2ef562ff3348eea82dc796681f206db47ce552bed66d399bddb653e3c41353bd5d1b31939723d53950d2d07943c7f41d9d3ad5e5cd6f21a61a8a49350ee26a546fb3bad6183767a9b72ed7ccfd57d7adf3f913cf7065ee533029d5fcfceffbab7e4369c2ef439d54bad454a1dc25a9338f6f38ed841cb51597f83881e3a3a21b7de1e282f3d23dafa9dc12527d83a53ea4d280c18184664f6f71e9e854af1cde3049a9de13b97a2b93f75aa501b547fbbdb9aa73b471ef5520d53c446a0fef415b587cde28b73de6f23ead20d53994abb38af616ef447a815c6caaa254fb4952ed5fa536a556a7be71fb81cd29ae1d98d4be9b54fbc95cedfb69b52f717b6c6c57fe1823f79e7077899253249b7b23b5caa5e4ebd4ddeeff0fb816d0e0c45ea95cfac34a52cdc3b89a6b333537f75ca2f4b23a647c47e422953d38dabc6f8830938c2686e7132a4b8c174922ef660d70fff5b1a20ee5f7946a1e214d03fd1aeff206476aabc5a4b62a5c6dde1747b8dddd97cda6cb7b49ac8c8ab862bbb7a4fae23cac33ef23515d222980cee14cdf635525058c6614107fc54c01fb72e06aaa3c469a2a8fa553e5cd6e75bfb9bf0d5f755fabeeef22f7f73ef777bbfb5bed35d7e4dddf19eeef5af7f7edd70ca7cafb49623e55ea5ed579ce719e13c7d3bdfba7c5c1e7c4d54d8291eebf695e4ab1a11bbdfd254ac67194d4b32cef03693361bb53dd491de3d152e82dacfb8eeb0a81aed220a7da4a1debd13ddef2bd87997d06bd9a44e578e9f5df5dfb1aa5ff3a32a9b3ba54e704ae4e7527bba3278b91ae9e94344ae0be7071503bde27f617d9a77879cd7c38d690689a280dfcda7bb681f797d51d14752ed8d44a0e90ea9dc4d55b875849b1e7357584a707b5015198f564db84be9a127d9339faf6b4fc0beeaa258d07b78b85aebe8a6033c84c36b5a4ba4f93ea1e90b77671a054f714c91ef476916eb526f5d696ea9dcad5db3e63dbf02d635cd03afcfbf5657b937029fadc2f77bab7ad3506e459769a6ec25fa1c45fa9b45832c0bba15fe85135d1d3ae6adffef97b65db66f65c47aa7f9ab470d6dddbc62b86f740714e3d5e5da9d6e95cad275856d0560bc157ed14ab3468e7a88f4266d2eedf6f5354faef90420fd6ef1554fb6bead13f95f0917d1d53492d633da9285e8a0c5bf541922c4e975a5627f74f7f7375a4855f8d35d7413da9de19724febb788a996ef923dfdb619e9d9224a7884f74c497d3438bb2dce61bc505fa26f66e62580b4a6a7825b11d39a0f966a9e25cf4a26c137a7b1ee12f0f269567303a9e6d95ccdca19633f8fbbb1c13b5eb273132a1a4a54cc9196b53b7b6fd762188b85472245ae2cf4675334aa4da86b24513797a34e7d52a00bbc6d0b03bf2c8a12bf171d6fa14f16131a1a4b349cc1d17070c6b75209431df79e494ff14d283d44a2f44c495a38c3cedfc8bf8944c33ce91dd399d43cd2fbd8b17f6bd9a4d643a529df59cc946ff2eb6653bea6124b674b9db63cad3261aa99c4d47c86a9970d994a31e0cddab951bbaff5df1d72eae8793e9a92c341a6052efdf5351934118e302d8ca9234cfb96e12b53edd231a5e69252cee10ea0bc65a694161cb8bad17c6e36ab3b196e34b794a85ec4503dfc5d33aa5b49e0e731e04bdf33033f8c0357e77bcf8f453cdf7b3887acaeed2dce46d819aeed1d212da52dc9c352da9112f80579006f2d69f24246936fbf6fa6c93612f845dcbae80766e04749e04b19f0df0cc1db4ae01733e0a90fcdc08f96de2e97706f17f5203ced3179a31c23d575a9b40eab4f7f4c6a3b96ab4d6d682ce3964a0bdde865b1489733da497aba9cd1d3e08fccf4d45e92dd151157de3b70c0ea94e795d9006738e5d95112c7558c3856188aa393248ee511c5d159eae0aece4307d745a27a05d7001ab8d1a1ae84d5b860bc373638da1b1da851d03170a5a7addb28d2cf8f71c72c78b1a7d02deb5fe33939a7cb3a5d255aaf8928e16e12f0b59c10aa59e5398bec6015798b2a1dbd09d654c345a9ee92955ec70d4db69959690f097c2503dee46333f0e32439ae92b60ffccf7bb5d1e60726d2ea29d579bdb45c8175869768cd97907a49edf206a65d9a1e31ee2db1b59a63ab0a618bee44a8af59e5b20f71bcc4da8d0c6b3143d6fa48acad91167d91357d33a1734eb3c8be12733731cc991ec7ef2731b7b63cbd85cd31b7cf53f597585bc7b09630646d80c4dacdd2620ab2e62fdaf782257bb56897eb82fd4089c15b18062b1a32384862703dc7e0de9605de7f4a3def73b80adadb7b2974c96905f40489bd5b19f67633646fb0c4de6dd25b8eb2a72fb5fa6ca637194dbb981325566f6758353dbe3f44627583bc7a9e66d537d79e39ad8d0e956abe43eadc7010d1065e41be60fbe7b87a7f9254ff9d52ff93ae5fdfdb327f259e2c29f52e46a905864a3d45626d63f9a22dbb6964cedc3089b9bb19e62a1932375c62ee1ea9734d33d7cb5b319f0abb75035d8b51c3d0216e7cb21183451283f7320cee61c8e00889c1fbca6730fc6af419c36d0d1306474a0cdecf30b8b72183a324061fe018ac9d4183fe6bb3bd1bf6f18637833cb68bddbffa78138a9996e9f9856289f10719c6f73164bc4462fc218ef11a21c67bbaac29b7ae6916b1fb53ed75b237b62b35ee04474bec3eccb05bd590dd3112bb8f70ecee69a58741547bb90d5dc74a8c3dca30b6af2163a74a8c6d2a8fb17ed0a7f6f49602c6e6a0b17112638f318c2d353c673b5e62ec7169e083bb80cdd466973aa762b5f2f61f0bbda9bd3acf131ec49ab03a4162f50986d58b0d599d28b1fa24c76a7591d5e696efdab2c8524e947d5f2bfef6ac995e2749cc3ec5307b8921b39325669fe698ad2532dbc20dfb782d53ad63f97e3d51bf6373d8f13d4d62fa1986e94b0d999e2231bd99637a3f91e9966ed8c5d3eb08afeff58f2c9ab0395562f35986cd65866c964a6c3e67c6662b37ec0d6742729b934d93d87c9e61f3324336a74b6c6e91060d3c9b87b9612fab18daea28c274ee33b4d325c65f6018bfdc90f11912e32f728c1f20327e7888557fe54b39dcc0efb99b303c5362f82586e12b0c199e2531fc32c7706391e123bcce6a8a778460a6c7b4df4317c381047f7ee3fb1b89d68dcd96c4f10a238e2b0dc5314712c7ab9c386a8ae238b2ccbbb830f862b6ff05001396e74a2cbfc6b07c9521cb67482cbfceb1bcafc8726b37ece8e9b70466b4664c9e2931f906c3e4724326e7494cbe294dd239269b7b63adae1e93869fd593987b8b61ee6a43e6ce96987bdbc4689b7b614f8b7e002d4a3b9d2fb1fc0ec3f20a439617482cbfcbb15c28b2dc02baad626fab6ca2b79498eea6ba58b9dd095828b1fe1ec3fa3586ac9f23b1fe3ec7fa8122eb2d83e165fa12041e63cf6d91f15c89ed0f18b6af35647b91c4f687265388e6dec84b2db2750fb1eb9f803361f63c89d98f1866af3364f67c89d9ad1cb30789cc1e06f3a5a965d62dfc719932f7224f1033dda766da5e2c09601b2380958602582209e0634e007545011cee7562f88d9df498ac3f0c47a67a277d7319955d20b1ff09c3fe2a43f62f94d8ffd464fcdddc1b9575764764932d7f77848ec172eddc2e9218ff8c61fc7a43c6974a8c7f9e69fcddd165bc63c07c0a985763b0ee560317a3f0ff91771ef051146f1f5f2074101590de5b4084f4028a02a14a130228160c490881408084666f60ef0d7b177b2f2816ec050b8aed6fc5debb2258df9dbd3bf6c9659ecb5e667f7b3379f5a390e4f2db79be3bf599679e712ab9d02b701a417c1393733983bf94187c439c069fc719fc553c03599af367c85d4b77c38a159d42e773a67f2d31fdc6384dbf8033fd1b99e93d58d3d3c29ddc6267f911893188b4e9eee17310625c5f1597f11772c67f2b317e5d9cc65fc419ff1db7ef20373e3d3c7c89430cf1b6e48b3903bf971878539c06aee50cfc219e694a9a335ed3aeaabb133db2d899a6869c438571bed74b38b37f94987d739c665fca99fd533c0ea23467e48e4c4f4639b3b1b238cdbc8c33f3678999b7c469e6e59c99bfc4e3e34c73c6e7e9f6db2c716ebb2b72daabcaa2e30acee85f2546df16a7d1577246ff16cfa424cd1998f845878af95771e6ff2e31fff638cdbf9a337f5b7c2d3a9754ed48f04df420155ff8cd359cd97f48ccbe334eb3afe5ccde2e337b206376baf367b44b68ac551caef64b9d6e4e84c495d95f5728afc5aee390ec9020792a4e24d77348fe8cc7699849b67396877b7877d41e1d3e69261c12258e58085f81735178bce9ed6fe070fc25c1f15b9c386ee470fcedbd5fc80c6fe48ddb79687351d8e8c8a1ad501da9dd06ed3acefc7f24e6ff1ea7f93771e6ffebddfd9419dedc8baccf449ce162a72644f6bee2ed0a6fe64cfe4f62f2b6384dbe85335904667adcbacd0c6ff145b66ec78477ab57383e99784cbd9533b55e527553ff88d3d4db3853ebcb4cedce9a9a4eaa72e8fc21d7f6e331fd76cef40612d3b7c769fa1d9ce94932d3f98a9d51ededaa6c06dcc999dc5062f28e384dbe8b33b991cce47eacc999cee01639b33cc379ef153ba738ae1746259ce66e0e446309883fe304710f07a2890c446f164496637e8113a75010dec4177b9f15ced83ec919dcca9dd95fa87ec437acddcb21682a41f0579c08eee31034932190afcf33c35b83e3c24ec8b98ebfadd099e82c0ad7814ae7fdc71f557e3f677c7389f17fc769fc039cf12d64c677648dcf09afcfcbed6a1e5aba0ab5c25a54f70739735b4accfd374e73d773e6ee223357ee5dcf0cef8f455af7a89d571215c56dec439cb1ad24c6fe17a7b10f73c6ee2a33563ea3cf0cef974d72dee80aa70a2fb090fbde1bb852efc6cd39f6ae96dfc09d3d0e71f66a430beed001b9617195e6115969c40587bb27a95d70f82827dc5a51f8318e5f1b193fbb4ad964e221f2b84c5f241c6c9b14f981abef241cdcc3fe4113f17d2177e00ecb4ab1ff6b62ffb775bb65adb7ff8b2ba9e046cebe767cfda0072643357218a923d14726e3a1f104579af65cff59b534221c35122134cc9ae98ca08b944af42457a20eb212b5ab56a239e11f0d73faf312a5b23cc595a523d7dd562d4b89f3b6441f33cc195a45622395f23ccd95a793f7f28879ed3067849b637f4c8dcf33b2f2082f62672f9d408ca3d6cf728676f1221ca3c4cf7125eeaa58e2e7b91277532cf10b5c89bb2b96f845aec43d144bbc892b714fc512bfc495b89762895fe64adc5bb1c4af7025eea358e25765c26269db3749f5565a9972aefd653f2f456ecbdfcbf81ac7225991c5ebdc24b4bf64122afe896712ba85131fe083f81b9cf89e3e88bfc9890ff441fc2daefeeda55affde96298b0882415eaa49062ffc0e57ff062bd6bfff712c525459bc2b53ee637f99eaa5c8e5bcf07b1ce43445c8ef4b84070fb7bfac37d742a641730fe08e727e5aea847e0eb226dbb39cf95668253f30ecca947d2e92066da2b3da5ae6942076c2b47419a97a51a49c74691949225d9a58f2204ac92556fb40f68ac59bc8f4f48a93d857fc2157ddb354abfb475c8f95ed438fb555262e42b272bcf018c30b7fcc09e72a0a7fc2e118e2038e4fb9b73854f52d7ec6f1d85b91c7e75c07be8f6207fe05273c4c51f84bee0deeebc31bfc4a262e42e2f7f352ea4ebcf0d75cd518ae5a35be91298b2bbd467829f2665ef85baec823558bfc1d579bf3146bf3f75cdd18e543ddf881e3315a95c78f5c5b19a3d8567ee284c72a0affcc098f5314fe85833c5e15f2af9cf2feaacabf71ca1354957fe7304f54c4bc4d262cd6dc93bc08afe517a47fc884d3ec2f27db9f6e10259c926e7fb99bf3cdd9cecc6cb103a8daf38ee33dbfdbb9e74dc13c6f07f7bc0330cffb937bde54ccf3fee29e370df3bcbfb9e7e5639ef70ff7bce998e7fdcb3d6f06e679ffc99e27b233cff4d2b0636467161b35d2a1f5401f86d67a9cf8413e88d7e7c467f920de40262efafe8355fbfe2499b2e8d20f51ecfb1b72c2872a0a3792090b8fef618a1edfc6326191ed68b617e136bc701399b0983b1fae38776eca312e5064dc8c139ea328dc9c132e54146e2113ee637f59a4e86f6bc995b858b1c4bb706d7aae6a9b6ec52997a82aefca29cf5355de8deb3e4b7de83e77e7c4e7fb20de9a63b24095491b99b270139429ba09da72757aa1629dde8303bdc807d0ed38f1721fc4db736f71b1ea5becc0bdc5258a6fb123c763a90f3c3a713c2a547974e62a5fa562e5ebc21579996a91bb72a497fb40ba1b27bec207f1ee9cf84a1fc47b70c057a902efc9cdf18e509ce3f5e2781ce9038fde32715198a3bc943a86bba38f4c582cef8ec62ceffa72cf3b06f3bc7edcf38ec53c2f997bde7198e7f5e79e773ce67903b8e79d8079de9edcf34ec43c6f20f7bc9330cfdb8bebe856ab767483b8c1708de2603898133e59513885ebe44e51ece452b9977a2ae6a5a671cf3b0df3bc74ee79a7639e97c13def0cccf332b9e79d89795e16f7bcb330cfcbe63a81b3553b811caead9ea3d8567339e17315858770c2e7290a0fe57a97f3157b97bdb9da7201a6b6ecc33def42ccf38671cfbb08f3bc7db9e75d8c79de7edcf3d6629e379c7bde2598e78de07a974b557b97915c5bbd4cb1ade6716ba9cb7d584b8de2785ca1ca6334c7e34a451e63b82a7315a6ca8ce5105dad8a681cf766aff1e1cd8ee7f85fabc87f7f8ec775aa3c2670cad7ab2a4f94298bfb7d6e488a7cb806d2316e659bc415fb46d5624fe686e9758ac3f414ae0ddd8469430770cfbb19f3bca9dc2bb945f5954ce35ec9ad8aaf249f43741b06d174ee79b7639e37837b2577a8be92995c4f77a7624f7720d73fdfe543ff7c1057eabb154b3d8b13be4751f860ee0ddeabfa060fe11ad57d8a8dea50ae92df8fa9e48771cf7b00f3bcd9dc2b7950f5951ccebd92f58aafa48043f41006d11cee790f639e57c8bd920daaafa4886bd88f2836ec62ae9f7bd4877e6e2e57eac7144b5dc2093fae283c8fabfa1b15ab7e2957159fc054c5f9dcf39ec43c6f0157f59f52adfa65dcbb7e5af15d2fe4aafe333e54fd455ca99f552c75b94c58ecdb3ee74538c6beed62ee0d3eaffa0697702c5e5064b1947b832ffaf0062b38f14d3e885772e22ff920be8cebc45e56ecc496739dca2b984e6505f7bc5731cf5bc93581cdaa4d6015f7be5ff3e17d1f21111f3cc2feb2de340b79acb8aa729e93063094fd501cd35d68ffacd039922b2ed29953c381e1d76d1b7a4838382cea45b1700e0e6f49120787db55b3b0a6727047828f94bd2241f18d58458b7e4da254cc038ee26ad79baab5eb684ef92d55e56338e5b755958fe594df51553e8e53fe9faaf2f15cc7faae62c77a02d7d1bd87e9e84ee49ef73ee6792771afe403d557b29a7b251f2abe92351ca28f30884ee69eb715f3bc53b857f2b1ea2b39957b259f28be92d338449f62109dce3def33ccf3cee05ec9e7aaafe44c99b2384ef3859757d28b173e8b9bd77ce9c3bce66caed45f2996fa1caed45ffb50ea73b9d5ce378aab9df3b895dfb78a2bbff339cedf2972be802bf1f78a25be902bf10f8a25be48269c6d7ff9a317e1ad7cdbbe9813fe4951782d27fcb3a2f0259cf02f8ac29772c2bf2a0a5fc609ffa6287c3937a2fdae38a25dc18d30db3023cc95dcf3fec03cef2a0edc764570577386ecc018720df7bc3f31cfbb969b0afca53a15b88e1b9efe561c9eaee784ff5114be81ab44ff2a56a21bb997fa1fe6a5aee39e6735843cef260e9cf89e0ab89b3943ea630cb98533a481a221b7728624610cb98d7b5e43ccf36ee7ba91460d15bb913bb8d6ded8cb2b8975330827dc4451f82e6ed2dfb4a1faa4ff6e4ebc990fe2f770e2cd7d10bf97136fe183f87ddccb6ca9f832ef97098b13bfbb78118e71e2f701aeab69a5d8d53cc835fd5d314d7f3dd7f477536dfa0f712f7577c597fa3027dc5a517803f752db28bed447b897da16f3521fe59eb707e6798f71ebec765ec0c558673fce09b75714dec811ea8021f404f7bc8e98e73dc93daf13e6794f71cfeb8c79ded3dcf3ba609ef70cf7bcae98e73dcb3daf1be679cf71cfeb8e79def3dcb0d34375d879811b1d7a2a8e0e2f7233a05e0dd567409b38f1de3e88bfc421e9a388e465ee2df6557d8baf70cafd54955fe506f964c5417e33d784fa639ad06bdcf306609ef73af74af6547d255bb8573250f195bcc121da0b83e84dee798330cf7b8b7b2583555fc9dbdcc42bc5cb2b8931f17a87ebe8527de8e8fec7953a4db1d4ef72a54ef7a1d4ef71a5ce502cf5fb9c70a6a2f007dc8092a538a07cc855e86cd50afd11d7c7e428f6315bb9369f8b69f31f73cf1b8279de27dcf386629ef729f7bcbd31cffb8cab72fba856b9cfb956324cb1957cc1f546fbfad01b7dc989efe783f8571cece1aab0bfe63c7d23bcc08ee1e9fb86e331d2071edf72e2793e887fc7c11ea50afb7b0ef66845d83f703cc6f8c0e347ae3d8e556c8f3fc98487882fbd08f7e5c7969fb9128f572cf12f5c89f7572cf1af9cf00445e1df3814131551fcce9578926289b771c2931585ffe084a7280a6fe73a8c03543b8c1d5cbb9eea43bbfe93139fe683f85f1c937c55267fcb9445df38ddcb6b8c717ddc3f1c8f193ef0f897139fe983f87f5c233f50b1918bc80969a90ff2a1d4f564e2a230b3144b5d5f263cd4fef2602fc2f97c436f20131655ef10c5aa97241316676f0ef5221ce342f3865c890f532c71234e78b6a27063aeca1dee43956bc28917f820de94139fe383783399b8e84f0b55fbd3e65c332c526c862d38e16245e1961ce8b93e80de4526bebbfd6589975277e1855b4984078fb4bfac576225e276d27cfbff2bedef2f730e08fa7b3fe93c19ab7a51ac9c6386a50dc531c33d2dfe7e52b57272c71177e57adcf98a3dee6e5cc7b840b163dc9d132e53146ecd092f54146ec3092f52146ecb09972b0aef2113ee637fb9d88b708c3b58da715dd6121fbaacf69cf8521fc43b70034f85eac0d39153ae5455ee2453162bbd655e5e638c955e678ef4721f4877e1c6cb158ae365574e78a5a270374e7895a270778ef3113e70eec1d58e23156b474f0ec7518a387a71c2472b0af7e6381fe303e73e1ce7631539f7e5701ca788a39f4c58a4a73cdefe5e372f3876e3c59339f1137c10efcf899fe883f8004efc241fc4f7e4c457fb203e90135fe383f85e5c353c59b11a0ee2844f51141ecce138d5071c299cf8693e88a772e2a7fb209ec6899fe183783a277ea60fe2195c4d394bb1a66472c2672b0a677138cef1014736379c9debc370962313ef637f799e172431d606b93261b19a39df8b708cd5cc104ef80245e1a15cedb850b176eccdbdc08b7c7881fb70e217fb203e8c135feb83f8be9cf8253e88ef271377f2f637545c860de75acc658a2d660457e4cb558b3c92237d850fa4f3b86673a562b319c595fa2a1f4a3d9a837db52aec315cb1aff1a1d863b9625fab5aec715cb1aff3a1d8e339f1eb7d10df9f13bfc107f1099cf88d3e884fe4c4d7f9203e89ab2a37a95695c93265b14770b397161f2343cb1499b0b8befe162fc231aeaf3f80037dab0fa0a772e2b7f9203e8d7b8bb7abbec57caedfbe43b1df9e2e1316f7b5dfe94538c67ded3364c262afe92e2fc2624f86119ec9bdc1bb7d788307cac4c5dae09e86ea6b8383b892dfeb43c9677125bfcf87921fcc89dfef83f8211c96077cc07228d7701e546c3887c984c5eedd7a2fc23176ef66cb84c592e9212fc231964c8773c20f2b0a1770c21b1485e770c28f280a17ca84fbd85f3eea4538c6b2a088eb4e1f53ec4e8bb946f2b80f8d642e27bed107f11299f870fbcb273cbdc42456781e27fca4a270a94cd8c974df5071189fcf15f969c5222fe0849f51142ee3583cabca62a14c594c109ef352e4181384455c6d7ede87da5c2e131723e10b0dd547c2c55cc95ff4a1e44bb8926ff2a1e44b39f1977c10af90898ba1f9652f3525c6185e2913166ba357bc08c7581b2d930977b3bf7cd58bf0185e78398762b3228a151c8ad71451ace450bcae8862954c78b0fde5162fc29b79e12364c2e218db1b0d21c7d88ee49ef726e67947715dfa5baa5dfad15ced7c5bb1761ec3758ceff8d0311ecb89ffcf07f1e338d8efaac23e5ea62c7ad1f7bcc08e7192eb04aec8efab16f9444ef90355e59364ca62fef3a1171831e63fab39e18f1485d7702cb6aab23899eb183f56ec184fe1843f51143e95eb373e55ec374ee3843f53143e5d262c86cbcfbd08c7182ecf9009ef637ff9856c3018667fd9d90aff537d1058c707309dc93de74b7f9f7396e43983f3ec2feb4db782bbb9263fac39cd562bb03f1dffed355f49b00c1e25ece850cd0e2f4f2334eb45d17482d2bf6e2882d26ba7cd059c9fcdbdf36ffc7de7e7c89e936c7ff9adfdbd2e9201d57942f40356f38de45cd903c4453edfd9dfebe1f501312ef2398f9b127cefc394e07c4efc071fc42fe0c47ff441fc42ae3bfd49b13bbd881b0c7f561d0c2fe68afc8b6291d77245fe55b5c89770aff0371f5ee1a55cb17f572df6655cb1b7f950eccbb962ffa15aec2bb80ab25db1825cc91579876a91afe28afca76291afe68afc976a91afe18afcb76291afe58afc8f6a91afe38afcaf6291afe78afc9f6a916fe09aa0d548bd09dec815bb5e23c562afe394ebab2adf2453ee6d7fd9a091171f332f7c33473ac907d2b770e20d7d10bf95abd68dbc208951ad6f93098b954e632fc231d274dd2e1316feb1268d20feb13bb8e735c53cef4eee79cd30cfbb8b7b5e73ccf3eee69ed702f3bc7bb8e7b5c43cef5eee79bb609e771ff7bc5698e7ddcf3d6f57ccf31ee09eb71be6790f72cfdb1df3bcf5dcf35a639ef710f7bc3698e73d2c7b9e589db76de4cfea7c03373eeee1c3f8f80857fa763e95fe51d903c46ca7bdea6ce7318e4b071fb83cced5a28e985ab451f63c319de8a4389d7842262c5cb79dbd08c770dd3ec9e1efe203fea738f1ae3e883fcd8977f341fc1999b8d800eeee85778c0de067b952f7f0a1d4cf71e23d7d107f9e13efe583f80b1cefde8abc5fe44addc787526fe2c4fbfa20fe1227decf07f197b9fe3c59b53f7f45a6dcdefeb2bf97373990177e55262c62570778118e11bbba59262cb69af7f4221c2360f33599b0882f1ad8483dbee87589f8e0d1f697f58aac44a4459a6affbfd0febebf0991f6928cd3834573af27b666fc2e4b77f112a2fec76c750d6a24b6ba1085e036c2b670b569b00fb5e90daeb349f1a1b379932b79aa0f257f8b134ff341fc6d0e4bba0f58dee14a9ee143c9ff271317dd43a66ce63ba67abd0f57fee8478a7acf3cf25dce9e2c1fec798f13cff641fc7d595f3a56f4328949313723dc7588ce21cde71e3547d6a38e13b6c64a26a756a21a7bd3dc463565b3532b00d7a77ec0d5aa213ed4aa0f65e2a2560d9535c1713534bc5cbee17dc459b1b70f566ce53a927d601dc9c79c3dc37cb0e7134e7c5f1fc43fe5c4f7f341fc334e7cb80fe29f73e2237c10ff82131fe983f8979c789e0fe25f716d7894cf6df86b6ea631da8799c6379cf8181fc4bf95898ba5e458d5a5e4773265b1301ba7b830fb9ee331de071e3f70a5de5fb1d43f72a59ee043a97fe2c427fa20feb34c5c2cdd27292edd7fe1eade64d5baf7ab4c59b831a628ba317ee3581ca0c8e277aede4d55ac77dbb80e769a0f1dec1f5c079bef7307bb9d7bd0749f1fb443f620e1aa9fa1e8aaff936ba2337d68a27f71e207fa20fe37277e900fe2ff70e2b37c10ff57262eded1c18a1b3affc984c5ced421989d29114c257ddea198e7d5933d4ff4cc87a9f6ccf565ca62af73b64f7b9d0d640f706e52f0a1422571a52ff0a9f40d650f10bdf51c1f7aeb469c78a10fe28db92a53a45a659a706fb4d88737da54262efafbb98afd7d33aed4253e94ba39273ecf07f1169c78a90fe22d39f1f93e88efc2892ff041bc15275ee683f8ae327111f9b8d04b358c1122b91b27bc48517877aebd97abb6f7d61ce8c53e806e2313175bd54b14b7aadb72a55eea43a9f7e0c42b7c106fc78957fa20de9e135fe68378074e7cb90fe21d39f1153e8877e29ae54ac566d959262c52e4adf2221c23455e170ec7113ee0e8ca8dc2472a8ec2ddb8521fe543a9bb735de0d1aa5d600f6ebe7f0c66bedf93b3e458554b7a7115fd38c58ade9b7bb3c7fbf066fb70e227f820de97133fd107f17e9cf8493e882773e2ab7d10efcfd5c135aa75700057074f56ac837b723c4ef181c7404efc541fc4f7928967db5f9ee605c956be2719c495fa741f4a3d98133fc307f1144efc4c1fc45339f1b37c104fe35aced9aa2d279d2bf6393e143b83133fd707f14cae829fa758c1b3b8529fef43a9b339f10b7c10cfe1c42ff4413c9713bfc807f1219cf8c53e880fe5c4d7fa20be3737b1bd447162bb0fe7cbbbd4075fde300ec9653e20d99713bfdc07f1fd38f12b7c101fce31bfd207e62364e26203f02a2f3525c606e04899b0d80bbdda8b708cbdd03c99f068fbcb6b648b145f628b46716fe05a1fdec068ee0d5ca7f806c6706fe07ac53730967b0337c0dec038ee0ddce8c31b18cf89aff3417c7f4efc261fc42770e237fb203e91ebd46ef1a1539b24111f3cdefeb25e999588e8d931b625427db235c79a6f85c2460f0ec7c4fa17477babace549835b6f6b24825b532c3eb8d5af127361ae93b9d77fbb0faf7f0a277e870fe20770e277fa203e9513bfcb07f169dc92ea6ed525553e37cadca338ca4c97098bd0a47bbd08c7084d9ac1b94fee53749fcce420dfaf0af940ae6e3ce043dd388803fda022e8595ca9d7fb50ea8365e222abe8439eea1d1fb270884c78a8fde5c35e84f3f9209b43391c1b7cc0711827fe880fe2b339f1477d103f9c6b358fa9b69a02ae6b7a5cb16b9ac3b5988d8a2da6902bf1138a252ee2dee0933ebcc1624efc291fc4e772d5e369d5ea512253ee637ff98c17d8316e3099c7754dcf2a764da59cf0738ac2f339c8cfab425ec0417e4111721957e417558bbc902bf226c5222fe2dac94b3eb493728ec7cbaa3c1673caafa82a2fe1bc89af2a7a139772a437fb40ba82137fcd07f14a6e72fabae2e47419e7b4d9a2e8b459ce0d866f280e862bb8c1f04dc5c17025e7dc78cb07e7c62ace87f536cc87750467cf3b3ed8732457dbffe7436d3f8a2bf9bb3e94fc684efc3d1fc48fe1c4dff741fc58ae0e7d00ab43c771f67ce8833dc773e21ff9207e824c5c1ca5d92a83a57094e644ce8a8f7db0e224ce8a4f7cb6623567c5a73e58b18613ffcc07f193b956f139ac559cc2d9f3850ff69cca897fe983f8695c7dfacae7fa743a67c5d73e58710667c5373e5b712667c5b73e58711637a7fb4e714e773657eaef7d28f5399cf80f3e889fcb89ffe883f8799cf84f3e889fcf89ffec83f8055c17f70bac8bbb90b3e7571fecb98813ffcd07f18bb9cee1779f3b87b5dc14789b0f53e04b38f13f7c10bf945bba6f575dba5fc62dce76282ece2ee778fce9038f2bb852ffa558ea2bb952ffed43a9afe2c4fff141fc6a6ef9feafe2f2fd1aaeeefda75af7aee55c1962ac5471655cc7b1a8e74538068bebb97a57df8b708c7a770357351a34f6e1ba0aaef74e6aacde7bafe34aded08792dfc48937f241fc66ae62376eac58b16f91298bc34e4dbc549318879d6ee57834f581c76d1c8f66aa3c6ee78adddc8762df211377ee54688cb9a3827b5e4bccf3eee25ecb2eaaafe56e99729efd652b9925a3ac9897e0895453cc73ee913d476427d8d57e4e0fc9eb97568118d909eee51eb09b4f0fb84ff600b1c1b1bb97061d6383e37eae65b4f6a1653cc0d59c36aa35e741aed86d7d28f67a4e7c0f1fc41fe2de643bc537f93057eaf63e947a0327dec107f14738f18e3e883fca8977f241fc314ebcb30fe28f73e25d7c10dfc8b992ba7aa986315c494f706dbe9b6a9b7f9253eeaeaafc14a7dc4355f969997233fbcb9e8d231faee11db6e0c59fe18add4bb5d8cf72cabd55959fe394fba82a3fcfa1eeeb03ea17b862f7532df68bdc7890ac381e6ce25a787fc516fe12d72f0df0a15f7a9913dfd307f157b8b73850f52dbecac1de4b11f6664e7890a2f06b1c8bc1aa2c5ee75e618a0faf708b4c5ca4a949f5c223469a9a37b852a7f950ea3739f1741fc4dfe2c4337c107f9b13cff441fc1d4e3ccb07f1ff71e2d93e88bfcb35cb1cc566f91e57ea5c1f4afd3ed7e687a8b6f90f38e5a1aaca1fca94c579f5bdbd908e715efd238ef43e3e90deca890ff341fc63aef2edab58f93ee14abd9f0fa5fe947b91c3155fe4675ca947f850eacf39f1913e887fc189e7f920fe25273eca07f1afb8f63e5ab5bd7fcd157b8c0fc5fe86131feb83f8b7dc4c7e9ce24cfe3baed4e37d28f5f79cf8fe3e88ffc0894ff041fc474e7ca20fe23f71157c926a05ff99ebbd272bf6debf703ca6f8c0e3578ec701aa3c7ee394a7aa2affce294f5355dec629e7ab2affc1294f5755dece29cf5055dec129cf5455fe93533e5055f92f4ef92055e5bf39e559aacaff70ca07ab2affcb291fa2aafc1fa77ca8aab2e80aa5ca87a92ad7e39467ab2ad7e7940f57556ec02917a82a2771ca7354951b72ca85aaca8d38e52255e5c69c72b1aa72134e79aeaa72534eb94455b919a73c4f55b939a75caaaadc82539eafaadc92535ea0aabc0ba75ca6aadc8a535ea8aabc2ba7bc485579374eb95c5579774e79b1aa726b4e7989aa721b4e79a9aa725b4eb94255790f4eb95255b91da7bc4c55b93da7bc5c55b903a7bc4255b923a7bc5255b913a7bc4a55b933a77c84aa72174ef94855e5ae9cf251aacadd38e5a35595bb73cac7a82af7e0948f5555eec9291fa7aadc8b533e5e55b937a77c82aa721f4ef94455e5be9cf249aacafd38e5d5aacac99cf21a55e5fe9cf2c9aaca0338e5535495f7e4944f55551ec8299fa6aabc17a77cbaaaf22099b2931fdd07d7e860aed867aa163b85533e4b553955a62c82a5ce6eac1e2c952613178eeb73ecfff58b12af274a497351863263963a592187db7f5b6a7f749535c89a6dff1bb92a5dfc9dfece3827fb66bafd9ce89fc8d5e271aba773d69c2bb3669f38ac1159412b63dac22945ffce0c9b4aa95514975d199c5de7c9ecca73be9c6a8db49f9b67ed6f8db07f5461ff609263c30ae7ad2c08972e64dd38fbe793ed9f88bc9ea13726cff929cb121a6d9fc8905a6e895ca005f6efc463652667e5f9322b87c56d6549f81d4eb07f56e8084db1ff13ef3862b54c2ff43dfac9e14eb6d8782ccbe22cbb4066d941715b16aa9d55df603cb6a8bcefdad4e76c8ec785321e1376f2986e3f47e4e10de5ec5de8fc3dd406852d73ed5f09e5ec1db7f393a3ace5f677c427a63ae52fb6cbbadcf974889cf8ee12e731c29e50eedf52e7d1a5d611f69f224fb0d0f1c3ea1cceea8b64569f01b47a9af3d3225b71996391d0757f27cffe3352438aacd14e3fb8d07942ac1e9bef19792b445d5b66ffbd823c3ddfc9ccec5fdf99cb51bf98eb55380b43ec463bed6fa15337bcf388d582e86fc563d910ceb2b532cbc4a933792bcf77def022bb3c73c3b655ed2f0bad794e76ec22e7dd85b267f323613c160ce52cb84466c168d682e9f6efe7db652bb1ff15234fede622f16ac763e9de9ca597ca2c1d1e550bdd7286ec29b77b6d318e89365961976e9ef3febcce4ef81958edc7ee7d38fb2e93d93722eeba38c6a98b2377d6c4dabcc9eadaf158388cb3f072998503580b694f50b59d2d0af7b37ef50ffb7225be4256e2ac1a7b3ef19d02fb7b95f667663a96cdaba107f4ab76edc75972a5cc92212cfb48aeff72e7ab45d5de4065b51a82aa4dc3398bae9259d4376e8b22ed25faa7e267f97195740457d2ab65259d1647bd0ff562a39cf95768c6257e87275e750cf5f219bfeadf488ec1353206fb7aeabd87dbbd589163817c86197fef5dbb31388fb3ed5a2f6b66ca5b6dcdecf71a631467d77532bb0646adb9d2edff1738fd5de4cf0976092aaaf5187ecf884673a5be9e5be9d75cd3c638b7741458a1f5820eb385319c9537c8ac2c06af842aed15f1526786175ae9cc704639b10a9ce358e7cf2cbf3675782cc7e94619a7e9095b31c6330ba80d87711c8775320eb3801cc628d717bec6c443643c47e4261991fd15fa89c9f6dfdd313a91bdc6fe9ccd37cb6c3e2b61ada1aaff649aa350ee7c3e1e0fcab4f07743352ab13e94091cf95b6abf7a95cdfb1255b32672f6ddeaa535617c4468efd124cee6db38df4b6c9b436f759c330b8ffd6663d579c4ea713267e9eddc0c37f64c30cfb91b2e326f177dbfcccf14ed83f7a6138f5d5338bbeee0de60ecf2082fd702a707a9fa46c50ab2cc296ba987b1deeb33e2b1f400ced23b65968e02595ab5e741d83995b3f32e999d072bd4d4d0bcd7158bc7a2783ea93ef64ce398dccdf91ffc7af7f1b345d58b7c8ec13d3206c7b00c42df1d6fbf8ff29df6e73b258fdef92a764a1af9a41fb523a235ca5ae978a4963af39450923befea623e36d7c7b1613a47f65e19d9c171d7ae889f20d6c856db117c0657f6fb6465ef133582477b6bdcddf162a72432ef6eed7c1a33b972de2f2ba748e6cc795c8bedba53697f4cac53d26ce67eeef3c4528fc7da03396b1fe076e5bcc6a08cb16af2a7f953af0ee22c7890f34179db391be3ac9a97d92d9eda33dafef452a7ccc3c3fde9f270ef53b273f5e3756f2e1e2b677156aef7e269e3e6bf35ad6a829efb1ecc59f910377392931eee7c37b4a2298ff29e45d6d22556710d6dcf5bbdadcd2ce110cece876576eecdda298b78a1b6d23a1afb2df961d5a19c551b6456e5da5fe65b13c3dea9487f36d112be8d79e1ef4eb72d14ad2664538515d9f70a7d16edc73b8cb3e711993dc362f62c239dd944a515f2784c0bcf5a463b9f0e7976e87b9be0f4a3a2f711b3de6267f6511a8e02f3c3b2d99c658f7ae9f563eda2c4dbebd7d6a3783867c163dc8e64ecfe30329f18e5ccac6bea0be329690157d2c765253db0c69262bd35683fce1c8ec646198dc36bb136c8737a90e8f5c168a73f5958658dc0934bd4fcbe90a3f30437f78c3fee461f0f791167ed935e7aa1e9a44caabd10d58ac78262ce82a7b85959edd6636aab7855cfdd5ccecaa7655616d56825efe709b5e0d0db437b7bfc6ebb251ca567b8d902ff5cda7ea7ef6434c999b5f251beb16774b5b76c1e67d9b332cb4678ea95a6d91f9e638522980a598b828a2a29e52c7c4e66e12a2d6bb8fb89c4fba9e6733c9ff7d74f95e7cc91e5fbd8f467f1947d0157f61764654f8daaed139d12cf236f5bc4db145aa17dea5865f4abfc655cf95ff432aa86d629a1dde3ca9d5694c76871b16ca85d6b5cc859b04966c1484ffd8d979dbe20e73e8b381b5f92d998a33c7388c483d5dcd3443e198f35e59c352fcbac4961df98ea3cae76f56d3157fa57b8161f4fec5d7cbbacb5a1bf842bffabb2f20f8db3fca1c8cff84628750fc552cea6cd329b26c6dd3e6abb8fe6bd1dd56eefac82b3fb3599dd6b76da1d4cd450d5337d5523eae22b07a794efcc96dc7d289c77af9223fdba8c74ffa81a56f58ce274bb646564b444ec9f2de3cabb85f31957ad9fd5a3eb2baa945ebca5c58ec75178258b9d732bb4170e7d2abadecb38c463d572ceaa3764560df2fc16e4fe3c3f4bbe822bf99b9cafc6aff7312dcef7e1476b59c959fb16375fa1be7df1b7d9312c0adab3bf8ab3e66d6ea782f7ec4f73c68f22d27346ac595e657dc7474baadb730467cf3b5e7607e339eba2ee39aefd9cf948cecaff71f39c7877cd823f59751467d3bb329bb2599b6a3a15bbd81957ddd11a61cbd19c2def712354edcebd9548de1f6f93ec6dc763d5319c55ef73ab51beaf986a7f708533eb2c70ac91f77ea1980eafb11f7ef41fc772367e20b3318bb5b17a8b8ad8e6e5b4a81f961cc759f2a1cc927de36e4fa1b157f4df739c7e51fcc638679e2cde89f7956a6d6c3b9eb3ed237f6c1bedfcbcfa69e5e87784e83b4ee06cdb2ab36daf3847e448cfe16d448ea7dc2772e5fe5856ee7156f4eeaefb543af24eb43f5e6609ff716475ca7bfdabce25bcce326a6bef499cbd9fc8eccd60df53c44f3a77676693d0c94459edf3df8ad59c159f7af130726f2dcf59410bff800e6f6a0d67e367321bfbd468236a5d7b3257cecf65e51c18e7cac29dd1d5bcb288a7d4a770a5fec28bc7b33add29cefcac22ce11b2b675e354aef45fc6dfdbd288c6aacc454b982c6907b55f019cc695fb2b59b9f78c3102d21954d552af70c60effe2894fe7cafcb5accce996b7fd98583d46ac18dbdad59733381bbee1da68fcdce759c2035962ffe9d7e9f433b9527f2b2bf5f898b57cb85d16b1a72a66b653778ec6d5e3f722f3dd02e9e7d17e80b3388bbf9359dcdb8abd7386eaf1cfe64af93de7ad883fca37d2c778dde3f33f1af61cceca1fb83e36be1d0cd4db39972bf78fb2722747d5a1bcf04e77e84c6f741b9f64977945b59246ff4e3ca53d8f2bed4fb2d2469f0b8dc47d655919b5884ea1bf1deb27fccfe2b1f47cced29fb999b7977124d6ee7d2c2b6a1b9d700167c52f322b86445911a921d31c7fd6a29debd6506c67ecb3ebb12c8dd68dc7a20b398b7e9559d4cf934591f632d629f3528935b51b112fe2cafa9bacacfde32aeb44a7af59e67cd6aff25ecc95f777f5f2c6ae2db52bef5aaebcdbb87d85d8b1dee39c9d52e10b280bc7ed7a894ef76fbe7d0967cf1ff17974a357fba1ba92a868bf4b39abb6cbac3ad88a7d1271a43366547f23eee7bc5919efe7fdf52d5ec631d9c131a96d046464861c794e7c912541c6a05cce31f953c6648a02931225269848942b38ebff92593fbc46ebe519c9a8c57ced46d8772567dfdf32fbb2e3b46faaa358eeccb8865bf1c4b0d5a6a65ec5d9f28f977187ebd1f2252b562fbd94ba3d5773f6fc2bb3273acf7facf369f1e7f997abc563cd359c35ffc5e7339f1a2e454d7bbd4bad9af644234af158712d6785d584998bc57eb657af5b6d7d56d771e5ad272bef28cb4b14713cfb3241cd66aee7ecac2fb3b37a6624f95e86b71570b03b1a3770963690599ae9e98dbaa76b22eb97586b017fded88d9c1d499c1db58d6389bc3b310a89f54e99afa73cd671763494d9c167ca98112ebbe8cbd26ae8a7bdd7382fcf8ac7da9b386b1bc9ac9d5ceb5edcf5202f7272d9973bfd799135c5fe5b85a3e7b6452f36fa311edfccd9de58663bbf0ef43a8251dbc5da7125e48ddec259d5446655725cf5376249f59890daf67eb772a56d1ac43b288da3c6c563d56d9c55cd3056891624ce8387b25e8a793bc2aadb39ab9afb57b3643ea0dad5ac3bb8d2b688af1ff7dab3d5fe1df8d197ddc959db52662d7f33827c1e1b6b17b3b6efe72eaec4bbc84aec355aa5a68ceec1ceedeee66c6c25b3b1facd6e721bbdccee10d6dcc359b32bd7abc55a8fbbf1859325f3376e451e2b06bb76f3d67b39ab76935935df8acf63c29f8ce6e6e2fa9f83be8f23b6bb8c58f49d26aeadea5e0c99563c96dccf59d25a66c950cf96c477eb82bf5ea607389bdac86c4a614702318ecdb13f14d9b599e04444c5f223f951fa07b9d2b795959e8f06f6b63713ec68b09eb36d0f55db0a6a9891e36d7b88b3ad9dccb67cd6b650a473a1b3f72df607abce472273add0fc5dccb742f9c784f0242b92412a921d49beba44462a3dcc51682fa3c0c766c97c207ee6d98cad1f8fc51b388b3b70b338af672c4219af2a9d9ab0ca12a74b163aefb4d472b34ec47fff506ddeea239c8d1de35b49545f41f89b3b95578fc7da47396b3bc9ac9d1287b5746c0c4506c77f720b1ddff618677d6799f5b1cf50568f218ef45fde6288fdb0e771ce9e2ede5659fee7e9a3337b7f62fb3672367695d938c9f212db17cf7e41b4424d3ff52f4aeb09cef26e32cb075bf1441289da1b1a59bd47a0c553f627b9b2779795dd6be49fd7e8bee89fd5367ef129ce8a1e5eea5ef5f6352dbc07174feba23f717f7fb2135315aab1b1efbca9dd38f1346779cff8f67be4eb8c514e996463a1dfa3fb339c1dbd6476f06795e576cc74c6b9453bdf1bd69667395b7a73a3573c3794d3bc19239d08cec8083ec1e93f4a9c73f52592d655db9efd39ce9e3eb51bbdbcfa086b931fbcb6363ecfd9d85766e304851e64a4932b75a916bdc70b9cd5fd64560fb262ef7ad7ee9c59edfc852f72254fe6d678a1f634ce2159e9b494ca9dab18d7175afd67f1addfe2fb743c166fe22cee2fb338fae6b1ea3574bcd3b3d5b6dda9cc1f1bdbffd6abd7dcfeeb2887b4f0cd4e09974664aa192cae15737c62a177366867e6a74155723fb9df17cf5f687315b37691e52934bb186875af4161808dae517d2bf44fbf7a027b65d8b15b6f6e14c1d06f9639caee2cb4c2fefe18a7ff0d65852eb4bf8ef89e0f17b70ed8ffd66445a80554cd6125be2bb3ae669b0eb5ff159f12f7e0153a63b7e84be6d875a771d8a288964d5a746475ced23dc55bed1f7eabf5078b046ece79cddad4a69a4b31503cad81bc0eb5ab4696b60e59d9430293c27d45bd5d1c01e1685b1176c8153baf20f2811a9f477b1bd9f3f6720422bb1935cad164d632b90e4e250b0ded4bad5072f029cd2cab71c3fa29e23dec8584b5bbfdc56c67452fcbd3ee46d39900edfd862eb4414868cd1c0151ab16384b37913c4f1ca33501d21b0b5d488391905a39354bd41d3a1f8f8ca0c21f6a02ae36535d5c29f85ecbad53539c222c779a9fd8263701d6da452eac5474dd1a69ffa8dce9b1dc15f744fbff454eef6502aeee9d5c5c69e8ba155afce639938fc5e10669d288288e9d4760a52361ed6a89c977855dbf0ac22b9bd0cc382fdc1c0b0d01f6535317580612584b52bb5c44d3ed5eabd4904e7ed7c62eaa4c24aa0ef61762ae35c30ae5c32a772288e65aa1dd159a276b64f8769812436adb94792ec22c746d8b38fa45ba0fd134233f3463943ca59b8b2a1b89aab565399e8614fbbf114e732c736e940f9d61178d34b21635015b8b835d6c39e80160a4154a7f26d2fa2e7604840376a6b3201241d82600fbee6817582eba498a5e2de4450a9d6b09596eca2cbfacbd8b6a08125553cb5d1489717281252e34350151064134143db717b529f47877a41c6995859199806b630717d7de485cc2252cb687858838207280e3cb5e66c8b4a1735717d33e484ce2d1a149aa498b9e971ab9788621f1ec46a60a91501f336757ebc9ec6a5ff4a27ab2e3f976e75379e1b1afd290fab571be0b6b3f34aca956f1ce858e89f3a964329f1a8e84d5c68a5e25d23a26f6ff8aecff87e2004c00f759b10b6e047a3323d424230be9c802c79d3c983225ddbbdc85361209ad2de9fa05bc48b75fe1c40115d8451a6dff3ff43d33d03dbf878b2e2fd8864add39e635d4dea52eb85141ccf1cdeed73617bab846a3fbb5d14e9d1263a57b5d851b1ab0c8984d8ffb9abbd0c620a1b5b0ac9d117f658e2fbfc2a8b9bff827026a6c10135977436d72383c39b44b6402acbfc9727b1c7e9bb6d289da337522dbfb2817d67824ac3d6a9c5a88630a855661b86026c0fbac950b6fff2026b374532d329d154ee9a270aca509d0b62e70a14d40bba223352e52c7dcf1d204541924f26b22ba2713c52b7546c8f2705469248671a911b0f2c9c6ed24f49e90f05f2c713cab42467c15f1b90e77a09900ec1112ce3439115d7fa45186ee8b29d9593013e0e591ae7f0a3e28b3bc4e0465de4582320f402fc6235b6be58ecc34a3c195117053d14db5aa17c35d57862e68336f697e08716c4f43ef2b459aea52672d60029e296433371f89a7538d75cbe4a0a7531c7f59e38651e2d1395d6b7f36243ef6fc2916e16f1b65adb4163bdf0dc565d0131b15d66071c057bb924fa7a7529263ba74926b8c724d8e6b8848f63c0a473e59f3218a64c93674720df193c9354ed4933d85ac26d7b0364aae57d3b99964cf7ec8e4b8a77ffc6f70be82e438372e9299d89b6449179e5c434853b2872095e41afd6ac91ec2d89363c47724d7100b99ec71573fd9c3518d644f2ba0e438420e933d6c0224c7b5159a5ccbf05ad953f87d9c6485312d39eeb9965b8bb8308364cf8ea264f6dc52a4edf3a74f923defad46b4781769728dd100c99e6230dd23b17428738fb2a68823b133fe9f9f564d11a755670a08698d431042b3be03d131692225144db430ddf970d4933a577bd2d4f02b0fe57789ccde64cf6c5a657ed7d88b19b599e3f5b5dca9f241e8438545a409337b5506206b4c90cd427be5c468936e653a7f860ec32fb23fbcd8e97dc4c760f8f646e17b8de03b1889af73189f8bcd6bd6e7341cd6dc4620ac5f117fca21f883afb3eda1617678ec0d25d40ea04e1e570f046f743d17dea148783dc3f0caec0f89fa5869b999e8b8da199db14e4c3f6188cb51cdfedd062ee2c39088db4b9a3d158c4ee597639b01c39983c2b98e34f7d93ae1cc3512677f12897eb84e38538dc4d92ac9c559a013ce3423718e2238e7e88433dd489c0b08ce429d70661889f30c82b348279c9946e2fc8ce02cd60967969138479389d25c9d70661b89730dc15912c491bd54bb196704effe80798f2eacef029c875fa75758d1fb2a6e9a46f37c47dd2c175e6910aeb70c7b3d1378ddcb40e16b4adc1cf391f8ba4afa42ef178c671be841ea4346ed05e8f36c15d536a9c4865bb1b56267a6e87c4b9ab2cf3f90835075742269e2654890bde3aea379ced64564e32c74d19b18a0b27098d7d60761de48c6f18541f4a4c29111784f0a9b069d4e6ae9a220669525ecbc92165fb8df80b5b1050ae772323095eb8433c7489c87119c8b75c2996924cede04e7129d70661889b309c1b954279cd946e2dc9fe0acd00967969138b309ce4a9d7042e799309c179389d2329d70a61b89f35b8273b94e38d38cc4f92ac1b90289b39d15db395cf5bed3346484c76e28981f9025e54a9d60a61a08f3230273954e3081b17130981f139847e80413b8030483f9098179a44e30330c84f9298179944e30330d84f9198179b44e3081532318cccf09cc63748209dc1d82c1fc82c03c5627983906c2fc92c03c4e2798b906c21c4e025f8f0f22630a07b3aaab0338fcec8242d98b6c019fa00bca742351fe4b509ea80b4ae8a40886f21d82f2245d50661a89f21832f0acd605658691284711946b7441996d24ca9708ca937541996524ca0d04e529baa0cc3512655b32af3c5517943946a2fc87d4cad38258ef440ea72e77a0f12b1e1337291a917a797a30f1eba975eaf8fe2012bf7e063ae1a108719debfc4a28a5979b2366b2fd1437858981182d17e399416441e0377269a639f770c06ce4b6d91814d6b748ed3c0b7df964b1553da355be834fd4c9b9ce4f804d7c206cec2675f3ec20628353c2bda368ee2bad809249c0c6eb341241740e125f8fa8f15ad4bb4227c3dd526ba6250e0854da5fa5d6b9317c1b99109d8b04dc2f0ab05b47e97115ef075b803d2aec60cbe9c47f749e49b081351b067b05817d7e30b3d38c449ccb809dae5c41c6ff0b82888f2b0ccf402babf5b2ae5c287613b86f09c3792049da73a14e38b38dc4399fe0bc48279c1946e2ec43705eac13ce4c23710e2338d7ea84131af301c3d99ce0bc44279ce946e2ec44705eaa13ce142371fe41264a97e98433d5489cf548edbc5c279c3946e23c86e0bc42279cb946e23c8fe0bc128973a055750d5f4e5ccbd53da35cc253d92781ab7958ba9542b2d77415fe42ad901fb5bccac64840be5458cdbdd672115e9dc86de4e88ec03c94cf934ee09a607c4bb989d8f984f9f57308c06bd1573b57bd5d60dc4e5fa879d87a90267c5db0b9b517daca7447936bd001ed7ac2369377900d91eb83c8fd9e5587021aca48fdbc2188b9a65b3f43cab1c264cd6bee9d495dbc119f08cd8d08c9b74229cf66d91f5e1cbe8f45147fb1fd096022b4c35020b349bd5c87be293972a1c332e743a6cf1afb901df89b82da464ba943db684b8977e8e62006949c3a34a02c250df716fc95c0bcf32262297452f30a0ae3a5a40ede1a44d8ab371f1034e716ac4117901ef1369d609ae84e2b22306fd709263003020ce62c02f30e9d600227df309887129877ea041398350606731a8179974e3081596370914404e6dd3ac1046e2cc060ee4360dea3134c13fde22308cc7b758209cccd0183b980c0bc4f2798c0dc1c3098c71198f72776f3cbf42303fd8857f20124ca0e56fc595d810d1d9639b31b599d3fa81b5060638701ed4e80aed70d2870610903da9e007d4837a0c0c5250c680702f461dd809a987db80b01ba4137a040c71c0c685702f411dd8002a74d30a02d09d04775030a5c6cc280ee4a803ea61b50a0930e06b42d01fab86e40818e3a18d07604e8469d80a619dae4c793b0c12774036ae2a0348e007d1209b4a345737ce4398f2f7404dc106be11a39c2fec9684bc4b1573a9f87214d452115a16911a44fe10366caec0f885a4aafa59de2144624fb0106b9c2623e7a11804f07137194e2046c051c340373d0fd4e7c9dcf0411ed965267a2ddba1274cf26d24d4c134941ddc49b5128bf2143cb7348945dacaab1c0a2df13def5c807626d6698b863994ffcefcf0799c3307408800fb106c28485584f24e7ca5ed00926707a0e83f90981f9621023778a33dcb8939d80861fd8d4e73032f5d914c4c89d1ef4c8dd177509f77764e47e0989ae6fb5865c6e4db0ff2bb00b53359326d7b8e91129609fb9b51e08f525492eea97f539519e6668fa881bc944e9159d709a993ee26182f3d520326e6624e2081f6c0cff8b0c419b13792350d5c91034b81006f36132217a4d279826ce2e371098afeb0413b8d70383f90881b9452798c07d1e18cc4709cc377482098c3582c17c8cc07c532798269e207f9cc07c4b2798c01823dced4004e6db3ac1044ed361305f2630dfd1092630821806f37502f37f3ac104460fc360be4160be1bccfea348c11cf8123207057013097b790f7d685f0888ab1aa6db1c26d8ff153b12abc2c5162104cb9dcb44ccdbc6b5abe14e8cef2331f6b6a2330d56f5627abf2700387987dd13f026f1667e10c4ed411c66de1567e251c02e6497f2c320dc705989487c021b84cac976c64741ec04a5d5999da00f08baad41c50f25a0eec172adb626e3f7c74104c1701b1291c28b4353d0adb2d528940504e52741f482a1a9775dc99df53c99027d1a04be9c443464d846ed75a427fc2c989e3027119194b095ccbba4f97e9ec89eb0ea7cd0c4a8b559a4297f1144534e4bc49a1a361fbc8be0fb3288930f9c876784fdabe59688af2cb016e1bd3cb0a6bd4b6317e857ba0105fa2061405b12a05feb0614b88286016d44807ea31b50e0100403da9000fd5637a040d7190c681302f43bdd8002a33260401b13a0dfeb0614b8ff0d03da8c00fd4137a0c0e80c18d0a604e88fba0105ee83c380b620407fd20d28304a0306b43901fa3312685709d0ba7d09d77b24b4fa1724da6696b88f42fc48dcd433d22a0f93306fdd2e2ed28920fb35a860828c3ae4c37c94b8e07e43021c6455dd9e150588efaebda9317e03b8001d88aabbcb4820ccef41062008982b6c11f7429a58fbe3011da7821dfa3b8f04206c4bac933924656e6ad23fc886c71f893cbe9fe7d4dd396194c0b5fd9624d4d11512bfb13d880b37c5bed1c2f0c30bec5f2d0e2a1001b6e5318f8cfd3b8219fbd313714b24ee3a3932f6ff8904d8daaa7a9e5ca4d4891422a05a08eb139f25b5f02f24c4ee51a37891254bf254d7f6359b91d1fbefa0f6d8ebd2155f5f9346fe4f50034d45d4dcd2ecb4110d09c27f830861add9e53123bc161252222209e89acb6d04c27a1a59fffc17c4c17cafaeb91c231d73df9219a5d554239cb946e29c496a673d9d70a61a89b33d19c7ebeb8433cd489c1308ce063ae14c3712e7510467924e38cddc235a4f7036d40967a69138b7139c8d74c209bdcb0286731a992835d60967b691382f25389b2071ca3684bd9f9d04c62bc1ce4eee201bc24d91689b396897eccc703dc1fe90108321eb85aa8de296f608b2664864eeb9c8049cc880eda7cf203b3ccd91f86ada2c738b3edb39f4621eca0749e36da10bca5423516e27b5b2a52e28d38d447900a995bbe88232cd48949f10b7702b5d50661a89f248522b77d505a599691c4b08cadd7441996d24caeb08cadd754109bd590a86f26c82b23512656f2bde45629e55ea6ca585f6cfc5d47d953351029ec7588bcacdb185788ada2031bbbbe5594e92fb80d73f6350f5f46632a6b70d62f9989003fdb0d5f7c564a2be07125f4d89f2aac65aa61a196d792071acb5d30926700082c19c4560b6d70926d02f0983793081d9412798c0486018cc7202b3a34e3081e72761309710989d7482099c4dc2602e25303beb0413b84d0683b985c0eca2134c60e8200ce69b0466579d600233cbc060be4b6076d3092630ef110ce67b04667724ccb656d5e300f363f88c4cbcdbe70002b24710ce37ae5656dd3e33f1329a8ec42bd4531794e946a2dc4150f6d205659a9128ef26287beb8232d348948790beb28f2e28cdbcb86b1841d9571794d946a27c9ea0eca70bca2c2351de405026eb8232d74894bb90733dfd7541996324ca3f49ad1c8044d9c98abe133ac4a02ad0fcf077a7395b688bb0eb9eaf1b82a09e45a0ee8984dad2a249a02211bf33ec3f45761818b8a351b57192e5821b8804d727aa369685d189387371215224e060ba5d38115210f97384fdd379b6c8724b841a2c733e09dc4aeb8402dd814cdcf7320534b02b80816e43400f320534700b0e06fa7b027ab029a081330618e8af09e89420c26b529d9c33752597c74a32c4a5a2cf03858211c5af89336a654efd34afc63527c8d290c85a3835aed0699c4b9d065db9d33af3a6f67d08b6f444ae92a8dc6ce48e102c83d1cf24f43523a898cc04f47ab02db5ab484c66261a6085ad55667f43a4971b677f3b942a6fb42552f05462fbc06e28802d4963ce4202ec68555fa75786b773f9466d625ab2a66422931d24d2d06dbbcb2448abee9d9bd7cc5388e3230789349265ab841d7468f1034a7fbba61e086b1e09c9ce458fe434efdb8cb067a9dc9a6ccdb5ffadb0c4ddd1c280c5f6678067cb67a06ae810d28f0e0966244fab53f7fded4d46f2a1413a8ce7d9df2cb57f759e55f79232af241b1a7b23a176b1bc6627146688dc1b2541802d4781dd830c48fbe80a1638d2c3c0e610b0c374050b74afc1c01612b0fbea0a16e82086812d217dec7eba82059ed780815d40c00ed7152cf0ec060cec4202764410602353adb9f6870436516431fd5f59c7e292e7923e7664105b18d989b87300866f15598ee621f1b572f095d91f28745c26426c91fdf70376263933cfeb2432e045e08d4aac579eae9a4c3cf4924e9af1e8200ebd78f33641b7385aa0601e4beae5189d60026b260ce65104e6589d6002a74130981504e6389d600227eb30988b09ccf13ac1041e6185c15c4560eeaf134ce0e16a18cce504e6049d6002dd7330987308cc893ac1042e1761306713989374820974c3c1602e243027eb0413e82c86c19c4f604e41c2ec694547852cb495e9be3a171b423f03440c8bd76c4a9c700704e12bcaad53bea27789af682ade5734db8157144e0b19d0a575b0bb03261178d382e82b43f1c24226f62d17c0511c16b87039e92bf37582099c5fc260362635733a1266e4464a91a0b4dc72ef480dec464a9823f80782704610034b6622b2bcc26a604b826f6610f852a2223703a97db024b95f90def0c060e2e0329d69765d99d89c4fe2e00e0aa20714f56fa155972e7f3f94d4c159891c91a91cf8ae5318cc53497d3c58279840c72e0ce6e904e6213ac1046e39c060ae21300fd5092670330c06f31402f3309d60027d3b3098871398b375820974ecc26016119887eb04d3c4b3693309cc029d60029d15b879268139472798c0d01618cceb08cc429d609a78aefc7a02b328887b7723fb37054e318aedffea6a8c6f3fb26f531cd441bf9ce01d1cb07ba82692ba3917093039aa6ece718eee175b93edbfcdb7ff2c749abe3cd07f4c58a4ea6781f57500aabe269160d692207157da1f9deed4d672a75b9866b9e77f2bd84e21a023d55b515b6b1725b9b8e705b9734e5dc8de6f3e072286ed5ef6203d7069303d706a22b6384a515dc200d203cf4702ec1055474b3dcc0980ce13d89c601fd2c72ed00d28d0b507039a4d8096e90614e8788601dd9f005da81b50e0b6080ce8780274916e404dbc057821993895eb06d4c485ea16925b6eb16e40818e6818d07b480d5da21b501373c4af2240972281b6b7e271f9a5d9cddd440fea4da4c157e884137af51d0ce70682b3329157df551dd9a1f755e326f464cdbe4c2798264e957208cce53ac1347110ca253057e804d3c429d2100273a54e304d74820c253057e904d34417dd3002f3089d609ae8fcd897c03c52279826bae6f623308fd2092670d20e833999c03c5a2798c02812dc35cb04e631c1dcc8921bfc361b6c017983e5e23b36987dca0cbb07ac3b57da1c4df6298f0b6aa33701b763c06a602702f07824c0460ec025f8f479b0bad69f34d61382489fe7cd7966e251820708ca1383f093736370f503d1d9c87118762475606317e849ba0105ce126140f7244057eb06d4c463fbbd09d035ba013531a9442f02f464dd80023d9330a07d09d05374030af49bc380f621404fd50d2870da04039a4c809ea61b50a0ff1c06b41f017aba6e40819e4a18d00104e819ba0105fad16140fb13a067a2737d943bbf103ae0124a7aef9ec718175e8ec2107641214cb15c846705e323ca4dc46100d881952c12e6723612600f2bf6f9a0ba7a22e8d22417f03989dc92a8ea59ca31f2fcfac7644be2dca07cea1975c8a7be92b884cf4302ec26a98ddecfa56521fd4ab093698f934301e7eb0c17e80585c1fd8fc0bd4067b8c0b5120cee0304ee853ac305aeec61701f24702fd2192e700d0583bb9ec0bd5867b8c0153f0cee4304ee5a9de19a788efd1e02f7129de10277a46070ef25702fd5192ed0f70f837b1f817b99ce70813b5530b8f713b897071175979688052e2c01f5ed968bef8a603c04b3ed0fbabe54d3b3275f4d005e1944ee301a09256fdc6ea38e580f75056e4235ed53eab968af0aa66ea624e2d6970c54dd6c4ebc5757077b2fd15267af4924ae92670ccbdff989b98eec426c1d85217e9bec075c93c840c8aa11f426c6cfbf466aebb5baa04c37126521a995d7e98232cd48941309caeb7541996924cad309ca1b7441996124ca1504e58dbaa084868bc350de4b50aed3052574cf0986f22a82f2a6a0a24bead209a4dd08c09b83c849e3f55656e85d08b07b59cbc802f2169d70e61889f32082f3569d70661a89b30bc1799b4e38338cc4f9afe5e2bc5d279cd01320309ca348edbc43279cd06d0a18cec104e79d3ae184664e82e13c9334f6bb74c2996e24cecf08cebb75c2996624ce2709ce7b90385bda5f54383f12094f27dadf16bf3ac3fe7fb1b502070e763c613401772ffac88c58854fb1ff2f44a6d9df14bf5ee07cfc0867232d74c3f554a768cbecef57e2803e8a02ba8600bd0f09b4b3553df440bef333c30add0f23a4c009f745b24208d6ed24e8e0fe207c465e071ff3faca5472a8eb0124ca56967b857d5d399e50449af783487803ace80d5e915fbbd289e208dd4fc46df3d2cfa55979419d4f4a87c5d51317dd7a24f24e9e7bd4aab76e011dc7194920a8f3c839a58774840a3c5e03837a3081fab08e508121de30a8abc9c8bf4147a8c0430930a82711a88fe80815788c0606750181faa88e5081137f18d4f904ea633a42052e0170a33f81fab88e5081870e60504b08d48d3a42051e938141fd804cfe9fd0112a32841605f57d02f5c92022e82954efc7634c3cd6b59da07d4a97d8263393f85f43a2939fd60565ba91280f25b5f2195d50a61989f237522b9fd50565a6912857935af99c2e28338c44b984a07c5e1794d09c773094b713942fe882129afa0286f21282f24524ca66f617cbec02e6dbdf98638db13f268ebb2ec621eb8b4226e2ac23c83605b1de89ec2f553d214ca5a93074650e0bf2be2fc985fa928e50813e2418d4e6c4ddf1b28e504d4c1ff839e9315fd1112a704d0e835a469affab3a4205fae561502b48f3df8c84dad18aed431a617fb0c22a0e7f6fba2303ada77deb8390fe4eeae96b412456c976e6960187e6c0669b9524e0fb7524be748bcb0b32dd2e8ef8de48fbff0bed7fc5df43868860c7b9b640a153d849f6ff2bad15ce231658a3ace556b1f3a97c077f89f353e800b63baa0e6f222f614b10753837117518971c88e07b23087c22ed5fdd89ce5b44f0bd19cc71d89c44e4af818dea5b8977f3ad60f3d72cb49569a82295a75b6e018533c29af83364e2f47610273f38ff52f4c41e9aea0f5663279115d33b3ae184de9a04c37938c1f93f9d70661889b33bc1f9ae4e38338dc43980e07c4f279c6946e26c4470beaf13ce742371ee41707ea013ce142371be49e6a21fea8433d5489c7f139c1fe98433c7489c95a4b16fd50967ae91384f21383f46e2ec63555d7816d91f2aac312c31cff954e484b258dfafb2a08714d6a21c741b8893f913534003374860a01f20a03f35053430ca0406fa2302fa33534003f7a760a07b13d09f9b021ae8228481de4606c32f4c010d8c6181811e4a6af497a680064eef60a05308e8af82d8d7ca49c4be16ec8ad66bc8bed6d789cc7e5275b1019c2dc0161aef90bef59b206aa2d85809bc2696a2f05d62b9f8bec5278f11175608db457f283e3acd562f73027ee61918a13285c0fb2e98ede9ba15e2b39ef8b0be0fc2e9c2f583f96126d31c9c8bb0f3ccaf1b8270de4df295fca0930f0b9a8c1d36b41c4c86961f75c209bd2600867311c1f9934e38a11758c070f623387fd60927f46a1518ceb104e72f3ae1845efa03c3b90bc1f9ab4e38a1d751c1707621387fd309678a9138779079e7ef3ae184de3b07c3d980d4ce6d3ae1cc3112e70904e71f3ae1cc3512e74504e7f62070ba31d02165fe18387091095bb37f4970ee082221b6b74cf7348c1cb875b106e5127e9c60fd3308ac5523f545814506fc95316a2b70a302565bbf272e91bf82700fa7db834edd393ff2a9e5e2fb1b89af5d9c4391915b1504e63f3ac104a61186c17c97c0fc572798261efe7e93c0fc4f2798c0883c18ccb7094cab9946304d8c237d89c0aca7134c1353bc6c2130ebeb04d3c4d42e1b08cc063ac13431a5cb460233492798c06b2b6030df23301bea04d344efd147046623244c37c6233d11372cc100ce23bef6c6488091eba952aab8de6607010f973399d4be26487835070a86a4ca1ca8c005e36e289469244f435324ca0e56fcf7c7028719d8bd732f9020d666ba01050e3530a0af10a0cd75030a746bc0803e4d80b6d00d28d0b50103fa2c01da5237a04097300ce87304e82eba01058ef230a0cf13a0ad74030a7473c0803e4680eeaa1b50a0ab0306742301ba9b6e40812e62dc5df104e8eeba0135f142e9a708d0d63a014d337462ff3e7181b4d10da8894bcf2d04685bdd809a386d7a8500dd4337a0264eec5f2440dbe906d4c4a5e77304687bdd809ae81c798600eda01b5013a74d4f13a01d75036ae4c49e00eda41b5013979e4f10a09d75036aa273642301da0509b4bb15cfa52953ac3227125e5c5231dc2e41a9053d6ad016956566338989ef1a04de484cbc8883afb4e2b9db18881776b7f19d2436be1b126fcb305ef1e0b9163d1a536a170706ae21aad98b7f22e0ba23c1b576c02db37f34cd72af9e9a607f2d24a7848196dab515061176b7c73e04620f3c44814cfc62b9ad3ad369c085d6bc309545613118c41c14c47c02b1271262f45568e576bd9beb0c39d583be68a408b05f84458aec43fac55ec1847c25e4da1e587ab3bbc8b4a87750317329c1035c8daa81b308c03e4880f19d0016b7229818aabd91cc23fbea8433c5489c6b09ce7e3ae134f320c16d0467321267e4886a6622fa4a58886c33b25bd93f087c1989b8210e866fbbe5e21b80c417b9f73532835c62932876feab6b973e8f4e7291ee89441a9d855814a0d0e925a73b6b1af1a4518e98902cb649857e9eefd456d1a3ce75c4175ad004e60351a0af2513f581a68006d66818e85f49ecfc5e41ad8832ea502f7b0b99d00f0ae24856a4a62eb751d6b5f57943d2ec070731e2a787eb6124418ad9678a0e2475310589af6f545d14ceb709f67f057661a83fb322aa86ba260574372ccc1172319909a4225177b5aaef0fc98726d990048c07c940d5e2ddc89094164c27901afc80340685ef29cbc5978ec4b7fbce117db6e37b8fdc7e5111543f0a9be677230bcf8c60264569756ae9994706a2cc441e6ecd7306a339e1291130986b4b1208e523a437cc42a2dcc58ab5955b8143d70c550beb939e301b89ae47d474a8342c14cf480d5ca5c346eacbc8743d4777c0c059260cf077a4f1e706b1b8e4fad1aaaebb4c2393a71c4d600ed109a689c9534e253087ea04d3c4f4918712987beb04d3c4f491cb09cc7d74826962fac8a104e6309d609a983e328fc0dc57279826a68fcc2030f7d309a689e9233309cce13ac1347193782f0273844e304d4c1f3988c01c198427898b48aa7aacc5c4232d07592eca3c24ca6e927ae9fdbc057471093b717117a9a7a374860b5c6cc2e0de4de08ed6192e708a0f837b04813b4667b8c0293f0ceeed04ee589de102dd2630b87710b8e374860b74a3e08e1012b8e375866be2f9cc37925cb8fbeb0c17b86480c1dd4ae04ed0192ed0ed0283fb31813b5167b840370c0cee2704ee2424dc0156d5fd547160b6d4fe5ba8288be2d857a5717cc0ce221f9588e010b2853d1989bc89fd45810375a1535fc50761b8f6f062406d7035b55c5c5382898c1273d3ba7367c25a121975401027ec38e7e008fb57cb9db8a802a7c1e7209b2fec94fcf564963a55279cb946e2ec4e7ac3693ae184de7d04c3d9808ce7f93ae14c33126736c1395d279cd09c61309cb309ce193ae1cc3012e74904e74c9d704257f1309c6f119c07ea8433cb489cfb9189d2413ae1cc3612e70904e7aca0dd20f1049503b7fb6051cf23c82cf4609de10237aa61707f2735f7109de1021d7830b88713b887ea0c17e87a86c19d4de01ea6335c138ff20c217067eb0cd7c4633cb904eee13ac3056e54c3e0fe40e016e80c1718620183bb99c09da3335c13131dcc21700b75860b0c6b83c12d20708b824ed0e17da3dac470cc7ec435538c44db3b6eb479f6670bad48260ab14db80a3d6b588bda9abe8a609e8bc4dcc672af571739c7857326f2c3c09279c0b291bf62b9184b82f07c79bd1a23d7c8cb8596d47371ced309678e91380f26384b75c2090d6687e1ec4e70ced709678691382d8273814e38b38dc43986e02cd309679691385309ce853ae184ae986038cf2613a5453ae134f316c6cf09ce729d70a61989f3398273711038abe79aa2b2559b3b0c272c43dfd7648f75493081bcc2bd5c77521ca69040dea5410014778aa4050f70000ae0a3e4728c8ac4a64908494572449a98387b3569ce953ac104f68d3098a71098cb748209dcb587c13c95c05cae134c607c090ce6e904e60a9d6002679430986712982b758209dccb84c13c9bc05ca5134ce0ae3b0ce63904e6113ac104c687c0609e4b601ea9134c60f4280ce67904e6513ac104eea3c3609e4f601e9dc82cf9559d19c0460e5b8d5790bdf2637441996e24cac62470e6585d50a61989f20b522b8fd30525341d110ce579a4561eaf0b4ae8840886721c4179822e28b38d44f9364179a22e28b38c44f9244179922e28738d44d98ecc2b57eb8232c748944d08ca35f8db97c43594cb2d11c25aec440997845738c0db974a51e846592eba9391e85a596ef86a51380ed8f41be8da92d0965382b9393e37f8bd455884fa7e04dfa9415c7d4e7b401aa13ec2fe6085fdc1d0f7a63b32d07be8faa2a2d1fb90f1f9b4a00206ead245d17b928081d3831895dd009658de1e138357d69251f90c24ca7e512897d8248a9dff6a7710c5c46328b791867f261276cf28d895f6b71757493049e527db02f3edbf09c8f433c06d5dd895bd5b487d3e2b88d8b6424b7ec905950b1d5935f1ce900924b2e86c9d704273ddc0701e46709ea3134e687411ee726982f35c9d709a7941507f82f33c9d7042732cc270362438cfd7092734c7220c676b82f3029d70a61889f359b286ba50279cd075140ce75f04e7453ae18426a386e15c4a1afbc53ae18426a386e15c4370ae45e21449ed4369f94bec2fc785b1c280b541014bb75c609704e3a2cb4dc4991e58aa8811a4c65d9ac88db3aa0dd8c41b655f22282f4b64bed990434e3009b1811ed75b8772c29d499c709707b11f949508df3bac36ce23fb415704b5175957e01d4e86952b91f03a58551dc0ee662edf379a784174e72417e85548a0e2d134a4001846d00105ab19a97d570779ee3ba21c2bbed7bcadb36252f7ae096220c949c440b215155870391948ae0d668a9d918853dfb0be6f3971395c17e460526c893d42f1f1ba95c8a13799195eaf1b50e0e80c03da9d00bd01ddc4456c50a563bdf8a50aab7afe55184058e6d57dc9887d6310696d65d1195e420580b513162ab095acabd705317e2764f881e1fb85d4cd9b827291d5a528b66c52ff6e464fc72bec1f2fb33f20d62e33ec0f89b54c79b8d062f8596e7fb8ccf97ab1fdb94a1cce19289c7b93fa784b10e769bd6d1964218fcdc3e6966f92c9f9ad3ac1049e7c80c17c87c0bc4d2798c0e06918cc5709ccdb7582094c350283b985c0bc432798c0f44c3098cf109877ea04d3c84d2f02f32e9d609ae8257f84c0bc5b279826c6523c4160dea3134c60121c18ccf708cc7b7582094c820383f93e81795f62632e4252a18c4226a65a1c403c97f707e10a8e271f3ab0a1c3724e7f49eae603ba0105367618d06f09d00775036a6256f4b709d0f5ba01052e2e6140ff47803ea41b50a0530e06742b01fab06e40818e3918d0cf08d00dba01052e3461403713a08fe80614b8d884017d9d007d5437a0c0893d0ce81b04e863ba01053aea6040df22401fd709689aa113fbbdc8b6f046dd809ab8f46c43803ea11b5013a74dbb12a04fea06d4c489fdcf2492f329dd809ab8f4fc91007d5a37a0263a47be27409fd10da889d3a66f09d06775036ae2c4fe2b02f439dd809ab8f4fc92007d5e37a0263a473e23405f08266036c52e60e001b3b068f80604e08b4880ddadaad1f0cb9c0fd694a75064195e60fffa220b7afc0596e9f5b02417efa6204ef62620df016cef7d89e5c27b0909af9903afd4fe909059647f34f4ab30643928645d08b29791c87a59d5633fe44d79bc55e17c6694b5d27eb610acdcc9017ac8a523aa51bf4f20bf12cca09390fcd7b0531a579241e7d54406d5d0a357d0a09acd2894ab4850cde620069804d443d800b38234e4d78238ad969688b923ecb4da2d04dfeb687ce22c6fb9fd6b7996fc0e0a18be7214be9104df167df2b1898bdc4d3c77712df1a0bfa113ce5423713e4070be99c8ab34ab6ee8420f0bc0263c5f920cea6fe904d3c49412df10986feb0413387f84c1fc8ec07c47279826662ffa81c0fc9f4e3081db6330983f1298efea0413389ac360fe4260bea7134c6068010ce6a0c62eccf783da744840ca4618c0df487cdb0748803dacaa9b0ee58ebf67b65de845f6c7c57346395242502c9443bf56d52b049c220d40013e8c78853ed41d3070420f03bc2b01fc51107e76da9fd6e66a2fe0740a76b5d7e164f36cab0990810b0018e44308e48f4d800cec8f6190a711c89f9800d9c49b002713c89f9a001918a70c83bc9a40fecc04c8c005060cf2f104f2e72640062e8961909711c85f980019e8c481419e47207f690264e0e92618e4cb09e4af4c800c3cf104837c2a81fc3512726f2b7a49bd7827c08a3a1f30398760fe0689b9ade55e8532c61269ae47da1f2c700a11f990f8f952e767e6eddf1e68b920bf4582ec13555f6956dc50f3afa9ce4eb04aadd0363a70d9d10b05fa315263bf0bc61b9c938830229837f843120df83d12605776f89a6e1747f4af913f47d81f9f67ffda72a7df15b519da9b7642a1bd9fd4cd1f820870cbb4d75b75e7c2bd4e649fe2c720e254bd861499371c9d4886a39fd0279fbc25669fe6081439df81019d83023a9400fd3988a364dc8eee0827305384601684679d69c85514ece8c49f648bfc17dd8002574c30a03b08d05f75030a1ccd61407f22407fd30d2870ea0e03fa1501fabb6e40813bb630a0bf11a0db74030a9c36c180fe4a80fea11b50a0d71f06741b01ba5d37a0400f3f0ce8ef04e80edd800277586140b713a07fea0614b89b0a03fa0701fa57300ebaec44b84160c16e2f1007dddf413be8e49184d52fa284ba4570e937481ce13f48b49de3405b6cadb4bfbbcc2924d4275fda1084b515c1fa6f90b7ce163a9e2751dcba75eb6c57e248fe4f37a0261e629b420625ab79009ef96c7b80ad3b47cf8f219ef97a487c9d6a98247197f702072318d4efc891dffa3a4205ba4460505792a1a8818e504dbc66fa6352539374840a1c9260503f23501b22a1d6bcdb199232f7aaab7fc8f0d42808945cfdcc73a64f73c22881b5724b1208e59164e6d9388889526e22264ab07df74f494d6c82c447a39312705615067033717e340d0660ba95802c8eb0209a4504603324c0485e1eaffecc1c23c3141a938563739d70e61a89733ec1d942279ca946e2ec4146eb963ae13433266906c1b98b4e38d38dc4792cc1d94a279cd05b9560385f213877d50967a691383b104fd16e3ae184dedc0dc37914c1b9bb4e38b38dc47935c1d93a887578dd5a057d62b9f8da20f1b5b644fc3bcd623fd1fe709113f13ed271b80961f17f18c44128889d08c4b64888356531a372b3b1e1d930c7460919bdf7d00926b077c45d554160b6d3092630600b06b388c06caf134c6038210ce65c02b3834e3081c1ae30980711981d7582696286f1590466279d609a78be723c81d9592798c0980d18cc990466179d6002633560308710985d758209dc0d87c11c49607643c2ec2681194f525760b387c5b94f277b41dd75860b1ca060707f23fea31e3ac33531dff3cf046e4f9de19a98ebf95502b797ce7081cb5318dceb489fdb5b67b840470a0ceed5046e1f9de10297af30b8cb09dcbe3ac3053a5a60700f2270fb21e146525a46ce1bcdb53f24b6ea221fa888b18808288a1eb627d5932c2692d12bb30ae74722dbd2042b94ee4f64662ab65658239cac8bc5d668a7468b4700f3317543c19c60b930fb23617a3fc93923dc050829f039b9dc46a8e48064f2352008acb1eea78fd4d448d2c0d027804dbf2f2a9b6d2782754f24d69e5158456d8c5cd9cad55b61507e95cf016b2eec7ad7e104f1409de24f728ccc33f228c1b9974e38738dc4994626588374c2996a24ce5dc9546ab04e38cd4c2a3496e04cd10967ba913817139ca93ae1cc3012e7b504679a4e38338dc4f915c199ae134ee8bdb9b8be934c943274c2996d24ce8b08cecca0ce7f6644813539f2b9949cffcc4202e4d3fb7bb92c0558376197a5fc45323664273263835bf450fd85a184e5631a466a698e2e28d38d44399dd4ca5c5d504203d160287f20b572882e28338d44792ca995437541996124ca0504e5debaa0cc3612e53a82721f5d50661989f27c82721812656fcbaf8bac4dbc00f85fb21eda1789b99983b9fa7e3c0c192cb15a3fcb45b61ffeec67649f7da2fd6df1ab917d76b3f7d7c71088c3131b461e920aed4ca623b77f61f9e94691dd9f113ac1046ef4c2608e233047ea04d3c4cc89e309cc3c9d6002a7443098fb1398a374820974b6c1604e203047eb0413183c0b8379048139462798c0306f18cca308ccb13ac104ae6f60308f2330c7e9041398630406f3780273bc4e3081394660304f2430f74f6452e9aabb3dc0b11ce62bea4e420e26e882123a2d82a1fc87a09ca80b4a68d41b0ce5268272922e28a1314530948b899772b22e28a1d16e30942309ca29baa084c612e11a384179802e28a1516e3094b71094537541093d0a0043d99acc2ba7e982127a480586f26f522bf3833cad2626e275f7a0eadea4864e4762ed118535a21c4f202110302c90d022806704731b616a1d0a71ada8e7e29b194c8c7096d34bd695eb1c6f22716e0706791c5544a6175af39c5f186b7fa0d49699674b56ef4da9ffc8c42ddf1b49133f28987bb412d0c461c7006e244d7c962e9324e81d31b049d259c4cd71b02e28a12e6118ca7664be79882e28a119bc6128bf21b5f2505d50422f3281a1bc80d4cac3744109bd620786722a41395b1794d00b4c6028bf27280fd70525f46a1d18caa709ca025d5042ef1f84a1ec40a6e573744109bd191386b23941598844b97b18a538a55b6e6b4602fb2b9cef9aecc8f88fac728a12791c25b0acb19b51282fb25c94c5e87312c58e83577cc4bdec09860c96f4b10d41363788cc055ceda37221679b8997954c2507a24a74c209ddbcc5dd4a4470ced3092734ac0086b327c159aa134e68c00b0ce7408273be4e38cdbce8a909c1b940279cd0204118cef60467994e38538cc4f90ed92e5ba8134e6834300ce7bf04e7229d7042836060385792c65eae134e6878160ce71904e7e260820b44b29cc0b76edba0008e20cd7b49103bdf620e1938be5214beb5968b6f69223d94559bb38957e13d4b9a7245304d59ecd5d49d288c574953ae4c646ecb50e09f60126203bd936d1d2a97cbd9641f671912674b07a7b8f6638ae3a72c0c172024605e3d4c267de2f260af4f58682bd378deba1af3fb04a99b2b90885b88ced816108180a15f32d987de81d4cc9541cd1653821f6260bb8843c910b30a09b08d157bf512b114da7c5f4161bc90d4c32382d88c4dd98952082d727006b2190b9b2d6e22088f4422ec2099ecc86fe6996a45b66481d90806a1ee92ba8004081ca51b5060161718d05504e8d1ba0105fa7a6040c712a0c7e8061498cd0506f46402f458dd8002730dc1801e4b801ea71b5060f64018d0ff9175cef1ba0105ce3c61405f27404fd00d28308b200c681e69f227ea0614e8768301dd4a6ae84948a04ded2fcaacd2b08000b7d4022650eee0c584da009b69b9c05627760b222405bf9514760c3499d4bd3541f887d29d55b878bc48e5bdd2f810e965a42e9e8c04d8ca72a3cc8bc27906028207cb333081c4979f92c8865c35be1cd89061f1e54d925c94a7ea1365219cc1c0750dccd9763dd99a3d4d279ca946e25c4f709e1ed4599c85e18717d8bf5a6cbcfbf70832d09c91c8dca96ed14301a8c045216c57e772b28639532798c0a10706f34a02f32c9d60021783309857119867eb04d3c43ba06e2030cfd109a689c9ec6e2230cfd5092670ab0c06f35602f33c9d600267973098b71398e7eb0413b8450683793f8179814e3081210630980f129817ea04d3c4840eeb09cc8b82f016891822b174146b72715b5ed58b07c527963a3f85a1842558fcce72515e8c44d9ddaa1ab0bad49129b796db7f163905175713ae8c515b4d5c5ef62135756d10474c444d5d62532876fe33ddd5710ea99d9704812f2121ab307c37127c970671f36da4714727bff19e2419b852876d5e9c4c3cee9705135a9d9a882cbfb05313fd4968f5e54166478faea7b1fcede635ffbe644bf78a20b3a32fb23f5a69d5fdece84712c05706d9bf86b2facb4360f29d6954a5cd4a1433cd861dd0899f7414e6ce6412755522938f55ed12806b7adcf61b99115c1d74c816151c61ff6ab9b38e2a709a7f2a36a52d6ce86adfd8057a8d6e40818e1218d07604e8b5ba01056ecac180ee4a805ea71b50e0700403da8a00bd5e37a0c0cd3918d0dd09d01b74030a9cf8c380ee4680dea81b50e0261d0c681b02749d6e40815bc830a0ad09d09b74030a9cd8c380ee4180deac1b50e056320c685b02f496a0c2b9ebcabd67c5960befd6603ca219762dab3b9efba38847f43624c04156f56d3911fb9eefa0134e90b9ce2f2f64fd4d5363fc06707a3f1085fe15e2d4bb3db1de26d3cf14fd454e75dc11845f9f0e4af2da3a235c5b8554e8721018d65cd431c18b893ff4ce441e96c9b37f7599fd6ba11a0a5c296d4902a13c9734f6bb9028bb4a1abb7c73c4dd1489580f45bb09e5b59f4286b0bb839903a4d853f7c0e700b08c5dbb1380f7040330b74e6d2b6792b346f7067174ab84ed29a7578964ca458ee62d50388bc9687e9f4e38738cc4994f70deaf134ee836070c677b82f3019d706618897387e5e27c50279cd946e21c466ae77a9d706619897320c1f9904e38538dc4792a69ec0feb84137a0c1686f3438273834e38d38cc47937c1f908fac244710861b9fd4391887c5c78b50e4306bbd9a20941f6681071f35989b81804b67d51428697c7f4f45b02b7d4607ecb9388dff2f1206a657a2236d5607b429b49a3de98c83b2ea2b778738cdc31ff85b87e9fd00967ae91380f278dfb499d70a61a89b353928bf3299d70a619897312c1f9b44e38a1a90160388f26389fd109678691389f27389fd509a799b1707f119ccfe98433cb489ca564a2f4bc4e38b38dc47939c1f94210aba09c3ab536bf8caccd5f44e21b6045dfb046cf5556b02bf57c2bd6f94b602407ecfce52d646abf29c863ae154e7cd152ab300cbc6e9f263e910c5b2f05118b44fb59ef6881278c6068ff2491202f07d1e766d8bd6eddf13cfd63b9f85e092a942b01aebb7cd47daacd4828d7ab898c29ae1a36636246a5fb4953deac0bca542351fe4ca652afe982d2cc34d29349ad7c5d17946946a27c9df4955b7441093da90e43b98ad4ca377441996124ca6282f24d5d50661b89f21a82f22d5d50661989f24c82f26d24ca8e56d595f90afb4345b6c43c2bd699352052d899b5d7887bee1d24d27e92da195a854fb78b23be37d2feff426ba1f377e1615ae6488e7252a60ab3f21d6aa10742616f40c15e6db9b0ff67126c601c1d0cf61304f6bb4138411292a412e6783e86e07b2f482f6855c7b377b733b44b80852e4e27fdeffb48cc2246b2ccfe718935c12a769a799981338024522b3f48e459e0c0a2e06128db11fffb87baa034f322a81f08ca8f7441098d7e87a1bc8ba0dcaa0b4ae8114118ca83c8d0f2b12e28a1c7036128f726283fd10525f468200ce57304e5a7baa0841e0b84a1bc8ca0fc4c1794d0c3fe30942d49ccc7e7baa0841ef487a1fc89d4ca2f82d93dcf4944221458f8c1a76447e8cb20ef2812618685d63ce717667af2789a98a56b0d69ea5f0573c94e6ef0b5137683d6bd968befeb44f694546e3632f73baca1ff44b633be09f2c212dad0c7da1f28b565e659b113f299b8b9710c69eadf06d1d4b3133110c19afad12460e6bba046f2ba7484f52332927f1fc4c16a6f991168803670045f830a6fdd46b0fe10e4fd5995f6b717d7d9cb1b0793def2c7207acbdc44f496b00db34f486ff913125fb7a85a5961eb96395b64fc0429a03bb160705f2475f3e720ee13e68268aace3aa1d786c386a51452537fd109a689578c651098bfea0413784f060c667f02f3379d60026f7181c1dc8bc0fc5d2798265e2eda8bc0dca6134ce0f93418cc7e04e61f3ac1044e8d6030db1098db7582095c5ac260f6203077e804d344ff661681f9a74e3081b760c0600e2130ff42afce8b9de5a2f8489ef3f84247c0bd3c1c866f100a9f5089e0fb3ba82b9a12b0ef03ab7fc713a7db3f89ddf7a1db12c0a60cdb96c8223be4ff0671795d3ce99c81030d2c65eecda46ffc4f37a0c01a0a037a0b012a9ea21550a0630306f42a02b49e6e4081ce0d18d06b09d0faba01053a856140d711a00d74030a740cc380de448026e90614e8e88001bd90006da81b50136f1a584b8036d20d28d0490c037a0901da5837a04047310ce8950468139d80a6193ab15f4756f14d75036ae2d2f34602b4996e404d9c36dd408036d70da88913fb6b09d016ba013571e9793901da5237a0263a472e224077d10da889d3a6f308d056ba013571627f3601baab6e404d5c7a9e4580eea61b50139d236712a0bb2381f6b46431f134be98db79a79f018efbb018e46f490c726b246237ab766af01bc8307cdf582ebe36487cf14583e41819c23d9534f7b63ac13431847b1a81b9874e304d0ce19e4c60b6d309a68921dc071098ed7582696208f77802b3834e304d0ce1de9fc0eca8134c1343b8c712989d7482696208f73802b3b34e304d0ce19e4e6076d109a68921dc3308ccae48986e0c727a227212c300961080dd90005b59911bd567ef54155f07000f76bcbf1581d71d09afa5fd85f8e5725b6fa673a39ac835936f851236c3c0c18e0e4cb55c703d90e0449269d1fb4db17f2cdc64e214c678fb3b42a0d82e10fd3e0c635bd4a5602f93588e9e488c91030429f67f4596ecf84a404d19d60fd627287b05339064d9ff063e90c0fac2db485fd83b88690db7f95035482bc5c8bc311d895fbc8f4e304dcc9ed99bc0ecab134ca0c70706b32f81d94f2798408f0f0ce69e0466b24e30815e7218cc8104667f9d6002bde430988308cc013ac104ee2cc260a610987bea0413b8b30883994a600ed40926d0170983994160eea5134ca02f1206338bc01c1464bcd07cfbe3620d2e425b4257d24db3f2acfdedc2e739bea2829d7fe6db9f5b60153beb75e0bae8b87a20c4d724b988072311f790d4575188d0ed688bacf1ceed7e8b63c6bd9918f326784600a7200147ae538cd461f1a1d01685fc72ba31e15f9c6c4bcdb7ff2cb43f115006cedb1a81604f221d462adae754e1fc4838ef268451cfb0ff2cb6565823ec8f55d87f83011c80aaade3496d4d4302ec2ae90eb84b14973ab9e02bacb98edc426b36729a958142db9a2454490fc61f9a66252077316c36309af8433382086dcdb4ffad3ba1ad1d893f3e3388ad0d6fbbe426860f5e407ac9ac206a625a22363660f8ee24f8b213b946aa5a13b38d0c7ed94ca63c393ac13431f8e55d02335727982686ff6f223087e804d3c4f0ff5709cca13ac13471fc3e8bc0dc5b27982686ff6f2430f7d109a689e1ff3308cc613ac13431fcbf92c0dc5727982686fff72230f7d309a689e1ff0308cce14898d1d7302d0affa0220654d3af61ba8fc01d11045c5a53bdef1641bb01d87ed11d04ee4824dcf6567c3911728d4c75762271cae5e984137a780586730ec1394a279c9946e21c40708ed60967869138f72038c7e88413eaac83e13c80e01cab13ce2c23710e2538c7e984d3cc24a6b75a2ecef13ae184de2c04c3b98de0dc5f279c6946e27c8be09c10543042026e4d1f8302389204234c4cec6e7a482a74d310d01b0fbb69e83082725210519e35c71c4db542f170b2d823e0aa7d20acb69255fbe420c2ba686d95bb445c5748c4fad94857de269443e46c326d9a92c88ea0ea94c9c4d8f997494770802e28a1b75ac250163470514ed505659a91285b1294d37441996924ca5309ca7c5d50661889721941395d1794d0083a18cabb09ca19baa0cc3212e51504e54c24cade56bc5b6f79f6670bad487215b1f05c155e96c230af4565a9b929c9c57ca04ece905c2313e7cf2753f88374c2094d610ac33993e09ca513ce4c23717620380fd60967869138ffb45c9c87e884131ab008c3399cd4ce4375c2996524ce4104e7613ae134f34a9cd348639fad13ce7423716e25380fd709679a91381f21380b824c6f21529d96da7f2b62374002def8801dbace271b1f738258db7babaf2626b29848169d85489403a26aab9011497997858bc2d759fab9347bc54f2399817b4be9a8bda529246540111279db28e4a5313c532626123a8c7403c5ba8034d1c1378b809cab0b481353a82e25bd69892e204d4cec5b8f809ca70b481353a73621834da92e204d4ce8fb22a991f375016962cad4af498d5ca00b481313f94e2020cb74016962aad46432fd59a80b481313f876232017e9b2e79e6a642f7919899a2bd70565ba91280f22e10b8b7541996624ca5f48ad5ca20bca4c23519e486ae5525d50661889b29ca0acd0052534ed0f0ce5ad0465a52e28b38c44793141b92c88749259ceb56375259de474b267be3c98b36ca989c8c7094b9832988cd52b82a87f3989a87f307c1791fab712892fd98ade182b77b6c2caec3f0bec024db6dcdb03a313fcb8660594de672b6a536c2d71afad42e2ee68c58e318e64790f7d6fba2303f558f645c5136f23488f40226deea885b6696759e2b6cb71e1711d06ad0daad98b988508b42383bae7b7281ccd1ed0e5a0b03452e3499f7954509783e6063fe8c0e68cf79031fbe82063872a2d714b0b1d44a83c779908708b1676c4ff05e2353f268868376e8543e54235d9c46c9c53c82ae7589d709a99dc740ec1799c4e38338cc4d983e03c5e279c9946e2dc93e03c41279c6946e26c4c709ea813ce742371b623384fd20927f4d26518ceb7c95c74b54e38538dc4f90fc1b946279c3946e25c4e1afbc93ae1cc3512e76904e729893c515115a7893767bc46509e1ac4ddab9135bceb45aadb97db8e217ecdd382d8d810db1ac58edb437c3420271dccc7f4a8e5e23b1d89af83157f4658e0e909d811aa0564643f4337a026a6315d4c809ea91b5060a4302e813e017a966e4081633c0c6821017ab66e408191c330a07309d07374030a8c69c7653f2240cfd50da88907a52710a0e7e90614b81107039a4f809eaf1b5013134f1c44805ea01b50a05304067436017a61103e2677373ea45cb70e478f23ebf68b90383b59de7d4c349c01b8f88485299e4ec2192ed6112ab0e1c3a06e222ebcb53a42050e4f30a82f10a897e80815d8a7c2a03e47a05eaa235413af1a7d8640bd4c47a8c005290cea0a32505dae2354a0db0406b59240bd4247a840e71e0c6a23324fbd5247a84017340ceacba44fbd2a98d0f0dc441ce7826d2b0f2700af0e62d7332d8caec812273b4cdff5dc8face5af09a6fe65daffd59da309e71080d7061121127186acacd62b86a44257e301e797b0abf18e266952ae0ba22967d7a94b1a57925346d727365689d644132f691c48e68f37a07bc50ae74762389960ff29a466d87f165b2b6c2ee5f6bf953880b04cc4e32c17e08d7af9dca1f7b2c17cee1b48e35ea71b501383691e25406fd20da889c1340f10a037eb06d4c4609a0709d05b74036a6230cd7a02f456dd809a184cf330017a9b6e404d0ca6b99500bd5d37a02606d3dc4680dea11b50138369ee2240efd40da889c134f713a077e90434cdd089fde3c42177b76e404d5c7a3e4680dea31b5013a74d1b08d07b75036ae2c4fe6102f43edd809ab8f47c8800bd5f37a0263a47ee27401fd00da889d3a67b09d00775036ae2c4fe4e0274bd6e404d5c7ade41803ea41b50139d23b713a00f0791823201610ab038a302cb85b72188bdf5dc44ecadc3a23cee24abf447d0f89686b77da7d9ff17d77b16da3fa0a92661f806a0f0a591daf76822431328466868c26614ca534868c26341a651899d0ad53524a0a303b08cdb99240ae971dd019b98d27c2f0278a3ee80816b2318e04f09e02774070c5c2bc1007f48003f89049c120558fca2102b08f32870848ba28635f985e163c2a2553f0bec4060b3893904ff5341cc65339d7553c073d91c14be16642efb34125f4b47c09dc38a046b25e1b8d00a1cb85214b861960bee9920ea5d86951d7cbd839dd4f89be07b3698a306298968b8b0a8e46da4e13ea74f6e4fb00b19561f9f2227879ed709a7997991af24385fd009a7997991ef21385f44e2ec66559d63569011dbcb1550c01924ec0aa81ec489b229a8536f3975682cbf82f8e25f0ae612c704dc6704c3b7988ce42f27b2afcc0b2f21f3c36ca0cd791daa39bf476ae32b41d446711144dd9957be60b9f85e0de646cc0434669837e87ad2983723f1ed6e45dc11b3ed0f55bdfd329053e8b8d412a401bf16c45e39b73f34c2d97a130e0ae1620b2d218141b0301fcf13c445f6ba6e408141b030a00f10a05b74030adc6683012d2740dfd00d28701204035a4680bea91b50e00a1c06f45202f42ddd8002b7cd60401713a06feb061418a60d037a3301fa8e6e4081c13530a0d710a0ffd30d28f0a80b0ce85d04e8bbba01051e758101bd8d007d2f18cf656a9dba4a7c08596abe8f04d8555223e59119f90e4cb18e9febc82dc48626c292fe34225ef50f90683bc7815624e9ab7436348ab1d146a50d41581712ac1f06e19e4b4dc456052c2ddaf5968befa344c61e470a9fe544c6039798ab5128cf2135712b12651fabea9e24f576e6d97f165a355de638c10aa5528382ee8502fd78920bfa6324687158c75e98d93f145bbbf3ec5f2f740a216ec184616b83c2369934f54f824bdb37d1feb6f8d548dabe4956b9230c03380805702c01f82912a098de097473c3e3749145030581c181b02d8cbd08bacf829998e72422ba0db627fe0199987f9ec8713acfa98973ac50fa52e0aa7b4b122a76882c12bf0802a5b7502ce0461aac563e4c9af597fa2e17816861cbc5b66436f915126dbb1a1a7cd55a9a81dc9f84d5d39e04e6d73ac134b1d1f72230bfd10926d0630983d995c0fc562798c0911d06b31b81f99d4e3081fe4a18ccffc82afb7b9d6002f7226130eb919af9834e30812e5f18cc9f49cdfc512798269ea4f88dc0fc49279840cf240ce6e704e6cf3ac104c6c0c160fe4860fe12c4191f0a33b6ff5c9cd55d600937f06c6cdad2e35061d9a504eeaf3ac305ae9060709713b8bfe90c17382f85c19d42e0feae335ce03c1506379fc0dda6335ce05a1f06f75002f70f9de102d7fe30b80504ee769de102e7b530b8fb10b83b74860b9ce7c2e00e2370ffd4192ed0570083bb2f81fb97ce7081be0318dcfd08dcbff1b17705ce86df42079ff8e8646bb9fdc3a54e78ce2a1c3e58b0ad38b11ac1f70f12df00ab6ac058a135cffe5859b8288be2d84b0d28bb623eea2c7c7de287fd578f20dc195628db9c9012112bc08e20b71108eb1f04eb7f41ddd35e97e2ee47917c3656cb00525e783d099263e459ba1b497daca713ce5c2371f6241153f575c2996a24ce5dc8b4a9814e38a1537c18ce110467924e38d38dc459487036d4092774b31a86f31482b3914e38338dc4f921c1d958279c5946e21c41264a4d74c2996d24ce1309cea6489cee3a28ddae7975e7229e85e49843332440b1928bdc2493677f63b955ea1cae19178ed687a1eb026bca968bae39129d2c16dfbba7d3c48dbb7fc8eabc05126defb8d186ce7b464e7f8a861fba5906b811b216e59cbb818ced2d83188cbcde09978bdc1185dd0877643d17e72e3ae1cc3112e76c82f3ffbabb0ff8acaaf30fe02718441441a6b21110e3247b38aa42245241645b1706482008246600e2421c38706b5d75b46a9dd53a5a6b6bb5ee51b7d65177ad7bafbfadb5fabfe7dcf7727f6f92377969fb3beff3bcf20124b9efcd9b6fcebdf79ce73ce739bd247196a8e41c039c9b49e2a42e7da071f602cede9238cb54724e06ce3e92384b55729603675f499c052a39af3031673f499c452a393f07cefe9238a9997834ce678073800fce78ffb7f044a936d6a3a62cd0a6868b60f26d732667e76b4ac25385951f4a9898b462fee701e616923089e3751ae64f01732013b3b39a24c94f7462848976915742e8639014ca2295940662f083a55052172cd028ff0aad728814ca129594c740ab1c2a85925a328346590594c3a45096a9a47c0e28874ba12c55497917508e904259a1927200f42bb7944259ae927203a01cc9a41c6c52d7a4eda83481c62a0f3de0521fc5448d4b4e17f8cff1a0f11d6562bed1fc3178eb5543d3dddf0d66b6fbc83c57d6b7d9841b3deabbc0a703e6564ccc5e89b668bf70adbbc4a3732f4d1ca2af25e600de18265eb41a2875e0774af0a245265c09e4699115ada6fc7390c4b5353f0b2e2e353dc98465cd6dbed18244708d582db98e053815da659e8f0e501c41ef28b0a6317a3e1f3a40dbf8c9c82ccbc4d39ab67febed70316feb633627ccbfb4a7e9a8df58c01d26d21e39b32095703b499cd400068d7321706e2f89536735dad1c0b983244e6ad097c6b92b70ee2889933a1d41e3dc1838c74ae2a44e94d138070167be244eeade8334ce2fa1a3542089933a234ee334d03a0b25715203c134ce2381b3481227758a82c679267016fb08019766d7323fc8072e61f2f537eb9339a42fbcf11cb4c35229901ae344cf00649914486229281ae4eb00592e0592b8969c06f91780ac900249ac694c83fc182077920249acbc4d83fc1b40ee2c0592b8428206d9253786dc450aa4c6f4160390bb4a8124ee58c02b450a903f920249dc578306d91b2077f331302ccfc4c09036db78390c0c77cf64ea5f729842e32e598fc2d37a0f26e546eebba9312b8297b524bebcbea495ed4dcc352e9395b02a13b968331236d4f1f4d5ac5a2e6b214772bccf45a0d199b3abebbd29705632393736e1d6f3513dac9981844daed277ffeb0917f49e3e327f8a83df0d26cc8fac0bee8673dcbff506698f00c0094cc08109c0fce0f7c4e0d0f1c127ecc9aa4db8cd3cd6678b52509b79a0b4ea80170368959f5cb44277c7f3dc3ba401ee0a53ac7b3101a3cd3ce2874abd9914fcae0ede4caa078ba7ac5d5ad7fb6218b94c64e2f630eda5e5cf7097bbbe27735fb8a87fec2bc1b4dcff454d7b4e3f0617f5de3e4a32a43733ad33e3ec16183f4f9284a9713bf95b0173b2244c8ddbc99f0598fb48c2d4b89dfcb980394512a6c640d9f180b9af244c8ddbc99f0e985325616a5c687c2c604e9384a9713bf9d580395d1226719a8b86791b60ce9084499c7ca561de0198337d6046618d396ea5626a4e8df7ccdeb0e073161373cb569861306381b131f346d3ba72ff3817d3ac497c2c3a82083c8635b3f305c4896667768a363c55584291d859a21550dc0e6675f6f311615f9fb2c8c4c712adf4ec0e104bfa893450e2a389065a00a0fb4b0325864168a05b01e801d24089a110de3e12007aa03450620899069a07a0074903d5580f7d7b003d581a28b1074a03dd1240e7480325864668a02301f41069a0c490320d741480564b03258e9468a0a30174ae9f928be1c0d3e6c2794be5a22529ac8508d33c26df08931c1469692714d2f1fe90c4cb9db63fe4220889cc67f20e6ac5bbd8a12d084eb230655e92cef5b843218c5793c928131666a446999e6251ae812853ad9f0ca522539145194a87c1c367819cda1936b7536326c8fdb03065a124ce7c959c9703679d24ce02959cb701e7221f9371a91e3cc9dd766a0203af86013cc50f9584a9b1d6cbf380b95812a6c6ea1a2f00e61249981a6bbebc08984b25616a5ceaf71260d64bc2d458fbe565c06c9084a9b1dac6eb807998244c8d3560de00cc4649981aab6efc1d309b24616aac05f30e6036fb98bc4885392e7869bd8b7156bbd0b0adbd4aecb8d396ad8eed1683b64803250e2b69a03b00e83269a0c4d1100d341f40973341fbd8a79d436b4e5ad61f1d30c384756468843bb208f73031e10a2661f7c4099606074d0d146adc6f7d81b611007638136cb449bd3561d37acd4d12ef95b4b9c9993037b992c93ca413e6d4a1628dcb0cde8130f1113e12128a5d7d19cf536a45ac56f9155cfc4732f946b56a95cd8907ccfec1c10d59be52e34bb8f48ff231f16b473d4dc16136eb232ad6a379e2f70168a547b3ab6ed59846d7356a7495df9a5daf525f376800901de3236f23bdd9488d0b560f04ca55b2463945ccc0066d94930ba39c63a58112c36e34d00d0074b534508d91a2ef20f4769c34508d91a27f01e8f1d2408953bd34d0ef01f40469a01a436fff06d013a58112a77c69a0061e4a6ba48112131268a03f400b3d491a2871ea9706da055ae8c9d24089890934d01c003d85093aac1dd09966a91baf1f6ef674a7b19fb32a8d0eb5c9d4bad32de10e428b59b4df410ce9541f71ce225706da739c9336977e9b89f9d6fae02b0c9ed9d9b3f2e246e03b2db3d1a4f0547a6bcd6c0d8b584ecfe482aa4a17209e9ba0240e2a9fcd2551ae847be2197e16549564e2b2a6dd15cf87b6782613b05702309bee8987c23df1ac4ce6bab58eb06bac63580e97f2d9923035d631ac00cc7324616aace4be23609e2b09536325f7b180799e244c8d2b243705cc9f4ac2d458c9bd3f609e2f09536325f7ae807981244c8d95dc3701cc0b25616a4c17fc1ad2052f9284a9313126175ae6c54ccce1ed60b61feeb5dfc6b4e065cb83bfa332d0d4e0c650166e4fa816f333dfb8e9a76253879bb464ec1268b99748c6250e3f69b8bb00eea59271899d7e1a6e01e05e2619973808a0e11602eee592718981141a6e11e0fe5c322e31b042c32d06dc5f48c6d5b8742b0f70af908c4b1c44d070b701dc2b25e36a2c88ba2de05e2519971898a1e16e07b8bff4b1a2b3f3e1ef2c131648b5a722579cadd890c4fa0a0c7caf66b26e635a2f495c129c19b70f4f1d63b0ad7741220fc5d386e375e910fc27e0d700f8354c70bb45372e4b9c151c64eb7ad7275677dab7de107c965876e06016a2cda98c10aff551fd33dd5cd27295c9e38f439bbc4e1267854acee9903a7ebd244e6a9c80c6d9179efc3748e22c54c9b93770fe4a12a7ce85372b80f346499cc52a397f059c3749e2a45602a5717e049cbf96c459aa92731fe828dd2c8993ba8b218df302e0bcc54f4a797ed0f2bc67456fcb02ec0d29e5b7faaa75d3e0be7c6d7098b72da2766101d69b18f036df6be8d20fd9699cdefb0e927f7ee3e7e2ceaeb659076df3b7995c0616bff539dc4a9fb4a53777405bbc5d0a257592834639001e39bf9342492d8241a39c0eadf20e2994852a293f8256f97b29943af788390a5ae51fa45016aba4ac03ca3ba55052f716a6515e05947f944259aa92f22ca0bc8b4939daacef98a7d2d4b919f5b07eb2edba1fcece1dbd805587f64908bdddeda30886dde3da7b68a38ad54a97e7c47c7fca64e586e42ebbc68dca86434bbc470a25b510208df25ba0bc570a65a14aca5b81f23e29943a77225c0a71f4fba55016aba4dc0d281f904259a692f251a07c500a65a94aca6b81f2212994152a297b4172d6c35228cb5552fe0b5ae5233e4638155935c2b91146388f32f9b634c9a9d78b4c931b5fafcf0ca4c625037b400ff3cfd281352e782905e0c7a4036b5caeb53d003f2e1d58e362c3ef2116fa8474608deb90df8216fca474608d69360f01f053d28135d680b81d809f66028f6c056cb3986c86e7a4e0efb6f35078724f6be268994e536020f18c8f8184ddef3d7b0a0bef06038967997c9b383efb659bddd4dc78539fb0d087669b4284f69c943800b5be138db219ee907f914249dd5b8e46d91dee84cf4ba12c5449f92eb4ca17a45096a8a43c075ae58b52288b55524e06ca97a45096a9a4fc0028ff2a85b25425e57d40f9b214ca0a95945bc0fcd22b5228cb55526e0c94afb24ba5d84dc8eb839755061f58666c1a627bdb99d110695b99ed6e62c4d77c8cad6d49bfec195b5f047caf33f9a25d0ba3e84f5de2441d15b2d65813fc73b8a8df60072b9a82732d0e3ed0641642896a1a1aad3c750f68856ffa594b599e8985d2b408e39bb03ee86f3eaac7d9ed1c6dabb301b2c5c11bd937f8dbfe7baf4430b7de84b9ed5e96a8d216f05f06edf22d1ff51052adca48be2f1670cb4bd0ee8d336036f2ef9238a9e525689cb5c0f9b6244e6a691e1ae728e07c471227b5340f6fab33e07c571227b5ac198db33b70be2789935ad68cc6391038df97c499af92f36de87f7e208953e7fe713f00e7879238a9f55f699c2be162ff481227b5fe2b8df374e0fcd8cf68bdd8553fca96d17a135cde9f30010799e4a0dbb2e0138b038d9a36ed323c257df7f6de2cd26d6086e7531f61e0a2e0e2cd9eb51aef9998ef339f49806dcbe4a79304485cad41bbe80f83c0f0e73e42743871d6fede035382172f32e1260fe4ed74ec964214d63a60fdc2d7c32803d995b4a7f92a78187dc904b427a8772f08db9f7d144d37f1060ed181f65b206fdc308b853916eea35ff9c9f4cd40c788361bb90964fa7ecd9e11c7cd43e2c933fd9b8794421bfc3f26623fd3f16867bc59e8da22b54779c20624c67c18e57ce3e7c1929f893e256df26c103c58fee1e35e58e87281b2a54b7e2d5cc6ff9413b42874ad545f37e73ab89cbf95c449dd9699c6791770fe8bc9d96bddc53d67dd593da515d0ba391f4337e73b76973bfdb53985cce7340d731a0c00ff2d0993b8209f86b91f607e2f09536321d28300f30749981a8bf1cc014cfb55c46012d77cd3306b0033471226713a8c579d1030bb48c224d6d3a0613602e6069230cb1462360166ae244c8dab758e00ccae923089c3471ae68580b92113330eaed91cdfecd919ed6108ae756302760ffe61d78b855b6b4f4c84356860fd5860252606db8809d6c744090273dc07ec170fa7163c852d68319f6620ecce24ec6ce967a59bb9999b4857213e4c9e65cd5adf0af7bf8d7d50a6178d24f61869adf27668959b3029a3158ca95a65dbddc84b99cf66dabccdc86e31680f69a0c48b9d06ba25806e2a0d9418a5e4cd2c02684f69a0c4183a0d742080f692064a8c56d2408700e866d24089b1741ae86000ed2d0d54e3dee4c300b48f3450624c9d063a1440fb4a0325462f69a02300b49f3450e24889063a1c40fbfb09ba956722a38d96c2ff0104dd0630016d7aaa0db845859aa607bf6dfb9be74e383f78f32d2e24d7a410b1d2c4889bfb69858599a8f5428b9def09ad700b2660b456279dd8d174d3e04ed26ca604ff17ed70da64a8b9bfe5acdcdf778078209338fdb53ab31297bf3d552137ea59b12189752d443d07f988c187558ae234ff265f3178daddf37b481d1ccc241cd6cec5dffe4608f10608d1774f5da0f7e71c12ed4b70d10f61d2c64b48b3aa04193cd787b2a734ec09960607cd0c1c2605bfdb56ec9fe464ec7d54df13be2b500e635246b9ea0b528e7d6626a51b54309fe63d589cf3e09e395c1267b94ace69c039421267894acecd81734b499cc52a39bf817be748499c652a397781d6394a122775a28dc6b91d708e96c4492dfe40e33c092ef6ad247116a9e47c1538c748e2a4ae4ca371de009c5bcb8c2211672e6951a4d51045cacb641a62eb36aaaf853e0c94db3029479be4b24fad8372d9bdcdf1d3b931f3b63e8276d862b37b83e36f601dfa76994ca44dee4c695c2d741fc43fb7974259a492720eb4ca1da450ea5cc3f635b4ca1da55096a8a45c03ad72ac14ca6295944d40992f85b24c25e54d40592085929a3147a3bc18280bd9fdcc26134ec1852f9a1c1c3cdf95741cef786ddf321c72369a6cd866ce56528e688bfc642d9566a2b423ad40f3e5f01c2ff63d066a3f183223f8bd22f8688b7b9385c198883a06a22d6ded06c3cb129fa3f8e624c0f561268ee269ccf3a1c4786926e34edee2f6b407d50068b1655228a9317b1ae58740592e85526725b93381b2420a2535a98146391bee953b49a1a42634f036dc06ca9da55052931968940f02e52e5228a9890cbc023e40b9ab144a6a7a228db2074cc2fd480a2535359146f929b4cadd989483daa1c489b671c66eca5d93f858b8a700757039a60b89f433e814edce241d65da86e7d21d50e2de4044e422d62c662104eef660228f30c923f86a17c25be85e30dbd82585cdc1bfb26d73b017e1b630cec7ca8e32b7f2285b56763442d2e2f84c3ea0f0747398117a5ab1aa4fe142aff4d1122b32d112df60dd27af8296b8a70fbed24c148da4758fea806f828f12a6b6ed5519bb38ab3238acc9d835c2f6291d1d688f69749fd777291f6062cc2a2626ee80313f91b6e569192b2d6d6b2f68897bf9b890cb337121d3ee839700df44269ffdd2c90bfaf5755fb6850bf5c73eb2da53251824775fc8d50c69f7bdfda10bb3b724ce32959c8b81739224ce62959c638073b224ce12959c1380731f499cd43d04689c3d80738a24ce22959c4380735f499cf92a39ff01295a53257116a8e4ec02ad739a24ce72959cab8073ba24ce0a959ce702e70c5f09ade5593406bf19ee96337dacee4d6fb1344e851197a49ec862ed0fed72163f32645f5e1f9c71b60bacd9a9b029a636f865276f8951c9135897f54c13f3cdf6d12ae35ce025c199ed1bb6854b5774905aa0715fd4b72147633f1fd9eb761ad646cc53cd8157255e302538c522132eeaa74eced276b25a052df6277e69a3ec8cf9ee491ffd3d2e387861f0a2652ee669930cc869d68359b427c0236a7f1ff536ede5bdc464d39e574ba1751ee063a2a2d86d1ce6b99354c5e2fb12f80ef4d3cb2cc90420af9b0e97f0413eda9f0dfc660fdf5a687f07fb98f14e6fd048dd9b9786d915661de748c2d49809b421601e220993b8f70a0df307b8ccab256112eb6bd13073a165ce9584490c67f012fea065ce938449acd04ec3fc0c30e74bc2240e0e69981f03668d244c627c8886f90960d64ac2d43835d11b1e400b24611277f3a561f601cc85994ddec76524c4f10f6d1949012c23a9f3b121ddfa146f265ee8b4f2a36743db5c240d9478b1d340cf01d043a58112079634d0530074b13450e2e092067a2a802e91064a7c28d1404f03d0a5d2408981391ae899005a2f0d546319fc1300b4411a2871b049033d11400f9306aab10cfe1a006d94064a0cd4d1404f06d02649a0854a3bf66b611ab8591aa8c6a1e71a006d9106aab1db743c802e9306aab1637f1c802e9706aa71e8790c80ae9006aa31387234801e2e0d5463b7692580ae9406aab1637f38801e210d54e3d0b305408f9406aa3138d20ca0473141479af6d66be06aa154339f780cf13145abff7107acdd38da4f0eb29d2ace9e24ee7da08d1ee3a30464d446ed4a22bb0ac3ee12b83eab3534aed53816269757f948f48e6b73654335aeb34ccc772cbb1a17ee5e990d9bdb1400de6a265e4fd3fe9acb19090b1a1d6dbde52ca03b8e4937d8a49fabe4a91c2eed897d0a3c708ef7b56a289b2ab6ae06c013e4d44a28549add790fac493f511227751049e3bc0838d748e22c50c97923709ec4e4dcc62477cf1bdd69ea83ae778d9910bcc0667646073765f1e3a93e37063f99093ebc1578f57a8ed635e20e83d1fa297e9efd0599d8689156aa62083cfb4ff5011886deb267cd7015dc4fd7fa1889dbdda4b3876f08e47e9ce633a2b9c88dcb97ba7030eec55214fc1956cd8efe9e111c7768708aa5dc7b24ad7af60df0003a5dca5eaaadc320d4351eb450481f08c39de1e7f1539c89d2e4b4cbff0878fc9ce967af950cc4da694fef63e0ee79969f0d4232c0476b7d5f02dfd9995ced56e942c4734db8da8d982ef36c2e89b20b74c4cff17127cc77a1e138b2aebd74d42526063cd7d7482603153669cfe20a78949ce7739c8dadd0beedce2a1a6adc2ab1063a3a3ff5d33a2bb26a9cdd078689e7fb58a59eea51931cc5d4b9a9c866f0b0b94012a6c625ff8301f34249981a8b9e5d01f7c98b24616a2c7a763d605e2c095363d1b3cb00f367923035163dfb39605e22095363d1b3f301f35249981a8b9e5d02989749c2d458f4ec14c0bc5c12a6c6c483f300f3e73ec6e78899fe0c0f75233bda1ccf8330c7f30bc9b8c411120df729c0bd42322eb15f4ac3bd1770af948c4beca7d270ef03dcab24e312c7fa34dcfb01f797927189637f1aee03807bb5645c8d19217702ee35927189fd5c1aee1f01f75ac9b8c458010df74f807b9d645c62ec80867b0fe05eef23d33edde5dad43d33698bb58f84ec921b2471527774a5711e029cbf92c449ddab9dc699079c374ae2a40660689c7d81f326499c652a39a700e7af2571521326689c15c079b3244eea5eed34ce6b4ccc798b24ce22959c5f03e7ad9238a91ba2d0389f03cedb7c2ca941ccf6d77b4c33e19ec3edadfb208ef1b767115741ced46fd8f543a2ad72b3a5dcc03c689fbff591751f25eab65d081b9e2accba2706f2687bcc3c0f73aab7fbb873a6ba6f8e0b5e5aef20ab5d00a49cc959cee2fc0570fe4e1267854ace3e7097bc431227757f761ae7579042fe7b499cd41d0d699c3b40b4f30f92388b54721e009c774ae2a44ed1d1385701e71f257196a8e47c0638ef92c4494d8ca4710e828ed2dd9238cb5472ae02ce3f3139fb9a78f16cad49aec1a47d01eda52646bc8789d8c7c463725b98d21a8415c3b413be0e61e27b7dcfaea75f2984ba1d396d7df225301aba4f322e312f8486bb1c70ef978c4b8c76d270ab01f701c9b8c4673f0d7702e03e281997985c4ec3bd12701ff25dfa2afd74318d2b4ec6c088ea61f6da282cb1312b38c896d8a8375382f6591b7cced6a09fee5e6c3fdec8c39ccb6aa71526c67c8489397abddb69a5a9735377611fd7f66d0f7711546217ec822e24e6eba0cd3e2a69a2b942e516692d305cf8b324ce72959c0702e76392384b54728e04cec72571529792d1383700ce27247196a9e49c089c4f4ae2a416e4a0719600e75392380b54729e6362cea7257116a9e47c17389f91c459a892f351e07cd6c768294a20b3c191e5c1b03339e69f9c52963d7b2b9c0ba3a5e798cc838c1de147e3f749c1dff654769c6fb9c705873539918581d092e0e576186ae7ae68a44359a47b43cbfd4b260b0eb77e48e9bb09dc0fa1bde77d94be2ecd44122e6dcab9163a4c2ff82ae89a8172c3b4b9d24ac8c67b9109d8cd9d208e7f36297c946c07f7bd977c5cace55995317f115cac7f65f2f5371d6f81961cb3a441d2aa303f0d902f4b8124cefed020ef06c857a44012bb3134c80570677c550aa4c60af5b500f99a1448e224190df22e807c5d0a2431278906793c40be21059218efa141f68487cd9b522089e93034c897a045fe4d0a24b13a1d0d723cb4c8b7a440126b28d2208b00f2ef3e0262e9f523355edc67c1fe476f4ba12c5249391b623bef48a1a46660d2283f8356f9ae14ca129594c742ab7c4f0a25b5e8348d720950be2f85b24c25e5b540f981144aea163d34caf380f24326e510d3599ac094e0458b4c58b407e7b189e3f02a16eb6ec0fa117b1ebba3e4ea68263bfcd84c771a6a8c680c2b91fa1b480df8d8cfec6159f006bdcfe8bcc15a3d7127748b3ec9e4ce326d0bf7e89bcbfe022ef04f256112a7c868985f02e6679230352eec7f12303f9784499c2aa3613e0f985f48c224768a68982f01e697923089dd211ae66b80f995244ce2288886f916607e2d0993387546c37c1f30ff4f122671b28286f921607e230993388546c3fc0430ffe1b30a6c5d87333f1a130dae8654e87ffa28f81c5136071f6e488a0f656b0ca91f107feb63054faa28279eceb6579d1bebee0d17ffbf247152ebc7d1380f04ceef2471526b6fd2388701e7bf2571526b6fd238f380f37b499cd4825134ce5ce0fc411227b56e318db317709a5e8238f35572de06131b399238a935df699cdf026717499cd40d1e689c0d70b16f208993bac1038df378e0cc6572f63371dde2e8ef2a63ebbe4d4c10db8f36ba8fd018fbb1187bc245de95c91855298cc6ef58562f4a4748dd4a35b6d0a590a8b02193b6756864896b8bd5c15b09cbe8a5171a2112d342232d50bcbc1b93385adb5b988975e434be5b4cccb71193afb39210c9173b71e68876b13f018fa3ee4cca6857b60217030dcfeaa9f63b2d88fc1aacc4d8988937d0acff16a11ab761dc039eea9b4803256626d140ab00b4873450e2fd92065a0aa09b4a03d55898ac0c407b4a0325ceb8d340cb01b4973450e2ac3b0d743700dd4c1a2871f443032d04d0ded24035d6752b02d03ed24089a90b34d06200ed2b0d9498edc9ab350ca0fd98a0b8f825df7fc88396faf55b00ecef230a1fe72b4563f55409601ad3bff68318e7001f01b8b2a02f993dc5f55642e063731f7c1599e0a35dcc6f02df164cbe282936bd29b532e6788716c1fc0e30074ac2248e75689839f09819240953636cfd03689983256112e344bcac0ec01c220993d8fda161be079843256112c73634ccf7017398244c8dc9076f03e6704998c4b8100df31dc01c210993383749c3dc08ba465b4ac224ce4bd230fb01e6c8cc667084a7b20b03a9cb557bb328c7422ed1283fa1b52297c5e179347e35ab30cf01d01647cb0af696a8cce2e80ea05b4903d598c5d10340c74803d598c56100746b69a01ab338ba00689e34508d591cb900ba8d34508d591cdd00745b69a01ab3383e85c1e576d2403566717c06a0db4b03d598c5f10580ee200d546316c73f01744749a0854a3bf6e361f5c55869a01a879ebb0368be34508ddda65d00b4401aa8c68efdce005a280d54e3d07327002d9206aa31385201a0c5d24035769b8a01b4441aa8c68e7d1180964a03d538f42c00d03269a01a83236301b49c093ac224a76bb7b80393f7d0280afe0c2b2a447fcf084e7868f072728df8553924dea9b9316f858ffce3e24c2c26a0d54f78dfc47c3bf9acf0516de6398765c6ceb6cf0c4e53e7beda9eee84f6b435ee1bb2ed73c1ba5979620bad6711f78016ba33937868f08fa6e0044b8383c2174d0e0eb62554160737807af7c66bdc9f36d56165f0ff131cbafd68230fb680053b04daee2e7ed21d4a838790f78bbf8875efbc1e2642769553cfabd0fdd297c9742f3ce97f2489335f25e7cf807337499cd432e734ce5f03e7ee7e0a4d6520358c57251e1e367bf848538c8bf455067f2e0b0e0debccb504ff37df7828d8476b896703e5381f2dd15236bbae4ed88bf4526a8ab7300ba6dec6fbcaf2cc40cd38da9acb7ae8f654fa281889018e68f7caf9ee6113fd3d2e387c61f0327b99874525a9639dc12cdaf7e021b3277bacd3d166a16d031d938263c3673b31123f8a05fb020c2227488525ce19d1605f02d82aa9b0c4d94d1aeccb00bb975458e23c3c0df615809d281596f8f0a2c19e06b03f960a4b9c53a2c19e01b07b4b85258ee969b0e700ec24a9b0c4797a1aec79003b995f0b799eebf2db2f6edfe894e0dccd6e2060a351fa06a8a34d8cb78f8f50497a813b8d05054e07ca293e2ef0e660186a2fdcf519a812d36d6903d51a8801ec2b159698764b833d1060a74a8525de0a68b0bf815bc134a9b0c44e140d760dc04e970a4becf6d3605703ec0ca9b01aa3acc702ec4ca9b0c4d00a0df651985a99251596180ca4c1de0cb0b3a5c212c3d734d8fbe156b09f5458e2840b0df66e80fd898f3ce85459d0e38297d6bb89eb6ab3d4847b7112475cb459d757610ff8fda58112475a34d05700f40069a0c4fe2a0df43e003d501a28b19f4a03bd17400f92064a8c01d0401f04d083a58112c7fe34d00700748e3450627f9406fa08801e220d94d80fa5813e04a0d5d24089637c1ae8d3003a571a28716c4f037d0240e7f94ea76c7fe1d80cd3e8509b4cad3bdd126eccbf9845db150abace67d20e590fda1ab322f8688b7b93d4c0745d5712eb2c60adf1b1d3b1ddb126decadc4bfa396dc1edbe10caabf5917e5e14fc6e4ac492e619fdf9fb8f9b1870818fe50fb6f688f7ec7d1adf66d0fe16fa59fe60eb35650fe08530435f97c982eb95eea29e6bc24539c4aecfb3b924ca5ce8fa2c9293e9a4714f853be0ae78a88fd59ee976cbcb55068773a0652e96c459a192b316389748e2d43975313437e65c2a89b35025e734e0ac97c459a492f368e06c90c459ac92f371e03c4c1227b5ae2d8d7363085e344ae22c55c9b918389b247152b746a3715e0a9ccd7283c1445a5a30b81fd0b6f8d8752e554b4d1e6c529ff1b4e1e663f0505a260953e3167eaf02e67249981a3731ff3d60ae9084a97113f34700f37049981a3731bf0930574ac2d4b889f91d807984244c8db5edae04cc2325616a5c737c23601e250953e326e66701e6d19230356e627e05601ec3c41cde0e66fa65d4a923225a5ec7b580bb4a322e718444c3bd1e708f958c4bec97d2702f05dcd5927189fd541aeee5807b9c645ce2589f86fb4bc03d5e322e71ec4fc3bd1a704f908cab71db95d5807ba2645c623f97867b22e0ae918c4b8c15d0704f01dc9324e312630734dc4b00f7641fc9b976738b0c6c33b06d3adfd27f0278a72ba0ddad6bab934f6873f2f16eb2d84e1787fb288579a13bba2d03ecaca7b59c17fc7b9209eb301e12301d10fc5a3ff583825fed7d3cc72d6dd8d3ac08de9efda83ddf7c77ee25c167ed3b6b32f9fb04879c621b4179a211e4e56c14fcb9d8d81d9d26991ab7f7d3e2e0a31b071f9d6fe24d0ea29f72dbcf4c4c64c08667b2b3baf62767af1efb2ef21c281edf943847f82afbbd466af6e84d8cdd30a921f87775f0f7c2e0ecf65c0bdc57ee9df273b86952db77186dd0107ea6c5ed60551d9854b9afdd129c31fc8c7d75a37bd7f1264d79397d537ca6ed1c76ebb3cc30d1fe06792ef13ffe4ca57398e77ece7161c9bc9c41691cd5de465179393d4cea8da6f2dccc7caacf8e4ffc1caa4d5da295b6f79df54de30c61a9ccbcff72d3abf07b492ebf692f5afb135d91306e726dde7e64bcfb09865f77237737c0b550b6adf54cb486dac4f767af8978e58a3da25f87472497fecc7337957af73309b319ec7785c747578a7dcf0dc147ed3bebd3c96be26ba897fbeee2cfb4f7b3b06da9d1a5a634b77aa773cda2c4dd272fa77b7054ddba2b24fe0a9bb89b58a8b4bf6b59f1e7ec6b962564ebe1e37d5bbdabf8ca9be9ee3ff8bdf66ff31de0d76a7b7ceb73cf5af7f5db1ebb79ca63a7043eb5c1e76a9c49d43a6c6b1a90d66bf0ab0c4cf98a8989b6db1828853f43fc4a5ba4fd3afc6ae15dadc6b5fff06a694a7905463f75dc7ea6bd63fba438366a9bd1cf24bc3ada3b32fed96f96f2ebc6bb0086ef0eefb9d3dd73246c8bf68a8aeec1f60ada34e90a9e9cb8f358ad1ab37c5d8b48f5f9e47b45ef0e8fddc7bdeb9a36c7454fe0e8b86989efafb3e3c6b9274f4de24eddf9713382a7548b7bfe2e75ef6cf1ba36dcd92b93bfcbfe697eb5e8a7ba6987c7474f8bf8493add3d656adcdd367ab57d7e3798d9ee493e2f38263e7b77d763a84bf459c2674693eb22e538bfe9897bff64d7aaabd72db30c9fbab6558c9d121c96531afc11f6be775c57ab2aec452d097e85ff8a3edef9396d9fa8e3b39d6a3b3e39edf77e17ffcf7a739d7d47f1bda0d654279e41f6a39d7da79d7f7fa97b863d3af8a98cddd7fe2cb2f9fb5f8b3ff72e63a7daefb7e07fd0f63a7f47a7d9afdc8534deea0e3fd4a9c16da6c6fd16dfaef7754f930677a47d9bff4dbbb67dc1e4f3d5b9af3b769acc36fdbffbde4f4f6ed3d3ffd336bdfeefe80c669b0ecf1696336c75eeaa34bebbf67f0eadbfe7f8a806d71eaad7b585f00a5fe8462b9d4b0c757dcbd467db23f8d78244bfdf9e758989feb3cfcaf0d7e6ae3f3e33786d7857b1bdf8c6448fd2fed7f5ff01b43671144e420e00 + serializedProgramBytesString: + programUnityEngineObjects: [] + serializationDataFormat: 0 diff --git a/Runtime/jp.ootr.ImageSlide/Udon/7a85f9265bb7acf4c995fea9560a3467.asset.meta b/Runtime/jp.ootr.ImageSlide/Udon/7a85f9265bb7acf4c995fea9560a3467.asset.meta new file mode 100644 index 0000000..33c9f09 --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Udon/7a85f9265bb7acf4c995fea9560a3467.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7616570ffd0732349963cfde3b25a9a6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/jp.ootr.ImageSlide/ImageSlide.asset b/Runtime/jp.ootr.ImageSlide/Udon/ImageSlide.asset similarity index 85% rename from Runtime/jp.ootr.ImageSlide/ImageSlide.asset rename to Runtime/jp.ootr.ImageSlide/Udon/ImageSlide.asset index 04305fb..0e06fd8 100644 --- a/Runtime/jp.ootr.ImageSlide/ImageSlide.asset +++ b/Runtime/jp.ootr.ImageSlide/Udon/ImageSlide.asset @@ -43,31 +43,91 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 81 + Data: 84 - Name: Entry: 7 Data: - Name: $k Entry: 1 - Data: SyncURLRetryCountLimit + Data: logLevel - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncURLRetryCountLimit + Data: logLevel - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: jp.ootr.common.LogLevel, jp.ootr.common + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: 4|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: SyncURLRetryCountLimit + - Name: $v + Entry: 7 + Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: SyncURLRetryCountLimit + - Name: k__BackingField + Entry: 9 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -82,7 +142,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 8|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -106,13 +166,13 @@ MonoBehaviour: Data: SyncURLRetryInterval - Name: $v Entry: 7 - Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 9|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SyncURLRetryInterval - Name: k__BackingField Entry: 7 - Data: 6|System.RuntimeType, mscorlib + Data: 10|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Single, mscorlib @@ -121,7 +181,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 6 + Data: 10 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -136,7 +196,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -160,13 +220,13 @@ MonoBehaviour: Data: deviceName - Name: $v Entry: 7 - Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: deviceName - Name: k__BackingField Entry: 7 - Data: 9|System.RuntimeType, mscorlib + Data: 13|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.String, mscorlib @@ -175,7 +235,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -190,13 +250,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 10|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 11|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -220,13 +280,13 @@ MonoBehaviour: Data: deviceIcon - Name: $v Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: deviceIcon - Name: k__BackingField Entry: 7 - Data: 13|System.RuntimeType, mscorlib + Data: 17|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule @@ -235,7 +295,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -250,13 +310,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 19|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -280,13 +340,13 @@ MonoBehaviour: Data: animator - Name: $v Entry: 7 - Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 20|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: animator - Name: k__BackingField Entry: 7 - Data: 17|System.RuntimeType, mscorlib + Data: 21|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Animator, UnityEngine.AnimationModule @@ -295,7 +355,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 17 + Data: 21 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -310,13 +370,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 22|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 19|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 23|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -340,13 +400,13 @@ MonoBehaviour: Data: devices - Name: $v Entry: 7 - Data: 20|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 24|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: devices - Name: k__BackingField Entry: 7 - Data: 21|System.RuntimeType, mscorlib + Data: 25|System.RuntimeType, mscorlib - Name: Entry: 1 Data: jp.ootr.ImageDeviceController.CommonDevice.CommonDevice[], jp.ootr.ImageDeviceController @@ -355,7 +415,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 22|System.RuntimeType, mscorlib + Data: 26|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Component[], UnityEngine.CoreModule @@ -376,13 +436,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 27|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 24|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 28|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -406,13 +466,13 @@ MonoBehaviour: Data: controller - Name: $v Entry: 7 - Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 29|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: controller - Name: k__BackingField Entry: 7 - Data: 26|System.RuntimeType, mscorlib + Data: 30|System.RuntimeType, mscorlib - Name: Entry: 1 Data: jp.ootr.ImageDeviceController.DeviceController, jp.ootr.ImageDeviceController @@ -421,7 +481,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 27|System.RuntimeType, mscorlib + Data: 31|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.Udon.UdonBehaviour, VRC.Udon @@ -442,13 +502,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 28|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 29|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -472,13 +532,13 @@ MonoBehaviour: Data: splashImage - Name: $v Entry: 7 - Data: 30|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: splashImage - Name: k__BackingField Entry: 7 - Data: 31|System.RuntimeType, mscorlib + Data: 35|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.RawImage, UnityEngine.UI @@ -487,7 +547,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -502,13 +562,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 32|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 33|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -532,13 +592,13 @@ MonoBehaviour: Data: splashImageFitter - Name: $v Entry: 7 - Data: 34|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: splashImageFitter - Name: k__BackingField Entry: 7 - Data: 35|System.RuntimeType, mscorlib + Data: 39|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.AspectRatioFitter, UnityEngine.UI @@ -547,7 +607,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 35 + Data: 39 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -562,13 +622,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 40|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 41|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -592,16 +652,16 @@ MonoBehaviour: Data: deviceUuid - Name: $v Entry: 7 - Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 42|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: deviceUuid - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -616,7 +676,7 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 39|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 43|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -640,13 +700,13 @@ MonoBehaviour: Data: _queueList - Name: $v Entry: 7 - Data: 40|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 44|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _queueList - Name: k__BackingField Entry: 7 - Data: 41|System.RuntimeType, mscorlib + Data: 45|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.SDK3.Data.DataList, VRCSDK3 @@ -655,7 +715,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 41 + Data: 45 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -670,7 +730,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 42|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 46|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -694,16 +754,16 @@ MonoBehaviour: Data: _retryCount - Name: $v Entry: 7 - Data: 43|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 47|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _retryCount - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -718,7 +778,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 48|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -742,13 +802,13 @@ MonoBehaviour: Data: uITabGroup - Name: $v Entry: 7 - Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 49|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: uITabGroup - Name: k__BackingField Entry: 7 - Data: 46|System.RuntimeType, mscorlib + Data: 50|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.ToggleGroup, UnityEngine.UI @@ -757,7 +817,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 46 + Data: 50 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -772,13 +832,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 48|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 52|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -802,16 +862,16 @@ MonoBehaviour: Data: _animatorOverlay - Name: $v Entry: 7 - Data: 49|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _animatorOverlay - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -826,7 +886,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 50|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -850,16 +910,16 @@ MonoBehaviour: Data: _animatorTab - Name: $v Entry: 7 - Data: 51|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 55|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _animatorTab - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -874,7 +934,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 52|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 56|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -898,13 +958,13 @@ MonoBehaviour: Data: errorModal - Name: $v Entry: 7 - Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: errorModal - Name: k__BackingField Entry: 7 - Data: 54|System.RuntimeType, mscorlib + Data: 58|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.GameObject, UnityEngine.CoreModule @@ -913,7 +973,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 54 + Data: 58 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -928,13 +988,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 55|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 59|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 56|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 60|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -958,13 +1018,13 @@ MonoBehaviour: Data: errorModalTransform - Name: $v Entry: 7 - Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: errorModalTransform - Name: k__BackingField Entry: 7 - Data: 58|System.RuntimeType, mscorlib + Data: 62|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.RectTransform, UnityEngine.CoreModule @@ -973,7 +1033,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 58 + Data: 62 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -988,13 +1048,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 59|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 63|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 60|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 64|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1018,13 +1078,13 @@ MonoBehaviour: Data: errorTitle - Name: $v Entry: 7 - Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 65|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: errorTitle - Name: k__BackingField Entry: 7 - Data: 62|System.RuntimeType, mscorlib + Data: 66|System.RuntimeType, mscorlib - Name: Entry: 1 Data: TMPro.TextMeshProUGUI, Unity.TextMeshPro @@ -1033,7 +1093,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1048,13 +1108,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 63|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 64|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 68|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1078,16 +1138,16 @@ MonoBehaviour: Data: errorDescription - Name: $v Entry: 7 - Data: 65|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 69|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: errorDescription - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1102,13 +1162,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 66|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 70|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 67|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 71|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1132,13 +1192,13 @@ MonoBehaviour: Data: errorDescriptionSizeFitter - Name: $v Entry: 7 - Data: 68|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 72|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: errorDescriptionSizeFitter - Name: k__BackingField Entry: 7 - Data: 69|System.RuntimeType, mscorlib + Data: 73|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.ContentSizeFitter, UnityEngine.UI @@ -1147,7 +1207,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 69 + Data: 73 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1162,13 +1222,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 70|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 74|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 71|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 75|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1192,16 +1252,16 @@ MonoBehaviour: Data: syncingModal - Name: $v Entry: 7 - Data: 72|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 76|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModal - Name: k__BackingField Entry: 9 - Data: 54 + Data: 58 - Name: k__BackingField Entry: 9 - Data: 54 + Data: 58 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1216,13 +1276,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 73|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 77|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 74|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 78|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1246,13 +1306,13 @@ MonoBehaviour: Data: syncingModalContainerTransform - Name: $v Entry: 7 - Data: 75|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 79|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModalContainerTransform - Name: k__BackingField Entry: 7 - Data: 76|System.RuntimeType, mscorlib + Data: 80|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Transform, UnityEngine.CoreModule @@ -1261,7 +1321,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1276,13 +1336,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 77|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 81|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 78|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 82|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1306,16 +1366,16 @@ MonoBehaviour: Data: syncingModalContent - Name: $v Entry: 7 - Data: 79|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 83|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModalContent - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1330,13 +1390,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 80|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 84|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 81|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 85|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1360,16 +1420,16 @@ MonoBehaviour: Data: syncingModalContentSizeFitter - Name: $v Entry: 7 - Data: 82|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 86|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModalContentSizeFitter - Name: k__BackingField Entry: 9 - Data: 69 + Data: 73 - Name: k__BackingField Entry: 9 - Data: 69 + Data: 73 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1384,13 +1444,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 83|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 87|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 84|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 88|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1414,13 +1474,13 @@ MonoBehaviour: Data: _isSyncing - Name: $v Entry: 7 - Data: 85|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 89|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _isSyncing - Name: k__BackingField Entry: 7 - Data: 86|System.RuntimeType, mscorlib + Data: 90|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Boolean, mscorlib @@ -1429,7 +1489,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 86 + Data: 90 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1444,7 +1504,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 87|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 91|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1468,16 +1528,16 @@ MonoBehaviour: Data: _localSyncQueue - Name: $v Entry: 7 - Data: 88|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 92|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _localSyncQueue - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1492,7 +1552,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 89|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 93|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1516,13 +1576,13 @@ MonoBehaviour: Data: _syncQueueArray - Name: $v Entry: 7 - Data: 90|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 94|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _syncQueueArray - Name: k__BackingField Entry: 7 - Data: 91|System.RuntimeType, mscorlib + Data: 95|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.String[], mscorlib @@ -1531,7 +1591,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1546,7 +1606,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 92|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 96|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1570,16 +1630,16 @@ MonoBehaviour: Data: SyncQueue - Name: $v Entry: 7 - Data: 93|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 97|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SyncQueue - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1594,13 +1654,13 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 94|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 98|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 95|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime + Data: 99|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime - Name: Entry: 8 Data: @@ -1624,16 +1684,16 @@ MonoBehaviour: Data: currentIndex - Name: $v Entry: 7 - Data: 96|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 100|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: currentIndex - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1648,7 +1708,8 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 97|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 101|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: Entry: 12 Data: 0 @@ -1669,19 +1730,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _currentOptions + Data: slideCount - Name: $v Entry: 7 - Data: 98|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 102|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _currentOptions + Data: slideCount - Name: k__BackingField Entry: 9 - Data: 9 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 9 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1693,10 +1754,11 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 5 - Data: false + Data: true - Name: _fieldAttributes Entry: 7 - Data: 99|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 103|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: Entry: 12 Data: 0 @@ -1717,25 +1779,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _currentType + Data: _logicQueuePrefix - Name: $v Entry: 7 - Data: 100|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 104|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _currentType + Data: _logicQueuePrefix - Name: k__BackingField - Entry: 7 - Data: 101|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: jp.ootr.ImageSlide.QueueType, jp.ootr.ImageSlide - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 95 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1750,7 +1806,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 102|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 105|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -1772,19 +1828,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _currentUrl + Data: _currentOptions - Name: $v Entry: 7 - Data: 103|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 106|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _currentUrl + Data: _currentOptions - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1799,7 +1855,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 104|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 107|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -1821,19 +1877,25 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _isProcessing + Data: _currentType - Name: $v Entry: 7 - Data: 105|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 108|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _isProcessing + Data: _currentType - Name: k__BackingField - Entry: 9 - Data: 86 + Entry: 7 + Data: 109|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: jp.ootr.ImageSlide.QueueType, jp.ootr.ImageSlide + - Name: + Entry: 8 + Data: - Name: k__BackingField Entry: 9 - Data: 86 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1848,7 +1910,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 106|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 110|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -1870,19 +1932,19 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _queue + Data: _currentUrl - Name: $v Entry: 7 - Data: 107|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 111|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _queue + Data: _currentUrl - Name: k__BackingField Entry: 9 - Data: 91 + Data: 13 - Name: k__BackingField Entry: 9 - Data: 91 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1897,7 +1959,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 108|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 112|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -1919,19 +1981,31 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: slideCount + Data: _fileNames - Name: $v Entry: 7 - Data: 109|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 113|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: slideCount + Data: _fileNames - Name: k__BackingField - Entry: 9 - Data: 3 + Entry: 7 + Data: 114|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.String[][], mscorlib + - Name: + Entry: 8 + Data: - Name: k__BackingField - Entry: 9 - Data: 3 + Entry: 7 + Data: 115|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Object[], mscorlib + - Name: + Entry: 8 + Data: - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1943,10 +2017,10 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 5 - Data: true + Data: false - Name: _fieldAttributes Entry: 7 - Data: 110|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 116|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -1968,31 +2042,68 @@ MonoBehaviour: Data: - Name: $k Entry: 1 - Data: _fileNames + Data: _isProcessing - Name: $v Entry: 7 - Data: 111|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 117|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: _fileNames + Data: _isProcessing - Name: k__BackingField + Entry: 9 + Data: 90 + - Name: k__BackingField + Entry: 9 + Data: 90 + - Name: k__BackingField Entry: 7 - Data: 112|System.RuntimeType, mscorlib + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib - Name: - Entry: 1 - Data: System.String[][], mscorlib + Entry: 6 + Data: - Name: Entry: 8 Data: - - Name: k__BackingField + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes Entry: 7 - Data: 113|System.RuntimeType, mscorlib + Data: 118|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: - Entry: 1 - Data: System.Object[], mscorlib + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: - Name: Entry: 8 Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: _queue + - Name: $v + Entry: 7 + Data: 119|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _queue + - Name: k__BackingField + Entry: 9 + Data: 95 + - Name: k__BackingField + Entry: 9 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2007,7 +2118,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 114|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 120|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -2032,16 +2143,16 @@ MonoBehaviour: Data: Options - Name: $v Entry: 7 - Data: 115|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 121|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Options - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2056,7 +2167,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 116|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 122|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -2081,16 +2192,16 @@ MonoBehaviour: Data: Sources - Name: $v Entry: 7 - Data: 117|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 123|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Sources - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2105,7 +2216,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 118|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 124|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -2130,13 +2241,13 @@ MonoBehaviour: Data: Textures - Name: $v Entry: 7 - Data: 119|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 125|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: Textures - Name: k__BackingField Entry: 7 - Data: 120|System.RuntimeType, mscorlib + Data: 126|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D[][], UnityEngine.CoreModule @@ -2145,7 +2256,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 113 + Data: 115 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2160,7 +2271,7 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 121|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 127|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -2185,16 +2296,16 @@ MonoBehaviour: Data: definedSources - Name: $v Entry: 7 - Data: 122|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 128|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: definedSources - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2209,14 +2320,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 123|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 129|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 124|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 130|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2240,16 +2351,16 @@ MonoBehaviour: Data: definedSourceOptions - Name: $v Entry: 7 - Data: 125|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 131|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: definedSourceOptions - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2264,14 +2375,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 126|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 132|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 127|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 133|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2295,13 +2406,13 @@ MonoBehaviour: Data: originalSourceNameInput - Name: $v Entry: 7 - Data: 128|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 134|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: originalSourceNameInput - Name: k__BackingField Entry: 7 - Data: 129|System.RuntimeType, mscorlib + Data: 135|System.RuntimeType, mscorlib - Name: Entry: 1 Data: TMPro.TMP_InputField, Unity.TextMeshPro @@ -2310,7 +2421,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 129 + Data: 135 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2325,14 +2436,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 130|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 136|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 131|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 137|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2356,16 +2467,16 @@ MonoBehaviour: Data: originalSourceIcon - Name: $v Entry: 7 - Data: 132|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 138|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: originalSourceIcon - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2380,14 +2491,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 133|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 139|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 134|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 140|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2411,16 +2522,16 @@ MonoBehaviour: Data: sourceTransform - Name: $v Entry: 7 - Data: 135|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 141|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceTransform - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2435,14 +2546,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 136|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 142|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 137|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 143|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2466,16 +2577,16 @@ MonoBehaviour: Data: rootSourceObject - Name: $v Entry: 7 - Data: 138|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 144|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: rootSourceObject - Name: k__BackingField Entry: 9 - Data: 54 + Data: 58 - Name: k__BackingField Entry: 9 - Data: 54 + Data: 58 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2490,14 +2601,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 139|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 145|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 140|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 146|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2521,16 +2632,16 @@ MonoBehaviour: Data: imageIcon - Name: $v Entry: 7 - Data: 141|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 147|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: imageIcon - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2545,14 +2656,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 142|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 148|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 143|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 149|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2576,16 +2687,16 @@ MonoBehaviour: Data: textZipIcon - Name: $v Entry: 7 - Data: 144|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 150|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: textZipIcon - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2600,14 +2711,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 145|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 151|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 146|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 152|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2631,16 +2742,16 @@ MonoBehaviour: Data: videoIcon - Name: $v Entry: 7 - Data: 147|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 153|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: videoIcon - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2655,14 +2766,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 148|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 154|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 149|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 155|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2686,13 +2797,13 @@ MonoBehaviour: Data: sourceImageUrlInput - Name: $v Entry: 7 - Data: 150|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 156|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceImageUrlInput - Name: k__BackingField Entry: 7 - Data: 151|System.RuntimeType, mscorlib + Data: 157|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.SDK3.Components.VRCUrlInputField, VRCSDK3 @@ -2701,7 +2812,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 151 + Data: 157 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2716,14 +2827,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 152|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 158|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 153|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 159|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2747,16 +2858,16 @@ MonoBehaviour: Data: sourceTextZipUrlInput - Name: $v Entry: 7 - Data: 154|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 160|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceTextZipUrlInput - Name: k__BackingField Entry: 9 - Data: 151 + Data: 157 - Name: k__BackingField Entry: 9 - Data: 151 + Data: 157 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2771,14 +2882,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 155|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 161|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 156|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 162|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2802,16 +2913,16 @@ MonoBehaviour: Data: sourceVideoUrlInput - Name: $v Entry: 7 - Data: 157|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 163|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceVideoUrlInput - Name: k__BackingField Entry: 9 - Data: 151 + Data: 157 - Name: k__BackingField Entry: 9 - Data: 151 + Data: 157 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2826,14 +2937,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 158|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 164|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 159|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 165|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2857,13 +2968,13 @@ MonoBehaviour: Data: sourceVideoOffsetSlider - Name: $v Entry: 7 - Data: 160|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 166|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceVideoOffsetSlider - Name: k__BackingField Entry: 7 - Data: 161|System.RuntimeType, mscorlib + Data: 167|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Slider, UnityEngine.UI @@ -2872,7 +2983,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 161 + Data: 167 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2887,14 +2998,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 162|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 168|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 163|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 169|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2918,16 +3029,16 @@ MonoBehaviour: Data: sourceVideoOffsetInput - Name: $v Entry: 7 - Data: 164|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 170|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceVideoOffsetInput - Name: k__BackingField Entry: 9 - Data: 129 + Data: 135 - Name: k__BackingField Entry: 9 - Data: 129 + Data: 135 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2942,14 +3053,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 165|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 171|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 166|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 172|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -2973,16 +3084,16 @@ MonoBehaviour: Data: sourceVideoIntervalSlider - Name: $v Entry: 7 - Data: 167|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 173|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceVideoIntervalSlider - Name: k__BackingField Entry: 9 - Data: 161 + Data: 167 - Name: k__BackingField Entry: 9 - Data: 161 + Data: 167 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -2997,14 +3108,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 168|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 174|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 169|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 175|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3028,16 +3139,16 @@ MonoBehaviour: Data: sourceVideoIntervalInput - Name: $v Entry: 7 - Data: 170|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 176|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: sourceVideoIntervalInput - Name: k__BackingField Entry: 9 - Data: 129 + Data: 135 - Name: k__BackingField Entry: 9 - Data: 129 + Data: 135 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3052,14 +3163,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 171|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 177|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 172|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 178|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3078,18 +3189,67 @@ MonoBehaviour: - Name: Entry: 7 Data: + - Name: $k + Entry: 1 + Data: _uiSourceListPrefix + - Name: $v + Entry: 7 + Data: 179|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: _uiSourceListPrefix + - Name: k__BackingField + Entry: 9 + Data: 95 + - Name: k__BackingField + Entry: 9 + Data: 95 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: false + - Name: _fieldAttributes + Entry: 7 + Data: 180|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib + - Name: + Entry: 12 + Data: 0 + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: - Name: $k Entry: 1 Data: SourceToggles - Name: $v Entry: 7 - Data: 173|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 181|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SourceToggles - Name: k__BackingField Entry: 7 - Data: 174|System.RuntimeType, mscorlib + Data: 182|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Toggle[], UnityEngine.UI @@ -3098,7 +3258,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 174 + Data: 182 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3113,7 +3273,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 175|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 183|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -3138,16 +3298,16 @@ MonoBehaviour: Data: settingsTransform - Name: $v Entry: 7 - Data: 176|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 184|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: settingsTransform - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3162,14 +3322,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 177|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 185|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 178|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 186|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3193,16 +3353,16 @@ MonoBehaviour: Data: rootDeviceTransform - Name: $v Entry: 7 - Data: 179|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 187|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: rootDeviceTransform - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3217,14 +3377,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 180|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 188|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 181|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 189|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3248,16 +3408,16 @@ MonoBehaviour: Data: rootDeviceNameText - Name: $v Entry: 7 - Data: 182|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 190|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: rootDeviceNameText - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3272,14 +3432,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 183|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 191|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 184|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 192|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3303,16 +3463,16 @@ MonoBehaviour: Data: rootDeviceIcon - Name: $v Entry: 7 - Data: 185|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 193|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: rootDeviceIcon - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3327,14 +3487,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 186|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 194|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 187|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 195|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3358,13 +3518,13 @@ MonoBehaviour: Data: rootDeviceToggle - Name: $v Entry: 7 - Data: 188|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 196|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: rootDeviceToggle - Name: k__BackingField Entry: 7 - Data: 189|System.RuntimeType, mscorlib + Data: 197|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Toggle, UnityEngine.UI @@ -3373,7 +3533,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 189 + Data: 197 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3388,14 +3548,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 190|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 198|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 191|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 199|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3419,16 +3579,16 @@ MonoBehaviour: Data: deviceSelectedUuids - Name: $v Entry: 7 - Data: 192|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 200|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: deviceSelectedUuids - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 9 - Data: 91 + Data: 95 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3443,14 +3603,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 193|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 201|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 194|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 202|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3474,16 +3634,16 @@ MonoBehaviour: Data: _deviceToggles - Name: $v Entry: 7 - Data: 195|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 203|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _deviceToggles - Name: k__BackingField Entry: 9 - Data: 174 + Data: 182 - Name: k__BackingField Entry: 9 - Data: 174 + Data: 182 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3498,7 +3658,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 196|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 204|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -3523,16 +3683,16 @@ MonoBehaviour: Data: slideMainView - Name: $v Entry: 7 - Data: 197|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 205|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideMainView - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3547,14 +3707,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 198|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 206|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 199|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 207|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3578,16 +3738,16 @@ MonoBehaviour: Data: slideMainViewFitter - Name: $v Entry: 7 - Data: 200|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 208|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideMainViewFitter - Name: k__BackingField Entry: 9 - Data: 35 + Data: 39 - Name: k__BackingField Entry: 9 - Data: 35 + Data: 39 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3602,14 +3762,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 201|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 209|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 202|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 210|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3633,16 +3793,16 @@ MonoBehaviour: Data: slideMainViewNote - Name: $v Entry: 7 - Data: 203|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 211|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideMainViewNote - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3657,14 +3817,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 204|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 212|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 205|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 213|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3688,16 +3848,16 @@ MonoBehaviour: Data: slideListViewRoot - Name: $v Entry: 7 - Data: 206|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 214|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewRoot - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 9 - Data: 76 + Data: 80 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3712,14 +3872,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 207|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 215|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 208|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 216|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3743,16 +3903,16 @@ MonoBehaviour: Data: slideListViewBase - Name: $v Entry: 7 - Data: 209|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 217|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBase - Name: k__BackingField Entry: 9 - Data: 54 + Data: 58 - Name: k__BackingField Entry: 9 - Data: 54 + Data: 58 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3767,14 +3927,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 210|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 218|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 211|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 219|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3798,16 +3958,16 @@ MonoBehaviour: Data: slideListViewBaseThumbnail - Name: $v Entry: 7 - Data: 212|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 220|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBaseThumbnail - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 9 - Data: 31 + Data: 35 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3822,14 +3982,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 213|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 221|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 214|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 222|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3853,16 +4013,16 @@ MonoBehaviour: Data: slideListViewBaseFitter - Name: $v Entry: 7 - Data: 215|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 223|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBaseFitter - Name: k__BackingField Entry: 9 - Data: 35 + Data: 39 - Name: k__BackingField Entry: 9 - Data: 35 + Data: 39 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3877,14 +4037,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 216|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 224|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 217|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 225|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3908,16 +4068,16 @@ MonoBehaviour: Data: slideListViewBaseText - Name: $v Entry: 7 - Data: 218|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 226|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBaseText - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3932,14 +4092,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 219|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 227|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 220|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 228|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -3963,13 +4123,13 @@ MonoBehaviour: Data: slideListView - Name: $v Entry: 7 - Data: 221|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 229|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListView - Name: k__BackingField Entry: 7 - Data: 222|System.RuntimeType, mscorlib + Data: 230|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.ScrollRect, UnityEngine.UI @@ -3978,7 +4138,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 222 + Data: 230 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -3993,14 +4153,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 223|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 231|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 224|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 232|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -4024,16 +4184,16 @@ MonoBehaviour: Data: splashScreen - Name: $v Entry: 7 - Data: 225|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 233|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: splashScreen - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4048,14 +4208,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 226|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 234|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 227|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 235|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -4079,16 +4239,16 @@ MonoBehaviour: Data: _animatorSplash - Name: $v Entry: 7 - Data: 228|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 236|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _animatorSplash - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4103,7 +4263,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 229|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 237|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4128,16 +4288,16 @@ MonoBehaviour: Data: _slideListToggles - Name: $v Entry: 7 - Data: 230|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 238|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _slideListToggles - Name: k__BackingField Entry: 9 - Data: 174 + Data: 182 - Name: k__BackingField Entry: 9 - Data: 174 + Data: 182 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4152,7 +4312,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 231|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 239|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4177,16 +4337,16 @@ MonoBehaviour: Data: stopWatchText - Name: $v Entry: 7 - Data: 232|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 240|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: stopWatchText - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 9 - Data: 62 + Data: 66 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4201,14 +4361,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 233|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 241|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 234|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 242|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -4232,16 +4392,16 @@ MonoBehaviour: Data: _animatorStopWatchState - Name: $v Entry: 7 - Data: 235|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 243|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _animatorStopWatchState - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4256,7 +4416,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 236|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 244|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4281,16 +4441,16 @@ MonoBehaviour: Data: _isStopWatchRunning - Name: $v Entry: 7 - Data: 237|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 245|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _isStopWatchRunning - Name: k__BackingField Entry: 9 - Data: 86 + Data: 90 - Name: k__BackingField Entry: 9 - Data: 86 + Data: 90 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4305,7 +4465,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 238|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 246|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4330,13 +4490,13 @@ MonoBehaviour: Data: _stopWatchOffset - Name: $v Entry: 7 - Data: 239|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 247|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _stopWatchOffset - Name: k__BackingField Entry: 7 - Data: 240|System.RuntimeType, mscorlib + Data: 248|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.UInt64, mscorlib @@ -4345,7 +4505,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 240 + Data: 248 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4360,7 +4520,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 241|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 249|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4385,16 +4545,16 @@ MonoBehaviour: Data: _stopWatchTime - Name: $v Entry: 7 - Data: 242|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 250|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _stopWatchTime - Name: k__BackingField Entry: 9 - Data: 240 + Data: 248 - Name: k__BackingField Entry: 9 - Data: 240 + Data: 248 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4409,7 +4569,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 243|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 251|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 @@ -4434,13 +4594,13 @@ MonoBehaviour: Data: listeners - Name: $v Entry: 7 - Data: 244|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 252|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: listeners - Name: k__BackingField Entry: 7 - Data: 245|System.RuntimeType, mscorlib + Data: 253|System.RuntimeType, mscorlib - Name: Entry: 1 Data: jp.ootr.ImageSlide.Viewer.ImageSlideViewer[], jp.ootr.ImageSlide @@ -4449,7 +4609,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 22 + Data: 26 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -4464,7 +4624,7 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 246|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + Data: 254|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 diff --git a/Runtime/jp.ootr.ImageSlide/ImageSlide.asset.meta b/Runtime/jp.ootr.ImageSlide/Udon/ImageSlide.asset.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/ImageSlide.asset.meta rename to Runtime/jp.ootr.ImageSlide/Udon/ImageSlide.asset.meta diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.asset b/Runtime/jp.ootr.ImageSlide/Udon/ImageSlideViewer.asset similarity index 71% rename from Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.asset rename to Runtime/jp.ootr.ImageSlide/Udon/ImageSlideViewer.asset index 093f248..b994475 100644 --- a/Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.asset +++ b/Runtime/jp.ootr.ImageSlide/Udon/ImageSlideViewer.asset @@ -43,31 +43,91 @@ MonoBehaviour: Data: - Name: Entry: 12 - Data: 28 + Data: 35 - Name: Entry: 7 Data: - Name: $k Entry: 1 - Data: SyncURLRetryCountLimit + Data: logLevel - Name: $v Entry: 7 Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 - Data: SyncURLRetryCountLimit + Data: logLevel - Name: k__BackingField Entry: 7 Data: 3|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: jp.ootr.common.LogLevel, jp.ootr.common + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 7 + Data: 4|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Int32, mscorlib - Name: Entry: 8 Data: + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 6|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: SyncURLRetryCountLimit + - Name: $v + Entry: 7 + Data: 7|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: SyncURLRetryCountLimit + - Name: k__BackingField + Entry: 9 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -82,7 +142,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 4|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 8|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -106,13 +166,13 @@ MonoBehaviour: Data: SyncURLRetryInterval - Name: $v Entry: 7 - Data: 5|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 9|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: SyncURLRetryInterval - Name: k__BackingField Entry: 7 - Data: 6|System.RuntimeType, mscorlib + Data: 10|System.RuntimeType, mscorlib - Name: Entry: 1 Data: System.Single, mscorlib @@ -121,7 +181,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 6 + Data: 10 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -136,7 +196,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 7|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -160,13 +220,13 @@ MonoBehaviour: Data: splashImage - Name: $v Entry: 7 - Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: splashImage - Name: k__BackingField Entry: 7 - Data: 9|System.RuntimeType, mscorlib + Data: 13|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.RawImage, UnityEngine.UI @@ -175,7 +235,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -190,13 +250,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 10|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 11|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -220,13 +280,13 @@ MonoBehaviour: Data: splashImageFitter - Name: $v Entry: 7 - Data: 12|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: splashImageFitter - Name: k__BackingField Entry: 7 - Data: 13|System.RuntimeType, mscorlib + Data: 17|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.AspectRatioFitter, UnityEngine.UI @@ -235,7 +295,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -250,13 +310,355 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 14|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 15|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 19|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: isObjectSyncEnabled + - Name: $v + Entry: 7 + Data: 20|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: isObjectSyncEnabled + - Name: k__BackingField + Entry: 7 + Data: 21|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: System.Boolean, mscorlib + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 21 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 22|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 23|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: rootGameObject + - Name: $v + Entry: 7 + Data: 24|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: rootGameObject + - Name: k__BackingField + Entry: 7 + Data: 25|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.GameObject, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 25 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 26|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 27|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: seekDisabled + - Name: $v + Entry: 7 + Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: seekDisabled + - Name: k__BackingField + Entry: 9 + Data: 21 + - Name: k__BackingField + Entry: 9 + Data: 21 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 30|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: presentationTransform + - Name: $v + Entry: 7 + Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: presentationTransform + - Name: k__BackingField + Entry: 7 + Data: 32|System.RuntimeType, mscorlib + - Name: + Entry: 1 + Data: UnityEngine.RectTransform, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 9 + Data: 32 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 33|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 34|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: mainView + - Name: $v + Entry: 7 + Data: 35|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: mainView + - Name: k__BackingField + Entry: 9 + Data: 25 + - Name: k__BackingField + Entry: 9 + Data: 25 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 36|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 37|UnityEngine.SerializeField, UnityEngine.CoreModule + - Name: + Entry: 8 + Data: + - Name: + Entry: 13 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 8 + Data: + - Name: + Entry: 7 + Data: + - Name: $k + Entry: 1 + Data: slideList + - Name: $v + Entry: 7 + Data: 38|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + - Name: k__BackingField + Entry: 1 + Data: slideList + - Name: k__BackingField + Entry: 9 + Data: 25 + - Name: k__BackingField + Entry: 9 + Data: 25 + - Name: k__BackingField + Entry: 7 + Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib + - Name: + Entry: 6 + Data: + - Name: + Entry: 8 + Data: + - Name: k__BackingField + Entry: 5 + Data: true + - Name: _fieldAttributes + Entry: 7 + Data: 39|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + - Name: + Entry: 12 + Data: 1 + - Name: + Entry: 7 + Data: 40|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -280,13 +682,13 @@ MonoBehaviour: Data: imageSlide - Name: $v Entry: 7 - Data: 16|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 41|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: imageSlide - Name: k__BackingField Entry: 7 - Data: 17|System.RuntimeType, mscorlib + Data: 42|System.RuntimeType, mscorlib - Name: Entry: 1 Data: jp.ootr.ImageSlide.ImageSlide, jp.ootr.ImageSlide @@ -295,7 +697,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 7 - Data: 18|System.RuntimeType, mscorlib + Data: 43|System.RuntimeType, mscorlib - Name: Entry: 1 Data: VRC.Udon.UdonBehaviour, VRC.Udon @@ -316,13 +718,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 19|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 44|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 20|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 45|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -346,13 +748,13 @@ MonoBehaviour: Data: animator - Name: $v Entry: 7 - Data: 21|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 46|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: animator - Name: k__BackingField Entry: 7 - Data: 22|System.RuntimeType, mscorlib + Data: 47|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Animator, UnityEngine.AnimationModule @@ -361,7 +763,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 22 + Data: 47 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -376,13 +778,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 23|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 48|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 24|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 49|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -406,16 +808,16 @@ MonoBehaviour: Data: slideMainView - Name: $v Entry: 7 - Data: 25|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 50|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideMainView - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -430,13 +832,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 26|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 27|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 52|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -460,16 +862,16 @@ MonoBehaviour: Data: slideMainViewFitter - Name: $v Entry: 7 - Data: 28|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideMainViewFitter - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -484,13 +886,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 29|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 54|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 30|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 55|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -514,13 +916,13 @@ MonoBehaviour: Data: slideListViewRoot - Name: $v Entry: 7 - Data: 31|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 56|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewRoot - Name: k__BackingField Entry: 7 - Data: 32|System.RuntimeType, mscorlib + Data: 57|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Transform, UnityEngine.CoreModule @@ -529,7 +931,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 32 + Data: 57 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -544,13 +946,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 33|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 34|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 59|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -574,22 +976,16 @@ MonoBehaviour: Data: slideListViewBase - Name: $v Entry: 7 - Data: 35|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 60|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBase - Name: k__BackingField - Entry: 7 - Data: 36|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: UnityEngine.GameObject, UnityEngine.CoreModule - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 25 - Name: k__BackingField Entry: 9 - Data: 36 + Data: 25 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -604,13 +1000,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 37|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 61|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 38|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 62|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -634,16 +1030,16 @@ MonoBehaviour: Data: slideListViewBaseThumbnail - Name: $v Entry: 7 - Data: 39|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBaseThumbnail - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 9 - Data: 9 + Data: 13 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -658,13 +1054,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 40|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 41|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 65|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -688,16 +1084,16 @@ MonoBehaviour: Data: slideListViewBaseFitter - Name: $v Entry: 7 - Data: 42|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 66|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBaseFitter - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 9 - Data: 13 + Data: 17 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -712,13 +1108,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 43|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 44|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 68|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -742,13 +1138,13 @@ MonoBehaviour: Data: slideListViewBaseText - Name: $v Entry: 7 - Data: 45|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 69|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListViewBaseText - Name: k__BackingField Entry: 7 - Data: 46|System.RuntimeType, mscorlib + Data: 70|System.RuntimeType, mscorlib - Name: Entry: 1 Data: TMPro.TextMeshProUGUI, Unity.TextMeshPro @@ -757,7 +1153,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 46 + Data: 70 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -772,13 +1168,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 47|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 71|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 48|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 72|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -802,13 +1198,13 @@ MonoBehaviour: Data: slideListView - Name: $v Entry: 7 - Data: 49|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 73|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: slideListView - Name: k__BackingField Entry: 7 - Data: 50|System.RuntimeType, mscorlib + Data: 74|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.ScrollRect, UnityEngine.UI @@ -817,7 +1213,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 50 + Data: 74 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -832,13 +1228,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 51|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 75|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 52|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 76|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -862,13 +1258,13 @@ MonoBehaviour: Data: blankTexture - Name: $v Entry: 7 - Data: 53|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 77|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: blankTexture - Name: k__BackingField Entry: 7 - Data: 54|System.RuntimeType, mscorlib + Data: 78|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.Texture2D, UnityEngine.CoreModule @@ -877,7 +1273,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 54 + Data: 78 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -892,13 +1288,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 55|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 79|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 56|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 80|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -922,16 +1318,16 @@ MonoBehaviour: Data: _animatorFollowMaster - Name: $v Entry: 7 - Data: 57|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 81|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _animatorFollowMaster - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -946,7 +1342,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 58|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 82|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -970,16 +1366,16 @@ MonoBehaviour: Data: _slideListViewBaseGap - Name: $v Entry: 7 - Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 83|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _slideListViewBaseGap - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -994,7 +1390,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 60|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 84|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1018,16 +1414,16 @@ MonoBehaviour: Data: _slideListViewBasePadding - Name: $v Entry: 7 - Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 85|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _slideListViewBasePadding - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1042,7 +1438,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 62|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 86|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1066,16 +1462,16 @@ MonoBehaviour: Data: _slideListViewBaseThumbnailWidth - Name: $v Entry: 7 - Data: 63|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 87|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _slideListViewBaseThumbnailWidth - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1090,7 +1486,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 64|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 88|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1114,22 +1510,16 @@ MonoBehaviour: Data: _followMaster - Name: $v Entry: 7 - Data: 65|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 89|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _followMaster - Name: k__BackingField - Entry: 7 - Data: 66|System.RuntimeType, mscorlib - - Name: - Entry: 1 - Data: System.Boolean, mscorlib - - Name: - Entry: 8 - Data: + Entry: 9 + Data: 21 - Name: k__BackingField Entry: 9 - Data: 66 + Data: 21 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1144,7 +1534,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 67|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 90|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1168,16 +1558,16 @@ MonoBehaviour: Data: _localIndex - Name: $v Entry: 7 - Data: 68|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 91|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _localIndex - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1192,7 +1582,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 69|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 92|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1216,16 +1606,16 @@ MonoBehaviour: Data: _masterIndex - Name: $v Entry: 7 - Data: 70|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 93|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _masterIndex - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1240,7 +1630,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 71|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 94|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1264,13 +1654,13 @@ MonoBehaviour: Data: _slideListToggles - Name: $v Entry: 7 - Data: 72|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 95|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _slideListToggles - Name: k__BackingField Entry: 7 - Data: 73|System.RuntimeType, mscorlib + Data: 96|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.Toggle[], UnityEngine.UI @@ -1279,7 +1669,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 73 + Data: 96 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1294,7 +1684,7 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 74|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 97|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 0 @@ -1318,16 +1708,16 @@ MonoBehaviour: Data: syncingModal - Name: $v Entry: 7 - Data: 75|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 98|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModal - Name: k__BackingField Entry: 9 - Data: 36 + Data: 25 - Name: k__BackingField Entry: 9 - Data: 36 + Data: 25 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1342,13 +1732,13 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 76|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 99|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 77|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 100|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1372,16 +1762,16 @@ MonoBehaviour: Data: syncingModalContainerTransform - Name: $v Entry: 7 - Data: 78|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 101|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModalContainerTransform - Name: k__BackingField Entry: 9 - Data: 32 + Data: 57 - Name: k__BackingField Entry: 9 - Data: 32 + Data: 57 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1396,13 +1786,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 79|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 102|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 80|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 103|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1426,16 +1817,16 @@ MonoBehaviour: Data: syncingModalContent - Name: $v Entry: 7 - Data: 81|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 104|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModalContent - Name: k__BackingField Entry: 9 - Data: 46 + Data: 70 - Name: k__BackingField Entry: 9 - Data: 46 + Data: 70 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1450,13 +1841,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 82|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 105|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 83|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 106|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1480,13 +1872,13 @@ MonoBehaviour: Data: syncingModalContentSizeFitter - Name: $v Entry: 7 - Data: 84|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 107|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: syncingModalContentSizeFitter - Name: k__BackingField Entry: 7 - Data: 85|System.RuntimeType, mscorlib + Data: 108|System.RuntimeType, mscorlib - Name: Entry: 1 Data: UnityEngine.UI.ContentSizeFitter, UnityEngine.UI @@ -1495,7 +1887,7 @@ MonoBehaviour: Data: - Name: k__BackingField Entry: 9 - Data: 85 + Data: 108 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1510,13 +1902,14 @@ MonoBehaviour: Data: true - Name: _fieldAttributes Entry: 7 - Data: 86|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 109|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: Entry: 12 Data: 1 - Name: Entry: 7 - Data: 87|UnityEngine.SerializeField, UnityEngine.CoreModule + Data: 110|UnityEngine.SerializeField, UnityEngine.CoreModule - Name: Entry: 8 Data: @@ -1540,16 +1933,16 @@ MonoBehaviour: Data: _animatorSplash - Name: $v Entry: 7 - Data: 88|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor + Data: 111|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor - Name: k__BackingField Entry: 1 Data: _animatorSplash - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 9 - Data: 3 + Data: 4 - Name: k__BackingField Entry: 7 Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib @@ -1564,7 +1957,8 @@ MonoBehaviour: Data: false - Name: _fieldAttributes Entry: 7 - Data: 89|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib + Data: 112|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], + mscorlib - Name: Entry: 12 Data: 0 diff --git a/Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.asset.meta b/Runtime/jp.ootr.ImageSlide/Udon/ImageSlideViewer.asset.meta similarity index 100% rename from Runtime/jp.ootr.ImageSlide/Viewer/ImageSlideViewer.asset.meta rename to Runtime/jp.ootr.ImageSlide/Udon/ImageSlideViewer.asset.meta diff --git a/Runtime/jp.ootr.ImageSlide/Udon/b7aa7efccccbb5949bed75155f28436a.asset b/Runtime/jp.ootr.ImageSlide/Udon/b7aa7efccccbb5949bed75155f28436a.asset new file mode 100644 index 0000000..6983e35 --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Udon/b7aa7efccccbb5949bed75155f28436a.asset @@ -0,0 +1,18 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + 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: bf61d954ecb803046953c666facfb904, type: 3} + m_Name: b7aa7efccccbb5949bed75155f28436a + m_EditorClassIdentifier: + serializedProgramCompressedBytes: 1f8b080000000000000aed9d057c14c7fbf0e7702b0e41dbe0c11292e0505c5bac24405b682190400209d02468dd8dbabbbbbbb7d4ddddddddfdd7776776e6eed9cd3c77bbd97df676f37fcba70c3bb7fbec33df79e6199fad97c38cff62838cbf16b2f96c32cb660b58315bc7d61aff9a6c8415c61ff34ac5cf639546b8caf8bbc8f86d10cb4cf124ffaf5fac93f1f74ce3aa8a551b4f6e602b8cb04cfc5ec04a8c7fcf349e2d31ae78ec4ae3ff12e3ae5803e3a1056c0a9bcbe6b08c58871422168a87aa645c8ca72bd6c4f87b12db62fc5a2294e22fc9113f65187f1518bf5489df2a0ca5d57d8bd95e225915c66f2b8c672a59b92173b990d8e487094cfc839941960cfbcbb09ff17f53f9effaf2df4de4bfb1382563a00c077890d14086d9327cd9f8bf91f1cff7c1b5714f6c88bcce9161be0c07c9f015f98e86c6ffb3401c0f8700fd06c83017c40d96615e4246466b17ba0f97e1ab36dd5f95ba7f23af47c8708c0c87caf0358deeafc970a446f751206e980c472764747ac285eee364f8ba4df7d7cd7bea5d29afc7cb70b20cc7caf00d8dee6fc8708246f789206e67194e4ac8e8ac6438d17d9a0cdfb4e9fea6794ffd62793d5d86bbca708a0cdfd2e8fe960c6768749f09e2a6ca7017a0fb0b2e749f23c3b76dbabf6dded320535ecf9561810c959eef68747f4786f334baef06e266cb707e4246974207baab7bde953a7f00aeb9cee5a6ac06a7caf8f7e47d1f826b2587c77f24af17c8eb8fe5f542192e92e1ee32dc43def789035d17db64cca9858c25667a1aeeeee0de64bfed25192b5ead64b8b70cdf973a7d0aae79f8818cff0c5c435ff9a1fcfd7379ad7c565fdbef5f38d071990c97cab028611b5d27d87ecb64095bdad1ccfb4667daeed909dcb3dcf6db8a84ecb62a4db565db53862532ad5fcaebde322c96f15fc9eb3ef2fa6b79bd5286bd64b80ae85d2ec3524d5c19882b91e16a105721c33580a39332d6133c0fd393ec99b5326c0ededf5c861f4939aa0e6a698b57f2d7c9b0850cd70359aa7edb07c4291bac4ca4afe7510e74b5dbfec7cc6afbca077cc2acb6afca6b0f19ffad4d8f4f35ba7d01e25ad9c22fc16f5552e677b67baa65f8994d47a5d3574086b2afcfe5bddf031d543c0fbf96bfff00ae8df2b3c30b4cafe7b72ef4fcdea6a7d2e13b20433dabf4fa463ef3a34de60619fe6893a9eefb09c8fcc926f3079b4c951f3f8367943dfe62e3f53388e7e1af365ebf4a5e57dae4a8e77e93f7ff047481bfff6ed3ed7719fe0174eb00e2f8bd3fdbeefd53c6ff02ae79f8978cffd576ffdf32fe3770cdc37f6cf7ff05e279f8affc5dc9e9688bff83256c9f87aa8efb9ffcfd4f70cdc3ff64bc7a4f862d5ed9f04619b697e166c0a69d0cb7b078b91fa8dab19bcc90ff53dd2ffe0df3e56f5bbccd6fabf8584cc6ff03ae555a79fcbfb6fbebd9eeaf27efdf2aafebcbdfff07ae79d840c6ff07aef973fbcaeb86e6eff594be3daccce3bfc7acf1f1bc50faaabcf8d9f6fbcfe077435633e543bfb0ddf785f5be262aeff7b3e5cbfe20af0e91e1019ab80359cdfaeb2056b3fe3a18e4f30732ee50192a5f71b80c313fa97c22bce6e16109d91d32655cb2bae3085b1e1c95d037d658c61d9d90396c3f10a7ee51e93b52c6356296fa515c1b36d06aa429a3956a5b3707bf37b5ddbb3e89ee8ae38ee0ddaa9dd605dc03da69f1b4c036d431b6dfdcb6a16cf56eaca935af622a4dcd6c79b513b3d861ac39b3d8b3b85fc5f3b009b3f467c4b5c1a8f551a6aeadcfb5f16c0278aa7bb7fbcb931dab4f8bb8866553fdee96ad7a4ed673b11636062dcc74b5d966ca6c73a18d410bc040ddfb88cf0cb6256750af1ef3c640f990643a295faf74ca04ef54cf1c67fbcdad1edd65d855f26c69cbe315209e87ad64faeb836bf87c6b2b9f984a533779ddc62a5f5cf3b02db3d6edd23fc7da316b7da3fcf6f1f2ba3db3d4373159078bb1441edf005cf3b0a38c6f28e57492f119b6f764d8ded3c9f61ef55c67db7b3acbb08bf53db18e209e875de5ef8d40fa553c0f776096b68cb8e6fa9c20afbbc9e71b836bfefb89f2babbfcbd892d9d2a5ed9cf49d67c765dc79c2c435b3b38a67cc5a7e09a879909db8d29f9a726e2c4fb79785a428f11ca079e229f036546fc9b873d808cd3655c4f705f0f10c7c35e924333706de461c7915286cac7de406e1b1007dbb91a3e71bd1c3c1fbf57f5b57f01d73ceccb2c65237e7f3f6669278b6b1e66d9eeef0be279d8df6a5bacad2dfe0f3c5dec0c199e27c3b340fad498f3d9202e5786e780b83c199e9bc8e391cb64dc99325f9a27d141d9de05e6b34cd9b84c3fbb508617c9740d90325b806b1e0e6496be544c8dcfab7a69907c6e07706dd848a7fd6c7206dbe4a8f171d506c866569f3800c4f3fbce67893e181f8f56fa5f8ca4ef7cc0d2e9fcc12532bc54936fcae661be8dd2e4db6807f9d632890e97c9f0728d0e13343a4cd4e830c9810eca17e974b84286aa3f0c7598a1d161a646875d1ce890cc7eaf92e1d51a1de66974d84da3c37c8f3aa832748df9eca87be5f5b53254f5ec7509f9a3d498cbf5e67593831cc8d7fdb6ca0cc51c15d7b335b8e6612eb3f64d950f5175710eb3d6c5728e2b96cfac75b19cf38a0d65d63abf4c86d3e4efc398b54d23e78862c399d58f0e05f13ccc63963a5cc98d8d94f16dc0350f4758e5c5fd8c9a13816c769532da827b543c0f6731cb388fb836d29d596a933317c85e63ded37daced9e79b677cdb3bd733766f55fca1e957f9b037e371877b73f3f27a1436c2e88e3e16cf96c3b70cdc3f936db90f61e2b90f1edc1354fd39df2dddbcd3073824dde029bbc05325c68b3353597a26cadd06a6bf13c1e63b38d31208f79b8b37cae039003e33bdae247db6c57fadad858abedc6ef1f2fe333c0350fc7c9f84eb6fb67caf8cee09a87136cf78f03f13c9c64b5f1d85810cfc345f277d5aecd03f13c9c6c7b5ee9b3bb8cef0aae793845c67703cfab781eee817055f1dd6df1136d5c27ca70aa8c976d2926cb4d6c9a2d5fa782781e4e97cfa9f6ec08100fca783cbdaaae9803aec1b854373516b2dab4e3cc83a4fdaa39415ddb52f93bcc66c6d86c46ddaf6c2f035c431beb64bb5fd9586770adb3b1b1201eda5423a00fb4a951369b51efc3f26a922d3d93801c9d8da93c51b69469cbe3a9b63c9e02e2810dd4f0ebd36dcf419be0e10c9b6d4c06f1b00c2adbcdb1c5abbeb8aece5475c59eacc6bc4d6c318893f614db8b597dfa5e325c22e37bc8fb557f716f8d8c655619f1f781b9bc5819b89787eb99b55e5a6fda759f476cb2d573fb30abffdf478695cceaaf2b6528e774e2febfca94df4bfaff5edbcdb0cfb936791b6cf2543f7539b3fa7f35f77a83bcae66d6b6869c3b8a6d02bc547f138cfbc73681381e6e94727a826b43efde17dae4ca319f7abdc035cc2725a7b7554e9f2536392b6d72f606f1ea1adaea9e325c0bd2a0e649e7807b94ef82ef5a657bd712ebf3f1dffbd8f266cf14f217db7e5f6cfbbdccf67b19f89ddb4226f21e65d76a0c6f1f10cfc3a5ccd21e8cdbacb295ffc035ff5db51556d86c458d9dc939f5b85f2bb6e5f58ee0da9e57d0af2db5f28cfba195209e87a5d6e7982c3bf1f66e99357df1b2b8da26b714c4f3708d4d1f993fb172db736b403c0f8b9875bc4195e5b5ccda4e56f652619517f73beb584d1fb585e97dd45660c75bc1bd497cd4c04c9b6cf59c4f3e2a4bae8fc92a36c3017fd8e4613e6a3f66f5516a9e46d9ddbe56bb8bfb0a39ee1ddb9f59eb9d7d6df1aa2d2ad734c4c05c97f8372c3beb98b50c2eb1de173b40caec0bae1df8af01236dba1dccacedc383657810b3b63d0eb2be277608925615afea58c5fc509bed1e00e2797818b3fac90a100f6c55940998a7b54d47914fe928f2900e60fbf17cdf0af2dd4867bf64f32d37ca50d67dec66161f4318abc6376e92720f07b626e7456347d8ecfd08f98c2cbf6aaea65e3feb730cd6c94ec7c5f697328e62d6b227e7956347db749173a3f1b27724b3fa7c354f7a2cb3fa7c39a716dbc6acfd0e55be946f3e8e597db39cdf891d6fcbdf6d209e87c758f34fc98d9d607d2eee1faf06ac14836b98b5cd783588e7e1b5ccea37f9b591bedc576c726e00b20f36ef197ca3ed9e1b6defbad1f6ce9b9875cce1269b3d5e0f7e37ec6af023b6e7af0776750388e3e175cceacfaf93e1cd361bb85986b730ab3fbfc54c53f620f3ddd943cd30f75a9bbcdb6cf26e93e1ed369bbadd6653b75a6d2a9e9777306b7d79870c4fb6d9c609209e87a732ab2fb9d516dfd1167f92cd76e51c51ec14abedc6ef3f9d59fb95aa3d7c1ab3f6e5d5fde7326bbf52b507cfb0dd7f1a88e7e1d9561b8f9d02e2797827b3f62bd5fbe4f87adc079f2fc37398d5071f03e4f0f03cdbfbce01f13cbc0ae1aae2bbdbe2cfb2713d4b8617304bff96a93ae8225bbe5e00e2797831b3faf413403c28fbea77768b0cb36dbfc76cbfcf017ae87e9f06ec12fc1e4fe7e5b6745e2ec34b6ce954f2c6d97e57efbbd57a5fec42f97b96ed5aad0b50e3e973c035a8b306a935910731d36f7d63c6f3212b11af1b6b51fe1c2b1327dbca84ba5f95ad0c700dcb5037dbfdaa0c7506d7ba32740a888765a611d0079699136d6542bd0fb34555c61adaee3fd7961e5566ed6548dd7fbe2d3daacc9d67bbdf5ea62eb0a5e76c10cfc333ade961b7a5b069f53b66d3ea77c4a6e3bf8fb3bd5ffd7ebbf5be54368a96ed13403c2cdbf6fafc12db731783781e5ecaac3ee152a0370f2fb3f155f98595d92b6cf67d05b02b1e5e6993771988d7f9c8236df14ec6bcee6289f6846a97dd2d397c0fee51f13cbc8759db2afcda48db88593639eab97be5fd3f826b1edec76a8ef3dc9f8813bfab381e3e20d3d50c5c1bef1dcec7b7f95a86dec8fbb7dbdebf5d860f4a79fdc1359777a5296ff88d29e43e6493fb90bc4fb5a10758ef8faf07e4ff56634f47b2a4edeaf8b373c035f0bbc3a4adb03b34efa870f60e6d9caca7991a2bbf1bc890fe91dd03f2ea6119772f8853fd1895cfbc8f7222b84f3dd714dca79e53712afda7d4220dd26ee26bbe953f55fee50119aa35300f26f41c576d93a17cdc769b0c95e7d2c7b3471232c617db64283ff8b04d86fa5ded7f3bdbf6fba3b6fb949f4c360f9c6cdef871193e560ba6c9dea9dae68f316bffe331193e2ae3ed6b411e077a28194f5865c4ef7d3271aff8b7ba97874f31ab5fe2d746791eb3cd265b3df734b3f6559e96e133ccdab7784686cfcaf841e09acb55ef7f4efe3e185c1bef1ffd87690f63d4d8a4e41f7b1ea4e579ab9d897b543987babd60d3ed51ebf3f1df63d6b4c6e53ec92cfe63f4041bdf17814e2fdaf445f88e1d6bd3453d2739c6fda3e2f81278c74b52df6cebb3717d5fb4ea3be6c224f627fb944cf56f7392dcab8b533e14f8b0781cacab94ae2f83385537bec2ac75e7cb209e876a5fee0fe0da60386ea44d8e7aee351b43b91737f6baf53dc217ab781ebe617bcf1be67b767ec32adf92d67b6aa655bd2ffedb5d567db47596d2f14d44c737c1351c87503acd01d720efc74afb516d0506db2e4ef3f841ab8cd85b528721e09ae7c7b5e63bc77d627d2ea6f6c87e0faea14d48796a1fa492375ead2155e5717b0add9fb2e9bb5dea999be4195d9caa83957eef483979e0dad06fc236dbfd6a1d8eda5ffb3eb886f73f6d7d2e26f7d9d6cb37f588a97db62aef607dafd3f75987f73de7f0bee71ddef782c3fb7471ca1e5fc49e6d18137b796618adbe22b69ee50883e7ad4ea7c746a827531f1821f61e89d12dc64f8ee0afad665b8c474b74a7362c10674254b37ca3a3ae3bb5a1b3d803a0de3e59fc5d64dc5126840ead57e31577d5780557aedcf853028e9ca832e2a78b132bf8a11365c62fd96c9611f2a796b15cb6d8f86395b2d0786d39db605c151a7faf17f296196ad7bc335592f8f114f667e61b32cdd3332a8c180574bd715d2e342c107f6f149a9608ed671a71d5e22c8fb56c159b64849bc5db6aa6bdd2f8b7ee9d8512995e47fd211a58bc795487caa629466ab8f639c23eff7f8ea4234738fa464365396c90237afec7d4c889ffcfd074327c406ca694912b90c52c71792c478c99cdaf41d07d1a6ba6506fdf26efe16c68d2b4e8c9f0ecee2a5290c8e1091d4f5d3aedf07fae6a684d5a3ecb11c33bdd52242d19582e2f4bec82719384860d1b0ce18adaf1c774f8c556988200f19bf79589fbdc67402351f95933406c0d586d28976ddcb44e88e7882a8c1b56193f1708c1c522190bc5194a9b84f2fa7be01d357274087f7d63912935abdc5409c3b2a59e2e5bc4ee85c2b4940aeca0a7e419d3249e8a44c6e4883653a724e68bbd4b34b01acb56962a606b77ecf842ffc32ecc38e6fccf478f5b3ee2b4774f5e3d7bdc79d917efb2f4b865dfcf3af2f4aea3ca721f6fbd2de386cd3dcffd7ac2caf60df5f9d74ce45f6db4c272b0be2e079b055db052d724c9f2af793c5d89fce3ffe919b640ca402a1d30820d74049ba7a766a81d3fbedd29c331bf96491dbb5b7a0d35f486707aad344a71636dd8d4a614d70711de4897352d82af354cc75a9ea209a2cf1c3ea6b653cdcc19afcf9c36a8834fae03963d8d7504c5f6b815a404171871667f6eaaf8b54c7402cc42cadf54645473892a90a728d913c909f3d1dcc136c27abaed045dbe0ac95ffd30fa4d74f4c586bbf234d29f683ccd5b7dbca3c6536a76d7a68927aac55bbce5477bc7f9d141e4c79094f9e15d632c879aea72a855d00da049a2f1c8a51419f7baf731dc990fb4fb183df20ca405925a050c61331d423193b03a2d463e5d9c825ac2e61a3aaf964693cc3c14c4d9e230d20d4293e4b83b3936f0ce8276761203f7435b2c679aebea666edc5db4f662af9833f08ab9852ecfc52ab78ab4e4f97c49ae509c81cb479e560a4e153ee77c57c739df4de47c6e929cf74f672cff77d0e53f2f99dd75c9b0677f673cfb5b628277f428b895ceaec46ced1252bbaa39fcadfe35c978b6d448cb4651e56c90558dfdfee456b39363abc9145693c97483f8ee34c26ca2b58e70bbf495dc8922be4254eaeb5254e4f05e7384d979c9ede1380f7aa62cb9fee98ce5521b5d01e3c5b9979302d60e2f606d75827971eeed4470075c703b9d5d89f5d76569b12bea9aa08f637bea2bec6970127ba2ab01da638eba9f4747dd0133d02c8f06da1133d0fe1e0d344367a02219c5a4065a68649479403fcfe812e3976a23863f552ae317188d40de47b1663a767772b31ce0d82c070ab3e4d9e5b786983176d2e580c8ef92b4b808b36f596048a864e6e4a56a9279ebff0e729c0783451ef44fe21a6aaf23960b9d75b990914e476ddad006c12e8f4df1d951673bce8d1c078edaabae58ae74d1b93dde7fe38323f661d471fbceb8cecd306a574c78ae4638af1ddc08ef8609cff34178774c78be46f8a6983be13bea84f31e08df1e66ef1ec7dc748f77c2d41ea6519bb9649289091fee83f01e3aef201c773ac78b0b19ffbc8d39faad26c86aef9f4738f6082399b3f162b7fa615ea0a72e6b799919a553d94573ad974e306f1c8e7622b82f2eb8b74e306f558d712278202eb88fce1045dd95cea1f3c9e219fe5efe379f94d96afcdbbfa1f3b18e4d7367e66ce8dcbbc698b1f6c5fcd0388d1f7aaccda9f7b9f143fd74c2f964d6782776d518179ca513cc87b027c46f4e08fecff8af86f016b8f0fe98d61359904b475ce01880693cc923e78198e0c93a14adc57dfe256b10f6f6291e933558e79644e36d01a95bc297fbd46ec9cc54c78e669a70349d6ba4ce890e98ebc8c65cc7748debe0ffb9711d3958099fa129e143746dc624257c086658333d1a562e2678178f82f37482b9c5eeea44f0345c703ec6799686f337ba4c4cc279288663b6471cc3301c733ce2188ed9f45c8d4d377069d32330d6f374ac5ddaf4488cf56e1e598fc204cff72878349689051e33710cc6b950c3f94a979cc762381678c4b1338663a1471ce3309b5ea4b169b78bbbc663ac77d7b1aee78ef5048cf51e1e594fc404efe951f0242c13177bccc4c918e7251acec52e394fc170ece511c7540cc7de1e714cc36c7aa9c6a6ebb9b4e9e918eb653ad6f5ddb19e81b12ef2c87a262678b947c1bb6099b8c26326ee8a712ed670ce74c9791686a3c4238ed9188e951e71ccc16c7a95c6a6632e6d7a2ec6ba54c7ba813bd6f330d6651e59ef86095eed51f07c2c13d778ccc4028c73b986f33b2e6dba50233c47cc0b1ccc825d58a3df8baa5b06a7debb4e0c46718dd466443e07b65268c1e3b916a9f7b026ef0f57c4f9802d24626a632a73bea3963e15fcc4d56662a057df5be7a77d66854c676c146081cee0b94daed764c6109e19fceccc669922f576db5f87dbfe42ec3d95d87baa6af59e4598cbe1c7bed418f2e22b71961ad4d71a6d285e8acc2db24562e4642b582ee4c637ed8ed5031b34f5404397f5c01e3a172226e8d6a6d585f0116bbe37b94afc7ba334d842f1eec48e382fce811f79db5d538bf2fff4c570932886790e8aa11fda63056c4f5d8e8959cff569cdb102d4d8e70bd97caabcda73aef1c36cebdb5dba98991dea205ffcd271a0f8a025bf7f852457c58b22df77b0dc509b2bcd6f37e133dcb16f111615a4e698552dc6dce956cc9dee5b2b77ba046b0feda7690f8d6de8ae3db417267c7f8df0c35c0adf1bab080ed05504cd847da8198f8431b871fc4b31c77fa0c6f133978e7f19c6ea205d463472c7aa08d3fc601f345f8e697e8846f3335d6abe02d3fc501f342fc64ce830e6adfb52a213cc17bd1cce3c2e7a5989c13e4257a41abb83bd4a279c2f6038d2098f240b184ab15c3cca875c2cc3841fed83f0d5584e1ea3c94957bb7bd660928ff52ab91c03b24d03a4934b201598dac779557b2d26f978af92d76185e6044da1296ee2aed0acd709e785e6448f85661f2c1b4ff2c1ae2b31e127fb20bc4a279cbb4b7e14688daa992f68e70b12aa8d0a769a6c0acf91fde52a576eb71a7befa9baf7f245d14b8d3f438cfff1f7f33b2ac5af6e34d98069729a4e13be83b990c155afeed2bd11b3efd335f6bda4853bfbdea413ce97929ce1c4be932c97db8c093ed3a3e02d58893ccb6389dcaa13ccf3e56c5daeb690f635934d313a9d738c1c9e69d8d74ce3dff35de5eebe9ab7e664f2483efc1ad46a1827c743e9bb88e7c4f5073d16dedbe287f76689cf393b5ff8997a1d9db663779e7855871abc929ecd84e4c77e58693b5f53daa6b47457daf6c76cf7028fb67b00e6f02ff4c1e11f8809bfc807e107e984f376013fe4dd53bbe0604cf2255e251f8201b95403c4ed7afd433103bc4c638017ba34c0c330cd2ff7212b0fc71ce81598035d212a447320bc9af1d3738a4545e9c6811e81f1ba52c3eb1797bc8ec46ce82aaf3674944e326fae5fedc4158cc4051f8d65f1353e64f13118ec6b35b0df69e50ef6b198f0eb34c247b671277c1b26fc7a8df0b16ddd093f0e137e8346f8232e851faf139ec9cc4f8e35b509efa6cbd0f370e127e8847365f859dd35cf5c3a687c0de16d70e12762c26fd60ad7689e44f84918f35b34cc1b7470c7fc644cf8ad1ae1db5c0a3f45279cbb8adb9c14fd1c5cf0a91ac139623b52902babe12c68ed5656dfaee3a06df9f153e0752bab9de880b5004fc31ce89d3e38d0d3755924f62c05791c9bfda41c77d97397e3ecb99be98f624bf57e2c6bcec08ae53d9a62b93ec35db13c53279c373cee75522c93b450cec20cea3e1f0cea6c4cebfb3d6a7d0e26f8018f82cfd509e6ab7fb63b119c64f5cf7918e7077de07c3e86e3218f382ec06cfa618d4d5febd2a62fc4b47e84699ae47c423edb95f217e9dc99d829b934407706f7d11488e3baf900c25ce35f8963d4ddbbb94759cd250bea3fbdbb7b4cb8bb5e35525e5bfd3037783166328f6b4c665b277726730926fc098df0acceee845f8a15d1273545d4ed0e8fcb30cd9fd29524979a5f8e69feb44673b7ebf8afc0347f46a339f7956e34bf12d3fc598de66e576b5f8569fe9c46f35b5d6a7e35a6f9f31acdddaec9bd06d3fc058de63fb8d4fc5a4cf88b1ae1edbbba137e9d4e381f45e4df6cf2328a783da6f5cb1aad7bbbd4fa069df04ce3f295f80fb61164fe09a6ac18df879a7c047996f1d816b1e6a3daf8bd5cc8364794528f27bbe82adf88d1794d4367f781eee8dca413ce870e5f7792a749a64b6ec604bfe151f02d3ac1bcb3f9a6263f737af3c8daf5d3c4979bb806fcbf6ce3bfc635b3ed0e5ccf5b757af2260dff42947643f96636da50635f3684ed2f145a2596ed9a71b9328e7f6ea7d8f86356eae66f79f2b74d621d52352b95f1f946bc9b46d56d18d977742585937dd71ba2db3144efe9100df101519158f95c2a727991475c77e8b4e7b504ff3496bd96d01e4790a496b8132bf41f680afd3f23dc15fabb74c2796ff943276533c940d0dd98057de44470124bb90763fdb18635ffcf0deb7b31e19ff820fc3e4cf8a73e08bf1fe3fd1956623ff756621fc0ccf20b8d595e3ad29d596ec7dcc1974eac2749497d502798f7fcbf72223849cfff210cc7d71a1c5fb8c4f13086e31b8f381ec14cf25b1f4cf2514cebef98c6a7f3b36216b3b1a2de2d175e796751fbf286d438e9e7c71a1e27f1fb38a3b656de3ed378d6f4ed7bd5ca833f86e9fabd47c28f63827fd041e0b36ff6c3645658d6854f326ee6db4c261b8f148975e86eb47902d3e6479d36bc3fb3d495fc2731f93fe9e46b0d2a89f4a730e93f63da67ba92ffb4467e4e1f16f0e405fc024eed262f7e619ae6af38e8a966f3d7c9dbf847ef9b70711cdab6098c151bff8f35fe6f6ffcffcd78862d8af98de9a7469cbc131b787a06b381dfb1f26475299c4fb1e13aa68a597f1e67772a6e2ce6594c9b3f74da74a9a1cd1623ba5c5c6d32debcc8b8b5d220e345a3e7308dfed469945143a3e5f2a771469f96af8af2a2cbf3982e7fe974e95c43975522b7783f7a9cb0187eaeb2177d5ec0f4f9dbb93ebc9f3f4e6cf65b6edce68dcf8b3a7d78c7f81f27954e928ef14b98e07f3d0a7e5927982f46f91ff3b818e5159d64ceee3f272a2781fc2aa632af7f3ca9fc1aa632af7abca8fc3aa6723daf2abf81a95cdfa3ca6f622a37f0aaf25b98ca0d3daafc36a67223af2abf83a9dcd8a3caef622a37f1aaf27b1ac939e2f8c6652c884da605864bdd35deb8cd96f1f34423778b903751bc21b1e1d1fa44f20651531d776d93a5598c37597a8b3bfdd10c6bc8bcafcb4bbe0ca3b91323b91bcfca0f7482799fae45cc7b9fee43cc0277f06a811f61925b7a95fc3146ba9547d29f60a45bfb40fa534c781b1f847f862169eb11c9e798d6ed7cd0fa0b4c787b1f847fa913ce8f77e8e00449262ef82b9d603e32d7d189e02423705f632526c36b89f9462799f75e3a395139c928d9b718e4ce1e217f8741eee211f2f75849e9eab1a4fca0119c23ce35e61b37c3f005875467a0bbff8a4337c7f57077510ff3f9055a7db1daf9472cdb77f498ed3f6186ba934743fd19738e993e38c75f30e13d7c10fe2be6c77a7af563bfe924f3f6752f8f0df1df7582b922bd9d084e326df687ce2b8803c95785c02bf8fcf12dc7dea0aff006031d7b03bfbcc09f98d9f7f3c1ecffd209373f8bee7d6bc2df98e6fd7dd0fc1f4cf3013e68fe2f267ca00fc2ff876119e40396ff306f33d8a3b7e12355dae1bc6c2782930ce7c57482f932ae1c2782932ce3aa87091ee251707d4c70ae47c10d30c1791e0537d408ce111f6c284a8b4777bfe539b917cf77c2e75c9c4f231d78f1fd26afb57f639d64f1fd261f0a7b134cede15ed56eaa93cc9b9e233c363d9b613c46fac0a339267c940fc25b60b0477b85bd834e32af6dc6f850dbb4c4988cf581492b4cf8ce3e086f8d091fe783f03698f0f13e086f8b65e8041f32b41d56494cf45849b4d709e68a4c7222b81b2eb883aef6115ff52966e9fcc4bbbf3d89c931cd2191e2eb417c40c56f5d32b9d9d8fe4256404c89a9cfb3faad04d665e988d9ff541fec3f03b3ff691eedbf1366ffd33dda7f679d606eff333426336450cd8c95b96b7f25cf58e4955db01c98e9430e74c584efe283f06e98f05d7d10de1d133ecb07e13bea84f36a7fb6c7f1989db0c6d81c8f8db14c9d603e0e38d7e338600f9dc7171f3c5b99168f6fdf68ed9fd79fe778fc6837e186072471c35eb444bf03aacb629e13f39d64f16eb887e98535870bbc36877beb24f3e1c742470e1e57b90fd6e65be0439baf2fe65a16fae05afa619a2ff241f32c4cf3dd7dd0bc3f267c0f1f840fd009e753847b3ab1942453840331de8b7de03d082b394bbc969cc198da7bf9a07636267c6f1f84e7606dafa51edb5e43b061cb651e872d73b1666891c766681e566296fb5062f2b1a6e80ab2a6e8502c3dc53ea467186694253e18e5704cf3953e683e0213beca07e123312ca53e601985695ee683e6a331035d4d66a063b0f4acf1213d6331e1e53e08df59d7cc165fc44dcf44ed42d978e5cdd33c9f1bda15bae115f181de6453b2de348206a56dd3af8da59a13f6a600d6aa1f8759d53a1fac6abc4e38b7aaf5ba229893a2e0adc50bde042c15fbf8908a899823a924732493b0f454f9909ec998f06a1f844fc1846ff041f8544cf8461f844fc3846ff241f8744cf8661f84cfc0846ff141f84cac0c6ff5b90cef82b534f6f5a1a5b12b267c3f1f84cfc2ba61fb7bed86cdc6ba060778ec1accc1781ce8038fb998d60779d47a1ea6f5c13e68bd1b26fc101f84cfc73a8f877aec3c1660b6779857db2bc43ad2877bec482fc0581ce191c542ccee8ef468778b30077b940f0e7677ccc11eedb383dd037bd1313ebf684fac241deb43495a8c09dfe683f025ba6e103f9e2716e496f90279c20f9753bb2df3c7e90c5edbef383ea6dfd4ee4407ac4fb117964527f890457b6365f1441fcae2524cf3937cd07c1926fc641f841761584ef101cb72ccb19eead1b1aec0ea98d33cd631c5589fed74b23e5b09960367f890032b31e167fa207c1526fc2c1f849762c2cff641781956a4cef1a148adc6343fd707cdd760c2cff341783926fc7c1f845760c22ff041f85a2c432ff42143d761c22ff241f87aac217eb1d786f83e98f7bdc4a3f7adc41ae2977a6c8857612c2ef3caa25ad740cb352e63fc9b99e95a7e5efbf3529337e32e77920fafe2b43660197c85c70cde8865f0955e3378934e325f657295139593ac32d98c09bedaa3e02d9857b9c607afb215137ead0fc2f7c55a5fd7796c7ded8779aceb3d7aacfdb12eec0d3e77610fc02ab91b7da8e40ec432f5261f32f5204cf39b7dd0fc608cff2d3ef33f047bd1ad3ebfe8500cd76d3ee03a0c137ebb0fc20fc79cfb1d1e9dfb1158e9bdd363e93d12f3377779f437476128eef688e2680cc53d1e511c8359c6bd3e58c6b158e7f73eb2ceef362c3df7fb909ee3307ff9800ffef2784cf3ed3e687e0226fc411f849f88097fc807e1276136f430990d9d8ca5e7111fd2730a26fc511f849f8ad5568ff95c5b9d86a5e2711f52713a968a277c4ec519582a9ef421156762c29ff241f85958a9789aac549c8da5e7191fd2730e26fc591f849f8bd9d3733edbd379582a9ef72115e763a978c1e7545c80a5e2451f5271a14e383fa3e125270d9964df2bc3b47ed907ad2fc684bfe283f04b30e1affa20fc524cf86b3e08bf0c13feba0fc22fc75cdc1b642eee0a2c3d6ffa909e2b31e16ff920fc2acc39bcedb373b81a6b02bfe34313f81a4cf8bb3e08bf56279c0f15be17f33854781dd6397bdf63e7ec7a8cc7073ef0b801d3fa438f5adf8869fd910f5adf8409ffd807e13763ddf74f3c76df6fc16cef53afb6772b3694f199c7a18cdb30169f7b64713b66775f78b4bb3b30d3f8d207d3b813f3de5ff9e0bdefc234ffda07cdefc6847fe383f07b30c3fed6ab61dfab93ccb71a7fe7c44c921c8c749f4e309f7ff9de89e024f32ff763827ff028f8010cf28f5e216fc720ffe411f28398ca3f7b55f9214ce55f3caafc30564e7ef5a19c3c8209ffcd07e18f6a84e7e41997b172968eb9e8e9464ab874dd2720fddb3df5bb2ebfb54b0bff88f1a5857cf524b5c6d842c4c7b0ecffd387ec7f1c13fe970fc29fc084ffed83f02731e1fff820fc29cc05fdebd5053d8db560fee7b105f30cd6e6facf639beb596cd4857f15dacba8cb7318e4583d8f909fc76ca35e3defb6f10206babe131e4940bf8869ddc007ad5fc21a180d9d689da481f132a675231fb47e0513ded807e1af62f6d7c4abfdbda693cc4f1c6bea0476771cf6eb188f663ef07803e3d1dc2b8f3731b55bf8a0f65b98da3b7855fb6d4ced963ea8fd0ea6762baf6abf8b496eed55f27b3ac9fc83aa6deaa99b530049f241d5f7b17aa66d3dcd97e066306beb34f1f5c26cb6d4f8b3ce68972e65b3443bb48a15b252c63f2e3dd768754d65fb1822b8207e9f5e061e6ffd6592f826286fbd71e96e2abf0fb0d4b6d3a5768ab8acf921a339c6ffd56c93684dae919b5dccf4cf347e9f6bfcc2db9b952246df16d5b55efd4be587582adbeb5239ce752a57895f968aef22ae1082e047a0f81d3a79d8e7a2dca4ec232c651d7429dbc375ca0ac42fd61c7493162ff9bdd0d0877f7cdd0d8f8f311e1d753c66c5792c30dec3fb8793c11775cdf2c6d3b2d278c4ec4bce8cdf39d5e8619aeb92cd733a4b0c5d378abb4d723c761ff11a9e1eb34f5a265e5dc6b61a21efbf72397ea4fa132cd519ba546f234c7581f8b5d890b841a488cb4d3cc3bf8da92ca4984d13dfccac106fb053307beca625e25e104f05b7b50d8c6fb24bbcbd508c182899dea97f8a51efa4a3be2721f5e9a294ce13631cab2455fe6ad3e2960b9f999cb0f537582add10f90c23d2594724cf56774e166935d3552d53c60fa3c7ebbd64de23f1949b147c8ea5a08b2e05131dd5fe899adef483e9acefbfc0d2d715abeff5fe7ba288ad107e6c9da5f457c7b5739a4e6b6afc28995f62a9eca64be5583495ba5a0aa674a28831cb62f23cf223555f61a9eaae4bd528e3b290cd965ea190991fc1992d3c4ba98c5d60a4d0dc75c3f5ab92ad986a79af1b8f519bf47c8da56747ac55a6cf259e02d377544b2f5920ead812a386e17757dbeaa76acb1ea385d2df94c9969b1f29fb064bd94e58ca70cb819e84a79f7bf52da2c5b62a492b22b9f5d5de7f7c8ba52c5397b26949f30c7e6864a2f8e63acf1533bdea70ae643e046b5be2b2dda4f43b2ca53d74295d90b636157529fd1ee3d053c7a18fcd96edf99ae82995080dab0d5fe44fcdfd03a667afdad7dcf67e7b3a6bee1fb1f4f576d2b68235983d4fa6cb3c719a86dab60e7fc252d0c7490aa05d7b4d0194e526053f6329e8ab4bc1e4a4de6fbe71e32623e46d285e2af475b0f9d13adcd715d6b8cf6b79ff054b633f5d1af14316ad9a594bff26a1957f65ff574ce72c9dcef90efb1df0d81637b69578ca4d1a7ec3d2d05f978641b5e25e2aea965546e8577fe9774ceb015889c05841bf3b45d48065c67dfad68d3567f05ffcc9993fb0340ed4a57197a4a57ea2a1cd7ae93be7c7db6f35dba9ca0f1469ef4fcec3bb0ff8134bf1205d8ac73baa4b271a3a148b74eaf3d47d5d5a3b8bfd0b4bdb605dda7aa7489be927f016576d6b9abf312db3755a0e476dae66cf5559d65ad9b7a56e3ffe83a52447979231684af0beb8f26ed5a24db0d6d076a5e83b5424ad37edf7ba49d3bf589a8660e5c3a916b0975a200e062b97793153f401b86f775e17d526bffe87a52dd79fb44d13bf17a7b43b8a7cfb0f4b5b9e2e6da3d1b4a91567ebc4d5da345a225ffca24d51be2e457d5da7c86c59d7fcd5f47d6e348d619a0ed569bab38bfe4b014bd5fa773a665c9bf2520f4bd7305dba2639aa2b0b8c9b974b2b5a91f61ab33e96c2e1ba144e7594c2d962b5214fd97ae1e1562419cb0a2a9d0db0748ed0a573285a96d477fb300fa8bc4425b0c2e492dca4a221968a91ba54f44f990aa73db7dab6ae1b61fa8ec246149df4209c95a060fb118db1948e7657b3ce1665a5d4b02a33c5b3457c7ad3d6044bdb18af692bd2b478824d5b532c6d6375692b44d3c6fb7f058635568a11c0725b0953edf252e12bf8fc8539a3c105cf91fe43ad1ee0b3e7f38cb8aa24fd29bffb84cd300a3beb2814b8e891e0b3a4a92538bbc7af31d8e61883713a06f86a7dbe0e62b971935a65334bcc56b899ddae4d0eb6c0b41fafd37e4e0d4f9b689fab76d77a995bce576fc05f12cfcf35fea5ec38f95a90dacde5ec80a57c0236eb9dba05335dd4df45cc1cb509c30c414b2c951375a91ce6d23aa70af2ba3939bfedb415968e49ba748c70998e456206752d32c2e1775a5a636999ec6e2542aa1ee72a643d9df3b11437a96a83a56a0a6669a9cb53626edb6ccf6cd07802bf5bfc6db1744cc566a4dc8d75a8dc59617807be3bad58e4e386780fda7b0ada61299886f53edda540f5ff95feb5998ff736c2d11e4be174775e2df5f8a1ea29f099203ea6506ee8eb9f77ee80a56306b6ae5c9f0eeba7cb92af9670de4e76f22e37a9ed88a576a62eb573d1d4a6ea4b27e649d68a5266ee67d4b78e9da4d10f9f9f81a57d17773edfe938024c7ba2bfe4778e76c252b5ab2e5559aeec57a524794fcf8db69d316d67059107652e2cce4daaba60a99aad4bd5cc1a2d78fd58899bb1b8607bde5db1f4cea1c9c52ad9bb36d7a9f3be37452e76c35235d7bf92547395716df3a03ba6ed3c77f596534f5efb3cf0c377ef88a576375d6a07a44cadf3f517b5cd9f9d308de77b5981916ab63e583f9089a5b14097c6910ed3e8a4c741919a1e586a0adda6a676ab66534b73939a9e586a1660eb64dd8d0bce14bf867f6cb017c661a1fbd5ecf83730acfe64bd68edae642522e778bb77068187e98da56c912e65d31d963e67e367b5f333b5cfc53e585a7777324b9dac6cba9ba5f67bf4be2f96ae3d9cadbdc5d3e57eed6dedacb01f96823d7529988796afe46b6ee6891a21b1c6c1a90ceabd3f5958ea173babe5ed63f7d3e2334a6e46eff5ab30fc5af3d61f4be3125d1a0727f5a070ff87d567f255a57335b9527b9f3100d37b2f6c5f961bbdab5ce9ed87ad0dc4d2b3b7bbf5aeba11373ff7f92497ef26c583b0142f75d7eac7c7169dacb674a3f1604ce365d8fad0547379d5c2f3551bf72c1229d3adf0c05786d6bef46463292972b7a7a2267bde83ac62e6c96f5b18df695121da4865b2d5e1b415e9bd44e560695c8e9528732fd94c51c7540ba6d571bdd5c91abadfdc9516ba19a221588a5738997175b346009fbd733aaf577bdbcdc55259ec64cf59cd52b88bb02d5d2bd8c97cbaff35721e96be125dfa7665b59f370fcf8938f9589a573a69292f003a796d294359fa143436fec462fc28a8a9e24e3e96314fda10f7e4397cab93588762fa93ecf89ed36ccbfed4443c7f7f85515638bb42a6ce8ee067482697b0aa9e79d29af8af5f8c83e505946f5d89adb431329f2c1792136bf3aac4199625cc3c67868f42f36f419689a7d4699da95261f2b2eeb3e5b1bad4a54ed35ec8a7ba63b1c632454a96419a2f07ad73292de5b9da4ae66abd1c3eb92a76fcd5c69a526b51c6df565f6f431935c8429fa6d3dd143047d663b1b6bc35271ad066b3003b8e27e57b614da27bef6021a0500a48290e16729db8cec2d8cce1d84a666e479e67b882c60deb0de1f9b19a125a3321a0c4f8b346f44cf8a9037c6f611420fdd02a01690d25a4963648f3840a1b853df121e528c09ad52601ab9c1a96590f4e111e8fcf38f21a52dd100558bcb5aa605550c2e2a7b9ce109d8d1221884f319b0f9b073673ef15056067364e005b4b098c1feb384dd6b8ebd826b11aa24ad693510035af6d02d43a4a50ed446db8940d890f7c2a0f66164bd5f02b8e04b667807dada72e900a1b57d3dc8fb9c0905e2c7b34d100d6ba5102d83e94c0da5becac5414ca287bb22700b84aea7a72a61c99499c1152206e2e8e483d792d805545098b778017881fab225818cb416bbe9aba0b3457f4ca9415a95ee764b9ee6b4d64a0ddda32016d037593422d822e17cd89aa483556f97f0ad446fa0ef6ba3ad1c1ee0d8ae426fafa916331172c273b28380ae03e68c0c1356e68136edfb55bfb713177b4f1113c3ea835d568bbad17b16665611bd1e39366a1d37c331c91cb4aea9db25276b6b35cd95f96e3229ee578b42d2b49dd9de5a8b99d95b2a994e5aa159ae5a8d79de5a20795e5b8e2cd4207dcb2528e326525edfc26260af403fc43f844c196ffe363f843f818fe560e817f0382ff67d600fb06d1a5cc67c344684eddac356e5e2f26e4f96db67776abf14eeb17d19487d7bdbda9a50ec87192a0dad403a78056c77e94f8ba497c096c4ed78ae7d161e5df1e26c13a3396c0ba3f25d64e1aacc9161de51ac920c3994165a5bd00ce03c284332f92381f00380f0cc2670e65a382f7992da9f0dd037ce64194f83a181755359a220b8db0c46836a82fba1432ed5c9f7f20075281cc00200f0ec20eb9f70bdc0e1b53e1db0de03b2408afb80af58b507d8e79381dce16543837029c878609677e2471de08701e16269c7991c47906c0793825ce8c144d20eb86973ca35f4d06b30d15cc29a00174449860e64610e65400f3c830c124ec3892c19c06601e15269884fd1c3298d301cca3c30473680461ce00308f0913cc6111845902601e1b2698844d2332982b01cc6d618239228230570198c78509e6c808c22c05308f0f13cc511184b91ac03c811266c71430ad431d84d50fd908e64080f2c4b0a0cc8f24ca9b00ca93c28292b4514486721940797258500e8d24cab701ca538298d6c507dfb0a32808873aeea0c27a1b4b603d35a8f5ebfca1c4f784a23c71b614e03b8d125f0f89afdcb889db233cf4911f9a607e1823376923298ae39a8b40b13f9d12f0201be075a090ebcedc717e3a0f21f6be54d88f00d8cf4867c505c5917a58b239cdd7808b38931265af1a2e2271a6b4dabc3f9925ce00c7da0784f64ae687f704f67a1625e45612f2f03a34eb3e0158e8d941cc6b2a0bad66fcbb02f64a2beab6f830b0c57382b0c591c1dbe2342a7893802d9e1bc4f6c01572f5b0dd23aa9492563ae751613c1e603c2fbdf577d45ba07f0194e7a713a5f51c2942947753a17c1fa0bc801265775b45b39295090b5437246b63128225abc17f03602fa404db86257af1ea04e0b2e0faf164d5ce6000f0a260d60fa7a105d9990adfcd00dfc5d4b53617c0073f16181c6689d3eecdd3c74cb5f9ee9d8dba4dfd11a86a1a018c9704b3f3272f782b24db047024c07769103535d6768c7e85d21fa0bc2c084be44b0b02b744b2e1b3fd01becb29f1edc89cee41ab2b239331d0bbbe82126d36b3b621d527b39d0f06e39f9d21ed5476a342bf2f407f657afd6bd43b952700077115fdd1184bc5205b857cb9b94b3da0263b5915351420bc3a9cfb7c0957cb91edf33d0414f26bc2b43195740b16599bb400e0bc364c384917c692e17c0ee0bc2e9d559075c51c616d4e364d7125f09fd7876725676e24ebf32c60973784096614b75ff507306f0c13cc286ebf1a0a60de14269851dc7e351cc0bc394c30a3b8fd6a0c80794b98604671fbd55800f3d630c18ce2f6ab7100e66d618219c5ed571300ccdbc304338adbaf2601987784096614b75f4d0630efa43ef5080e25afae632bde7e6609907785659b0b69739d0c651b6093778705657e24515e0350de131694a4677890a19c0750de1b1694432389f21580f23e4a943bb06447ed91811b4c05ae13a864ee0fe668bd21c12f49209b2e9b09f03d40bd44509df75dc54ac1b9d8d3189f323397689101ec4005b00900b83dbd1b50f55ffa246d3bfe4685f56980f5414aac5d99b5115e6a4496198f96b2bab7bce01850c93c14c442ebd473e3f62fcc93823d970a6c4300f6e1b082259cf321037b2f00fb4858c112b637c9c06e07601f0d2b58c2b92032b00f01b08f85678b55144735bb03948f0731aae9f4605dc2514db263750b4083ea8930c124b44c32987301cc27c30493708e920ce66400f3a930c1249c3d2783391ec07c3a4c3009e728c960ee0a603e132698513cd77d3a80f96c986012f68bc860e60398cf85092661ef9d0c660e80f97c986012f67fc8608e01305f08134cc25e3a19cc1100e68bc11fc19357c716243c023a942f8563d0c3be3788749d3bd9eea07301d897c30a96b09e27037b3e00fb4a58c146f1bb955701b0af06514d613b86ec1bb0088b3fd9f6ab12504dbd16269884459e0c660580f97a100b1a86a5e35b816447f63c08f0bd118e93e208fd23d9497137008c6f06b1139d2faaa95b3bd10701846f5122ecccac8d77fea03a471b5f061bbde67b635067bf1d36a051ec0f7d0a2cf49db0018de22ace75c042df0d6631621abe374dd6f4590decf13d4a7ced8c0bbef0159e9dc905f2f3e3785fa7c888e7adc8e208426c0a20be1f9ee3ce086726c96af06a80f283608e3b1b1a7c71263bfe7113c0f761983e8c4cbacb9c6c307839c0f9519870e64712e73500e7c761c249fa095a329cc7019c9f04b78165b611cd1f25dfc0d28e0a5c1b00ee53ea4638afa9e7197f5789064f8978bc48dcbed50839157ec77ca1da0623be9a0ee8162aa07b02a09f85f30438c295456423e67b80becde7417cbf220da392642dc991c026bfa0843780d92772792fbbdae061aa829f030befcb635382da41d49dca5e7f00c8bf0c6207516a3760fd5403e122aedda8a0be049cc05761844ad8cd24837a3f80fa7518a11256576450ef0350bf092354c2463e19d4cd00eab761844a38684c06751380fa5d18a112ce159141ed09a07e1f46a8844d2a32a83d00d41fc2f3f94fc286145987e04280f2c760668ad2f06521b2cf3dac62097c3fd177468b4481ae104324fcd6029638c8227ab3947d01bc9f83f99e501abe45495674cf04f87e49e76a37ab17243d53930ce65300e6af618249b85f8d0ce63300e66f618249d8812483f90480f97b9860467126fd4900f38f30c124ec3092c17c14c0fc334c30098734c8603e0e60fe15269851fc3ee0ad00e6df61824938844106f37600f39f30c1243cb1830ce6b300e6bf61824978960c19cce700ccff85e78ca3281e83df0d8c03fd478932538372a1c163b221680adb954d12c31925326e9e18ded8c2f80a9189860665b42396cda8462cdf0396caea13af4ae278cd6f9f9b33efa6ec32ca55c40da9ec920170314a70f6f337d719f8560a4bac7be76fee000a7b3d4aa889ad7d6938ab986cdcf25e6093f583c037d40058779663df04f035a0c4d7c756a4d52792ffaf7c10f95650cc1b460534a13f25035d084037a204eded7bea84037664136c19006de3207c6dbef816755dd9c97630f0b54d28f1b564c9da9d55844d762a74f500baa694e87ad8bc679914e4a668130e1f9315edeb40d16e1676c084f53f19e07d00e0e661074c58ef93019e0d00b7a0049c6a8b6bf4cf3ecc02de76074a94fc3b29f6653464b87a52e16a0d70b50cc2f254d1de927430248a9ff3ae0085b815254ab5ff121b44ae796854148f8d6a0270b60e13cebc48e2bc05e06c13269cf991c4f92ec0d99612e74e1a9c6e5a9b844b18c89a43b703b8edc20c378abda51b00dcf661861bc59ed2d1006e8730c38d622f693f00b763105598f3e357a2f8658d952c8133234c38f32389f35a80b3539870e64512e7490067674a9c6a7d93b325394323394f7f06f09c5dc204338afdfcb301ccae618249d81a2583790e80d92d4c3009fb4d6430cf0330bb87092661054406f3020073c730c1249c7d2783791180b9539860126e31248379318099192698515caf7c0980d9234c30a3f881db4b01cc9e618249b829810ce6650066af20a6e63098d6a10ec2424eb6d0361ba0ec1d1694f99144793740d9272c28f32289722d40d997126507a63bf3639a98862b37fede244e9d35c5132e622003d9852540f64ba74d4271a407a291ed847b0ba0cca244a90e454dc37e0e32784300bcfec1ece7c80b1e1fd997aece05f806043179665f663883f155c6ab5829ab7b5bb58a40653330bd3e12a28ce298e5bfc04e0705e12347d4211f3911c01b9c4e3b0cec9ccdbba9507e06506607618769f83413991dce00f07282a8abf3d271fe3b5993bb12e01b12e4968075a2d8628b5da6cbc7023b9a946c732b03f5752e7de7d06c884f677c97fa64661e055915bf496dc822fc7a065941ef072c352fe83d95e6e1130b0c75f87e0b154e326e2f351edbc8f8e749f8170a4857bc6752a1fd16a0cd0f66fb7f1ace7c25b3ccc700bea1e9dcf5631db688e209728b00ca61e1dd381dc5f5c2f54145349c12adf3af0f1532f86d17da2d7f3122ac7f008b1d4189d5fea9da15a2ca595bc309c0f1f4287efbf77160a7238338e0c749c7127e7388b0f0df4105f52760a5a3c20895708c9d0c6a26b0d4d161844a58fcc9a07e052c754c18a11236f0c9a07e07a08e0dd3a641d26326c9360d6e04057fe730e1cc8b24ceb700ce71c11ce993869178b206d369a0708fa7c4c7bf345bc5cc8fd19b0fcd366e2e66fc3bad934597940be67f93411c4805b1378038811222df68b35c0cccad656b6c3d20326c3954d83a036c13831c3e5e29bcde66712bffd7e43ada1b5a0c7ce3a4706c44d58fcd13563c6463f32f00b893c30c97700d3119dc6700dc2961864bd8f524835b09e04e0d335cc2c11232b80b00dc6961864bd81525833b1fc09d1e66b8519c6c1e02e0ce08335cc265de64706f03706786192ee15e3832b83703b8bb84192ee1ae4d32b84701b8bb86192ee1fe6232b81b00dc59d47be5aac44fc5c6e52c23e4a2161a6109db14ff4cca34019bbf82700748072a987c858382393b1c93d40ba575725179b48daeb55493d4e3818dce09d38035e9894b6403d68300ceb961c2497a441019ce0701ce79e95c3f05070b494f5c241b2ebc03f8cfdde8e7025465c4b71df247556514ed4aa82d80383f3cbbdff323b95f690d28dc05618219c523abca01ccc230c18ce2f6af8300cc05618219c523ab0e053017860966148fac3a0cc05c142698513cb26a1b80b97b986046f1c8aae301cc3dc204338a47569d0c60ee192698513cb2ea14007371986046f1c8aad300cc2561391c8874ac88ac47de0fa0dc2b2c28499b4564286f0428f70e0b4ad2213732947b01944bc38292f47c5932946f0294cb2851f664d625907cc877052b150fc0136f72935648511c43ba13202e0a8bb5926e5d20b3d69100e5f2b0a0246d2491a17c02a05c111694a43b40c8506e05288bd3390314d81230b2c3844e67099425d41b19f8828312b6864d617c3142915c8b5f1cc139c8e600db4a4a6cfc73a315b6e9b2e82d7ad901e05a15c496ad5c36cce603a3bc65ab08e02b4def217ef0c410427f477662c82b00651925ca21ccdafc2e17fb81f9aea36a3655f83d7e9bb90349bf9288276f5692a708f1bf4a85bf1ad4dcabe9ab1bfde6c3e8f9cf9ec06ad750626b9fa2c1a3524a6a7de75161dc17602ca7c4d896250e57335156c78bedd220aa2232ff590c105604717e4dea1597f359009b0aa750adb5bc1c78c4b561034a38b34306f42c00745dd88012ce8893012d0640d7870d28e1103019d08900e83e61034a38334e06f42400b4326c4009d76d90013d1600ad0a1b50c2959864403b03a0d561034ad8942703da0100dd1036a0842b32c9808e064037860d28e17a6132a0f900e8a6f40edac109dd28ae63ff8725506ea644d986a913bf782f9dbf7ea571dbe6a07aed649fd8990a006e49a72d06762005d984d9c700e5d620c690861aff57303511b08a95447e0c691640b86f10b34179e9f8dc18d9dce31a806f3f4a7c4d996e0779f446cf5b0260fba773b98075fa8cb0a74d5674b702940750a254df1e1a1a7cc12583370ac03b90125e36b3ce3d56ca1a57f76d82e44d6fdd1384ddc56e54e8734063fca0f4ba80a837c64f04567c7038cfdc209c07223b73e37460a1875062e5b56125e30741546b8fd5895efdde0c58e4a1419cafb10aeddf40f579f1262ce02da870ee05701e16269ca49bf0c9705e01701e1e269c7991c4792cc0794438ab1fc2191fb2eae76050fd1c19449f3c3f1d4d7bb2159a4703ab3c2a4c473ce5527633c98638d6036b3c3a4c38f32289f35580f398200af7503632f8c27d0715bebb41e13e363c078e45f1fb04970394db28517661d621904d6214b39a9526ed8f4771b7631e28dcc75122eda7b14eeb876e271b7f57187ff8bf790369831039956d64e6e2d742412d80ed039ba860ef01ecf7f86036b2e4d5a111d07900df0994f87adb8a3f17033f1deae403a3796c0aad95927d66e77780f944eadd69e5c6cfabd82ce3921773c2dd156495520380eba4b0eccc251d3b2243d91a544627870525e9b81119cae300ca53c2829274cc880ce51c80f2d4b0a01c1a4994cf0394a751a2e483fa3cd5e6929782f8320432649954c85a81eae5744a6499b6460f3cf16591a3fe4f14e723cf0416794630ab8946d5a191cb0381759e4989af4712eb84e711d5b5fef989c03ecf0acf3ae0289e33d817a03c3b9871ccdc3ad4fb3e0714f573a837df2f1575b729a25228cb6befcd11f4909900dbb94178485880b912e680c45ab68b18505b9f745297d043924de9d60780cf0b620433712687b9a4d5cd57a7261ac22bc5a91ca4b0ffa09ae87d14f8d0f3a9f752a4fefe54f4561bb507d67a0125c01d35ee001bb7acb94a93709eb22f15dab9c0362f0ca27e1f56a78e897a0458e645e159e74eb8459faca95405505e1c4ca77278f096485690b7007c9750e2535f905435fa5af94355128b0ca80627dbcc370078c94bc3b4a090f4885bb2d6e711c0562f0b134ed2636ec9703e04705e1e269ca447dd92e1bc04e0bc8212a73a2e3c756bb3aeed0d6a0ffce9959488dbb1c4a970c5cc7a046e407b7ac99618ae05767a55988a7d2ee5e11164c57e19c079759870927ebb8f0ce75500e73561c29917499cdb00ce6b83a89454f39ecf179519ff2a76351442582991f5a09e0695d275e99c358afef0f27b00e5f5942807b0648b0eab5c2c3b845d54c239f9ee5483ccaf01e4375022ef60435e9674455df486f47601206f0c0bc8286e3cf802545937850564143f197f17b0c89bc30292b0114506f26a00f296b080243c9f980ce4cb00e4ad610119c54fd3bd0840de96de954a70fe88d026c9e68ffe03d5cdedc1cc1f9938cd4536018d269159e26100df1d4158a22ad29b93ae998be2f2c31340a1be333ccb0f09fd2319ca8e00e55de95b3a339f9987f7446f50a31d28d67707717a5c5d5abd990be0dd93ce826c3dc395b020939de1fa2340792f254afb47c0ca98b95ca648f22812828b6d489d2f4624ad92c856d01d0efce87dc12cf3aa4b9ba8b703ebbd3f9855f02382c747b639fa2e80ef014a7ce641f7a997c0ce33c2623121cc0547afb1de0d00dd1eccd151f9c1dbe3482a7c47017c0f86773d31613d4fd7de0415cd43c19cd69186738fc80a7619b0cc8729f1f5b13593cc8f2ef08611dc18b890f18f776e602575ae8f7e00b0d347c2b3709b70bd1c59e3e84260b38f86d79b12a225f3a6cb81953e4689b6f6276f124ea8919dbcb93bc0fa7898ce3a245d3947b610b105c0f9449870922ef522c3790fc0f9649856ce911e6c4ab616693f503d3d15269cf991c47927c0f9749870929e134b86f30280f3194a9c19297ca7b5493f2c928dfa2b80e77c364c30a378c8cf9500e6736139c12b97f2a477b25efd6080f2f9b0a0cc8f24ca3b00ca17c282322f9228cb00ca178319aa4bc3e430d99ee05d40cdfd521033ebe6b751cd55eeb2832c6f89de98510cc07b3988810dbc1599869366eea0c27a0bc0fa0af57219dd445b21e327139b0d9faa08ce0cf500005f0d6261abb3464ff42a974f00c8d7c202328abb283e00205f0f0bc828eea2f805807c232c20a3b88be27300f2cdb0808ce22e8abf01c8b7c202328abb28fe0420df0e0b48c2d1483290cd4097f09db0808c62dffa7fc022df0d0b48c2197032902d8145be171690232308b23900f97e78769a113680c8062fde0085fb03fa5ef652f1d9cef572fca72cb8bd66644367b301c00fa90bf57af95af37b684582035f8a55738d101948b273b45a00901f5182cc64d6e582a5ccc9d703021a4e3b9e6a9dd012e0333f0ecf463ec2de37d96c625b80f29360261bead2eedc15a0a07f1a9e9d68849648b613ed7b80f2b320a61e94cf5c65fcb0de10c2ed7005b32fa98efa38e55250c03fa7af8a52eff129342a27fef186e5629a8c1f6196f82053f4f0760756fb45303bd0d2f0b178b285d4d7017c5f8667b93fe1cc0e59ef672040f9557897fb13a225b3d27ac0877e1dccb6be21c11772b285d30701cbfc86125fb6ad66af64f8f1ccee0f74261c1221eb881e092cf7db600edf49c36744c8b6e76f0696fb5d106b89d2008f6c34693480f77d3837491136e8c93649ed0c8af40f61dad5934b39d94b5639cd02387f0c13cebc48e27c0ae0fc298831f8bc3a3606bf33f09a3f070130b78e011c0600fe92ce2ea575a9601457145d0d50fe1a9645fdb9915ce5d607f8c5dfc282323f9228af07287f0f0bcabc48a2dc0da0fc232c28874612e5eb00e59f9428ed1f025929c6d013e3ed75f76b7fdf80eae8af600ecb4bc319466483192f017c7f87a5b0e74672d1d63050d8ff090bcafc48a27c0ca0fc372c28f32289720b40f9bf60d672a4e1344c327ca5c03ffe4789af39e3675aaf377e2c12af9d694417198f126e186d4705ad3180c61a04323536aa0ed9dc59005f2c087cc3d2b1d79b0cdf7d005fbd20f0e5a5e3f864327cfb007cf529f1653227a75ad6b5b32cf706f571034abc6de3be71a988e02f372b94800673c916b54c0116da9012a1bbf541845b9fc8506e00281b51a2ece90265816806f189dab9c6bfd416802ada02ff1815e28b00e2c694886b3fe34dd8af219bf13e15f8d12641586e6aac756d9dd00a80b8292562733b5fea55c2d3c5a2ece835a9ba0217d02c98fed0f0e05ba46407e59c0af035a7aeefb980b5c64d0b0c0eb34491e622b6b0c9c663269759820c2ffed1b3c48600650b4a94ee8fab8de2a7b397009c3b8409677e24715e0670b60c13cebc48e23c06e06c15ce9627e16a36b296e7fea059d49a122bdf535125ab23f3a1d9c6cdc58c7fe663b2e813558bcd521c6c65905ba4c9f654f40216db86126d6f661d7be262361b7f6f10aae05b57e05d796c0a23ddba42f689af1d8105b70d6200c5d9a46f147752b60228db85052569ed4f86f24080b27d585092d6fc64287705283b8405e5d048a27c12a0ec18e4744891a8f74bc50389cdd0756d3a6414c09b914e4bb58ee5139e07473696ff2c40d98912658644c9b7a34e677c80648a18b033172f6c89dfa8cec1261c2821833980256076a66ee42f152dd05201b1ee7fdeb810a0ed428956cd80e6d5b919d0b10061d720069487b2347c52960cdff9005fb720f0e5a6e37c0eb225d7f301beee415434cee6df499bea64b6f83c80b963986046f1b8931700cc9dd2db9a840d73c29521640df3aea03599994e94d6060f214ab243cc7602287b0451dd0c4bc7126cb2f6e28ba050f7a4c4d75ce02b376e5821c6d8b9aae68984d11bb6d80940eb1544ff25f5dc8f6e590c6171269ba4c805c5b937255af773e8840bb9c866290f0596da274c3849b74e91e17c00e0ec1b269ca4dba7c8705e0c70f6a3c4e9cf3243c2463bd932c34ec09f66512256e769a561b706595f3c0fd867ff209ae96a7a624b9d9b8a1801ec7040109e13f39b35cfd022c44976e853238073609870928e1391e1bc16e01c14269ca48b0dc870be03700e0e533389f4c03cb266d23a500d658709677e24715e0f70e6840927e9f98364384f06388750e2ecc2f88acd54db586a1e764f86946c8b7f0780349712e90ec242578a2a870fcd6d62b305462eae328215cf8e005c1e2538f58d346cbe0716eb287e6cee5200323f2c20a37842cc7900e4d0b0808ce267b4870390c3c202328a6b2eb301c8e1610119c5f307a7019023c202328a87de8e032047860564143fa3bd3b00392a2c20a3f819ed3900e4e8b0808ce267b40f0120c7840564143fa35d0e408ea504a9b69be2831670cd103ce096b0ea213bfde07e8075674aac6a81a0d3815fc2be0e59effb6b00735c986012f6c0c960fe0a608e0f13cc284e48bc0c604e08134cc29e3819cc5701cc89618249580191c17c1dc09c142698843d7232986f029893c30493b00f4406f36d00734a986046f1235def029853c30493b02f4406f34300735a986012f6d0c9607e04604ea7849938d0390d9ff820eb971f00f0cda0c4e76e8b3d618543b6bfec1d8072667a51c2d59684d50dd96acb2e6001d62e4114eaa1e9f87c3699259e0d2c71d7745aa2757b1ea125926dcf6b0a2c711625caee2cf5796e25e26f5ebcb732be6c9c2fff275eeab23315d83ec0466707536fa7e13b1664fbccd6037c7328f1e9b6f02d34784c36d42e1676a9c249c6eda5c6631b193f939d1f83473ad8964985f64b80766e10de139bf3b13689080734c82aa2bd01ca79d4ded37a508e731b251c7623b3d1c500ec6e61054b38384c067621003b3fac60a3e8551700b005415758cef79c137a59b2b64003d0462da444ebfc28e742663d3297d015f48d1161ed0db02e08a2853a2c1d074191d5fd0f8302bf303ccd28c2850964280f07281751a274bff9348aeb3caa40c1de3d4c38494f4120c3f906c0b947786b7642b46435fb4281b671439bf06935844f66e6162873a84d7d132d5b9cc06a7e01a0ccf8253bbeeb6c995174171b7fdce5c75ec61f5d7c4c9c9e30d5a8f1d78b582eaf58c8e6fbd8b866556c08df00b127378f4ed23cb2624d8cbff9b6ad55865e25460bb7c4b8ca4af2b1dbac581bf437381a9615e35bdb784ae10064811c5de3865264c4970b2db3627c6ea55294c46aed41aa59b116e2ad25c69f35f2345bf83c5fbab95e669939425714cf839a8668a6ba8299df6650bbffb2624d996e776056ac9948894a6541fc0e534e9130ff0af1c67522e53b58e4ccaef19e76497fb7526ca3d549dd3b5f324b759fdad99855eb1d9059a238a57ed2aa7d07876f335baa7672f6fb4d2b582e2c6fad6107d616aeb211fdf86d96e7af75a87c73323e9ce5712c993b9c98c853556266b312a15fb1b0b322433f65ff39238cdb62bc689bbdd7ec78bfd5f44915c61ff34ac5a796c93d4c72698bb91b89e96b9972df7c63aa14cd941c2b8d5c2a32249408a93353a63475fa703fdb2249aee48ce4795197d3bf84e7bbcc7661a619a2b25860e4bc299c3bee4a517c2bc53d0dff1f8c47efaed5fe0300 + serializedProgramBytesString: + programUnityEngineObjects: [] + serializationDataFormat: 0 diff --git a/Runtime/jp.ootr.ImageSlide/Udon/b7aa7efccccbb5949bed75155f28436a.asset.meta b/Runtime/jp.ootr.ImageSlide/Udon/b7aa7efccccbb5949bed75155f28436a.asset.meta new file mode 100644 index 0000000..e68abad --- /dev/null +++ b/Runtime/jp.ootr.ImageSlide/Udon/b7aa7efccccbb5949bed75155f28436a.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 337818066e514574d9949d65bae288b4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json index b38404f..b9ec1c0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "jp.ootr.image-slide", "displayName": "ImageSlide", - "version": "0.1.6", + "version": "0.2.0", "license": "MIT", "unity": "2022.3", "description": "Slide gimmick for VRChat using ImageDeviceController", @@ -11,9 +11,12 @@ "url": "https://github.com/o-tr" }, "url": "https://github.com/o-tr/jp.ootr.ImageSlide/releases/latest/download/release.zip", + "changelogUrl": "https://github.com/o-tr/jp.ootr.ImageSlide/releases/", + "licensesUrl": "https://github.com/o-tr/jp.ootr.ImageSlide/blob/release/LICENSE", + "documentationUrl": "https://docs.ootr.jp/", "vpmDependencies": { - "com.vrchat.base": "3.6.1", - "com.vrchat.worlds": "3.6.1", + "com.vrchat.base": "^3.6.1", + "com.vrchat.worlds": "^3.6.1", "jp.ootr.common": "~0.0.8", "jp.ootr.image-device-controller": "~0.1.1" }