Decompiled source of Mod Mogul v0.4.0
ModMogul.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Threading; using System.Threading.Tasks; using BepInEx; using BepInEx.Bootstrap; using GLTFast; using GLTFast.Loading; using GLTFast.Logging; using GLTFast.Materials; using GLTFast.Newtonsoft; using GLTFast.Newtonsoft.Schema; using GLTFast.Schema; using HarmonyLib; using Hebron.Runtime; using Microsoft.CodeAnalysis; using StbImageSharp; using TMPro; using UnityEngine; using UnityEngine.Events; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETFramework,Version=v4.6", FrameworkDisplayName = "")] [assembly: AssemblyCompany("ModMogul")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyDescription("An API with hooks to make modding easier")] [assembly: AssemblyFileVersion("0.3.1.0")] [assembly: AssemblyInformationalVersion("0.3.1+38b6f8b0a5a8927ef8fc7ad487276693aa48c9b6")] [assembly: AssemblyProduct("ModMogul")] [assembly: AssemblyTitle("ModMogul")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.3.1.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace ModMogul { public static class Itemizer { [Serializable] public struct ItemSpec { public int BlockID; public string InternalName; public string DisplayName; public string Description; public int Price; public string ShopCategory; public int MaxStackSize; public bool IsLockedByDefault; public string QFunction; public string IconPath; public ItemSpec(int blockID, string internalName, string displayName, string description, int price, string shopCategory, int maxStackSize = 999, bool isLockedByDefault = false, string qFunction = "Mirror") { BlockID = blockID; InternalName = internalName; DisplayName = displayName; Description = description; Price = price; ShopCategory = shopCategory; MaxStackSize = maxStackSize; IsLockedByDefault = isLockedByDefault; QFunction = qFunction; IconPath = null; } } private sealed class ItemRuntime { public ItemSpec Spec; public BuildingObject Prefab; public BuildingInventoryDefinition Def; public ShopItemDefinition ShopItemDef; } [HarmonyPatch(typeof(EconomyManager), "Start")] private static class Patch_EconomyManager_Start_Postfix { private static void Postfix(EconomyManager __instance) { Debug.Log((object)"[ModMogul.Itemizer] Injecting Custom Items into EconomyManager"); TryInjectAllIntoEconomy(__instance); } } private static readonly object _lock = new object(); private static readonly Dictionary<int, ItemRuntime> _itemsByBlockId = new Dictionary<int, ItemRuntime>(); private static readonly HashSet<int> _injectedEconomyIds = new HashSet<int>(); private static EconomyManager _lastEconomy; private static GameObject prefabHolder; public static BuildingObject RegisterItem(ItemSpec spec) { ValidateSpec(spec); ItemRuntime value; lock (_lock) { if (!_itemsByBlockId.TryGetValue(spec.BlockID, out value)) { value = new ItemRuntime(); _itemsByBlockId.Add(spec.BlockID, value); } value.Spec = spec; value.Prefab = CreateOrGetPrefabTemplate(spec.BlockID, spec.InternalName, value.Prefab); } EconomyManager val = _lastEconomy ?? Singleton<EconomyManager>.Instance; if ((Object)(object)val != (Object)null) { TryInjectAllIntoEconomy(val); } RegisterWithSaveLoadManager(((Component)value.Prefab).gameObject); return value.Prefab; } public static BuildingObject RegisterItem(ItemSpec spec, string iconPath) { ValidateSpec(spec); spec.IconPath = iconPath; ItemRuntime value; lock (_lock) { if (!_itemsByBlockId.TryGetValue(spec.BlockID, out value)) { value = new ItemRuntime(); _itemsByBlockId.Add(spec.BlockID, value); } value.Spec = spec; value.Prefab = CreateOrGetPrefabTemplate(spec.BlockID, spec.InternalName, value.Prefab); } EconomyManager val = _lastEconomy ?? Singleton<EconomyManager>.Instance; if ((Object)(object)val != (Object)null) { TryInjectAllIntoEconomy(val); } RegisterWithSaveLoadManager(((Component)value.Prefab).gameObject); return value.Prefab; } private static void RegisterWithSaveLoadManager(GameObject savableObjectPrefab) { Object.FindFirstObjectByType<SavingLoadingManager>().AllSavableObjectPrefabs.Add(savableObjectPrefab); } private static void ValidateSpec(ItemSpec spec) { if (spec.BlockID <= 0) { throw new ArgumentException("BlockID must be > 0"); } if (string.IsNullOrWhiteSpace(spec.InternalName)) { throw new ArgumentException("InternalName required"); } if (string.IsNullOrWhiteSpace(spec.DisplayName)) { throw new ArgumentException("DisplayName required"); } if (string.IsNullOrWhiteSpace(spec.ShopCategory)) { throw new ArgumentException("ShopCategory required"); } } internal static BuildingObject CreateOrGetPrefabTemplate(int blockID, string internalName, BuildingObject existing) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Expected O, but got Unknown //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)existing != (Object)null) { return existing; } GameObject val = new GameObject(internalName + "_BuildingPrefab"); GameObject val2 = new GameObject("BuildingPlacementColliderObject"); val2.transform.SetParent(val.transform, false); GameObject val3 = new GameObject("BuildingCrateSpawnPoint"); val3.transform.SetParent(val.transform, false); GameObject val4 = GameObject.CreatePrimitive((PrimitiveType)3); MeshFilter val5 = val.GetComponent<MeshFilter>() ?? val.AddComponent<MeshFilter>(); val5.sharedMesh = val4.GetComponent<MeshFilter>().sharedMesh; MeshRenderer val6 = val.GetComponent<MeshRenderer>() ?? val.AddComponent<MeshRenderer>(); ((Renderer)val6).sharedMaterial = ((Renderer)val4.GetComponent<MeshRenderer>()).sharedMaterial; Object.Destroy((Object)(object)val4); if ((Object)(object)prefabHolder == (Object)null) { prefabHolder = new GameObject("Itemizer_PrefabHolder"); prefabHolder.transform.position = -Vector3.up * 1000f; Object.DontDestroyOnLoad((Object)(object)prefabHolder); ((Object)prefabHolder).hideFlags = (HideFlags)61; prefabHolder.SetActive(false); } val.transform.parent = prefabHolder.transform; BuildingObject val7 = val.AddComponent<BuildingObject>(); val7.SavableObjectID = (SavableObjectID)blockID; val7.BuildingPlacementColliderObject = val2; val7.BuildingCrateSpawnPoint = val3.transform; RegisterSavableLookupIfPossible(blockID, val7); return val7; } internal static void TryInjectAllIntoEconomy(EconomyManager econ) { if ((Object)(object)econ == (Object)null) { return; } _lastEconomy = econ; int instanceID = ((Object)econ).GetInstanceID(); lock (_lock) { if (!_injectedEconomyIds.Add(instanceID)) { return; } } List<ShopCategory> list = (List<ShopCategory>)(AccessTools.Field(typeof(EconomyManager), "_allShopCategories")?.GetValue(econ)); if (list == null) { return; } List<ItemRuntime> list2; lock (_lock) { list2 = _itemsByBlockId.Values.ToList(); } foreach (ItemRuntime item in list2) { try { EnsureInjectedIntoEconomy(econ, list, item); } catch (Exception arg) { Debug.LogError((object)$"[ModMogul.Itemizer] Inject into EconomyManager failed for {item?.Spec.InternalName} ({item?.Spec.BlockID}): {arg}"); } } } private static void EnsureInjectedIntoEconomy(EconomyManager econ, List<ShopCategory> allCats, ItemRuntime rt) { ItemSpec spec = rt.Spec; rt.Prefab = CreateOrGetPrefabTemplate(spec.BlockID, spec.InternalName, rt.Prefab); if ((Object)(object)rt.Def == (Object)null) { rt.Def = ScriptableObject.CreateInstance<BuildingInventoryDefinition>(); ((Object)rt.Def).name = spec.InternalName + "_Definition"; Object.DontDestroyOnLoad((Object)(object)rt.Def); ((Object)rt.Def).hideFlags = (HideFlags)61; rt.Def.Name = spec.DisplayName; rt.Def.Description = spec.Description; rt.Def.MaxInventoryStackSize = spec.MaxStackSize; rt.Def.QButtonFunction = spec.QFunction; rt.Def.BuildingPrefabs = new List<BuildingObject> { rt.Prefab }; rt.Def.InventoryIcon = Utility.ImportSprite(spec.IconPath); rt.Def.ProgrammerInventoryIcon = Utility.ImportSprite(spec.IconPath); rt.Def.PackedPrefab = GetABuildingCrate(allCats); rt.Def.UseReverseRotationDirection = false; rt.Prefab.Definition = rt.Def; if ((Object)(object)rt.Def.GetMainPrefab() == (Object)null) { Debug.LogError((object)("[ModMogul.Itemizer] " + spec.InternalName + " def has no main prefab after init.")); } } if ((Object)(object)rt.ShopItemDef == (Object)null) { rt.ShopItemDef = ScriptableObject.CreateInstance<ShopItemDefinition>(); ((Object)rt.ShopItemDef).name = spec.InternalName + "_ShopItem"; Object.DontDestroyOnLoad((Object)(object)rt.ShopItemDef); ((Object)rt.ShopItemDef).hideFlags = (HideFlags)61; rt.ShopItemDef.UseNameAndDescriptionOfBuildingDefinition = true; rt.ShopItemDef.BuildingInventoryDefinition = rt.Def; rt.ShopItemDef.Price = spec.Price; rt.ShopItemDef.IsLockedByDefault = spec.IsLockedByDefault; rt.ShopItemDef.IsDummyItem = false; rt.ShopItemDef.PrefabToSpawn = null; } else { rt.ShopItemDef.BuildingInventoryDefinition = rt.Def; rt.ShopItemDef.Price = spec.Price; rt.ShopItemDef.IsLockedByDefault = spec.IsLockedByDefault; } RegisterSavableLookupIfPossible(spec.BlockID, rt.Prefab); SetupCategory(econ, allCats, rt.ShopItemDef, spec.ShopCategory); } private static void SetupCategory(EconomyManager __instance, List<ShopCategory> allCats, ShopItemDefinition def, string shopCategory) { //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Expected O, but got Unknown //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Expected O, but got Unknown if (allCats != null) { ShopCategory val = ((IEnumerable<ShopCategory>)allCats).FirstOrDefault((Func<ShopCategory, bool>)((ShopCategory c) => c != null && c.CategoryName == shopCategory && !c.IsAnyHolidayCategory())); if (val == null) { val = new ShopCategory { CategoryName = shopCategory, ShopItemDefinitions = new List<ShopItemDefinition>(), ShopItems = new List<ShopItem>(), DontShowIfAllItemsAreLocked = false, HolidayType = (HolidayType)0 }; allCats.Add(val); } ShopCategory val2 = val; if (val2.ShopItemDefinitions == null) { val2.ShopItemDefinitions = new List<ShopItemDefinition>(); } val2 = val; if (val2.ShopItems == null) { val2.ShopItems = new List<ShopItem>(); } if (!val.ShopItemDefinitions.Contains(def)) { val.ShopItemDefinitions.Add(def); } ShopItem val3 = ((IEnumerable<ShopItem>)val.ShopItems).FirstOrDefault((Func<ShopItem, bool>)((ShopItem si) => si != null && (Object)(object)si.Definition == (Object)(object)def)); if (val3 == null) { val3 = new ShopItem(def); val.ShopItems.Add(val3); } val3.IsLocked = false; __instance.UnlockShopItem(def); if (!__instance.AllShopItems.Any((ShopItem si) => si != null && (Object)(object)si.Definition == (Object)(object)def)) { __instance.AllShopItems.Add(val3); } if (AccessTools.Field(typeof(EconomyManager), "_allShopItemDefinitions")?.GetValue(__instance) is HashSet<ShopItemDefinition> hashSet) { hashSet.Add(def); } } } public static void RegisterSavableLookupIfPossible(int blockID, BuildingObject prefab) { if ((Object)(object)prefab == (Object)null) { return; } SavingLoadingManager instance = Singleton<SavingLoadingManager>.Instance; if (!((Object)(object)instance == (Object)null)) { Dictionary<SavableObjectID, GameObject> dictionary = (Dictionary<SavableObjectID, GameObject>)(AccessTools.Field(typeof(SavingLoadingManager), "_lookup")?.GetValue(instance)); if (dictionary != null) { dictionary[(SavableObjectID)blockID] = ((Component)prefab).gameObject; } } } private static BuildingCrate GetABuildingCrate(List<ShopCategory> allCats) { //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Invalid comparison between Unknown and I4 if (allCats == null) { return null; } foreach (ShopCategory allCat in allCats) { List<ShopItemDefinition> list = allCat?.ShopItemDefinitions; if (list == null) { continue; } foreach (ShopItemDefinition item in list) { BuildingInventoryDefinition val = item?.BuildingInventoryDefinition; if ((Object)(object)val == (Object)null) { continue; } BuildingObject mainPrefab = val.GetMainPrefab(); if (!((Object)(object)mainPrefab == (Object)null)) { BuildingObject componentInChildren = ((Component)mainPrefab).GetComponentInChildren<BuildingObject>(true); if (!((Object)(object)componentInChildren == (Object)null) && (int)componentInChildren.GetSavableObjectID() == 108) { return val.PackedPrefab; } } } } return null; } } public static class ModelMaker { [Serializable] public enum MaterialType { Opaque, Fade, Cutout } internal static async Task<GltfImport> LoadModelAsync(string modelPath, Transform parent, CancellationToken ct = default(CancellationToken)) { if ((Object)(object)parent == (Object)null) { Debug.LogError((object)"LoadModelAsync: parent is null"); return null; } try { string fullPath = Path.GetFullPath(modelPath); if (!File.Exists(fullPath)) { Debug.LogError((object)("LoadModelAsync: file not found: " + fullPath)); return null; } Uri uri = new Uri(fullPath); CollectingLogger logger = new CollectingLogger(); GltfImport gltfImport = new GltfImport((IDownloadProvider)null, (IDeferAgent)null, (IMaterialGenerator)null, (ICodeLogger)(object)logger); Debug.Log((object)$"glTFast Load: {uri}"); if (!(await ((GltfImportBase)gltfImport).Load(uri, (ImportSettings)null, ct))) { Debug.LogError((object)("glTFast failed to load: " + fullPath)); logger.LogAll(); return null; } if (!(await ((GltfImportBase)gltfImport).InstantiateMainSceneAsync(parent, ct))) { Debug.LogError((object)("glTFast failed to instantiate: " + fullPath)); logger.LogAll(); return null; } return gltfImport; } catch (OperationCanceledException) { Debug.LogWarning((object)"LoadModelAsync canceled"); return null; } catch (Exception e) { Debug.LogException(e); return null; } } public static async Task<GameObject> LoadModelToGameObjectAsync(string modelPath, Transform parent, MaterialType materialType, string childName = null, CancellationToken ct = default(CancellationToken)) { GameObject rootGo = new GameObject(childName ?? Path.GetFileNameWithoutExtension(modelPath)); rootGo.transform.SetParent(parent, false); GltfImport glbImport = await LoadModelAsync(modelPath, rootGo.transform, ct); if (glbImport == null) { Object.Destroy((Object)(object)rootGo); return null; } for (int i = 0; i < rootGo.GetComponentsInChildren<MeshRenderer>().Length; i++) { MeshRenderer j = rootGo.GetComponentsInChildren<MeshRenderer>()[i]; _ = ((Renderer)j).materials; } BindAllToStandard(glbImport, rootGo, materialType); return rootGo; } public static void BindAllToStandard(GltfImport import, GameObject instantiatedRoot, MaterialType materialType) { if (import == null || (Object)(object)instantiatedRoot == (Object)null) { return; } Root sourceRoot = ((GltfImportBase<Root>)(object)import).GetSourceRoot(); if (sourceRoot == null) { Debug.LogError((object)"BindAllToStandard: GetSourceRoot() returned null"); return; } Material val = CreateCleanStandard(); if ((Object)(object)val == (Object)null || (Object)(object)val.shader == (Object)null) { Debug.LogError((object)"BindAllToStandard: could not create/find Standard material"); return; } Dictionary<int, Material> dictionary = BuildStandardMaterials(import, sourceRoot, val, materialType); Dictionary<string, int> dictionary2 = new Dictionary<string, int>(StringComparer.Ordinal); if (((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).nodes != null) { for (int i = 0; i < ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).nodes.Length; i++) { Node val2 = ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).nodes[i]; if (!string.IsNullOrEmpty(((NamedObject)val2).name) && !dictionary2.ContainsKey(((NamedObject)val2).name)) { dictionary2[((NamedObject)val2).name] = i; } } } MeshRenderer[] componentsInChildren = instantiatedRoot.GetComponentsInChildren<MeshRenderer>(true); foreach (MeshRenderer val3 in componentsInChildren) { Material[] array = ((Renderer)val3).materials; if (!dictionary2.TryGetValue(((Object)val3).name, out var value)) { string key = TrimCloneSuffix(((Object)val3).name); if (!dictionary2.TryGetValue(key, out value)) { continue; } } Node val4 = ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).nodes[value]; int mesh = ((NodeBase)val4).mesh; if (((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).meshes == null || mesh < 0 || mesh >= ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).meshes.Length) { continue; } Mesh val5 = ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).meshes[mesh]; MeshPrimitive[] primitives = ((MeshBase<MeshExtras, MeshPrimitive>)(object)val5).primitives; if (primitives == null || primitives.Length == 0) { continue; } if (array == null || array.Length != primitives.Length) { Array.Resize(ref array, primitives.Length); } bool flag = false; for (int k = 0; k < primitives.Length; k++) { int material = ((MeshPrimitiveBase)primitives[k]).material; Material value2; Material val6 = (dictionary.TryGetValue(material, out value2) ? value2 : dictionary[-1]); if ((Object)(object)array[k] != (Object)(object)val6) { array[k] = val6; flag = true; } } if (flag) { ((Renderer)val3).materials = array; ((Renderer)val3).SetPropertyBlock((MaterialPropertyBlock)null); } } SkinnedMeshRenderer[] componentsInChildren2 = instantiatedRoot.GetComponentsInChildren<SkinnedMeshRenderer>(true); foreach (SkinnedMeshRenderer val7 in componentsInChildren2) { Material[] array2 = ((Renderer)val7).materials; if (!dictionary2.TryGetValue(((Object)val7).name, out var value3)) { string key2 = TrimCloneSuffix(((Object)val7).name); if (!dictionary2.TryGetValue(key2, out value3)) { continue; } } Node val8 = ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).nodes[value3]; int mesh2 = ((NodeBase)val8).mesh; if (((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).meshes == null || mesh2 < 0 || mesh2 >= ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).meshes.Length) { continue; } Mesh val9 = ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)sourceRoot).meshes[mesh2]; MeshPrimitive[] primitives2 = ((MeshBase<MeshExtras, MeshPrimitive>)(object)val9).primitives; if (primitives2 == null || primitives2.Length == 0) { continue; } if (array2 == null || array2.Length != primitives2.Length) { Array.Resize(ref array2, primitives2.Length); } bool flag2 = false; for (int m = 0; m < primitives2.Length; m++) { int material2 = ((MeshPrimitiveBase)primitives2[m]).material; Material value4; Material val10 = (dictionary.TryGetValue(material2, out value4) ? value4 : dictionary[-1]); if ((Object)(object)array2[m] != (Object)(object)val10) { array2[m] = val10; flag2 = true; } } if (flag2) { ((Renderer)val7).materials = array2; ((Renderer)val7).SetPropertyBlock((MaterialPropertyBlock)null); } } } private static Dictionary<int, Material> BuildStandardMaterials(GltfImport import, Root gltf, Material template, MaterialType materialType) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Expected O, but got Unknown //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Expected O, but got Unknown //IL_01f5: Unknown result type (might be due to invalid IL or missing references) Dictionary<int, Material> dictionary = new Dictionary<int, Material>(); Material value = new Material(template) { name = "glTF_Default_Standard" }; dictionary[-1] = value; if (((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)gltf).materials == null || ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)gltf).materials.Length == 0) { return dictionary; } for (int i = 0; i < ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)gltf).materials.Length; i++) { Material val = ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)gltf).materials[i]; PbrMetallicRoughness pbrMetallicRoughness = ((MaterialBase<MaterialExtensions, NormalTextureInfo, OcclusionTextureInfo, PbrMetallicRoughness, TextureInfo, TextureInfoExtensions>)(object)val).pbrMetallicRoughness; Material val2 = new Material(template) { name = (string.IsNullOrEmpty(((NamedObject)val).name) ? $"glTF_Mat_{i}_Standard" : (((NamedObject)val).name + "_Standard")) }; Texture val3 = null; int num = -1; if (((PbrMetallicRoughnessBase<TextureInfo>)(object)pbrMetallicRoughness)?.baseColorTexture != null) { num = ((TextureInfoBase)((PbrMetallicRoughnessBase<TextureInfo>)(object)pbrMetallicRoughness).baseColorTexture).index; } if (num >= 0) { val3 = (Texture)(object)((GltfImportBase)import).GetTexture(num); } if ((Object)(object)val3 == (Object)null && ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)gltf).textures != null && ((RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>)(object)gltf).textures.Length == 1) { val3 = (Texture)(object)((GltfImportBase)import).GetTexture(0); } if ((Object)(object)val3 != (Object)null && val2.HasProperty("_MainTex")) { val2.SetTexture("_MainTex", val3); } if (((MaterialBase)val).doubleSided) { val2.SetInt("_Cull", 0); } switch (materialType) { case MaterialType.Fade: ApplyBlendMaterial(val2, val3); break; case MaterialType.Cutout: SetStandardCutout(val2, 0.5f); break; default: SetStandardOpaque(val2); break; } if (pbrMetallicRoughness != null && val2.HasProperty("_Color") && ((PbrMetallicRoughnessBase)pbrMetallicRoughness).baseColorFactor != null && ((PbrMetallicRoughnessBase)pbrMetallicRoughness).baseColorFactor.Length >= 4) { val2.SetColor("_Color", new Color(((PbrMetallicRoughnessBase)pbrMetallicRoughness).baseColorFactor[0], ((PbrMetallicRoughnessBase)pbrMetallicRoughness).baseColorFactor[1], ((PbrMetallicRoughnessBase)pbrMetallicRoughness).baseColorFactor[2], ((PbrMetallicRoughnessBase)pbrMetallicRoughness).baseColorFactor[3])); } dictionary[i] = val2; } return dictionary; } private static Material CreateCleanStandard() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) Shader val = Shader.Find("Standard"); if ((Object)(object)val == (Object)null) { val = Shader.Find("Unlit/Texture"); } Material val2 = new Material(val); if (val2.HasProperty("_MainTex")) { val2.SetTexture("_MainTex", (Texture)null); } if (val2.HasProperty("_BumpMap")) { val2.SetTexture("_BumpMap", (Texture)null); } if (val2.HasProperty("_EmissionMap")) { val2.SetTexture("_EmissionMap", (Texture)null); } if (val2.HasProperty("_MetallicGlossMap")) { val2.SetTexture("_MetallicGlossMap", (Texture)null); } if (val2.HasProperty("_OcclusionMap")) { val2.SetTexture("_OcclusionMap", (Texture)null); } if (val2.HasProperty("_DetailAlbedoMap")) { val2.SetTexture("_DetailAlbedoMap", (Texture)null); } if (val2.HasProperty("_DetailNormalMap")) { val2.SetTexture("_DetailNormalMap", (Texture)null); } val2.DisableKeyword("_EMISSION"); val2.DisableKeyword("_NORMALMAP"); val2.DisableKeyword("_METALLICGLOSSMAP"); val2.DisableKeyword("_PARALLAXMAP"); val2.DisableKeyword("_DETAIL_MULX2"); val2.DisableKeyword("_DETAIL_SCALED"); if (val2.HasProperty("_Color")) { val2.SetColor("_Color", Color.white); } if (val2.HasProperty("_Metallic")) { val2.SetFloat("_Metallic", 0f); } if (val2.HasProperty("_Glossiness")) { val2.SetFloat("_Glossiness", 0.5f); } if (val2.HasProperty("_BumpScale")) { val2.SetFloat("_BumpScale", 1f); } if (val2.HasProperty("_EmissionColor")) { val2.SetColor("_EmissionColor", Color.black); } return val2; } private static string TrimCloneSuffix(string name) { if (name != null && name.EndsWith("(Clone)", StringComparison.Ordinal)) { return name.Substring(0, name.Length - "(Clone)".Length).TrimEnd(Array.Empty<char>()); } return name; } private static void SetStandardOpaque(Material m) { m.SetOverrideTag("RenderType", "Opaque"); m.SetFloat("_Mode", 0f); m.SetInt("_SrcBlend", 1); m.SetInt("_DstBlend", 0); m.SetInt("_ZWrite", 1); m.DisableKeyword("_ALPHATEST_ON"); m.DisableKeyword("_ALPHABLEND_ON"); m.DisableKeyword("_ALPHAPREMULTIPLY_ON"); m.renderQueue = -1; } private static void SetStandardCutout(Material m, float cutoff) { m.SetOverrideTag("RenderType", "TransparentCutout"); m.SetFloat("_Mode", 1f); if (m.HasProperty("_Cutoff")) { m.SetFloat("_Cutoff", cutoff); } m.SetInt("_SrcBlend", 1); m.SetInt("_DstBlend", 0); m.SetInt("_ZWrite", 1); m.EnableKeyword("_ALPHATEST_ON"); m.DisableKeyword("_ALPHABLEND_ON"); m.DisableKeyword("_ALPHAPREMULTIPLY_ON"); m.renderQueue = 2450; } private static void SetStandardFade(Material m) { m.shader = ModMogulPlugin.fadeShader; } private static Shader FindFirst(params string[] names) { foreach (string text in names) { Shader val = Shader.Find(text); if ((Object)(object)val != (Object)null) { return val; } } return null; } private static void ApplyBlendMaterial(Material m, Texture mainTex) { //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) Shader val = Shader.Find("Standard"); if ((Object)(object)val != (Object)null) { m.shader = val; if (m.HasProperty("_MainTex")) { m.SetTexture("_MainTex", mainTex); } SetStandardFade(m); if (m.IsKeywordEnabled("_ALPHABLEND_ON")) { return; } } Shader val2 = FindFirst("Unlit/Transparent", "Legacy Shaders/Transparent/Diffuse", "Legacy Shaders/Transparent/VertexLit", "Particles/Standard Unlit", "Sprites/Default"); if ((Object)(object)val2 != (Object)null) { m.shader = val2; if (m.HasProperty("_MainTex")) { m.SetTexture("_MainTex", mainTex); } if (m.HasProperty("_Color")) { Color color = m.GetColor("_Color"); color.a = 1f; m.SetColor("_Color", color); } m.renderQueue = 3000; } else { SetStandardCutout(m, 0.5f); if (m.HasProperty("_MainTex")) { m.SetTexture("_MainTex", mainTex); } } } } public static class ModListUI { public static void Populate(TMP_Text text) { if ((Object)(object)text == (Object)null) { return; } StringBuilder stringBuilder = new StringBuilder(4096); List<PluginInfo> list = Chainloader.PluginInfos.Select((KeyValuePair<string, PluginInfo> kvp) => kvp.Value).OrderBy<PluginInfo, string>((PluginInfo pi) => pi.Metadata.Name, StringComparer.OrdinalIgnoreCase).ThenBy<PluginInfo, string>((PluginInfo pi) => pi.Metadata.GUID, StringComparer.OrdinalIgnoreCase) .ToList(); stringBuilder.AppendLine($"<b>Mods loaded:</b> {list.Count}"); foreach (PluginInfo item in list) { BepInPlugin metadata = item.Metadata; stringBuilder.Append("• "); stringBuilder.Append(metadata.Name); stringBuilder.Append("<color=#AAAAAA>v</color>"); stringBuilder.Append(metadata.Version); stringBuilder.AppendLine(); } List<string> dependencyErrors = Chainloader.DependencyErrors; if (dependencyErrors != null && dependencyErrors.Count > 0) { stringBuilder.AppendLine(); stringBuilder.AppendLine($"<b><color=#FF6666>Failed to load:</color></b> {dependencyErrors.Count}"); foreach (string item2 in dependencyErrors.OrderBy<string, string>((string k) => k, StringComparer.OrdinalIgnoreCase)) { stringBuilder.Append("• <b>"); stringBuilder.Append(item2); stringBuilder.AppendLine("</b>"); } } text.text = stringBuilder.ToString(); } public static ScrollRect SpawnScrollRect(Transform parent, out Transform contentTransform) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Expected O, but got Unknown //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("ScrollView", new Type[4] { typeof(RectTransform), typeof(CanvasRenderer), typeof(ScrollRect), typeof(Image) }); val.transform.SetParent(parent, false); val.GetComponent<ScrollRect>().elasticity = 0f; val.GetComponent<ScrollRect>().horizontal = false; val.GetComponent<ScrollRect>().inertia = false; val.GetComponent<ScrollRect>().movementType = (MovementType)2; ((Graphic)val.GetComponent<Image>()).color = new Color(0.2f, 0.2f, 0.2f, 0.9f); GameObject val2 = new GameObject("Viewport", new Type[2] { typeof(RectTransform), typeof(RectMask2D) }); val2.transform.SetParent(val.transform, false); val2.GetComponent<RectTransform>().anchorMin = Vector2.one * 0.1f; val2.GetComponent<RectTransform>().anchorMax = Vector2.one * 0.9f; val2.GetComponent<RectTransform>().offsetMin = Vector2.zero; val2.GetComponent<RectTransform>().offsetMax = Vector2.zero; GameObject val3 = new GameObject("Content", new Type[3] { typeof(RectTransform), typeof(VerticalLayoutGroup), typeof(ContentSizeFitter) }); val3.transform.SetParent(val2.transform, false); contentTransform = val3.transform; val3.GetComponent<RectTransform>().anchorMin = new Vector2(0f, 1f); val3.GetComponent<RectTransform>().anchorMax = Vector2.one; val3.GetComponent<RectTransform>().pivot = new Vector2(0.5f, 1f); val3.GetComponent<RectTransform>().anchoredPosition = Vector2.zero; val3.GetComponent<RectTransform>().offsetMin = Vector2.zero; val3.GetComponent<RectTransform>().offsetMax = Vector2.zero; ScrollRect component = val.GetComponent<ScrollRect>(); component.viewport = val2.GetComponent<RectTransform>(); component.content = val3.GetComponent<RectTransform>(); component.horizontal = false; component.vertical = true; ContentSizeFitter component2 = val3.GetComponent<ContentSizeFitter>(); component2.verticalFit = (FitMode)2; return component; } } [BepInPlugin("modmogul.core", "Mod Mogul", "0.4.0")] public class ModMogulPlugin : BaseUnityPlugin { private static SettingsSetter _settingsSetter; public static Shader fadeShader; public static SettingsSetter SettingSetter => _settingsSetter; private void Start() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) new Harmony("modmogul.core").PatchAll(); string text = Path.Combine(Paths.PluginPath, "ModMogul", "modmogul.assets"); AssetBundle val = AssetBundle.LoadFromFile(text); fadeShader = val.LoadAsset<Shader>("Fade"); ((MonoBehaviour)this).StartCoroutine(WaitForMenu()); _settingsSetter = ((Component)this).gameObject.AddComponent<SettingsSetter>(); } private IEnumerator WaitForMenu() { Transform menuUI = null; while ((Object)(object)menuUI == (Object)null) { Image[] array = Object.FindObjectsByType<Image>((FindObjectsInactive)1, (FindObjectsSortMode)0); foreach (Image c in array) { if (((Object)((Component)c).gameObject).name == "MainMenu") { menuUI = ((Component)c).transform; } } yield return null; } Transform content; RectTransform modListRectTransform = ((Component)ModListUI.SpawnScrollRect(menuUI, out content)).GetComponent<RectTransform>(); modListRectTransform.anchorMax = new Vector2(0.95f, 0.8f); modListRectTransform.anchorMin = new Vector2(0.75f, 0.3f); modListRectTransform.offsetMin = Vector2.zero; modListRectTransform.offsetMax = Vector2.zero; GameObject modListGo = new GameObject("ModList", new Type[2] { typeof(RectTransform), typeof(TextMeshProUGUI) }); TMP_Text modsText = modListGo.GetComponent<TMP_Text>(); modsText.horizontalAlignment = (HorizontalAlignmentOptions)1; modsText.fontSize = 14f; modsText.transform.SetParent(content, false); ((Graphic)modsText).color = new Color(0.7765f, 0.6196f, 0.2588f); ((Component)modsText).GetComponent<RectTransform>().anchorMin = Vector2.zero; ((Component)modsText).GetComponent<RectTransform>().anchorMax = Vector2.one; ((Component)modsText).GetComponent<RectTransform>().offsetMin = Vector2.zero; ((Component)modsText).GetComponent<RectTransform>().offsetMax = Vector2.zero; ModListUI.Populate(modsText); string path = Path.Combine(Paths.PluginPath, "ModMogul", "ModMogul_Logo.png"); Sprite modMogulLogo = Utility.ImportSprite(path); Image[] array2 = Object.FindObjectsByType<Image>((FindObjectsInactive)1, (FindObjectsSortMode)0); foreach (Image i in array2) { if (((Object)((Component)i).gameObject).name == "Logo") { i.sprite = modMogulLogo; break; } } yield return null; ((Component)Object.FindFirstObjectByType<SavingLoadingManager>()).SendMessage("Awake"); ((MonoBehaviour)this).StartCoroutine(WaitForReturnToMenu()); } private IEnumerator WaitForReturnToMenu() { while (true) { SceneManager.GetActiveScene(); if (false) { yield return null; continue; } break; } Scene activeScene; while (true) { activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name.ToLower() != "gameplay") { yield return null; continue; } break; } while (true) { activeScene = SceneManager.GetActiveScene(); if (!(((Scene)(ref activeScene)).name.ToLower() == "gameplay")) { break; } yield return null; } ((MonoBehaviour)this).StartCoroutine(WaitForMenu()); } } internal class ModMogulSettingsManager : MonoBehaviour { private void OnEnable() { ModMogulPlugin.SettingSetter.UpdateUI(); } } public class SettingsSetter : MonoBehaviour { protected class ModSettings { public string modName; public Transform modLabel; public List<BaseSettingOption> settings; } private GameObject generalSettingsView; private GameObject settingsTab; private GameObject settingsView; private Transform settingsContent = null; private List<ModSettings> modSettings; private void Awake() { ((MonoBehaviour)this).StartCoroutine(WaitForMenu()); } private IEnumerator WaitForMenu() { while ((Object)(object)settingsContent == (Object)null) { ScrollRect[] array = Object.FindObjectsByType<ScrollRect>((FindObjectsInactive)1, (FindObjectsSortMode)0); foreach (ScrollRect s in array) { if (((Object)((Component)s).gameObject).name == "GeneralScrollView") { generalSettingsView = ((Component)s).gameObject; settingsView = Object.Instantiate<GameObject>(((Component)s).gameObject, ((Component)s).transform.parent); ((Object)settingsView).name = "ModSettingsView"; Transform[] componentsInChildren = settingsView.GetComponentsInChildren<Transform>(); foreach (Transform t3 in componentsInChildren) { if (!(((Object)t3).name == "Content")) { continue; } settingsContent = ((Component)t3).transform; Transform[] componentsInChildren2 = ((Component)t3).GetComponentsInChildren<Transform>(); foreach (Transform tr in componentsInChildren2) { if (!((Object)(object)tr == (Object)(object)t3)) { Object.Destroy((Object)(object)((Component)tr).gameObject); } } break; } } if (!((Object)(object)settingsContent != (Object)null)) { continue; } UIButtonSounds[] array2 = Object.FindObjectsByType<UIButtonSounds>((FindObjectsInactive)1, (FindObjectsSortMode)0); foreach (UIButtonSounds b in array2) { if (!(((Object)b).name == "AccessibilityTabButton")) { continue; } foreach (Transform item in ((Component)b).transform.parent) { Transform t2 = item; ((UnityEvent)((Component)t2).GetComponent<Button>().onClick).AddListener((UnityAction)delegate { settingsView.SetActive(false); }); } settingsTab = Object.Instantiate<GameObject>(((Component)b).gameObject, ((Component)b).transform.parent); settingsTab.GetComponentInChildren<TMP_Text>().text = "Mods"; ((UnityEventBase)settingsTab.GetComponent<Button>().onClick).RemoveAllListeners(); foreach (Transform item2 in settingsView.transform.parent) { Transform t = item2; if (((Object)t).name.ToLower().Contains("view")) { ((UnityEvent)settingsTab.GetComponent<Button>().onClick).AddListener((UnityAction)delegate { ((Component)t).gameObject.SetActive(false); }); } } ((UnityEvent)settingsTab.GetComponent<Button>().onClick).AddListener((UnityAction)delegate { settingsView.SetActive(true); }); } break; } yield return null; } settingsView.SetActive(false); } public void UpdateUI() { int num = 0; foreach (ModSettings modSetting in modSettings) { modSetting.modLabel.SetSiblingIndex(num++); foreach (BaseSettingOption setting in modSetting.settings) { ((Component)setting).transform.SetSiblingIndex(num++); } } } private ModSettings SetupModSettings(string modName) { //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Expected O, but got Unknown //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) if (this.modSettings == null) { this.modSettings = new List<ModSettings>(); } ModSettings modSettings = null; foreach (ModSettings modSetting in this.modSettings) { if (modSetting.modName == modName) { modSettings = modSetting; break; } } if (modSettings == null) { GameObject val = null; RectTransform[] componentsInChildren = generalSettingsView.GetComponentsInChildren<RectTransform>(true); foreach (RectTransform val2 in componentsInChildren) { if (Object.op_Implicit((Object)(object)((Component)val2).GetComponent<SettingToggle>())) { val = ((Component)val2).gameObject; break; } } GameObject val3 = new GameObject(modName, new Type[1] { typeof(RectTransform) }); val3.transform.SetParent(settingsContent, false); RectTransform component = val3.GetComponent<RectTransform>(); component.anchorMin = Vector2.op_Implicit(Vector3.zero); component.anchorMax = Vector2.op_Implicit(Vector3.zero); component.offsetMin = Vector2.op_Implicit(Vector3.zero); component.offsetMax = Vector2.op_Implicit(Vector3.zero); component.sizeDelta = new Vector2(0f, 50f); Object.Instantiate<GameObject>(((Component)val.GetComponentInChildren<TMP_Text>()).gameObject, val3.transform); TMP_Text componentInChildren = val3.GetComponentInChildren<TMP_Text>(); component = ((Component)componentInChildren).GetComponent<RectTransform>(); component.anchorMin = Vector2.op_Implicit(Vector3.zero); component.anchorMax = Vector2.op_Implicit(Vector3.one); component.offsetMin = Vector2.op_Implicit(Vector3.zero); component.offsetMax = Vector2.op_Implicit(Vector3.zero); componentInChildren.transform.localScale = Vector3.one; componentInChildren.text = modName; componentInChildren.alignment = (TextAlignmentOptions)514; modSettings = new ModSettings { modName = modName, modLabel = val3.transform, settings = new List<BaseSettingOption>() }; this.modSettings.Add(modSettings); } return modSettings; } public void RegisterToggleSetting(string settingName, string settingKey, bool defaultValue = false) { string name = Assembly.GetCallingAssembly().GetName().Name; ((MonoBehaviour)this).StartCoroutine(WaitForSettings(name, settingName, settingKey, defaultValue)); } private IEnumerator WaitForSettings(string modName, string settingName, string settingKey, bool defaultValue) { while ((Object)(object)settingsContent == (Object)null) { yield return null; } ModSettings settings = SetupModSettings(modName); GameObject template = null; RectTransform[] componentsInChildren = generalSettingsView.GetComponentsInChildren<RectTransform>(true); foreach (RectTransform r in componentsInChildren) { if (Object.op_Implicit((Object)(object)((Component)r).GetComponent<SettingToggle>())) { template = ((Component)r).gameObject; break; } } GameObject toggleSettingPrefab = Object.Instantiate<GameObject>(template, settingsContent); ((Object)toggleSettingPrefab).name = settingName; ModSettingsToggle toggle = toggleSettingPrefab.AddComponent<ModSettingsToggle>(); Transform[] componentsInChildren2 = toggleSettingPrefab.GetComponentsInChildren<Transform>(); foreach (Transform t in componentsInChildren2) { if (Object.op_Implicit((Object)(object)((Component)t).GetComponent<Toggle>())) { toggle.toggle = ((Component)t).GetComponent<Toggle>(); } if (((Object)t).name == "OnOff") { toggle._onOffLabel = ((Component)t).GetComponent<TMP_Text>(); } if (((Object)t).name == "Title") { ((Component)t).GetComponent<TMP_Text>().text = settingName; } } toggle.defaultValue = defaultValue; toggle.settingKey = settingKey; Object.Destroy((Object)(object)toggleSettingPrefab.GetComponent<SettingToggle>()); settings.settings.Add((BaseSettingOption)(object)toggle); } } public class ModSettingsToggle : BaseSettingOption { public Toggle toggle; public TMP_Text _onOffLabel; public string settingKey = "UnnamedBoolSetting"; public bool defaultValue = true; public string onText = "On"; public string offText = "Off"; public Action<bool> onValueChanged; private bool _suppressEvents; private void Awake() { bool flag = PlayerPrefs.GetInt(settingKey, defaultValue ? 1 : 0) == 1; toggle.isOn = flag; UpdateLabel(flag); } protected override void OnEnable() { ((BaseSettingOption)this).OnEnable(); ((UnityEvent<bool>)(object)toggle.onValueChanged).AddListener((UnityAction<bool>)OnToggleChanged); } private void OnDisable() { ((UnityEvent<bool>)(object)toggle.onValueChanged).RemoveListener((UnityAction<bool>)OnToggleChanged); } private void OnToggleChanged(bool value) { if (!_suppressEvents) { SaveAndApply(value); } } private void SaveAndApply(bool value) { PlayerPrefs.SetInt(settingKey, value ? 1 : 0); UpdateLabel(value); onValueChanged?.Invoke(value); } private void UpdateLabel(bool value) { if ((Object)(object)_onOffLabel != (Object)null) { _onOffLabel.text = (value ? onText : offText); } } public void RefreshFromSaved() { bool flag = PlayerPrefs.GetInt(settingKey, defaultValue ? 1 : 0) == 1; _suppressEvents = true; toggle.isOn = flag; _suppressEvents = false; UpdateLabel(flag); } } internal class Utility { public static Sprite ImportSprite(string path, bool flipVertically = true) { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) if (string.IsNullOrEmpty(path)) { return GenerateFallbackSprite(); } if (!File.Exists(path)) { Debug.LogError((object)("File not found: " + path)); return GenerateFallbackSprite(); } byte[] data = File.ReadAllBytes(path); ImageResult imageResult = ImageResult.FromMemory(data, ColorComponents.RedGreenBlueAlpha); Texture2D val = new Texture2D(imageResult.Width, imageResult.Height, (TextureFormat)4, false, false); ((Texture)val).filterMode = (FilterMode)0; ((Texture)val).wrapMode = (TextureWrapMode)1; Color32[] array = (Color32[])(object)new Color32[imageResult.Width * imageResult.Height]; byte[] data2 = imageResult.Data; int num = 0; int num2 = 0; while (num < array.Length) { array[num] = new Color32(data2[num2], data2[num2 + 1], data2[num2 + 2], data2[num2 + 3]); num++; num2 += 4; } if (flipVertically) { FlipVertically(array, imageResult.Width, imageResult.Height); } val.SetPixels32(array); val.Apply(false, false); return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 100f); } private static Sprite GenerateFallbackSprite() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) Texture2D val = new Texture2D(4, 4, (TextureFormat)4, false, false); ((Texture)val).filterMode = (FilterMode)0; ((Texture)val).wrapMode = (TextureWrapMode)1; Color[] array = (Color[])(object)new Color[16]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { array[i * 4 + j] = (((j % 2 == 0) ^ (i % 2 == 0)) ? Color.purple : Color.black); } } val.SetPixels(array); val.Apply(false, false); return Sprite.Create(val, new Rect(0f, 0f, 4f, 4f), new Vector2(0.5f, 0.5f), 100f); } private static void FlipVertically(Color32[] pixels, int width, int height) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < height / 2; i++) { int num = i * width; int num2 = (height - 1 - i) * width; for (int j = 0; j < width; j++) { Color32 val = pixels[num + j]; pixels[num + j] = pixels[num2 + j]; pixels[num2 + j] = val; } } } } public static class PluginInfo { public const string PLUGIN_GUID = "ModMogul"; public const string PLUGIN_NAME = "ModMogul"; public const string PLUGIN_VERSION = "0.3.1"; } } namespace Hebron.Runtime { internal static class CRuntime { private static readonly string numbers = "0123456789"; public unsafe static void* malloc(ulong size) { return malloc((long)size); } public unsafe static void* malloc(long size) { IntPtr intPtr = Marshal.AllocHGlobal((int)size); MemoryStats.Allocated(); return intPtr.ToPointer(); } public unsafe static void free(void* a) { if (a != null) { IntPtr hglobal = new IntPtr(a); Marshal.FreeHGlobal(hglobal); MemoryStats.Freed(); } } public unsafe static void memcpy(void* a, void* b, long size) { Buffer.MemoryCopy(b, a, size, size); } public unsafe static void memcpy(void* a, void* b, ulong size) { memcpy(a, b, (long)size); } public unsafe static void memmove(void* a, void* b, long size) { void* ptr = null; try { ptr = malloc(size); memcpy(ptr, b, size); memcpy(a, ptr, size); } finally { if (ptr != null) { free(ptr); } } } public unsafe static int memcmp(void* a, void* b, long size) { int num = 0; byte* ptr = (byte*)a; byte* ptr2 = (byte*)b; for (long num2 = 0L; num2 < size; num2++) { if (*ptr != *ptr2) { num++; } ptr++; ptr2++; } return num; } public unsafe static void memset(void* ptr, int value, long size) { byte* ptr2 = (byte*)ptr; byte b = (byte)value; for (long num = 0L; num < size; num++) { *(ptr2++) = b; } } public unsafe static void memset(void* ptr, int value, ulong size) { memset(ptr, value, (long)size); } public static uint _lrotl(uint x, int y) { return (x << y) | (x >> 32 - y); } public unsafe static void* realloc(void* a, long newSize) { if (a == null) { return malloc(newSize); } IntPtr pv = new IntPtr(a); return Marshal.ReAllocHGlobal(pv, new IntPtr(newSize)).ToPointer(); } public unsafe static void* realloc(void* a, ulong newSize) { return realloc(a, (long)newSize); } public static int abs(int v) { return Math.Abs(v); } public static double pow(double a, double b) { return Math.Pow(a, b); } public static double ldexp(double number, int exponent) { return number * Math.Pow(2.0, exponent); } public unsafe static int strcmp(sbyte* src, string token) { int num = 0; for (int i = 0; i < token.Length; i++) { if (src[i] != token[i]) { num++; } } return num; } public unsafe static int strncmp(sbyte* src, string token, ulong size) { int num = 0; for (int i = 0; i < Math.Min(token.Length, (int)size); i++) { if (src[i] != token[i]) { num++; } } return num; } public unsafe static long strtol(sbyte* start, sbyte** end, int radix) { int num = 0; sbyte* ptr = start; while (numbers.IndexOf((char)(*ptr)) != -1) { ptr++; num++; } long num2 = 0L; ptr = start; while (num > 0) { long num3 = numbers.IndexOf((char)(*ptr)); long num4 = (long)Math.Pow(10.0, num - 1); num2 += num3 * num4; ptr++; num--; } if (end != null) { *end = ptr; } return num2; } } internal static class MemoryStats { private static int _allocations; public static int Allocations => _allocations; internal static void Allocated() { Interlocked.Increment(ref _allocations); } internal static void Freed() { Interlocked.Decrement(ref _allocations); } } internal class Utility { public static T[][] CreateArray<T>(int d1, int d2) { T[][] array = new T[d1][]; for (int i = 0; i < d1; i++) { array[i] = new T[d2]; } return array; } } } namespace StbImageSharp { public class AnimatedFrameResult : ImageResult { public int DelayInMs { get; set; } } internal class AnimatedGifEnumerator : IEnumerator<AnimatedFrameResult>, IDisposable, IEnumerator { private readonly StbImage.stbi__context _context; private StbImage.stbi__gif _gif; private readonly ColorComponents _colorComponents; public ColorComponents ColorComponents => _colorComponents; public AnimatedFrameResult Current { get; private set; } object IEnumerator.Current => Current; public AnimatedGifEnumerator(Stream input, ColorComponents colorComponents) { if (input == null) { throw new ArgumentNullException("input"); } _context = new StbImage.stbi__context(input); if (StbImage.stbi__gif_test(_context) == 0) { throw new Exception("Input stream is not GIF file."); } _gif = new StbImage.stbi__gif(); _colorComponents = colorComponents; } public void Dispose() { Dispose(disposing: true); GC.SuppressFinalize(this); } public unsafe bool MoveNext() { int num = default(int); byte b = default(byte); byte* ptr = StbImage.stbi__gif_load_next(_context, _gif, &num, (int)ColorComponents, &b); if (ptr == null) { return false; } if (Current == null) { Current = new AnimatedFrameResult { Width = _gif.w, Height = _gif.h, SourceComp = (ColorComponents)num, Comp = ((ColorComponents == ColorComponents.Default) ? ((ColorComponents)num) : ColorComponents) }; Current.Data = new byte[Current.Width * Current.Height * (int)Current.Comp]; } Current.DelayInMs = _gif.delay; Marshal.Copy(new IntPtr(ptr), Current.Data, 0, Current.Data.Length); return true; } public void Reset() { throw new NotImplementedException(); } ~AnimatedGifEnumerator() { Dispose(disposing: false); } protected unsafe virtual void Dispose(bool disposing) { if (_gif != null) { if (_gif._out_ != null) { CRuntime.free(_gif._out_); _gif._out_ = null; } if (_gif.history != null) { CRuntime.free(_gif.history); _gif.history = null; } if (_gif.background != null) { CRuntime.free(_gif.background); _gif.background = null; } _gif = null; } } } internal class AnimatedGifEnumerable : IEnumerable<AnimatedFrameResult>, IEnumerable { private readonly Stream _input; private readonly ColorComponents _colorComponents; public ColorComponents ColorComponents => _colorComponents; public AnimatedGifEnumerable(Stream input, ColorComponents colorComponents) { _input = input; _colorComponents = colorComponents; } public IEnumerator<AnimatedFrameResult> GetEnumerator() { return new AnimatedGifEnumerator(_input, ColorComponents); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } public enum ColorComponents { Default, Grey, GreyAlpha, RedGreenBlue, RedGreenBlueAlpha } public struct ImageInfo { public int Width; public int Height; public ColorComponents ColorComponents; public int BitsPerChannel; public unsafe static ImageInfo? FromStream(Stream stream) { StbImage.stbi__context s = new StbImage.stbi__context(stream); bool flag = StbImage.stbi__is_16_main(s) == 1; StbImage.stbi__rewind(s); int width = default(int); int height = default(int); int colorComponents = default(int); int num = StbImage.stbi__info_main(s, &width, &height, &colorComponents); StbImage.stbi__rewind(s); if (num == 0) { return null; } ImageInfo value = default(ImageInfo); value.Width = width; value.Height = height; value.ColorComponents = (ColorComponents)colorComponents; value.BitsPerChannel = (flag ? 16 : 8); return value; } } public class ImageResult { public int Width { get; set; } public int Height { get; set; } public ColorComponents SourceComp { get; set; } public ColorComponents Comp { get; set; } public byte[] Data { get; set; } internal unsafe static ImageResult FromResult(byte* result, int width, int height, ColorComponents comp, ColorComponents req_comp) { if (result == null) { throw new InvalidOperationException(StbImage.stbi__g_failure_reason); } ImageResult imageResult = new ImageResult { Width = width, Height = height, SourceComp = comp, Comp = ((req_comp == ColorComponents.Default) ? comp : req_comp) }; imageResult.Data = new byte[width * height * (int)imageResult.Comp]; Marshal.Copy(new IntPtr(result), imageResult.Data, 0, imageResult.Data.Length); return imageResult; } public unsafe static ImageResult FromStream(Stream stream, ColorComponents requiredComponents = ColorComponents.Default) { byte* ptr = null; try { StbImage.stbi__context s = new StbImage.stbi__context(stream); int width = default(int); int height = default(int); int comp = default(int); ptr = StbImage.stbi__load_and_postprocess_8bit(s, &width, &height, &comp, (int)requiredComponents); return FromResult(ptr, width, height, (ColorComponents)comp, requiredComponents); } finally { if (ptr != null) { CRuntime.free(ptr); } } } public static ImageResult FromMemory(byte[] data, ColorComponents requiredComponents = ColorComponents.Default) { using MemoryStream stream = new MemoryStream(data); return FromStream(stream, requiredComponents); } public static IEnumerable<AnimatedFrameResult> AnimatedGifFramesFromStream(Stream stream, ColorComponents requiredComponents = ColorComponents.Default) { return new AnimatedGifEnumerable(stream, requiredComponents); } } public class ImageResultFloat { public int Width { get; set; } public int Height { get; set; } public ColorComponents SourceComp { get; set; } public ColorComponents Comp { get; set; } public float[] Data { get; set; } internal unsafe static ImageResultFloat FromResult(float* result, int width, int height, ColorComponents comp, ColorComponents req_comp) { if (result == null) { throw new InvalidOperationException(StbImage.stbi__g_failure_reason); } ImageResultFloat imageResultFloat = new ImageResultFloat { Width = width, Height = height, SourceComp = comp, Comp = ((req_comp == ColorComponents.Default) ? comp : req_comp) }; imageResultFloat.Data = new float[width * height * (int)imageResultFloat.Comp]; Marshal.Copy(new IntPtr(result), imageResultFloat.Data, 0, imageResultFloat.Data.Length); return imageResultFloat; } public unsafe static ImageResultFloat FromStream(Stream stream, ColorComponents requiredComponents = ColorComponents.Default) { float* ptr = null; try { StbImage.stbi__context s = new StbImage.stbi__context(stream); int width = default(int); int height = default(int); int comp = default(int); ptr = StbImage.stbi__loadf_main(s, &width, &height, &comp, (int)requiredComponents); return FromResult(ptr, width, height, (ColorComponents)comp, requiredComponents); } finally { if (ptr != null) { CRuntime.free(ptr); } } } public static ImageResultFloat FromMemory(byte[] data, ColorComponents requiredComponents = ColorComponents.Default) { using MemoryStream stream = new MemoryStream(data); return FromStream(stream, requiredComponents); } } public static class StbImage { public class stbi__context { private readonly Stream _stream; public byte[] _tempBuffer; public int img_n = 0; public int img_out_n = 0; public uint img_x = 0u; public uint img_y = 0u; public Stream Stream => _stream; public stbi__context(Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } _stream = stream; } } public struct stbi__bmp_data { public int bpp; public int offset; public int hsz; public uint mr; public uint mg; public uint mb; public uint ma; public uint all_a; public int extra_read; } public struct stbi__result_info { public int bits_per_channel; public int num_channels; public int channel_order; } public class stbi__gif { public unsafe byte* _out_; public unsafe byte* background; public int bgindex; public stbi__gif_lzw[] codes = new stbi__gif_lzw[8192]; public byte[][] color_table; public int cur_x; public int cur_y; public int delay; public int eflags; public int flags; public int h; public unsafe byte* history; public int lflags; public int line_size; public byte[][] lpal = Utility.CreateArray<byte>(256, 4); public int max_x; public int max_y; public byte[][] pal = Utility.CreateArray<byte>(256, 4); public int parse; public int ratio; public int start_x; public int start_y; public int step; public int transparent; public int w; } public struct stbi__gif_lzw { public short prefix; public byte first; public byte suffix; } public unsafe delegate void delegate0(byte* arg0, int arg1, short* arg2); public unsafe delegate void delegate1(byte* arg0, byte* arg1, byte* arg2, byte* arg3, int arg4, int arg5); public unsafe delegate byte* delegate2(byte* arg0, byte* arg1, byte* arg2, int arg3, int arg4); public struct stbi__huffman { public unsafe fixed byte fast[512]; public unsafe fixed ushort code[256]; public unsafe fixed byte values[256]; public unsafe fixed byte size[257]; public unsafe fixed uint maxcode[18]; public unsafe fixed int delta[17]; } public class stbi__jpeg { public struct unnamed1 { public int id; public int h; public int v; public int tq; public int hd; public int ha; public int dc_pred; public int x; public int y; public int w2; public int h2; public unsafe byte* data; public unsafe void* raw_data; public unsafe void* raw_coeff; public unsafe byte* linebuf; public unsafe short* coeff; public int coeff_w; public int coeff_h; } public int app14_color_transform; public int code_bits; public uint code_buffer; public ushort[][] dequant = Utility.CreateArray<ushort>(4, 64); public int eob_run; public short[][] fast_ac = Utility.CreateArray<short>(4, 512); public stbi__huffman[] huff_ac = new stbi__huffman[4]; public stbi__huffman[] huff_dc = new stbi__huffman[4]; public delegate0 idct_block_kernel; public unnamed1[] img_comp = new unnamed1[4]; public int img_h_max; public int img_mcu_h; public int img_mcu_w; public int img_mcu_x; public int img_mcu_y; public int img_v_max; public int jfif; public byte marker; public int nomore; public int[] order = new int[4]; public int progressive; public delegate2 resample_row_hv_2_kernel; public int restart_interval; public int rgb; public stbi__context s; public int scan_n; public int spec_end; public int spec_start; public int succ_high; public int succ_low; public int todo; public delegate1 YCbCr_to_RGB_kernel; } public class stbi__resample { public int hs; public unsafe byte* line0; public unsafe byte* line1; public delegate2 resample; public int vs; public int w_lores; public int ypos; public int ystep; } public class stbi__png { public unsafe byte* _out_; public int depth; public unsafe byte* expanded; public unsafe byte* idata; public stbi__context s; } public struct stbi__pngchunk { public uint length; public uint type; } public struct stbi__zbuf { public unsafe byte* zbuffer; public unsafe byte* zbuffer_end; public int num_bits; public int hit_zeof_once; public uint code_buffer; public unsafe sbyte* zout; public unsafe sbyte* zout_start; public unsafe sbyte* zout_end; public int z_expandable; public stbi__zhuffman z_length; public stbi__zhuffman z_distance; } public struct stbi__zhuffman { public unsafe fixed ushort fast[512]; public unsafe fixed ushort firstcode[16]; public unsafe fixed int maxcode[17]; public unsafe fixed ushort firstsymbol[16]; public unsafe fixed byte size[288]; public unsafe fixed ushort value[288]; } public static string stbi__g_failure_reason; public static readonly char[] stbi__parse_png_file_invalid_chunk = new char[25]; public const int STBI_default = 0; public const int STBI_grey = 1; public const int STBI_grey_alpha = 2; public const int STBI_rgb = 3; public const int STBI_rgb_alpha = 4; public const int STBI_ORDER_RGB = 0; public const int STBI_ORDER_BGR = 1; public const int STBI__SCAN_load = 0; public const int STBI__SCAN_type = 1; public const int STBI__SCAN_header = 2; public static int stbi__vertically_flip_on_load_global; public static int stbi__vertically_flip_on_load_local; public static int stbi__vertically_flip_on_load_set; public static float stbi__l2h_gamma = 2.2f; public static float stbi__l2h_scale = 1f; public static float stbi__h2l_gamma_i = 0.45454544f; public static float stbi__h2l_scale_i = 1f; public static int stbi__unpremultiply_on_load_global; public static int stbi__de_iphone_flag_global; public static int stbi__unpremultiply_on_load_local; public static int stbi__unpremultiply_on_load_set; public static int stbi__de_iphone_flag_local; public static int stbi__de_iphone_flag_set; public static byte[] stbi__process_marker_tag = new byte[6] { 65, 100, 111, 98, 101, 0 }; public static byte[] stbi__process_frame_header_rgb = new byte[3] { 82, 71, 66 }; public static byte[] stbi__compute_huffman_codes_length_dezigzag = new byte[19] { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; public static int[] stbi__shiftsigned_mul_table = new int[9] { 0, 255, 85, 73, 17, 33, 65, 129, 1 }; public static int[] stbi__shiftsigned_shift_table = new int[9] { 0, 0, 0, 1, 0, 2, 4, 6, 0 }; public static uint[] stbi__bmask = new uint[17] { 0u, 1u, 3u, 7u, 15u, 31u, 63u, 127u, 255u, 511u, 1023u, 2047u, 4095u, 8191u, 16383u, 32767u, 65535u }; public static int[] stbi__jbias = new int[16] { 0, -1, -3, -7, -15, -31, -63, -127, -255, -511, -1023, -2047, -4095, -8191, -16383, -32767 }; public static byte[] stbi__jpeg_dezigzag = new byte[79] { 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63 }; public const int STBI__F_none = 0; public const int STBI__F_sub = 1; public const int STBI__F_up = 2; public const int STBI__F_avg = 3; public const int STBI__F_paeth = 4; public const int STBI__F_avg_first = 5; public static byte[] first_row_filter = new byte[5] { 0, 1, 0, 5, 1 }; public static byte[] stbi__check_png_header_png_sig = new byte[8] { 137, 80, 78, 71, 13, 10, 26, 10 }; public static byte[] stbi__depth_scale_table = new byte[9] { 0, 255, 85, 0, 17, 0, 0, 0, 1 }; public static byte[] stbi__zdefault_distance = new byte[32] { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 }; public static byte[] stbi__zdefault_length = new byte[288] { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8 }; public static int[] stbi__zdist_base = new int[32] { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 }; public static int[] stbi__zdist_extra = new int[32] { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0 }; public static int[] stbi__zlength_base = new int[31] { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 }; public static int[] stbi__zlength_extra = new int[31] { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 }; public static int NativeAllocations => MemoryStats.Allocations; private static int stbi__err(string str) { stbi__g_failure_reason = str; return 0; } public static byte stbi__get8(stbi__context s) { int num = s.Stream.ReadByte(); if (num == -1) { return 0; } return (byte)num; } public static void stbi__skip(stbi__context s, int skip) { s.Stream.Seek(skip, SeekOrigin.Current); } public static void stbi__rewind(stbi__context s) { s.Stream.Seek(0L, SeekOrigin.Begin); } public static int stbi__at_eof(stbi__context s) { return (s.Stream.Position == s.Stream.Length) ? 1 : 0; } public unsafe static int stbi__getn(stbi__context s, byte* buf, int size) { if (s._tempBuffer == null || s._tempBuffer.Length < size) { s._tempBuffer = new byte[size * 2]; } int num = s.Stream.Read(s._tempBuffer, 0, size); Marshal.Copy(s._tempBuffer, 0, new IntPtr(buf), num); return num; } public static int stbi__bmp_test(stbi__context s) { int result = stbi__bmp_test_raw(s); stbi__rewind(s); return result; } public unsafe static void* stbi__bmp_load(stbi__context s, int* x, int* y, int* comp, int req_comp, stbi__result_info* ri) { uint num = 0u; uint num2 = 0u; uint num3 = 0u; uint num4 = 0u; uint num5 = 0u; byte[][] array = Utility.CreateArray<byte>(256, 4); int num6 = 0; int num7 = 0; int num8 = 0; int num9 = 0; int num10 = 0; int num11 = 0; int num12 = 0; stbi__bmp_data stbi__bmp_data = default(stbi__bmp_data); stbi__bmp_data.all_a = 255u; if (stbi__bmp_parse_header(s, &stbi__bmp_data) == null) { return null; } num10 = (((int)s.img_y > 0) ? 1 : 0); s.img_y = (uint)CRuntime.abs((int)s.img_y); if (s.img_y > 16777216) { return (void*)(int)((stbi__err("too large") != 0) ? 0u : 0u); } if (s.img_x > 16777216) { return (void*)(int)((stbi__err("too large") != 0) ? 0u : 0u); } num = stbi__bmp_data.mr; num2 = stbi__bmp_data.mg; num3 = stbi__bmp_data.mb; num4 = stbi__bmp_data.ma; num5 = stbi__bmp_data.all_a; if (stbi__bmp_data.hsz == 12) { if (stbi__bmp_data.bpp < 24) { num6 = (stbi__bmp_data.offset - stbi__bmp_data.extra_read - 24) / 3; } } else if (stbi__bmp_data.bpp < 16) { num6 = stbi__bmp_data.offset - stbi__bmp_data.extra_read - stbi__bmp_data.hsz >> 2; } if (num6 == 0) { int num13 = (int)s.Stream.Position; int num14 = 1024; int num15 = 1024; if (num13 <= 0 || num13 > num14) { return (void*)(int)((stbi__err("bad header") != 0) ? 0u : 0u); } if (stbi__bmp_data.offset < num13 || stbi__bmp_data.offset - num13 > num15) { return (void*)(int)((stbi__err("bad offset") != 0) ? 0u : 0u); } stbi__skip(s, stbi__bmp_data.offset - num13); } if (stbi__bmp_data.bpp == 24 && num4 == 4278190080u) { s.img_n = 3; } else { s.img_n = ((num4 != 0) ? 4 : 3); } num12 = ((req_comp == 0 || req_comp < 3) ? s.img_n : req_comp); if (stbi__mad3sizes_valid(num12, (int)s.img_x, (int)s.img_y, 0) == 0) { return (void*)(int)((stbi__err("too large") != 0) ? 0u : 0u); } byte* ptr = (byte*)stbi__malloc_mad3(num12, (int)s.img_x, (int)s.img_y, 0); if (ptr == null) { return (void*)(int)((stbi__err("outofmem") != 0) ? 0u : 0u); } if (stbi__bmp_data.bpp < 16) { int num16 = 0; if (num6 == 0 || num6 > 256) { CRuntime.free(ptr); return (void*)(int)((stbi__err("invalid") != 0) ? 0u : 0u); } for (num7 = 0; num7 < num6; num7++) { array[num7][2] = stbi__get8(s); array[num7][1] = stbi__get8(s); array[num7][0] = stbi__get8(s); if (stbi__bmp_data.hsz != 12) { stbi__get8(s); } array[num7][3] = byte.MaxValue; } stbi__skip(s, stbi__bmp_data.offset - stbi__bmp_data.extra_read - stbi__bmp_data.hsz - num6 * ((stbi__bmp_data.hsz == 12) ? 3 : 4)); if (stbi__bmp_data.bpp == 1) { num9 = (int)(s.img_x + 7 >> 3); } else if (stbi__bmp_data.bpp == 4) { num9 = (int)(s.img_x + 1 >> 1); } else { if (stbi__bmp_data.bpp != 8) { CRuntime.free(ptr); return (void*)(int)((stbi__err("bad bpp") != 0) ? 0u : 0u); } num9 = (int)s.img_x; } num11 = -num9 & 3; if (stbi__bmp_data.bpp == 1) { for (num8 = 0; num8 < (int)s.img_y; num8++) { int num17 = 7; int num18 = stbi__get8(s); for (num7 = 0; num7 < (int)s.img_x; num7++) { int num19 = (num18 >> num17) & 1; ptr[num16++] = array[num19][0]; ptr[num16++] = array[num19][1]; ptr[num16++] = array[num19][2]; if (num12 == 4) { ptr[num16++] = byte.MaxValue; } if (num7 + 1 == (int)s.img_x) { break; } if (--num17 < 0) { num17 = 7; num18 = stbi__get8(s); } } stbi__skip(s, num11); } } else { for (num8 = 0; num8 < (int)s.img_y; num8++) { for (num7 = 0; num7 < (int)s.img_x; num7 += 2) { int num20 = stbi__get8(s); int num21 = 0; if (stbi__bmp_data.bpp == 4) { num21 = num20 & 0xF; num20 >>= 4; } ptr[num16++] = array[num20][0]; ptr[num16++] = array[num20][1]; ptr[num16++] = array[num20][2]; if (num12 == 4) { ptr[num16++] = byte.MaxValue; } if (num7 + 1 == (int)s.img_x) { break; } num20 = ((stbi__bmp_data.bpp == 8) ? stbi__get8(s) : num21); ptr[num16++] = array[num20][0]; ptr[num16++] = array[num20][1]; ptr[num16++] = array[num20][2]; if (num12 == 4) { ptr[num16++] = byte.MaxValue; } } stbi__skip(s, num11); } } } else { int shift = 0; int shift2 = 0; int shift3 = 0; int shift4 = 0; int num22 = 0; int num23 = 0; int num24 = 0; int num25 = 0; int num26 = 0; int num27 = 0; stbi__skip(s, stbi__bmp_data.offset - stbi__bmp_data.extra_read - stbi__bmp_data.hsz); num9 = (int)((stbi__bmp_data.bpp == 24) ? (3 * s.img_x) : ((stbi__bmp_data.bpp == 16) ? (2 * s.img_x) : 0)); num11 = -num9 & 3; if (stbi__bmp_data.bpp == 24) { num27 = 1; } else if (stbi__bmp_data.bpp == 32 && num3 == 255 && num2 == 65280 && num == 16711680 && num4 == 4278190080u) { num27 = 2; } if (num27 == 0) { if (num == 0 || num2 == 0 || num3 == 0) { CRuntime.free(ptr); return (void*)(int)((stbi__err("bad masks") != 0) ? 0u : 0u); } shift = stbi__high_bit(num) - 7; num22 = stbi__bitcount(num); shift2 = stbi__high_bit(num2) - 7; num23 = stbi__bitcount(num2); shift3 = stbi__high_bit(num3) - 7; num24 = stbi__bitcount(num3); shift4 = stbi__high_bit(num4) - 7; num25 = stbi__bitcount(num4); if (num22 > 8 || num23 > 8 || num24 > 8 || num25 > 8) { CRuntime.free(ptr); return (void*)(int)((stbi__err("bad masks") != 0) ? 0u : 0u); } } for (num8 = 0; num8 < (int)s.img_y; num8++) { if (num27 != 0) { for (num7 = 0; num7 < (int)s.img_x; num7++) { byte b = 0; ptr[num26 + 2] = stbi__get8(s); ptr[num26 + 1] = stbi__get8(s); ptr[num26] = stbi__get8(s); num26 += 3; b = ((num27 == 2) ? stbi__get8(s) : byte.MaxValue); num5 |= b; if (num12 == 4) { ptr[num26++] = b; } } } else { int bpp = stbi__bmp_data.bpp; for (num7 = 0; num7 < (int)s.img_x; num7++) { uint num28 = ((bpp == 16) ? ((uint)stbi__get16le(s)) : stbi__get32le(s)); uint num29 = 0u; ptr[num26++] = (byte)((uint)stbi__shiftsigned(num28 & num, shift, num22) & 0xFFu); ptr[num26++] = (byte)((uint)stbi__shiftsigned(num28 & num2, shift2, num23) & 0xFFu); ptr[num26++] = (byte)((uint)stbi__shiftsigned(num28 & num3, shift3, num24) & 0xFFu); num29 = ((num4 != 0) ? ((uint)stbi__shiftsigned(num28 & num4, shift4, num25)) : 255u); num5 |= num29; if (num12 == 4) { ptr[num26++] = (byte)(num29 & 0xFFu); } } } stbi__skip(s, num11); } } if (num12 == 4 && num5 == 0) { for (num7 = (int)(4 * s.img_x * s.img_y - 1); num7 >= 0; num7 -= 4) { ptr[num7] = byte.MaxValue; } } if (num10 != 0) { byte b2 = 0; for (num8 = 0; num8 < (int)s.img_y >> 1; num8++) { byte* ptr2 = ptr + num8 * s.img_x * num12; byte* ptr3 = ptr + (s.img_y - 1 - num8) * s.img_x * num12; for (num7 = 0; num7 < (int)s.img_x * num12; num7++) { b2 = ptr2[num7]; ptr2[num7] = ptr3[num7]; ptr3[num7] = b2; } } } if (req_comp != 0 && req_comp != num12) { ptr = stbi__convert_format(ptr, num12, req_comp, s.img_x, s.img_y); if (ptr == null) { return ptr; } } *x = (int)s.img_x; *y = (int)s.img_y; if (comp != null) { *comp = s.img_n; } return ptr; } public unsafe static int stbi__bmp_info(stbi__context s, int* x, int* y, int* comp) { stbi__bmp_data stbi__bmp_data = default(stbi__bmp_data); stbi__bmp_data.all_a = 255u; void* ptr = stbi__bmp_parse_header(s, &stbi__bmp_data); if (ptr == null) { stbi__rewind(s); return 0; } if (x != null) { *x = (int)s.img_x; } if (y != null) { *y = (int)s.img_y; } if (comp != null) { if (stbi__bmp_data.bpp == 24 && stbi__bmp_data.ma == 4278190080u) { *comp = 3; } else { *comp = ((stbi__bmp_data.ma != 0) ? 4 : 3); } } return 1; } public static int stbi__bmp_test_raw(stbi__context s) { int num = 0; int num2 = 0; if (stbi__get8(s) != 66) { return 0; } if (stbi__get8(s) != 77) { return 0; } stbi__get32le(s); stbi__get16le(s); stbi__get16le(s); stbi__get32le(s); num2 = (int)stbi__get32le(s); return (num2 == 12 || num2 == 40 || num2 == 56 || num2 == 108 || num2 == 124) ? 1 : 0; } public unsafe static int stbi__bmp_set_mask_defaults(stbi__bmp_data* info, int compress) { switch (compress) { case 3: return 1; case 0: if (info->bpp == 16) { info->mr = 31744u; info->mg = 992u; info->mb = 31u; } else if (info->bpp == 32) { info->mr = 16711680u; info->mg = 65280u; info->mb = 255u; info->ma = 4278190080u; info->all_a = 0u; } else { info->mr = (info->mg = (info->mb = (info->ma = 0u))); } return 1; default: return 0; } } public unsafe static void* stbi__bmp_parse_header(stbi__context s, stbi__bmp_data* info) { int num = 0; if (stbi__get8(s) != 66 || stbi__get8(s) != 77) { return (void*)(int)((stbi__err("not BMP") != 0) ? 0u : 0u); } stbi__get32le(s); stbi__get16le(s); stbi__get16le(s); info->offset = (int)stbi__get32le(s); num = (info->hsz = (int)stbi__get32le(s)); info->mr = (info->mg = (info->mb = (info->ma = 0u))); info->extra_read = 14; if (info->offset < 0) { return (void*)(int)((stbi__err("bad BMP") != 0) ? 0u : 0u); } if (num != 12 && num != 40 && num != 56 && num != 108 && num != 124) { return (void*)(int)((stbi__err("unknown BMP") != 0) ? 0u : 0u); } if (num == 12) { s.img_x = (uint)stbi__get16le(s); s.img_y = (uint)stbi__get16le(s); } else { s.img_x = stbi__get32le(s); s.img_y = stbi__get32le(s); } if (stbi__get16le(s) != 1) { return (void*)(int)((stbi__err("bad BMP") != 0) ? 0u : 0u); } info->bpp = stbi__get16le(s); if (num != 12) { int num2 = (int)stbi__get32le(s); if (num2 == 1 || num2 == 2) { return (void*)(int)((stbi__err("BMP RLE") != 0) ? 0u : 0u); } if (num2 >= 4) { return (void*)(int)((stbi__err("BMP JPEG/PNG") != 0) ? 0u : 0u); } if (num2 == 3 && info->bpp != 16 && info->bpp != 32) { return (void*)(int)((stbi__err("bad BMP") != 0) ? 0u : 0u); } stbi__get32le(s); stbi__get32le(s); stbi__get32le(s); stbi__get32le(s); stbi__get32le(s); if (num == 40 || num == 56) { if (num == 56) { stbi__get32le(s); stbi__get32le(s); stbi__get32le(s); stbi__get32le(s); } if (info->bpp == 16 || info->bpp == 32) { switch (num2) { case 0: stbi__bmp_set_mask_defaults(info, num2); break; case 3: info->mr = stbi__get32le(s); info->mg = stbi__get32le(s); info->mb = stbi__get32le(s); info->extra_read += 12; if (info->mr == info->mg && info->mg == info->mb) { return (void*)(int)((stbi__err("bad BMP") != 0) ? 0u : 0u); } break; default: return (void*)(int)((stbi__err("bad BMP") != 0) ? 0u : 0u); } } } else { int num3 = 0; if (num != 108 && num != 124) { return (void*)(int)((stbi__err("bad BMP") != 0) ? 0u : 0u); } info->mr = stbi__get32le(s); info->mg = stbi__get32le(s); info->mb = stbi__get32le(s); info->ma = stbi__get32le(s); if (num2 != 3) { stbi__bmp_set_mask_defaults(info, num2); } stbi__get32le(s); for (num3 = 0; num3 < 12; num3++) { stbi__get32le(s); } if (num == 124) { stbi__get32le(s); stbi__get32le(s); stbi__get32le(s); stbi__get32le(s); } } } return (void*)1; } public static void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1f / gamma; } public static void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1f / scale; } public static void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } public static void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } public static void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) { stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; } public static void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) { stbi__de_iphone_flag_global = flag_true_if_should_convert; } public static void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) { stbi__vertically_flip_on_load_global = flag_true_if_should_flip; } public static void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply) { stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; stbi__unpremultiply_on_load_set = 1; } public static void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert) { stbi__de_iphone_flag_local = flag_true_if_should_convert; stbi__de_iphone_flag_set = 1; } public static void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) { stbi__vertically_flip_on_load_local = flag_true_if_should_flip; stbi__vertically_flip_on_load_set = 1; } public unsafe static void* stbi__malloc(ulong size) { return CRuntime.malloc(size); } public static int stbi__addsizes_valid(int a, int b) { if (b < 0) { return 0; } return (a <= int.MaxValue - b) ? 1 : 0; } public static int stbi__mul2sizes_valid(int a, int b) { if (a < 0 || b < 0) { return 0; } if (b == 0) { return 1; } return (a <= int.MaxValue / b) ? 1 : 0; } public static int stbi__mad2sizes_valid(int a, int b, int add) { return (stbi__mul2sizes_valid(a, b) != 0 && stbi__addsizes_valid(a * b, add) != 0) ? 1 : 0; } public static int stbi__mad3sizes_valid(int a, int b, int c, int add) { return (stbi__mul2sizes_valid(a, b) != 0 && stbi__mul2sizes_valid(a * b, c) != 0 && stbi__addsizes_valid(a * b * c, add) != 0) ? 1 : 0; } public static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) { return (stbi__mul2sizes_valid(a, b) != 0 && stbi__mul2sizes_valid(a * b, c) != 0 && stbi__mul2sizes_valid(a * b * c, d) != 0 && stbi__addsizes_valid(a * b * c * d, add) != 0) ? 1 : 0; } public unsafe static void* stbi__malloc_mad2(int a, int b, int add) { if (stbi__mad2sizes_valid(a, b, add) == 0) { return null; } return stbi__malloc((ulong)(a * b + add)); } public unsafe static void* stbi__malloc_mad3(int a, int b, int c, int add) { if (stbi__mad3sizes_valid(a, b, c, add) == 0) { return null; } return stbi__malloc((ulong)(a * b * c + add)); } public unsafe static void* stbi__malloc_mad4(int a, int b, int c, int d, int add) { if (stbi__mad4sizes_valid(a, b, c, d, add) == 0) { return null; } return stbi__malloc((ulong)(a * b * c * d + add)); } public static int stbi__addints_valid(int a, int b) { if (a >= 0 != b >= 0) { return 1; } if (a < 0 && b < 0) { return (a >= int.MinValue - b) ? 1 : 0; } return (a <= int.MaxValue - b) ? 1 : 0; } public static int stbi__mul2shorts_valid(int a, int b) { if (b == 0 || b == -1) { return 1; } if (a >= 0 == b >= 0) { return (a <= 32767 / b) ? 1 : 0; } if (b < 0) { return (a <= -32768 / b) ? 1 : 0; } return (a >= -32768 / b) ? 1 : 0; } public unsafe static float* stbi__ldr_to_hdr(byte* data, int x, int y, int comp) { int num = 0; int num2 = 0; int num3 = 0; if (data == null) { return null; } float* ptr = (float*)stbi__malloc_mad4(x, y, comp, 4, 0); if (ptr == null) { CRuntime.free(data); return (float*)(int)((stbi__err("outofmem") != 0) ? 0u : 0u); } num3 = (((comp & 1) == 0) ? (comp - 1) : comp); for (num = 0; num < x * y; num++) { for (num2 = 0; num2 < num3; num2++) { ptr[num * comp + num2] = (float)(CRuntime.pow((float)(int)data[num * comp + num2] / 255f, stbi__l2h_gamma) * (double)stbi__l2h_scale); } } if (num3 < comp) { for (num = 0; num < x * y; num++) { ptr[num * comp + num3] = (float)(int)data[num * comp + num3] / 255f; } } CRuntime.free(data); return ptr; } public unsafe static void* stbi__load_main(stbi__context s, int* x, int* y, int* comp, int req_comp, stbi__result_info* ri, int bpc) { CRuntime.memset(ri, 0, (ulong)sizeof(stbi__result_info)); ri->bits_per_channel = 8; ri->channel_order = 0; ri->num_channels = 0; if (stbi__png_test(s) != 0) { return stbi__png_load(s, x, y, comp, req_comp, ri); } if (stbi__bmp_test(s) != 0) { return stbi__bmp_load(s, x, y, comp, req_comp, ri); } if (stbi__gif_test(s) != 0) { return stbi__gif_load(s, x, y, comp, req_comp, ri); } if (stbi__psd_test(s) != 0) { return stbi__psd_load(s, x, y, comp, req_comp, ri, bpc); } if (stbi__jpeg_test(s) != 0) { return stbi__jpeg_load(s, x, y, comp, req_comp, ri); } if (stbi__hdr_test(s) != 0) { float* data = stbi__hdr_load(s, x, y, comp, req_comp, ri); return stbi__hdr_to_ldr(data, *x, *y, (req_comp != 0) ? req_comp : (*comp)); } if (stbi__tga_test(s) != 0) { return stbi__tga_load(s, x, y, comp, req_comp, ri); } return (void*)(int)((stbi__err("unknown image type") != 0) ? 0u : 0u); } public unsafe static byte* stbi__convert_16_to_8(ushort* orig, int w, int h, int channels) { int num = 0; int num2 = w * h * channels; byte* ptr = (byte*)stbi__malloc((ulong)num2); if (ptr == null) { return (byte*)(int)((stbi__err("outofmem") != 0) ? 0u : 0u); } for (num = 0; num < num2; num++) { ptr[num] = (byte)((uint)(orig[num] >> 8) & 0xFFu); } CRuntime.free(orig); return ptr; } public unsafe static ushort* stbi__convert_8_to_16(byte* orig, int w, int h, int channels) { int num = 0; int num2 = w * h * channels; ushort* ptr = (ushort*)stbi__malloc((ulong)(num2 * 2)); if (ptr == null) { return (ushort*)(int)((stbi__err("outofmem") != 0) ? 0u : 0u); } for (num = 0; num < num2; num++) { ptr[num] = (ushort)((orig[num] << 8) + orig[num]); } CRuntime.free(orig); return ptr; } public unsafe static void stbi__vertical_flip(void* image, int w, int h, int bytes_per_pixel) { int num = 0; int num2 = w * bytes_per_pixel; byte* ptr = stackalloc byte[2048]; for (num = 0; num < h >> 1; num++) { byte* ptr2 = (byte*)image + num * num2; byte* ptr3 = (byte*)image + (h - num - 1) * num2; ulong num3 = (ulong)num2; while (num3 != 0) { ulong num4 = ((num3 < 2048) ? num3 : 2048); CRuntime.memcpy(ptr, ptr2, num4); CRuntime.memcpy(ptr2, ptr3, num4); CRuntime.memcpy(ptr3, ptr, num4); ptr2 += num4; ptr3 += num4; num3 -= num4; } } } public unsafe static void stbi__vertical_flip_slices(void* image, int w, int h, int z, int bytes_per_pixel) { int num = 0; int num2 = w * h * bytes_per_pixel; byte* ptr = (byte*)image; for (num = 0; num < z; num++) { stbi__vertical_flip(ptr, w, h, bytes_per_pixel); ptr += num2; } } public unsafe static byte* stbi__load_and_postprocess_8bit(stbi__context s, int* x, int* y, int* comp, int req_comp) { stbi__result_info stbi__result_info = default(stbi__result_info); void* ptr = stbi__load_main(s, x, y, comp, req_comp, &stbi__result_info, 8); if (ptr == null) { return null; } if (stbi__result_info.bits_per_channel != 8) { ptr = stbi__convert_16_to_8((ushort*)ptr, *x, *y, (req_comp == 0) ? (*comp) : req_comp); stbi__result_info.bits_per_channel = 8; } if (((stbi__vertically_flip_on_load_set != 0) ? stbi__vertically_flip_on_load_local : stbi__vertically_flip_on_load_global) != 0) { int bytes_per_pixel = ((req_comp != 0) ? req_comp : (*comp)); stbi__vertical_flip(ptr, *x, *y, bytes_per_pixel); } return (byte*)ptr; } public unsafe static ushort* stbi__load_and_postprocess_16bit(stbi__context s, int* x, int* y, int* comp, int req_comp) { stbi__result_info stbi__result_info = default(stbi__result_info); void* ptr = stbi__load_main(s, x, y, comp, req_comp, &stbi__result_info, 16); if (ptr == null) { return null; } if (stbi__result_info.bits_per_channel != 16) { ptr = stbi__convert_8_to_16((byte*)ptr, *x, *y, (req_comp == 0) ? (*comp) : req_comp); stbi__result_info.bits_per_channel = 16; } if (((stbi__vertically_flip_on_load_set != 0) ? stbi__vertically_flip_on_load_local : stbi__vertically_flip_on_load_global) != 0) { int num = ((req_comp != 0) ? req_comp : (*comp)); stbi__vertical_flip(ptr, *x, *y, num * 2); } return (ushort*)ptr; } public unsafe static void stbi__float_postprocess(float* result, int* x, int* y, int* comp, int req_comp) { if (((stbi__vertically_flip_on_load_set != 0) ? stbi__vertically_flip_on_load_local : stbi__vertically_flip_on_load_global) != 0 && result != null) { int num = ((req_comp != 0) ? req_comp : (*comp)); stbi__vertical_flip(result, *x, *y, num * 4); } } public unsafe static float* stbi__loadf_main(stbi__context s, int* x, int* y, int* comp, int req_comp) { if (stbi__hdr_test(s) != 0) { stbi__result_info stbi__result_info = default(stbi__result_info); float* ptr = stbi__hdr_load(s, x, y, comp, req_comp, &stbi__result_info); if (ptr != null) { stbi__float_postprocess(ptr, x, y, comp, req_comp); } return ptr; } byte* ptr2 = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); if (ptr2 != null) { return stbi__ldr_to_hdr(ptr2, *x, *y, (req_comp != 0) ? req_comp : (*comp)); } return (float*)(int)((stbi__err("unknown image type") != 0) ? 0u : 0u); } public static int stbi__get16be(stbi__context s) { int num = stbi__get8(s); return (num << 8) + stbi__get8(s); } public static uint stbi__get32be(stbi__context s) { uint num = (uint)stbi__get16be(s); return (uint)((num << 16) + stbi__get16be(s)); } public static int stbi__get16le(stbi__context s) { int num = stbi__get8(s); return num + (stbi__get8(s) << 8); } public static uint stbi__get32le(stbi__context s) { uint num = (uint)stbi__get16le(s); return num + (uint)(stbi__get16le(s) << 16); } public static byte stbi__compute_y(int r, int g, int b) { return (byte)(r * 77 + g * 150 + 29 * b >> 8); } public unsafe static byte* stbi__convert_format(byte* data, int img_n, int req_comp, uint x, uint y) { int num = 0; int num2 = 0; if (req_comp == img_n) { return data; } byte* ptr = (byte*)stbi__malloc_mad3(req_comp, (int)x, (int)y, 0); if (ptr == null) { CRuntime.free(data); return (byte*)(int)((stbi__err("outofmem") != 0) ? 0u : 0u); } for (num2 = 0; num2 < (int)y; num2++) { byte* ptr2 = data + num2 * x * img_n; byte* ptr3 = ptr + num2 * x * req_comp; switch (img_n * 8 + req_comp) { case 10: num = (int)(x - 1); while (num >= 0) { *ptr3 = *ptr2; ptr3[1] = byte.MaxValue; num--;
Newtonsoft.Json.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.ComponentModel; using System.Data; using System.Data.SqlTypes; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Dynamic; using System.Globalization; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Numerics; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters; using System.Runtime.Versioning; using System.Security; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; using Microsoft.CodeAnalysis; using Newtonsoft.Json.Bson; using Newtonsoft.Json.Converters; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq.JsonPath; using Newtonsoft.Json.Schema; using Newtonsoft.Json.Serialization; using Newtonsoft.Json.Utilities; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AllowPartiallyTrustedCallers] [assembly: AssemblyDelaySign(true)] [assembly: AssemblyKeyFile("../IdentityPublicKey.snk")] [assembly: InternalsVisibleTo("Newtonsoft.Json.Schema, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f561df277c6c0b497d629032b410cdcf286e537c054724f7ffa0164345f62b3e642029d7a80cc351918955328c4adc8a048823ef90b0cf38ea7db0d729caf2b633c3babe08b0310198c1081995c19029bc675193744eab9d7345b8a67258ec17d112cebdbbb2a281487dceeafb9d83aa930f32103fbe1d2911425bc5744002c7")] [assembly: InternalsVisibleTo("Newtonsoft.Json.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f561df277c6c0b497d629032b410cdcf286e537c054724f7ffa0164345f62b3e642029d7a80cc351918955328c4adc8a048823ef90b0cf38ea7db0d729caf2b633c3babe08b0310198c1081995c19029bc675193744eab9d7345b8a67258ec17d112cebdbbb2a281487dceeafb9d83aa930f32103fbe1d2911425bc5744002c7")] [assembly: InternalsVisibleTo("Newtonsoft.Json.Dynamic, PublicKey=0024000004800000940000000602000000240000525341310004000001000100cbd8d53b9d7de30f1f1278f636ec462cf9c254991291e66ebb157a885638a517887633b898ccbcf0d5c5ff7be85a6abe9e765d0ac7cd33c68dac67e7e64530e8222101109f154ab14a941c490ac155cd1d4fcba0fabb49016b4ef28593b015cab5937da31172f03f67d09edda404b88a60023f062ae71d0b2e4438b74cc11dc9")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("9ca358aa-317b-4925-8ada-4a29e943a363")] [assembly: CLSCompliant(true)] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Newtonsoft")] [assembly: AssemblyConfiguration("UnityAOT")] [assembly: AssemblyCopyright("Copyright © James Newton-King 2008")] [assembly: AssemblyDescription("Json.NET is a popular high-performance JSON framework for .NET")] [assembly: AssemblyFileVersion("13.0.2")] [assembly: AssemblyInformationalVersion("13.0.2+cf0a246981c33ae00121dfe58b850aefeac1aac0")] [assembly: AssemblyProduct("Json.NET")] [assembly: AssemblyTitle("Json.NET .NET Standard 2.0")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/sousapedro/Newtonsoft.Json-for-Unity.git")] [assembly: NeutralResourcesLanguage("en-US")] [assembly: AssemblyVersion("13.0.0.0")] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class IsReadOnlyAttribute : Attribute { } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace System.Diagnostics.CodeAnalysis { [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, AllowMultiple = true)] internal sealed class NotNullAttribute : Attribute { } [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)] internal sealed class NotNullWhenAttribute : Attribute { public bool ReturnValue { get; } public NotNullWhenAttribute(bool returnValue) { ReturnValue = returnValue; } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, Inherited = false)] internal sealed class MaybeNullAttribute : Attribute { } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)] internal sealed class AllowNullAttribute : Attribute { } [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] internal class DoesNotReturnIfAttribute : Attribute { public bool ParameterValue { get; } public DoesNotReturnIfAttribute(bool parameterValue) { ParameterValue = parameterValue; } } } namespace Newtonsoft.Json { public enum ConstructorHandling { Default, AllowNonPublicDefaultConstructor } public enum DateFormatHandling { IsoDateFormat, MicrosoftDateFormat } public enum DateParseHandling { None, DateTime, DateTimeOffset } public enum DateTimeZoneHandling { Local, Utc, Unspecified, RoundtripKind } public class DefaultJsonNameTable : JsonNameTable { private class Entry { internal readonly string Value; internal readonly int HashCode; internal Entry Next; internal Entry(string value, int hashCode, Entry next) { Value = value; HashCode = hashCode; Next = next; } } private static readonly int HashCodeRandomizer; private int _count; private Entry[] _entries; private int _mask = 31; static DefaultJsonNameTable() { HashCodeRandomizer = Environment.TickCount; } public DefaultJsonNameTable() { _entries = new Entry[_mask + 1]; } public override string? Get(char[] key, int start, int length) { if (length == 0) { return string.Empty; } int num = length + HashCodeRandomizer; num += (num << 7) ^ key[start]; int num2 = start + length; for (int i = start + 1; i < num2; i++) { num += (num << 7) ^ key[i]; } num -= num >> 17; num -= num >> 11; num -= num >> 5; int num3 = Volatile.Read(ref _mask); int num4 = num & num3; for (Entry entry = _entries[num4]; entry != null; entry = entry.Next) { if (entry.HashCode == num && TextEquals(entry.Value, key, start, length)) { return entry.Value; } } return null; } public string Add(string key) { if (key == null) { throw new ArgumentNullException("key"); } int length = key.Length; if (length == 0) { return string.Empty; } int num = length + HashCodeRandomizer; for (int i = 0; i < key.Length; i++) { num += (num << 7) ^ key[i]; } num -= num >> 17; num -= num >> 11; num -= num >> 5; for (Entry entry = _entries[num & _mask]; entry != null; entry = entry.Next) { if (entry.HashCode == num && entry.Value.Equals(key, StringComparison.Ordinal)) { return entry.Value; } } return AddEntry(key, num); } private string AddEntry(string str, int hashCode) { int num = hashCode & _mask; Entry entry = new Entry(str, hashCode, _entries[num]); _entries[num] = entry; if (_count++ == _mask) { Grow(); } return entry.Value; } private void Grow() { Entry[] entries = _entries; int num = _mask * 2 + 1; Entry[] array = new Entry[num + 1]; for (int i = 0; i < entries.Length; i++) { Entry entry = entries[i]; while (entry != null) { int num2 = entry.HashCode & num; Entry next = entry.Next; entry.Next = array[num2]; array[num2] = entry; entry = next; } } _entries = array; Volatile.Write(ref _mask, num); } private static bool TextEquals(string str1, char[] str2, int str2Start, int str2Length) { if (str1.Length != str2Length) { return false; } for (int i = 0; i < str1.Length; i++) { if (str1[i] != str2[str2Start + i]) { return false; } } return true; } } [Flags] public enum DefaultValueHandling { Include = 0, Ignore = 1, Populate = 2, IgnoreAndPopulate = 3 } public enum FloatFormatHandling { String, Symbol, DefaultValue } public enum FloatParseHandling { Double, Decimal } public enum Formatting { None, Indented } public interface IArrayPool<T> { T[] Rent(int minimumLength); void Return(T[]? array); } public interface IJsonLineInfo { int LineNumber { get; } int LinePosition { get; } bool HasLineInfo(); } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)] public sealed class JsonArrayAttribute : JsonContainerAttribute { private bool _allowNullItems; public bool AllowNullItems { get { return _allowNullItems; } set { _allowNullItems = value; } } public JsonArrayAttribute() { } public JsonArrayAttribute(bool allowNullItems) { _allowNullItems = allowNullItems; } public JsonArrayAttribute(string id) : base(id) { } } [AttributeUsage(AttributeTargets.Constructor, AllowMultiple = false)] public sealed class JsonConstructorAttribute : Attribute { } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)] public abstract class JsonContainerAttribute : Attribute { internal bool? _isReference; internal bool? _itemIsReference; internal ReferenceLoopHandling? _itemReferenceLoopHandling; internal TypeNameHandling? _itemTypeNameHandling; private Type? _namingStrategyType; private object[]? _namingStrategyParameters; public string? Id { get; set; } public string? Title { get; set; } public string? Description { get; set; } public Type? ItemConverterType { get; set; } public object[]? ItemConverterParameters { get; set; } public Type? NamingStrategyType { get { return _namingStrategyType; } set { _namingStrategyType = value; NamingStrategyInstance = null; } } public object[]? NamingStrategyParameters { get { return _namingStrategyParameters; } set { _namingStrategyParameters = value; NamingStrategyInstance = null; } } internal NamingStrategy? NamingStrategyInstance { get; set; } public bool IsReference { get { return _isReference.GetValueOrDefault(); } set { _isReference = value; } } public bool ItemIsReference { get { return _itemIsReference.GetValueOrDefault(); } set { _itemIsReference = value; } } public ReferenceLoopHandling ItemReferenceLoopHandling { get { return _itemReferenceLoopHandling.GetValueOrDefault(); } set { _itemReferenceLoopHandling = value; } } public TypeNameHandling ItemTypeNameHandling { get { return _itemTypeNameHandling.GetValueOrDefault(); } set { _itemTypeNameHandling = value; } } protected JsonContainerAttribute() { } protected JsonContainerAttribute(string id) { Id = id; } } public static class JsonConvert { public static readonly string True = "true"; public static readonly string False = "false"; public static readonly string Null = "null"; public static readonly string Undefined = "undefined"; public static readonly string PositiveInfinity = "Infinity"; public static readonly string NegativeInfinity = "-Infinity"; public static readonly string NaN = "NaN"; public static Func<JsonSerializerSettings>? DefaultSettings { get; set; } public static string ToString(DateTime value) { return ToString(value, DateFormatHandling.IsoDateFormat, DateTimeZoneHandling.RoundtripKind); } public static string ToString(DateTime value, DateFormatHandling format, DateTimeZoneHandling timeZoneHandling) { DateTime value2 = DateTimeUtils.EnsureDateTime(value, timeZoneHandling); using StringWriter stringWriter = StringUtils.CreateStringWriter(64); stringWriter.Write('"'); DateTimeUtils.WriteDateTimeString(stringWriter, value2, format, null, CultureInfo.InvariantCulture); stringWriter.Write('"'); return stringWriter.ToString(); } public static string ToString(DateTimeOffset value) { return ToString(value, DateFormatHandling.IsoDateFormat); } public static string ToString(DateTimeOffset value, DateFormatHandling format) { using StringWriter stringWriter = StringUtils.CreateStringWriter(64); stringWriter.Write('"'); DateTimeUtils.WriteDateTimeOffsetString(stringWriter, value, format, null, CultureInfo.InvariantCulture); stringWriter.Write('"'); return stringWriter.ToString(); } public static string ToString(bool value) { if (!value) { return False; } return True; } public static string ToString(char value) { return ToString(char.ToString(value)); } public static string ToString(Enum value) { return value.ToString("D"); } public static string ToString(int value) { return value.ToString(null, CultureInfo.InvariantCulture); } public static string ToString(short value) { return value.ToString(null, CultureInfo.InvariantCulture); } [CLSCompliant(false)] public static string ToString(ushort value) { return value.ToString(null, CultureInfo.InvariantCulture); } [CLSCompliant(false)] public static string ToString(uint value) { return value.ToString(null, CultureInfo.InvariantCulture); } public static string ToString(long value) { return value.ToString(null, CultureInfo.InvariantCulture); } private static string ToStringInternal(BigInteger value) { return value.ToString(null, CultureInfo.InvariantCulture); } [CLSCompliant(false)] public static string ToString(ulong value) { return value.ToString(null, CultureInfo.InvariantCulture); } public static string ToString(float value) { return EnsureDecimalPlace(value, value.ToString("R", CultureInfo.InvariantCulture)); } internal static string ToString(float value, FloatFormatHandling floatFormatHandling, char quoteChar, bool nullable) { return EnsureFloatFormat(value, EnsureDecimalPlace(value, value.ToString("R", CultureInfo.InvariantCulture)), floatFormatHandling, quoteChar, nullable); } private static string EnsureFloatFormat(double value, string text, FloatFormatHandling floatFormatHandling, char quoteChar, bool nullable) { if (floatFormatHandling == FloatFormatHandling.Symbol || (!double.IsInfinity(value) && !double.IsNaN(value))) { return text; } if (floatFormatHandling == FloatFormatHandling.DefaultValue) { if (nullable) { return Null; } return "0.0"; } return quoteChar + text + quoteChar; } public static string ToString(double value) { return EnsureDecimalPlace(value, value.ToString("R", CultureInfo.InvariantCulture)); } internal static string ToString(double value, FloatFormatHandling floatFormatHandling, char quoteChar, bool nullable) { return EnsureFloatFormat(value, EnsureDecimalPlace(value, value.ToString("R", CultureInfo.InvariantCulture)), floatFormatHandling, quoteChar, nullable); } private static string EnsureDecimalPlace(double value, string text) { if (double.IsNaN(value) || double.IsInfinity(value) || StringUtils.IndexOf(text, '.') != -1 || StringUtils.IndexOf(text, 'E') != -1 || StringUtils.IndexOf(text, 'e') != -1) { return text; } return text + ".0"; } private static string EnsureDecimalPlace(string text) { if (StringUtils.IndexOf(text, '.') != -1) { return text; } return text + ".0"; } public static string ToString(byte value) { return value.ToString(null, CultureInfo.InvariantCulture); } [CLSCompliant(false)] public static string ToString(sbyte value) { return value.ToString(null, CultureInfo.InvariantCulture); } public static string ToString(decimal value) { return EnsureDecimalPlace(value.ToString(null, CultureInfo.InvariantCulture)); } public static string ToString(Guid value) { return ToString(value, '"'); } internal static string ToString(Guid value, char quoteChar) { string text = value.ToString("D", CultureInfo.InvariantCulture); string text2 = quoteChar.ToString(CultureInfo.InvariantCulture); return text2 + text + text2; } public static string ToString(TimeSpan value) { return ToString(value, '"'); } internal static string ToString(TimeSpan value, char quoteChar) { return ToString(value.ToString(), quoteChar); } public static string ToString(Uri? value) { if (value == null) { return Null; } return ToString(value, '"'); } internal static string ToString(Uri value, char quoteChar) { return ToString(value.OriginalString, quoteChar); } public static string ToString(string? value) { return ToString(value, '"'); } public static string ToString(string? value, char delimiter) { return ToString(value, delimiter, StringEscapeHandling.Default); } public static string ToString(string? value, char delimiter, StringEscapeHandling stringEscapeHandling) { if (delimiter != '"' && delimiter != '\'') { throw new ArgumentException("Delimiter must be a single or double quote.", "delimiter"); } return JavaScriptUtils.ToEscapedJavaScriptString(value, delimiter, appendDelimiters: true, stringEscapeHandling); } public static string ToString(object? value) { if (value == null) { return Null; } return ConvertUtils.GetTypeCode(value.GetType()) switch { PrimitiveTypeCode.String => ToString((string)value), PrimitiveTypeCode.Char => ToString((char)value), PrimitiveTypeCode.Boolean => ToString((bool)value), PrimitiveTypeCode.SByte => ToString((sbyte)value), PrimitiveTypeCode.Int16 => ToString((short)value), PrimitiveTypeCode.UInt16 => ToString((ushort)value), PrimitiveTypeCode.Int32 => ToString((int)value), PrimitiveTypeCode.Byte => ToString((byte)value), PrimitiveTypeCode.UInt32 => ToString((uint)value), PrimitiveTypeCode.Int64 => ToString((long)value), PrimitiveTypeCode.UInt64 => ToString((ulong)value), PrimitiveTypeCode.Single => ToString((float)value), PrimitiveTypeCode.Double => ToString((double)value), PrimitiveTypeCode.DateTime => ToString((DateTime)value), PrimitiveTypeCode.Decimal => ToString((decimal)value), PrimitiveTypeCode.DBNull => Null, PrimitiveTypeCode.DateTimeOffset => ToString((DateTimeOffset)value), PrimitiveTypeCode.Guid => ToString((Guid)value), PrimitiveTypeCode.Uri => ToString((Uri)value), PrimitiveTypeCode.TimeSpan => ToString((TimeSpan)value), PrimitiveTypeCode.BigInteger => ToStringInternal((BigInteger)value), _ => throw new ArgumentException("Unsupported type: {0}. Use the JsonSerializer class to get the object's JSON representation.".FormatWith(CultureInfo.InvariantCulture, value.GetType())), }; } [DebuggerStepThrough] public static string SerializeObject(object? value) { return SerializeObject(value, (Type?)null, (JsonSerializerSettings?)null); } [DebuggerStepThrough] public static string SerializeObject(object? value, Formatting formatting) { return SerializeObject(value, formatting, (JsonSerializerSettings?)null); } [DebuggerStepThrough] public static string SerializeObject(object? value, params JsonConverter[] converters) { JsonSerializerSettings settings = ((converters != null && converters.Length != 0) ? new JsonSerializerSettings { Converters = converters } : null); return SerializeObject(value, null, settings); } [DebuggerStepThrough] public static string SerializeObject(object? value, Formatting formatting, params JsonConverter[] converters) { JsonSerializerSettings settings = ((converters != null && converters.Length != 0) ? new JsonSerializerSettings { Converters = converters } : null); return SerializeObject(value, null, formatting, settings); } [DebuggerStepThrough] public static string SerializeObject(object? value, JsonSerializerSettings? settings) { return SerializeObject(value, null, settings); } [DebuggerStepThrough] public static string SerializeObject(object? value, Type? type, JsonSerializerSettings? settings) { JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(settings); return SerializeObjectInternal(value, type, jsonSerializer); } [DebuggerStepThrough] public static string SerializeObject(object? value, Formatting formatting, JsonSerializerSettings? settings) { return SerializeObject(value, null, formatting, settings); } [DebuggerStepThrough] public static string SerializeObject(object? value, Type? type, Formatting formatting, JsonSerializerSettings? settings) { JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(settings); jsonSerializer.Formatting = formatting; return SerializeObjectInternal(value, type, jsonSerializer); } private static string SerializeObjectInternal(object? value, Type? type, JsonSerializer jsonSerializer) { StringWriter stringWriter = new StringWriter(new StringBuilder(256), CultureInfo.InvariantCulture); using (JsonTextWriter jsonTextWriter = new JsonTextWriter(stringWriter)) { jsonTextWriter.Formatting = jsonSerializer.Formatting; jsonSerializer.Serialize(jsonTextWriter, value, type); } return stringWriter.ToString(); } [DebuggerStepThrough] public static object? DeserializeObject(string value) { return DeserializeObject(value, (Type?)null, (JsonSerializerSettings?)null); } [DebuggerStepThrough] public static object? DeserializeObject(string value, JsonSerializerSettings settings) { return DeserializeObject(value, null, settings); } [DebuggerStepThrough] public static object? DeserializeObject(string value, Type type) { return DeserializeObject(value, type, (JsonSerializerSettings?)null); } [DebuggerStepThrough] public static T? DeserializeObject<T>(string value) { return JsonConvert.DeserializeObject<T>(value, (JsonSerializerSettings?)null); } [DebuggerStepThrough] public static T? DeserializeAnonymousType<T>(string value, T anonymousTypeObject) { return DeserializeObject<T>(value); } [DebuggerStepThrough] public static T? DeserializeAnonymousType<T>(string value, T anonymousTypeObject, JsonSerializerSettings settings) { return DeserializeObject<T>(value, settings); } [DebuggerStepThrough] public static T? DeserializeObject<T>(string value, params JsonConverter[] converters) { return (T)DeserializeObject(value, typeof(T), converters); } [DebuggerStepThrough] public static T? DeserializeObject<T>(string value, JsonSerializerSettings? settings) { return (T)DeserializeObject(value, typeof(T), settings); } [DebuggerStepThrough] public static object? DeserializeObject(string value, Type type, params JsonConverter[] converters) { JsonSerializerSettings settings = ((converters != null && converters.Length != 0) ? new JsonSerializerSettings { Converters = converters } : null); return DeserializeObject(value, type, settings); } public static object? DeserializeObject(string value, Type? type, JsonSerializerSettings? settings) { ValidationUtils.ArgumentNotNull(value, "value"); JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(settings); if (!jsonSerializer.IsCheckAdditionalContentSet()) { jsonSerializer.CheckAdditionalContent = true; } using JsonTextReader reader = new JsonTextReader(new StringReader(value)); return jsonSerializer.Deserialize(reader, type); } [DebuggerStepThrough] public static void PopulateObject(string value, object target) { PopulateObject(value, target, null); } public static void PopulateObject(string value, object target, JsonSerializerSettings? settings) { JsonSerializer jsonSerializer = JsonSerializer.CreateDefault(settings); using JsonReader jsonReader = new JsonTextReader(new StringReader(value)); jsonSerializer.Populate(jsonReader, target); if (settings == null || !settings.CheckAdditionalContent) { return; } while (jsonReader.Read()) { if (jsonReader.TokenType != JsonToken.Comment) { throw JsonSerializationException.Create(jsonReader, "Additional text found in JSON string after finishing deserializing object."); } } } public static string SerializeXmlNode(XmlNode? node) { return SerializeXmlNode(node, Formatting.None); } public static string SerializeXmlNode(XmlNode? node, Formatting formatting) { XmlNodeConverter xmlNodeConverter = new XmlNodeConverter(); return SerializeObject(node, formatting, xmlNodeConverter); } public static string SerializeXmlNode(XmlNode? node, Formatting formatting, bool omitRootObject) { XmlNodeConverter xmlNodeConverter = new XmlNodeConverter { OmitRootObject = omitRootObject }; return SerializeObject(node, formatting, xmlNodeConverter); } public static XmlDocument? DeserializeXmlNode(string value) { return DeserializeXmlNode(value, null); } public static XmlDocument? DeserializeXmlNode(string value, string? deserializeRootElementName) { return DeserializeXmlNode(value, deserializeRootElementName, writeArrayAttribute: false); } public static XmlDocument? DeserializeXmlNode(string value, string? deserializeRootElementName, bool writeArrayAttribute) { return DeserializeXmlNode(value, deserializeRootElementName, writeArrayAttribute, encodeSpecialCharacters: false); } public static XmlDocument? DeserializeXmlNode(string value, string? deserializeRootElementName, bool writeArrayAttribute, bool encodeSpecialCharacters) { XmlNodeConverter xmlNodeConverter = new XmlNodeConverter(); xmlNodeConverter.DeserializeRootElementName = deserializeRootElementName; xmlNodeConverter.WriteArrayAttribute = writeArrayAttribute; xmlNodeConverter.EncodeSpecialCharacters = encodeSpecialCharacters; return (XmlDocument)DeserializeObject(value, typeof(XmlDocument), xmlNodeConverter); } public static string SerializeXNode(XObject? node) { return SerializeXNode(node, Formatting.None); } public static string SerializeXNode(XObject? node, Formatting formatting) { return SerializeXNode(node, formatting, omitRootObject: false); } public static string SerializeXNode(XObject? node, Formatting formatting, bool omitRootObject) { XmlNodeConverter xmlNodeConverter = new XmlNodeConverter { OmitRootObject = omitRootObject }; return SerializeObject(node, formatting, xmlNodeConverter); } public static XDocument? DeserializeXNode(string value) { return DeserializeXNode(value, null); } public static XDocument? DeserializeXNode(string value, string? deserializeRootElementName) { return DeserializeXNode(value, deserializeRootElementName, writeArrayAttribute: false); } public static XDocument? DeserializeXNode(string value, string? deserializeRootElementName, bool writeArrayAttribute) { return DeserializeXNode(value, deserializeRootElementName, writeArrayAttribute, encodeSpecialCharacters: false); } public static XDocument? DeserializeXNode(string value, string? deserializeRootElementName, bool writeArrayAttribute, bool encodeSpecialCharacters) { XmlNodeConverter xmlNodeConverter = new XmlNodeConverter(); xmlNodeConverter.DeserializeRootElementName = deserializeRootElementName; xmlNodeConverter.WriteArrayAttribute = writeArrayAttribute; xmlNodeConverter.EncodeSpecialCharacters = encodeSpecialCharacters; return (XDocument)DeserializeObject(value, typeof(XDocument), xmlNodeConverter); } } public abstract class JsonConverter { public virtual bool CanRead => true; public virtual bool CanWrite => true; public abstract void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer); public abstract object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer); public abstract bool CanConvert(Type objectType); } public abstract class JsonConverter<T> : JsonConverter { public sealed override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) { if (!((value != null) ? (value is T) : ReflectionUtils.IsNullable(typeof(T)))) { throw new JsonSerializationException("Converter cannot write specified value to JSON. {0} is required.".FormatWith(CultureInfo.InvariantCulture, typeof(T))); } WriteJson(writer, (T)value, serializer); } public abstract void WriteJson(JsonWriter writer, T? value, JsonSerializer serializer); public sealed override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) { bool flag = existingValue == null; if (!flag && !(existingValue is T)) { throw new JsonSerializationException("Converter cannot read JSON with the specified existing value. {0} is required.".FormatWith(CultureInfo.InvariantCulture, typeof(T))); } return ReadJson(reader, objectType, flag ? default(T) : ((T)existingValue), !flag, serializer); } public abstract T? ReadJson(JsonReader reader, Type objectType, T? existingValue, bool hasExistingValue, JsonSerializer serializer); public sealed override bool CanConvert(Type objectType) { return typeof(T).IsAssignableFrom(objectType); } } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Interface | AttributeTargets.Parameter, AllowMultiple = false)] public sealed class JsonConverterAttribute : Attribute { private readonly Type _converterType; public Type ConverterType => _converterType; public object[]? ConverterParameters { get; } public JsonConverterAttribute(Type converterType) { if (converterType == null) { throw new ArgumentNullException("converterType"); } _converterType = converterType; } public JsonConverterAttribute(Type converterType, params object[] converterParameters) : this(converterType) { ConverterParameters = converterParameters; } } public class JsonConverterCollection : Collection<JsonConverter> { } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)] public sealed class JsonDictionaryAttribute : JsonContainerAttribute { public JsonDictionaryAttribute() { } public JsonDictionaryAttribute(string id) : base(id) { } } [Serializable] public class JsonException : Exception { public JsonException() { } public JsonException(string message) : base(message) { } public JsonException(string message, Exception? innerException) : base(message, innerException) { } public JsonException(SerializationInfo info, StreamingContext context) : base(info, context) { } internal static JsonException Create(IJsonLineInfo lineInfo, string path, string message) { message = JsonPosition.FormatMessage(lineInfo, path, message); return new JsonException(message); } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)] public class JsonExtensionDataAttribute : Attribute { public bool WriteData { get; set; } public bool ReadData { get; set; } public JsonExtensionDataAttribute() { WriteData = true; ReadData = true; } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)] public sealed class JsonIgnoreAttribute : Attribute { } public abstract class JsonNameTable { public abstract string? Get(char[] key, int start, int length); } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface, AllowMultiple = false)] public sealed class JsonObjectAttribute : JsonContainerAttribute { private MemberSerialization _memberSerialization; internal MissingMemberHandling? _missingMemberHandling; internal Required? _itemRequired; internal NullValueHandling? _itemNullValueHandling; public MemberSerialization MemberSerialization { get { return _memberSerialization; } set { _memberSerialization = value; } } public MissingMemberHandling MissingMemberHandling { get { return _missingMemberHandling.GetValueOrDefault(); } set { _missingMemberHandling = value; } } public NullValueHandling ItemNullValueHandling { get { return _itemNullValueHandling.GetValueOrDefault(); } set { _itemNullValueHandling = value; } } public Required ItemRequired { get { return _itemRequired.GetValueOrDefault(); } set { _itemRequired = value; } } public JsonObjectAttribute() { } public JsonObjectAttribute(MemberSerialization memberSerialization) { MemberSerialization = memberSerialization; } public JsonObjectAttribute(string id) : base(id) { } } internal enum JsonContainerType { None, Object, Array, Constructor } internal struct JsonPosition { private static readonly char[] SpecialCharacters = new char[18] { '.', ' ', '\'', '/', '"', '[', ']', '(', ')', '\t', '\n', '\r', '\f', '\b', '\\', '\u0085', '\u2028', '\u2029' }; internal JsonContainerType Type; internal int Position; internal string? PropertyName; internal bool HasIndex; public JsonPosition(JsonContainerType type) { Type = type; HasIndex = TypeHasIndex(type); Position = -1; PropertyName = null; } internal int CalculateLength() { switch (Type) { case JsonContainerType.Object: return PropertyName.Length + 5; case JsonContainerType.Array: case JsonContainerType.Constructor: return MathUtils.IntLength((ulong)Position) + 2; default: throw new ArgumentOutOfRangeException("Type"); } } internal void WriteTo(StringBuilder sb, ref StringWriter? writer, ref char[]? buffer) { switch (Type) { case JsonContainerType.Object: { string propertyName = PropertyName; if (propertyName.IndexOfAny(SpecialCharacters) != -1) { sb.Append("['"); if (writer == null) { writer = new StringWriter(sb); } JavaScriptUtils.WriteEscapedJavaScriptString(writer, propertyName, '\'', appendDelimiters: false, JavaScriptUtils.SingleQuoteCharEscapeFlags, StringEscapeHandling.Default, null, ref buffer); sb.Append("']"); } else { if (sb.Length > 0) { sb.Append('.'); } sb.Append(propertyName); } break; } case JsonContainerType.Array: case JsonContainerType.Constructor: sb.Append('['); sb.Append(Position); sb.Append(']'); break; } } internal static bool TypeHasIndex(JsonContainerType type) { if (type != JsonContainerType.Array) { return type == JsonContainerType.Constructor; } return true; } internal static string BuildPath(List<JsonPosition> positions, JsonPosition? currentPosition) { int num = 0; if (positions != null) { for (int i = 0; i < positions.Count; i++) { num += positions[i].CalculateLength(); } } if (currentPosition.HasValue) { num += currentPosition.GetValueOrDefault().CalculateLength(); } StringBuilder stringBuilder = new StringBuilder(num); StringWriter writer = null; char[] buffer = null; if (positions != null) { foreach (JsonPosition position in positions) { position.WriteTo(stringBuilder, ref writer, ref buffer); } } currentPosition?.WriteTo(stringBuilder, ref writer, ref buffer); return stringBuilder.ToString(); } internal static string FormatMessage(IJsonLineInfo? lineInfo, string path, string message) { if (!message.EndsWith(Environment.NewLine, StringComparison.Ordinal)) { message = message.Trim(); if (!StringUtils.EndsWith(message, '.')) { message += "."; } message += " "; } message += "Path '{0}'".FormatWith(CultureInfo.InvariantCulture, path); if (lineInfo != null && lineInfo.HasLineInfo()) { message += ", line {0}, position {1}".FormatWith(CultureInfo.InvariantCulture, lineInfo.LineNumber, lineInfo.LinePosition); } message += "."; return message; } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)] public sealed class JsonPropertyAttribute : Attribute { internal NullValueHandling? _nullValueHandling; internal DefaultValueHandling? _defaultValueHandling; internal ReferenceLoopHandling? _referenceLoopHandling; internal ObjectCreationHandling? _objectCreationHandling; internal TypeNameHandling? _typeNameHandling; internal bool? _isReference; internal int? _order; internal Required? _required; internal bool? _itemIsReference; internal ReferenceLoopHandling? _itemReferenceLoopHandling; internal TypeNameHandling? _itemTypeNameHandling; public Type? ItemConverterType { get; set; } public object[]? ItemConverterParameters { get; set; } public Type? NamingStrategyType { get; set; } public object[]? NamingStrategyParameters { get; set; } public NullValueHandling NullValueHandling { get { return _nullValueHandling.GetValueOrDefault(); } set { _nullValueHandling = value; } } public DefaultValueHandling DefaultValueHandling { get { return _defaultValueHandling.GetValueOrDefault(); } set { _defaultValueHandling = value; } } public ReferenceLoopHandling ReferenceLoopHandling { get { return _referenceLoopHandling.GetValueOrDefault(); } set { _referenceLoopHandling = value; } } public ObjectCreationHandling ObjectCreationHandling { get { return _objectCreationHandling.GetValueOrDefault(); } set { _objectCreationHandling = value; } } public TypeNameHandling TypeNameHandling { get { return _typeNameHandling.GetValueOrDefault(); } set { _typeNameHandling = value; } } public bool IsReference { get { return _isReference.GetValueOrDefault(); } set { _isReference = value; } } public int Order { get { return _order.GetValueOrDefault(); } set { _order = value; } } public Required Required { get { return _required.GetValueOrDefault(); } set { _required = value; } } public string? PropertyName { get; set; } public ReferenceLoopHandling ItemReferenceLoopHandling { get { return _itemReferenceLoopHandling.GetValueOrDefault(); } set { _itemReferenceLoopHandling = value; } } public TypeNameHandling ItemTypeNameHandling { get { return _itemTypeNameHandling.GetValueOrDefault(); } set { _itemTypeNameHandling = value; } } public bool ItemIsReference { get { return _itemIsReference.GetValueOrDefault(); } set { _itemIsReference = value; } } public JsonPropertyAttribute() { } public JsonPropertyAttribute(string propertyName) { PropertyName = propertyName; } } public abstract class JsonReader : IDisposable { protected internal enum State { Start, Complete, Property, ObjectStart, Object, ArrayStart, Array, Closed, PostValue, ConstructorStart, Constructor, Error, Finished } private JsonToken _tokenType; private object? _value; internal char _quoteChar; internal State _currentState; private JsonPosition _currentPosition; private CultureInfo? _culture; private DateTimeZoneHandling _dateTimeZoneHandling; private int? _maxDepth; private bool _hasExceededMaxDepth; internal DateParseHandling _dateParseHandling; internal FloatParseHandling _floatParseHandling; private string? _dateFormatString; private List<JsonPosition>? _stack; protected State CurrentState => _currentState; public bool CloseInput { get; set; } public bool SupportMultipleContent { get; set; } public virtual char QuoteChar { get { return _quoteChar; } protected internal set { _quoteChar = value; } } public DateTimeZoneHandling DateTimeZoneHandling { get { return _dateTimeZoneHandling; } set { if (value < DateTimeZoneHandling.Local || value > DateTimeZoneHandling.RoundtripKind) { throw new ArgumentOutOfRangeException("value"); } _dateTimeZoneHandling = value; } } public DateParseHandling DateParseHandling { get { return _dateParseHandling; } set { if (value < DateParseHandling.None || value > DateParseHandling.DateTimeOffset) { throw new ArgumentOutOfRangeException("value"); } _dateParseHandling = value; } } public FloatParseHandling FloatParseHandling { get { return _floatParseHandling; } set { if (value < FloatParseHandling.Double || value > FloatParseHandling.Decimal) { throw new ArgumentOutOfRangeException("value"); } _floatParseHandling = value; } } public string? DateFormatString { get { return _dateFormatString; } set { _dateFormatString = value; } } public int? MaxDepth { get { return _maxDepth; } set { if (value <= 0) { throw new ArgumentException("Value must be positive.", "value"); } _maxDepth = value; } } public virtual JsonToken TokenType => _tokenType; public virtual object? Value => _value; public virtual Type? ValueType => _value?.GetType(); public virtual int Depth { get { int num = _stack?.Count ?? 0; if (JsonTokenUtils.IsStartToken(TokenType) || _currentPosition.Type == JsonContainerType.None) { return num; } return num + 1; } } public virtual string Path { get { if (_currentPosition.Type == JsonContainerType.None) { return string.Empty; } JsonPosition? currentPosition = ((_currentState != State.ArrayStart && _currentState != State.ConstructorStart && _currentState != State.ObjectStart) ? new JsonPosition?(_currentPosition) : null); return JsonPosition.BuildPath(_stack, currentPosition); } } public CultureInfo Culture { get { return _culture ?? CultureInfo.InvariantCulture; } set { _culture = value; } } public virtual Task<bool> ReadAsync(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<bool>() ?? Read().ToAsync(); } public async Task SkipAsync(CancellationToken cancellationToken = default(CancellationToken)) { if (TokenType == JsonToken.PropertyName) { await ReadAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false); } if (JsonTokenUtils.IsStartToken(TokenType)) { int depth = Depth; while (await ReadAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false) && depth < Depth) { } } } internal async Task ReaderReadAndAssertAsync(CancellationToken cancellationToken) { if (!(await ReadAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false))) { throw CreateUnexpectedEndException(); } } public virtual Task<bool?> ReadAsBooleanAsync(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<bool?>() ?? Task.FromResult(ReadAsBoolean()); } public virtual Task<byte[]?> ReadAsBytesAsync(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<byte[]>() ?? Task.FromResult(ReadAsBytes()); } internal async Task<byte[]?> ReadArrayIntoByteArrayAsync(CancellationToken cancellationToken) { List<byte> buffer = new List<byte>(); do { if (!(await ReadAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false))) { SetToken(JsonToken.None); } } while (!ReadArrayElementIntoByteArrayReportDone(buffer)); byte[] array = buffer.ToArray(); SetToken(JsonToken.Bytes, array, updateIndex: false); return array; } public virtual Task<DateTime?> ReadAsDateTimeAsync(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<DateTime?>() ?? Task.FromResult(ReadAsDateTime()); } public virtual Task<DateTimeOffset?> ReadAsDateTimeOffsetAsync(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<DateTimeOffset?>() ?? Task.FromResult(ReadAsDateTimeOffset()); } public virtual Task<decimal?> ReadAsDecimalAsync(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<decimal?>() ?? Task.FromResult(ReadAsDecimal()); } public virtual Task<double?> ReadAsDoubleAsync(CancellationToken cancellationToken = default(CancellationToken)) { return Task.FromResult(ReadAsDouble()); } public virtual Task<int?> ReadAsInt32Async(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<int?>() ?? Task.FromResult(ReadAsInt32()); } public virtual Task<string?> ReadAsStringAsync(CancellationToken cancellationToken = default(CancellationToken)) { return cancellationToken.CancelIfRequestedAsync<string>() ?? Task.FromResult(ReadAsString()); } internal async Task<bool> ReadAndMoveToContentAsync(CancellationToken cancellationToken) { bool flag = await ReadAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false); if (flag) { flag = await MoveToContentAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false); } return flag; } internal Task<bool> MoveToContentAsync(CancellationToken cancellationToken) { JsonToken tokenType = TokenType; if (tokenType == JsonToken.None || tokenType == JsonToken.Comment) { return MoveToContentFromNonContentAsync(cancellationToken); } return AsyncUtils.True; } private async Task<bool> MoveToContentFromNonContentAsync(CancellationToken cancellationToken) { JsonToken tokenType; do { if (!(await ReadAsync(cancellationToken).ConfigureAwait(continueOnCapturedContext: false))) { return false; } tokenType = TokenType; } while (tokenType == JsonToken.None || tokenType == JsonToken.Comment); return true; } internal JsonPosition GetPosition(int depth) { if (_stack != null && depth < _stack.Count) { return _stack[depth]; } return _currentPosition; } protected JsonReader() { _currentState = State.Start; _dateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind; _dateParseHandling = DateParseHandling.DateTime; _floatParseHandling = FloatParseHandling.Double; _maxDepth = 64; CloseInput = true; } private void Push(JsonContainerType value) { UpdateScopeWithFinishedValue(); if (_currentPosition.Type == JsonContainerType.None) { _currentPosition = new JsonPosition(value); return; } if (_stack == null) { _stack = new List<JsonPosition>(); } _stack.Add(_currentPosition); _currentPosition = new JsonPosition(value); if (!_maxDepth.HasValue || !(Depth + 1 > _maxDepth) || _hasExceededMaxDepth) { return; } _hasExceededMaxDepth = true; throw JsonReaderException.Create(this, "The reader's MaxDepth of {0} has been exceeded.".FormatWith(CultureInfo.InvariantCulture, _maxDepth)); } private JsonContainerType Pop() { JsonPosition currentPosition; if (_stack != null && _stack.Count > 0) { currentPosition = _currentPosition; _currentPosition = _stack[_stack.Count - 1]; _stack.RemoveAt(_stack.Count - 1); } else { currentPosition = _currentPosition; _currentPosition = default(JsonPosition); } if (_maxDepth.HasValue && Depth <= _maxDepth) { _hasExceededMaxDepth = false; } return currentPosition.Type; } private JsonContainerType Peek() { return _currentPosition.Type; } public abstract bool Read(); public virtual int? ReadAsInt32() { JsonToken contentToken = GetContentToken(); switch (contentToken) { case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.Integer: case JsonToken.Float: { object value = Value; if (value is int) { return (int)value; } int num; if (value is BigInteger bigInteger) { num = (int)bigInteger; } else { try { num = Convert.ToInt32(value, CultureInfo.InvariantCulture); } catch (Exception ex) { throw JsonReaderException.Create(this, "Could not convert to integer: {0}.".FormatWith(CultureInfo.InvariantCulture, value), ex); } } SetToken(JsonToken.Integer, num, updateIndex: false); return num; } case JsonToken.String: { string s = (string)Value; return ReadInt32String(s); } default: throw JsonReaderException.Create(this, "Error reading integer. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, contentToken)); } } internal int? ReadInt32String(string? s) { if (StringUtils.IsNullOrEmpty(s)) { SetToken(JsonToken.Null, null, updateIndex: false); return null; } if (int.TryParse(s, NumberStyles.Integer, Culture, out var result)) { SetToken(JsonToken.Integer, result, updateIndex: false); return result; } SetToken(JsonToken.String, s, updateIndex: false); throw JsonReaderException.Create(this, "Could not convert string to integer: {0}.".FormatWith(CultureInfo.InvariantCulture, s)); } public virtual string? ReadAsString() { JsonToken contentToken = GetContentToken(); switch (contentToken) { case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.String: return (string)Value; default: if (JsonTokenUtils.IsPrimitiveToken(contentToken)) { object value = Value; if (value != null) { string text = ((!(value is IFormattable formattable)) ? ((value is Uri uri) ? uri.OriginalString : value.ToString()) : formattable.ToString(null, Culture)); SetToken(JsonToken.String, text, updateIndex: false); return text; } } throw JsonReaderException.Create(this, "Error reading string. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, contentToken)); } } public virtual byte[]? ReadAsBytes() { JsonToken contentToken = GetContentToken(); switch (contentToken) { case JsonToken.StartObject: { ReadIntoWrappedTypeObject(); byte[] array2 = ReadAsBytes(); ReaderReadAndAssert(); if (TokenType != JsonToken.EndObject) { throw JsonReaderException.Create(this, "Error reading bytes. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, TokenType)); } SetToken(JsonToken.Bytes, array2, updateIndex: false); return array2; } case JsonToken.String: { string text = (string)Value; Guid g; byte[] array3 = ((text.Length == 0) ? CollectionUtils.ArrayEmpty<byte>() : ((!ConvertUtils.TryConvertGuid(text, out g)) ? Convert.FromBase64String(text) : g.ToByteArray())); SetToken(JsonToken.Bytes, array3, updateIndex: false); return array3; } case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.Bytes: if (Value is Guid guid) { byte[] array = guid.ToByteArray(); SetToken(JsonToken.Bytes, array, updateIndex: false); return array; } return (byte[])Value; case JsonToken.StartArray: return ReadArrayIntoByteArray(); default: throw JsonReaderException.Create(this, "Error reading bytes. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, contentToken)); } } internal byte[] ReadArrayIntoByteArray() { List<byte> list = new List<byte>(); do { if (!Read()) { SetToken(JsonToken.None); } } while (!ReadArrayElementIntoByteArrayReportDone(list)); byte[] array = list.ToArray(); SetToken(JsonToken.Bytes, array, updateIndex: false); return array; } private bool ReadArrayElementIntoByteArrayReportDone(List<byte> buffer) { switch (TokenType) { case JsonToken.None: throw JsonReaderException.Create(this, "Unexpected end when reading bytes."); case JsonToken.Integer: buffer.Add(Convert.ToByte(Value, CultureInfo.InvariantCulture)); return false; case JsonToken.EndArray: return true; case JsonToken.Comment: return false; default: throw JsonReaderException.Create(this, "Unexpected token when reading bytes: {0}.".FormatWith(CultureInfo.InvariantCulture, TokenType)); } } public virtual double? ReadAsDouble() { JsonToken contentToken = GetContentToken(); switch (contentToken) { case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.Integer: case JsonToken.Float: { object value = Value; if (value is double) { return (double)value; } double num = ((!(value is BigInteger bigInteger)) ? Convert.ToDouble(value, CultureInfo.InvariantCulture) : ((double)bigInteger)); SetToken(JsonToken.Float, num, updateIndex: false); return num; } case JsonToken.String: return ReadDoubleString((string)Value); default: throw JsonReaderException.Create(this, "Error reading double. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, contentToken)); } } internal double? ReadDoubleString(string? s) { if (StringUtils.IsNullOrEmpty(s)) { SetToken(JsonToken.Null, null, updateIndex: false); return null; } if (double.TryParse(s, NumberStyles.Float | NumberStyles.AllowThousands, Culture, out var result)) { SetToken(JsonToken.Float, result, updateIndex: false); return result; } SetToken(JsonToken.String, s, updateIndex: false); throw JsonReaderException.Create(this, "Could not convert string to double: {0}.".FormatWith(CultureInfo.InvariantCulture, s)); } public virtual bool? ReadAsBoolean() { JsonToken contentToken = GetContentToken(); switch (contentToken) { case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.Integer: case JsonToken.Float: { bool flag = ((!(Value is BigInteger bigInteger)) ? Convert.ToBoolean(Value, CultureInfo.InvariantCulture) : (bigInteger != 0L)); SetToken(JsonToken.Boolean, flag, updateIndex: false); return flag; } case JsonToken.String: return ReadBooleanString((string)Value); case JsonToken.Boolean: return (bool)Value; default: throw JsonReaderException.Create(this, "Error reading boolean. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, contentToken)); } } internal bool? ReadBooleanString(string? s) { if (StringUtils.IsNullOrEmpty(s)) { SetToken(JsonToken.Null, null, updateIndex: false); return null; } if (bool.TryParse(s, out var result)) { SetToken(JsonToken.Boolean, result, updateIndex: false); return result; } SetToken(JsonToken.String, s, updateIndex: false); throw JsonReaderException.Create(this, "Could not convert string to boolean: {0}.".FormatWith(CultureInfo.InvariantCulture, s)); } public virtual decimal? ReadAsDecimal() { JsonToken contentToken = GetContentToken(); switch (contentToken) { case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.Integer: case JsonToken.Float: { object value = Value; if (value is decimal) { return (decimal)value; } decimal num; if (value is BigInteger bigInteger) { num = (decimal)bigInteger; } else { try { num = Convert.ToDecimal(value, CultureInfo.InvariantCulture); } catch (Exception ex) { throw JsonReaderException.Create(this, "Could not convert to decimal: {0}.".FormatWith(CultureInfo.InvariantCulture, value), ex); } } SetToken(JsonToken.Float, num, updateIndex: false); return num; } case JsonToken.String: return ReadDecimalString((string)Value); default: throw JsonReaderException.Create(this, "Error reading decimal. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, contentToken)); } } internal decimal? ReadDecimalString(string? s) { if (StringUtils.IsNullOrEmpty(s)) { SetToken(JsonToken.Null, null, updateIndex: false); return null; } if (decimal.TryParse(s, NumberStyles.Number, Culture, out var result)) { SetToken(JsonToken.Float, result, updateIndex: false); return result; } if (ConvertUtils.DecimalTryParse(s.ToCharArray(), 0, s.Length, out result) == ParseResult.Success) { SetToken(JsonToken.Float, result, updateIndex: false); return result; } SetToken(JsonToken.String, s, updateIndex: false); throw JsonReaderException.Create(this, "Could not convert string to decimal: {0}.".FormatWith(CultureInfo.InvariantCulture, s)); } public virtual DateTime? ReadAsDateTime() { switch (GetContentToken()) { case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.Date: if (Value is DateTimeOffset dateTimeOffset) { SetToken(JsonToken.Date, dateTimeOffset.DateTime, updateIndex: false); } return (DateTime)Value; case JsonToken.String: return ReadDateTimeString((string)Value); default: throw JsonReaderException.Create(this, "Error reading date. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, TokenType)); } } internal DateTime? ReadDateTimeString(string? s) { if (StringUtils.IsNullOrEmpty(s)) { SetToken(JsonToken.Null, null, updateIndex: false); return null; } if (DateTimeUtils.TryParseDateTime(s, DateTimeZoneHandling, _dateFormatString, Culture, out var dt)) { dt = DateTimeUtils.EnsureDateTime(dt, DateTimeZoneHandling); SetToken(JsonToken.Date, dt, updateIndex: false); return dt; } if (DateTime.TryParse(s, Culture, DateTimeStyles.RoundtripKind, out dt)) { dt = DateTimeUtils.EnsureDateTime(dt, DateTimeZoneHandling); SetToken(JsonToken.Date, dt, updateIndex: false); return dt; } throw JsonReaderException.Create(this, "Could not convert string to DateTime: {0}.".FormatWith(CultureInfo.InvariantCulture, s)); } public virtual DateTimeOffset? ReadAsDateTimeOffset() { JsonToken contentToken = GetContentToken(); switch (contentToken) { case JsonToken.None: case JsonToken.Null: case JsonToken.EndArray: return null; case JsonToken.Date: if (Value is DateTime dateTime) { SetToken(JsonToken.Date, new DateTimeOffset(dateTime), updateIndex: false); } return (DateTimeOffset)Value; case JsonToken.String: { string s = (string)Value; return ReadDateTimeOffsetString(s); } default: throw JsonReaderException.Create(this, "Error reading date. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, contentToken)); } } internal DateTimeOffset? ReadDateTimeOffsetString(string? s) { if (StringUtils.IsNullOrEmpty(s)) { SetToken(JsonToken.Null, null, updateIndex: false); return null; } if (DateTimeUtils.TryParseDateTimeOffset(s, _dateFormatString, Culture, out var dt)) { SetToken(JsonToken.Date, dt, updateIndex: false); return dt; } if (DateTimeOffset.TryParse(s, Culture, DateTimeStyles.RoundtripKind, out dt)) { SetToken(JsonToken.Date, dt, updateIndex: false); return dt; } SetToken(JsonToken.String, s, updateIndex: false); throw JsonReaderException.Create(this, "Could not convert string to DateTimeOffset: {0}.".FormatWith(CultureInfo.InvariantCulture, s)); } internal void ReaderReadAndAssert() { if (!Read()) { throw CreateUnexpectedEndException(); } } internal JsonReaderException CreateUnexpectedEndException() { return JsonReaderException.Create(this, "Unexpected end when reading JSON."); } internal void ReadIntoWrappedTypeObject() { ReaderReadAndAssert(); if (Value != null && Value.ToString() == "$type") { ReaderReadAndAssert(); if (Value != null && Value.ToString().StartsWith("System.Byte[]", StringComparison.Ordinal)) { ReaderReadAndAssert(); if (Value.ToString() == "$value") { return; } } } throw JsonReaderException.Create(this, "Error reading bytes. Unexpected token: {0}.".FormatWith(CultureInfo.InvariantCulture, JsonToken.StartObject)); } public void Skip() { if (TokenType == JsonToken.PropertyName) { Read(); } if (JsonTokenUtils.IsStartToken(TokenType)) { int depth = Depth; while (Read() && depth < Depth) { } } } protected void SetToken(JsonToken newToken) { SetToken(newToken, null, updateIndex: true); } protected void SetToken(JsonToken newToken, object? value) { SetToken(newToken, value, updateIndex: true); } protected void SetToken(JsonToken newToken, object? value, bool updateIndex) { _tokenType = newToken; _value = value; switch (newToken) { case JsonToken.StartObject: _currentState = State.ObjectStart; Push(JsonContainerType.Object); break; case JsonToken.StartArray: _currentState = State.ArrayStart; Push(JsonContainerType.Array); break; case JsonToken.StartConstructor: _currentState = State.ConstructorStart; Push(JsonContainerType.Constructor); break; case JsonToken.EndObject: ValidateEnd(JsonToken.EndObject); break; case JsonToken.EndArray: ValidateEnd(JsonToken.EndArray); break; case JsonToken.EndConstructor: ValidateEnd(JsonToken.EndConstructor); break; case JsonToken.PropertyName: _currentState = State.Property; _currentPosition.PropertyName = (string)value; break; case JsonToken.Raw: case JsonToken.Integer: case JsonToken.Float: case JsonToken.String: case JsonToken.Boolean: case JsonToken.Null: case JsonToken.Undefined: case JsonToken.Date: case JsonToken.Bytes: SetPostValueState(updateIndex); break; case JsonToken.Comment: break; } } internal void SetPostValueState(bool updateIndex) { if (Peek() != 0 || SupportMultipleContent) { _currentState = State.PostValue; } else { SetFinished(); } if (updateIndex) { UpdateScopeWithFinishedValue(); } } private void UpdateScopeWithFinishedValue() { if (_currentPosition.HasIndex) { _currentPosition.Position++; } } private void ValidateEnd(JsonToken endToken) { JsonContainerType jsonContainerType = Pop(); if (GetTypeForCloseToken(endToken) != jsonContainerType) { throw JsonReaderException.Create(this, "JsonToken {0} is not valid for closing JsonType {1}.".FormatWith(CultureInfo.InvariantCulture, endToken, jsonContainerType)); } if (Peek() != 0 || SupportMultipleContent) { _currentState = State.PostValue; } else { SetFinished(); } } protected void SetStateBasedOnCurrent() { JsonContainerType jsonContainerType = Peek(); switch (jsonContainerType) { case JsonContainerType.Object: _currentState = State.Object; break; case JsonContainerType.Array: _currentState = State.Array; break; case JsonContainerType.Constructor: _currentState = State.Constructor; break; case JsonContainerType.None: SetFinished(); break; default: throw JsonReaderException.Create(this, "While setting the reader state back to current object an unexpected JsonType was encountered: {0}".FormatWith(CultureInfo.InvariantCulture, jsonContainerType)); } } private void SetFinished() { _currentState = ((!SupportMultipleContent) ? State.Finished : State.Start); } private JsonContainerType GetTypeForCloseToken(JsonToken token) { return token switch { JsonToken.EndObject => JsonContainerType.Object, JsonToken.EndArray => JsonContainerType.Array, JsonToken.EndConstructor => JsonContainerType.Constructor, _ => throw JsonReaderException.Create(this, "Not a valid close JsonToken: {0}".FormatWith(CultureInfo.InvariantCulture, token)), }; } void IDisposable.Dispose() { Dispose(disposing: true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (_currentState != State.Closed && disposing) { Close(); } } public virtual void Close() { _currentState = State.Closed; _tokenType = JsonToken.None; _value = null; } internal void ReadAndAssert() { if (!Read()) { throw JsonSerializationException.Create(this, "Unexpected end when reading JSON."); } } internal void ReadForTypeAndAssert(JsonContract? contract, bool hasConverter) { if (!ReadForType(contract, hasConverter)) { throw JsonSerializationException.Create(this, "Unexpected end when reading JSON."); } } internal bool ReadForType(JsonContract? contract, bool hasConverter) { if (hasConverter) { return Read(); } switch (contract?.InternalReadType ?? ReadType.Read) { case ReadType.Read: return ReadAndMoveToContent(); case ReadType.ReadAsInt32: ReadAsInt32(); break; case ReadType.ReadAsInt64: { bool result = ReadAndMoveToContent(); if (TokenType == JsonToken.Undefined) { throw JsonReaderException.Create(this, "An undefined token is not a valid {0}.".FormatWith(CultureInfo.InvariantCulture, contract?.UnderlyingType ?? typeof(long))); } return result; } case ReadType.ReadAsDecimal: ReadAsDecimal(); break; case ReadType.ReadAsDouble: ReadAsDouble(); break; case ReadType.ReadAsBytes: ReadAsBytes(); break; case ReadType.ReadAsBoolean: ReadAsBoolean(); break; case ReadType.ReadAsString: ReadAsString(); break; case ReadType.ReadAsDateTime: ReadAsDateTime(); break; case ReadType.ReadAsDateTimeOffset: ReadAsDateTimeOffset(); break; default: throw new ArgumentOutOfRangeException(); } return TokenType != JsonToken.None; } internal bool ReadAndMoveToContent() { if (Read()) { return MoveToContent(); } return false; } internal bool MoveToContent() { JsonToken tokenType = TokenType; while (tokenType == JsonToken.None || tokenType == JsonToken.Comment) { if (!Read()) { return false; } tokenType = TokenType; } return true; } private JsonToken GetContentToken() { JsonToken tokenType; do { if (!Read()) { SetToken(JsonToken.None); return JsonToken.None; } tokenType = TokenType; } while (tokenType == JsonToken.Comment); return tokenType; } } [Serializable] public class JsonReaderException : JsonException { public int LineNumber { get; } public int LinePosition { get; } public string? Path { get; } public JsonReaderException() { } public JsonReaderException(string message) : base(message) { } public JsonReaderException(string message, Exception innerException) : base(message, innerException) { } public JsonReaderException(SerializationInfo info, StreamingContext context) : base(info, context) { } public JsonReaderException(string message, string path, int lineNumber, int linePosition, Exception? innerException) : base(message, innerException) { Path = path; LineNumber = lineNumber; LinePosition = linePosition; } internal static JsonReaderException Create(JsonReader reader, string message) { return Create(reader, message, null); } internal static JsonReaderException Create(JsonReader reader, string message, Exception? ex) { return Create(reader as IJsonLineInfo, reader.Path, message, ex); } internal static JsonReaderException Create(IJsonLineInfo? lineInfo, string path, string message, Exception? ex) { message = JsonPosition.FormatMessage(lineInfo, path, message); int lineNumber; int linePosition; if (lineInfo != null && lineInfo.HasLineInfo()) { lineNumber = lineInfo.LineNumber; linePosition = lineInfo.LinePosition; } else { lineNumber = 0; linePosition = 0; } return new JsonReaderException(message, path, lineNumber, linePosition, ex); } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false)] public sealed class JsonRequiredAttribute : Attribute { } [Serializable] public class JsonSerializationException : JsonException { public int LineNumber { get; } public int LinePosition { get; } public string? Path { get; } public JsonSerializationException() { } public JsonSerializationException(string message) : base(message) { } public JsonSerializationException(string message, Exception innerException) : base(message, innerException) { } public JsonSerializationException(SerializationInfo info, StreamingContext context) : base(info, context) { } public JsonSerializationException(string message, string path, int lineNumber, int linePosition, Exception? innerException) : base(message, innerException) { Path = path; LineNumber = lineNumber; LinePosition = linePosition; } internal static JsonSerializationException Create(JsonReader reader, string message) { return Create(reader, message, null); } internal static JsonSerializationException Create(JsonReader reader, string message, Exception? ex) { return Create(reader as IJsonLineInfo, reader.Path, message, ex); } internal static JsonSerializationException Create(IJsonLineInfo? lineInfo, string path, string message, Exception? ex) { message = JsonPosition.FormatMessage(lineInfo, path, message); int lineNumber; int linePosition; if (lineInfo != null && lineInfo.HasLineInfo()) { lineNumber = lineInfo.LineNumber; linePosition = lineInfo.LinePosition; } else { lineNumber = 0; linePosition = 0; } return new JsonSerializationException(message, path, lineNumber, linePosition, ex); } } public class JsonSerializer { internal TypeNameHandling _typeNameHandling; internal TypeNameAssemblyFormatHandling _typeNameAssemblyFormatHandling; internal PreserveReferencesHandling _preserveReferencesHandling; internal ReferenceLoopHandling _referenceLoopHandling; internal MissingMemberHandling _missingMemberHandling; internal ObjectCreationHandling _objectCreationHandling; internal NullValueHandling _nullValueHandling; internal DefaultValueHandling _defaultValueHandling; internal ConstructorHandling _constructorHandling; internal MetadataPropertyHandling _metadataPropertyHandling; internal JsonConverterCollection? _converters; internal IContractResolver _contractResolver; internal ITraceWriter? _traceWriter; internal IEqualityComparer? _equalityComparer; internal ISerializationBinder _serializationBinder; internal StreamingContext _context; private IReferenceResolver? _referenceResolver; private Formatting? _formatting; private DateFormatHandling? _dateFormatHandling; private DateTimeZoneHandling? _dateTimeZoneHandling; private DateParseHandling? _dateParseHandling; private FloatFormatHandling? _floatFormatHandling; private FloatParseHandling? _floatParseHandling; private StringEscapeHandling? _stringEscapeHandling; private CultureInfo _culture; private int? _maxDepth; private bool _maxDepthSet; private bool? _checkAdditionalContent; private string? _dateFormatString; private bool _dateFormatStringSet; public virtual IReferenceResolver? ReferenceResolver { get { return GetReferenceResolver(); } set { if (value == null) { throw new ArgumentNullException("value", "Reference resolver cannot be null."); } _referenceResolver = value; } } [Obsolete("Binder is obsolete. Use SerializationBinder instead.")] public virtual SerializationBinder Binder { get { if (_serializationBinder is SerializationBinder result) { return result; } if (_serializationBinder is SerializationBinderAdapter serializationBinderAdapter) { return serializationBinderAdapter.SerializationBinder; } throw new InvalidOperationException("Cannot get SerializationBinder because an ISerializationBinder was previously set."); } set { if (value == null) { throw new ArgumentNullException("value", "Serialization binder cannot be null."); } _serializationBinder = (value as ISerializationBinder) ?? new SerializationBinderAdapter(value); } } public virtual ISerializationBinder SerializationBinder { get { return _serializationBinder; } set { if (value == null) { throw new ArgumentNullException("value", "Serialization binder cannot be null."); } _serializationBinder = value; } } public virtual ITraceWriter? TraceWriter { get { return _traceWriter; } set { _traceWriter = value; } } public virtual IEqualityComparer? EqualityComparer { get { return _equalityComparer; } set { _equalityComparer = value; } } public virtual TypeNameHandling TypeNameHandling { get { return _typeNameHandling; } set { if (value < TypeNameHandling.None || value > TypeNameHandling.Auto) { throw new ArgumentOutOfRangeException("value"); } _typeNameHandling = value; } } [Obsolete("TypeNameAssemblyFormat is obsolete. Use TypeNameAssemblyFormatHandling instead.")] public virtual FormatterAssemblyStyle TypeNameAssemblyFormat { get { return (FormatterAssemblyStyle)_typeNameAssemblyFormatHandling; } set { if (value < FormatterAssemblyStyle.Simple || value > FormatterAssemblyStyle.Full) { throw new ArgumentOutOfRangeException("value"); } _typeNameAssemblyFormatHandling = (TypeNameAssemblyFormatHandling)value; } } public virtual TypeNameAssemblyFormatHandling TypeNameAssemblyFormatHandling { get { return _typeNameAssemblyFormatHandling; } set { if (value < TypeNameAssemblyFormatHandling.Simple || value > TypeNameAssemblyFormatHandling.Full) { throw new ArgumentOutOfRangeException("value"); } _typeNameAssemblyFormatHandling = value; } } public virtual PreserveReferencesHandling PreserveReferencesHandling { get { return _preserveReferencesHandling; } set { if (value < PreserveReferencesHandling.None || value > PreserveReferencesHandling.All) { throw new ArgumentOutOfRangeException("value"); } _preserveReferencesHandling = value; } } public virtual ReferenceLoopHandling ReferenceLoopHandling { get { return _referenceLoopHandling; } set { if (value < ReferenceLoopHandling.Error || value > ReferenceLoopHandling.Serialize) { throw new ArgumentOutOfRangeException("value"); } _referenceLoopHandling = value; } } public virtual MissingMemberHandling MissingMemberHandling { get { return _missingMemberHandling; } set { if (value < MissingMemberHandling.Ignore || value > MissingMemberHandling.Error) { throw new ArgumentOutOfRangeException("value"); } _missingMemberHandling = value; } } public virtual NullValueHandling NullValueHandling { get { return _nullValueHandling; } set { if (value < NullValueHandling.Include || value > NullValueHandling.Ignore) { throw new ArgumentOutOfRangeException("value"); } _nullValueHandling = value; } } public virtual DefaultValueHandling DefaultValueHandling { get { return _defaultValueHandling; } set { if (value < DefaultValueHandling.Include || value > DefaultValueHandling.IgnoreAndPopulate) { throw new ArgumentOutOfRangeException("value"); } _defaultValueHandling = value; } } public virtual ObjectCreationHandling ObjectCreationHandling { get { return _objectCreationHandling; } set { if (value < ObjectCreationHandling.Auto || value > ObjectCreationHandling.Replace) { throw new ArgumentOutOfRangeException("value"); } _objectCreationHandling = value; } } public virtual ConstructorHandling ConstructorHandling { get { return _constructorHandling; } set { if (value < ConstructorHandling.Default || value > ConstructorHandling.AllowNonPublicDefaultConstructor) { throw new ArgumentOutOfRangeException("value"); } _constructorHandling = value; } } public virtual MetadataPropertyHandling MetadataPropertyHandling { get { return _metadataPropertyHandling; } set { if (value < MetadataPropertyHandling.Default || value > MetadataPropertyHandling.Ignore) { throw new ArgumentOutOfRangeException("value"); } _metadataPropertyHandling = value; } } public virtual JsonConverterCollection Converters { get { if (_converters == null) { _converters = new JsonConverterCollection(); } return _converters; } } public virtual IContractResolver ContractResolver { get { return _contractResolver; } set { _contractResolver = value ?? DefaultContractResolver.Instance; } } public virtual StreamingContext Context { get { return _context; } set { _context = value; } } public virtual Formatting Formatting { get { return _formatting.GetValueOrDefault(); } set { _formatting = value; } } public virtual DateFormatHandling DateFormatHandling { get { return _dateFormatHandling.GetValueOrDefault(); } set { _dateFormatHandling = value; } } public virtual DateTimeZoneHandling DateTimeZoneHandling { get { return _dateTimeZoneHandling ?? DateTimeZoneHandling.RoundtripKind; } set { _dateTimeZoneHandling = value; } } public virtual DateParseHandling DateParseHandling { get { return _dateParseHandling ?? DateParseHandling.DateTime; } set { _dateParseHandling = value; } } public virtual FloatParseHandling FloatParseHandling { get { return _floatParseHandling.GetValueOrDefault(); } set { _floatParseHandling = value; } } public virtual FloatFormatHandling FloatFormatHandling { get { return _floatFormatHandling.GetValueOrDefault(); } set { _floatFormatHandling = value; } } public virtual StringEscapeHandling StringEscapeHandling { get { return _stringEscapeHandling.GetValueOrDefault(); } set { _stringEscapeHandling = value; } } public virtual string DateFormatString { get { return _dateFormatString ?? "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"; } set { _dateFormatString = value; _dateFormatStringSet = true; } } public virtual CultureInfo Culture { get { return _culture ?? JsonSerializerSettings.DefaultCulture; } set { _culture = value; } } public virtual int? MaxDepth { get { return _maxDepth; } set { if (value <= 0) { throw new ArgumentException("Value must be positive.", "value"); } _maxDepth = value; _maxDepthSet = true; } } public virtual bool CheckAdditionalContent { get { return _checkAdditionalContent.GetValueOrDefault(); } set { _checkAdditionalContent = value; } } public virtual event EventHandler<Newtonsoft.Json.Serialization.ErrorEventArgs>? Error; internal bool IsCheckAdditionalContentSet() { return _checkAdditionalContent.HasValue; } public JsonSerializer() { _referenceLoopHandling = ReferenceLoopHandling.Error; _missingMemberHandling = MissingMemberHandling.Ignore; _nullValueHandling = NullValueHandling.Include; _defaultValueHandling = DefaultValueHandling.Include; _objectCreationHandling = ObjectCreationHandling.Auto; _preserveReferencesHandling = PreserveReferencesHandling.None; _constructorHandling = ConstructorHandling.Default; _typeNameHandling = TypeNameHandling.None; _metadataPropertyHandling = MetadataPropertyHandling.Default; _context = JsonSerializerSettings.DefaultContext; _serializationBinder = DefaultSerializationBinder.Instance; _culture = JsonSerializerSettings.DefaultCulture; _contractResolver = DefaultContractResolver.Instance; } public static JsonSerializer Create() { return new JsonSerializer(); } public static JsonSerializer Create(JsonSerializerSettings? settings) { JsonSerializer jsonSerializer = Create(); if (settings != null) { ApplySerializerSettings(jsonSerializer, settings); } return jsonSerializer; } public static JsonSerializer CreateDefault() { return Create(JsonConvert.DefaultSettings?.Invoke()); } public static JsonSerializer CreateDefault(JsonSerializerSettings? settings) { JsonSerializer jsonSerializer = CreateDefault(); if (settings != null) { ApplySerializerSettings(jsonSerializer, settings); } return jsonSerializer; } private static void ApplySerializerSettings(JsonSerializer serializer, JsonSerializerSettings settings) { if (!CollectionUtils.IsNullOrEmpty(settings.Converters)) { for (int i = 0; i < settings.Converters.Count; i++) { serializer.Converters.Insert(i, settings.Converters[i]); } } if (settings._typeNameHandling.HasValue) { serializer.TypeNameHandling = settings.TypeNameHandling; } if (settings._metadataPropertyHandling.HasValue) { serializer.MetadataPropertyHandling = settings.MetadataPropertyHandling; } if (settings._typeNameAssemblyFormatHandling.HasValue) { serializer.TypeNameAssemblyFormatHandling = settings.TypeNameAssemblyFormatHandling; } if (settings._preserveReferencesHandling.HasValue) { serializer.PreserveReferencesHandling = settings.PreserveReferencesHandling; } if (settings._referenceLoopHandling.HasValue) { serializer.ReferenceLoopHandling = settings.ReferenceLoopHandling; } if (settings._missingMemberHandling.HasValue) { serializer.MissingMemberHandling = settings.MissingMemberHandling; } if (settings._objectCreationHandling.HasValue) { serializer.ObjectCreationHandling = settings.ObjectCreationHandling; } if (settings._nullValueHandling.HasValue) { serializer.NullValueHandling = settings.NullValueHandling; } if (settings._defaultValueHandling.HasValue) { serializer.DefaultValueHandling = settings.DefaultValueHandling; } if (settings._constructorHandling.HasValue) { serializer.ConstructorHandling = settings.ConstructorHandling; } if (settings._context.HasValue) { serializer.Context = settings.Context; } if (settings._checkAdditionalContent.HasValue) { serializer._checkAdditionalContent = settings._checkAdditionalContent; } if (settings.Error != null) { serializer.Error += settings.Error; } if (settings.ContractResolver != null) { serializer.ContractResolver = settings.ContractResolver; } if (settings.ReferenceResolverProvider != null) { serializer.ReferenceResolver = settings.ReferenceResolverProvider(); } if (settings.TraceWriter != null) { serializer.TraceWriter = settings.TraceWriter; } if (settings.EqualityComparer != null) { serializer.EqualityComparer = settings.EqualityComparer; } if (settings.SerializationBinder != null) { serializer.SerializationBinder = settings.SerializationBinder; } if (settings._formatting.HasValue) { serializer._formatting = settings._formatting; } if (settings._dateFormatHandling.HasValue) { serializer._dateFormatHandling = settings._dateFormatHandling; } if (settings._dateTimeZoneHandling.HasValue) { serializer._dateTimeZoneHandling = settings._dateTimeZoneHandling; } if (settings._dateParseHandling.HasValue) { serializer._dateParseHandling = settings._dateParseHandling; } if (settings._dateFormatStringSet) { serializer._dateFormatString = settings._dateFormatString; serializer._dateFormatStringSet = settings._dateFormatStringSet; } if (settings._floatFormatHandling.HasValue) { serializer._floatFormatHandling = settings._floatFormatHandling; } if (settings._floatParseHandling.HasValue) { serializer._floatParseHandling = settings._floatParseHandling; } if (settings._stringEscapeHandling.HasValue) { serializer._stringEscapeHandling = settings._stringEscapeHandling; } if (settings._culture != null) { serializer._culture = settings._culture; } if (settings._maxDepthSet) { serializer._maxDepth = settings._maxDepth; serializer._maxDepthSet = settings._maxDepthSet; } } [DebuggerStepThrough] public void Populate(TextReader reader, object target) { Populate(new JsonTextReader(reader), target); } [DebuggerStepThrough] public void Populate(JsonReader reader, object target) { PopulateInternal(reader, target); } internal virtual void PopulateInternal(JsonReader reader, object target) { ValidationUtils.ArgumentNotNull(reader, "reader"); ValidationUtils.ArgumentNotNull(target, "target"); SetupReader(reader, out CultureInfo previousCulture, out DateTimeZoneHandling? previousDateTimeZoneHandling, out DateParseHandling? previousDateParseHandling, out FloatParseHandling? previousFloatParseHandling, out int? previousMaxDepth, out string previousDateFormatString); TraceJsonReader traceJsonReader = ((TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose) ? CreateTraceJsonReader(reader) : null); new JsonSerializerInternalReader(this).Populate(traceJsonReader ?? reader, target); if (traceJsonReader != null) { TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null); } ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString); } [DebuggerStepThrough] public object? Deserialize(JsonReader reader) { return Deserialize(reader, null); } [DebuggerStepThrough] public object? Deserialize(TextReader reader, Type objectType) { return Deserialize(new JsonTextReader(reader), objectType); } [DebuggerStepThrough] public T? Deserialize<T>(JsonReader reader) { return (T)Deserialize(reader, typeof(T)); } [DebuggerStepThrough] public object? Deserialize(JsonReader reader, Type? objectType) { return DeserializeInternal(reader, objectType); } internal virtual object? DeserializeInternal(JsonReader reader, Type? objectType) { ValidationUtils.ArgumentNotNull(reader, "reader"); SetupReader(reader, out CultureInfo previousCulture, out DateTimeZoneHandling? previousDateTimeZoneHandling, out DateParseHandling? previousDateParseHandling, out FloatParseHandling? previousFloatParseHandling, out int? previousMaxDepth, out string previousDateFormatString); TraceJsonReader traceJsonReader = ((TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose) ? CreateTraceJsonReader(reader) : null); object? result = new JsonSerializerInternalReader(this).Deserialize(traceJsonReader ?? reader, objectType, CheckAdditionalContent); if (traceJsonReader != null) { TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null); } ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString); return result; } internal void SetupReader(JsonReader reader, out CultureInfo? previousCulture, out DateTimeZoneHandling? previousDateTimeZoneHandling, out DateParseHandling? previousDateParseHandling, out FloatParseHandling? previousFloatParseHandling, out int? previousMaxDepth, out string? previousDateFormatString) { if (_culture != null && !_culture.Equals(reader.Culture)) { previousCulture = reader.Culture; reader.Culture = _culture; } else { previousCulture = null; } if (_dateTimeZoneHandling.HasValue && reader.DateTimeZoneHandling != _dateTimeZoneHandling) { previousDateTimeZoneHandling = reader.DateTimeZoneHandling; reader.DateTimeZoneHandling = _dateTimeZoneHandling.GetValueOrDefault(); } else { previousDateTimeZoneHandling = null; } if (_dateParseHandling.HasValue && reader.DateParseHandling != _dateParseHandling) { previousDateParseHandling = reader.DateParseHandling; reader.DateParseHandling = _dateParseHandling.GetValueOrDefault(); } else { previousDateParseHandling = null; } if (_floatParseHandling.HasValue && reader.FloatParseHandling != _floatParseHandling) { previousFloatParseHandling = reader.FloatParseHandling; reader.FloatParseHandling = _floatParseHandling.GetValueOrDefault(); } else { previousFloatParseHandling = null; } if (_maxDepthSet && reader.MaxDepth != _maxDepth) { previousMaxDepth = reader.MaxDepth; reader.MaxDepth = _maxDepth; } else { previousMaxDepth = null; } if (_dateFormatStringSet && reader.DateFormatString != _dateFormatString) { previousDateFormatString = reader.DateFormatString; reader.DateFormatString = _dateFormatString; } else { previousDateFormatString = null; } if (reader is JsonTextReader jsonTextReader && jsonTextReader.PropertyNameTable == null && _contractResolver is DefaultContractResolver defaultContractResolver) { jsonTextReader.PropertyNameTable = defaultContractResolver.GetNameTable(); } } private void ResetReader(JsonReader reader, CultureInfo? previousCulture, DateTimeZoneHandling? previousDateTimeZoneHandling, DateParseHandling? previousDateParseHandling, FloatParseHandling? previousFloatParseHandling, int? previousMaxDepth, string? previousDateFormatString) { if (previousCulture != null) { reader.Culture = previousCulture; } if (previousDateTimeZoneHandling.HasValue) { reader.DateTimeZoneHandling = previousDateTimeZoneHandling.GetValueOrDefault(); } if (previousDateParseHandling.HasValue) { reader.DateParseHandling = previousDateParseHandling.GetValueOrDefault(); } if (previousFloatParseHandling.HasValue) { reader.FloatParseHandling = previousFloatParseHandling.GetValueOrDefault(); } if (_maxDepthSet) { reader.MaxDepth = previousMaxDepth; } if (_dateFormatStringSet) { reader.DateFormatString = previousDateFormatString; } if (reader is JsonTextReader jsonTextReader && jsonTextReader.PropertyNameTable != null && _contractResolver is DefaultContractResolver defaultContractResolver && jsonTextReader.PropertyNameTable == defaultContractResolver.GetNameTable()) { jsonTextReader.PropertyNameTable = null; } } public void Serialize(TextWriter textWriter, object? value) { Serialize(new JsonTextWriter(textWriter), value); } public void Serialize(JsonWriter jsonWriter, object? value, Type? objectType) { SerializeInternal(jsonWriter, value, objectType); } public void Serialize(TextWriter textWriter, object? value, Type objectType) { Serialize(new JsonTextWriter(textWriter), value, objectType); } public void Serialize(JsonWriter jsonWriter, object? value) { SerializeInternal(jsonWriter, value, null); } private TraceJsonReader CreateTraceJsonReader(JsonReader reader) { TraceJsonReader traceJsonReader = new TraceJsonReader(reader); if (reader.TokenType != 0) { traceJsonReader.WriteCurrentToken(); } return traceJsonReader; } internal virtual void SerializeInternal(JsonWriter jsonWriter, object? value, Type? objectType) { ValidationUtils.ArgumentNotNull(jsonWriter, "jsonWriter"); Formatting? formatting = null; if (_formatting.HasValue && jsonWriter.Formatting != _formatting) { formatting = jsonWriter.Formatting; jsonWriter.Formatting = _formatting.GetValueOrDefault(); } DateFormatHandling? dateFormatHandling = null; if (_dateFormatHandling.HasValue && jsonWriter.DateFormatHandling != _dateFormatHandling) { dateFormatHandling = jsonWriter.DateFormatHandling; jsonWriter.DateFormatHandling = _dateFormatHandling.GetValueOrDefault(); } DateTimeZoneHandling? dateTimeZoneHandling = null; if (_dateTimeZoneHandling.HasValue && jsonWriter.DateTimeZoneHandling != _dateTimeZoneHandling) { dateTimeZoneHandling = jsonWriter.DateTimeZoneHandling; jsonWriter.DateTimeZoneHandling = _dateTimeZoneHandling.GetValueOrDefault(); } FloatFormatHandling? floatFormatHandling = null; if (_floatFormatHandling.HasValue && jsonWriter.FloatFormatHandling != _floatFormatHandling) { floatFormatHandling = jsonWriter.FloatFormatHandling; jsonWriter.FloatFormatHandling = _floatFormatHandling.GetValueOrDefault(); } StringEscapeHandling? stringEscapeHandling = null; if (_stringEscapeHandling.HasValue && jsonWriter.StringEscapeHandling != _stringEscapeHandling) { stringEscapeHandling = jsonWriter.StringEscapeHandling; jsonWriter.StringEscapeHandling = _stringEscapeHandling.GetValueOrDefault(); } CultureInfo cultureInfo = null; if (_culture != null && !_culture.Equals(jsonWriter.Culture)) { cultureInfo = jsonWriter.Culture; jsonWriter.Culture = _culture; } string dateFormatString = null; if (_dateFormatStringSet && jsonWriter.DateFormatString != _dateFormatString) { dateFormatString = jsonWriter.DateFormatString; jsonWriter.DateFormatString = _dateFormatString; } TraceJsonWriter traceJsonWriter = ((TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose) ? new TraceJsonWriter(jsonWriter) : null); new JsonSerializerInternalWriter(this).Serialize(traceJsonWriter ?? jsonWriter, value, objectType); if (traceJsonWriter != null) { TraceWriter.Trace(TraceLevel.Verbose, traceJsonWriter.GetSerializedJsonMessage(), null); } if (formatting.HasValue) { jsonWriter.Formatting = formatting.GetValueOrDefault(); } if (dateFormatHandling.HasValue) { jsonWriter.DateFormatHandling = dateFormatHandling.GetValueOrDefault(); } if (dateTimeZoneHandling.HasValue) { jsonWriter.DateTimeZoneHandling = dateTimeZoneHandling.GetValueOrDefault(); } if (floatFormatHandling.HasValue) { jsonWriter.FloatFormatHandling = floatFormatHandling.GetValueOrDefault(); } if (stringEscapeHandling.HasValue) { jsonWriter.StringEscapeHandling = stringEscapeHandling.GetValueOrDefault(); } if (_dateFormatStringSet) { jsonWriter.DateFormatString = dateFormatString; } if (cultureInfo != null) { jsonWriter.Culture = cultureInfo; } } internal IReferenceResolver GetReferenceResolver() { if (_referenceResolver == null) { _referenceResolver = new DefaultReferenceResolver(); } return _referenceResolver; } internal JsonConverter? GetMatchingConverter(Type type) { return GetMatchingConverter(_converters, type); } internal static JsonConverter? GetMatchingConverter(IList<JsonConverter>? converters, Type objectType) { if (converters != null) { for (int i = 0; i < converters.Count; i++) { JsonConverter jsonConverter = converters[i]; if (jsonConverter.CanConvert(objectType)) { return jsonConverter; } } } return null; } internal void OnError(Newtonsoft.Json.Serialization.ErrorEventArgs e) { this.Error?.Invoke(this, e); } } public class JsonSerializerSettings { internal const ReferenceLoopHandling DefaultReferenceLoopHandling = ReferenceLoopHandling.Error; internal const MissingMemberHandling DefaultMissingMemberHandling = MissingMemberHandling.Ignore; internal const NullValueHandling DefaultNullValueHandling = NullValueHandling.Include; internal const DefaultValueHandling DefaultDefaultValueHandling = DefaultValueHandling.Include; internal const ObjectCreationHandling DefaultObjectCreationHandling = ObjectCreationHandling.Auto; internal const PreserveReferencesHandling DefaultPreserveReferencesHandling = PreserveReferencesHandling.None; internal const ConstructorHandling DefaultConstructorHandling = ConstructorHandling.Default; internal const TypeNameHandling DefaultTypeNameHandling = TypeNameHandling.None; internal const MetadataPropertyHandling DefaultMetadataPropertyHandling = MetadataPropertyHandling.Default; internal static readonly StreamingContext DefaultContext; internal const Formatting DefaultFormatting = Formatting.None; internal const DateFormatHandling DefaultDateFormatHandling = DateFormatHandling.IsoDateFormat; internal const DateTimeZoneHandling DefaultDateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind; internal const DateParseHandling DefaultDateParseHandling = DateParseHandling.DateTime; internal const FloatParseHandling DefaultFloatParseHandling = FloatParseHandling.Double; internal const FloatFormatHandling DefaultFloatFormatHandling = FloatFormatHandling.String; internal const StringEscapeHandling DefaultStringEscapeHandling = StringEscapeHandling.Default; internal const TypeNameAssemblyFormatHandling DefaultTypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Simple; internal static readonly CultureInfo DefaultCulture; internal const bool DefaultCheckAdditionalContent = false; internal const string DefaultDateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"; internal const int DefaultMaxDepth = 64; internal Formatting? _formatting; internal DateFormatHandling? _dateFormatHandling; internal DateTimeZoneHandling? _dateTimeZoneHandling; internal DateParseHandling? _dateParseHandling; internal FloatFormatHandling? _floatFormatHandling; internal FloatParseHandling? _floatParseHandling; internal StringEscapeHandling? _stringEscapeHandling; internal CultureInfo? _culture; internal bool? _checkAdditionalContent; internal int? _maxDepth; internal bool _maxDepthSet; internal string? _dateFormatString; internal bool _dateFormatStringSet; internal TypeNameAssemblyFormatHandling? _typeNameAssemblyFormatHandling; internal DefaultValueHandling? _defaultValueHandling; internal PreserveReferencesHandling? _preserveReferencesHandling; internal NullValueHandling? _nullValueHandling; internal ObjectCreationHandling? _objectCreationHandling; internal MissingMemberHandling? _missingMemberHandling; internal ReferenceLoopHandling? _referenceLoopHandling; internal StreamingContext? _context; internal ConstructorHandling? _constructorHandling; internal TypeNameHandling? _typeNameHandling; internal MetadataPropertyHandling? _metadataPropertyHandling; public ReferenceLoopHandling ReferenceLoopHandling { get { return _referenceLoopHandling.GetValueOrDefault(); } set { _referenceLoopHandling = value; } } public MissingMemberHandling MissingMemberHandling { get { return _missingMemberHandling.GetValueOrDefault(); } set { _missingMemberHandling = value; } } public ObjectCreationHandling ObjectCreationHandling { get { return _objectCreationHandling.GetValueOrDefault(); } set { _objectCreationHandling = value; } } public NullValueHandling NullValueHandling { get { return _nullValueHandling.GetValueOrDefault(); } set { _nullValueHandling = value; } } public DefaultValueHandling DefaultValueHandling { get { return _defaultValueHandling.GetValueOrDefault(); } set { _defaultValueHandling = value; } } public IList<JsonConverter> Converters { get; set; } public PreserveReferencesHandling PreserveReferencesHandling { get { return _preserveReferencesHandling.GetValueOrDefault(); } set { _preserveReferencesHandling = value; } } public TypeNameHandl
glTFast.dll
Decompiled 3 weeks ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Buffers; using System.CodeDom.Compiler; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Text; using System.Threading; using System.Threading.Tasks; using AOT; using GLTFast.Addons; using GLTFast.FakeSchema; using GLTFast.Jobs; using GLTFast.Loading; using GLTFast.Logging; using GLTFast.Materials; using GLTFast.Schema; using GLTFast.Vertex; using Microsoft.CodeAnalysis; using Unity.Burst; using Unity.Collections; using Unity.Collections.LowLevel.Unsafe; using Unity.Jobs; using Unity.Mathematics; using UnityEngine; using UnityEngine.Experimental.Rendering; using UnityEngine.Networking; using UnityEngine.Playables; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: InternalsVisibleTo("glTF-test-framework.Tests")] [assembly: InternalsVisibleTo("glTFast.Editor.Tests")] [assembly: InternalsVisibleTo("glTFast.Editor")] [assembly: InternalsVisibleTo("glTFast.Export")] [assembly: InternalsVisibleTo("glTFast.Tests")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class IsUnmanagedAttribute : Attribute { } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[15811] { 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 83, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 98, 121, 116, 101, 51, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 85, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 68, 97, 116, 97, 85, 114, 105, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 68, 101, 102, 97, 117, 108, 116, 68, 101, 102, 101, 114, 65, 103, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 68, 111, 110, 116, 68, 101, 115, 116, 114, 111, 121, 79, 110, 76, 111, 97, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 70, 108, 97, 116, 65, 114, 114, 97, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 66, 111, 117, 110, 100, 115, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 83, 99, 101, 110, 101, 73, 110, 115, 116, 97, 110, 99, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 108, 98, 66, 105, 110, 67, 104, 117, 110, 107, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 108, 116, 102, 65, 115, 115, 101, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 108, 116, 102, 65, 115, 115, 101, 116, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 108, 116, 102, 66, 111, 117, 110, 100, 115, 65, 115, 115, 101, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 108, 116, 102, 71, 108, 111, 98, 97, 108, 115, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 108, 116, 102, 73, 109, 112, 111, 114, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 71, 108, 116, 102, 74, 115, 111, 110, 85, 116, 105, 108, 105, 116, 121, 80, 97, 114, 115, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 68, 101, 102, 101, 114, 65, 103, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 71, 108, 116, 102, 66, 117, 102, 102, 101, 114, 115, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 71, 108, 116, 102, 82, 101, 97, 100, 97, 98, 108, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 109, 97, 103, 101, 70, 111, 114, 109, 97, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 115, 92, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 115, 92, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 73, 110, 115, 116, 97, 110, 99, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 115, 92, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 82, 101, 103, 105, 115, 116, 114, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 109, 112, 111, 114, 116, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 105, 111, 110, 83, 101, 116, 116, 105, 110, 103, 115, 46, 99, 115, 0, 0, 0, 58, 0, 0, 0, 82, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 74, 111, 98, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 105, 103, 104, 116, 80, 117, 110, 99, 116, 117, 97, 108, 69, 120, 116, 101, 110, 115, 105, 111, 110, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 97, 100, 105, 110, 103, 92, 67, 117, 115, 116, 111, 109, 72, 101, 97, 100, 101, 114, 68, 111, 119, 110, 108, 111, 97, 100, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 97, 100, 105, 110, 103, 92, 68, 101, 102, 97, 117, 108, 116, 68, 111, 119, 110, 108, 111, 97, 100, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 97, 100, 105, 110, 103, 92, 73, 68, 111, 119, 110, 108, 111, 97, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 97, 100, 105, 110, 103, 92, 73, 68, 111, 119, 110, 108, 111, 97, 100, 80, 114, 111, 118, 105, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 97, 100, 105, 110, 103, 92, 73, 78, 97, 116, 105, 118, 101, 68, 111, 119, 110, 108, 111, 97, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 97, 100, 105, 110, 103, 92, 73, 84, 101, 120, 116, 117, 114, 101, 68, 111, 119, 110, 108, 111, 97, 100, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 103, 103, 105, 110, 103, 92, 67, 111, 108, 108, 101, 99, 116, 105, 110, 103, 76, 111, 103, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 103, 103, 105, 110, 103, 92, 67, 111, 110, 115, 111, 108, 101, 76, 111, 103, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 103, 103, 105, 110, 103, 92, 73, 67, 111, 100, 101, 76, 111, 103, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 76, 111, 103, 103, 105, 110, 103, 92, 76, 111, 103, 77, 101, 115, 115, 97, 103, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 110, 97, 103, 101, 100, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 92, 66, 117, 105, 108, 116, 73, 110, 77, 97, 116, 101, 114, 105, 97, 108, 71, 101, 110, 101, 114, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 92, 67, 111, 110, 115, 116, 97, 110, 116, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 92, 73, 77, 97, 116, 101, 114, 105, 97, 108, 71, 101, 110, 101, 114, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 92, 77, 97, 116, 101, 114, 105, 97, 108, 71, 101, 110, 101, 114, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 92, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 92, 73, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 83, 108, 111, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 126, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 92, 73, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 83, 108, 111, 116, 73, 110, 115, 116, 97, 110, 99, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 122, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 67, 111, 109, 112, 111, 110, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 120, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 67, 111, 110, 116, 114, 111, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 126, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 83, 108, 111, 116, 73, 110, 115, 116, 97, 110, 99, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 131, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 92, 77, 117, 108, 116, 105, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 83, 108, 111, 116, 73, 110, 115, 116, 97, 110, 99, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 97, 116, 104, 101, 109, 97, 116, 105, 99, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 101, 115, 104, 65, 115, 115, 105, 103, 110, 109, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 101, 115, 104, 67, 111, 109, 112, 97, 114, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 101, 115, 104, 71, 101, 110, 101, 114, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 101, 115, 104, 71, 101, 110, 101, 114, 97, 116, 111, 114, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 101, 115, 104, 79, 114, 100, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 101, 115, 104, 82, 101, 115, 117, 108, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 101, 115, 104, 83, 117, 98, 115, 101, 116, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 77, 111, 114, 112, 104, 84, 97, 114, 103, 101, 116, 115, 71, 101, 110, 101, 114, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 97, 116, 105, 118, 101, 77, 101, 109, 111, 114, 121, 77, 97, 110, 97, 103, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 111, 100, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 67, 111, 109, 112, 97, 114, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 80, 114, 105, 109, 105, 116, 105, 118, 101, 83, 101, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 82, 101, 97, 100, 79, 110, 108, 121, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 82, 101, 97, 100, 79, 110, 108, 121, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 70, 114, 111, 109, 77, 97, 110, 97, 103, 101, 100, 65, 114, 114, 97, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 82, 101, 97, 100, 79, 110, 108, 121, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 70, 114, 111, 109, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 82, 101, 97, 100, 79, 110, 108, 121, 78, 97, 116, 105, 118, 101, 83, 116, 114, 105, 100, 101, 100, 65, 114, 114, 97, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 97, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 82, 101, 110, 100, 101, 114, 80, 105, 112, 101, 108, 105, 110, 101, 85, 116, 105, 108, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 82, 111, 111, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 88, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 97, 109, 112, 108, 101, 114, 75, 101, 121, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 115, 98, 121, 116, 101, 51, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 115, 98, 121, 116, 101, 52, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 73, 110, 100, 105, 99, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 86, 97, 108, 117, 101, 115, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 104, 97, 110, 110, 101, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 104, 97, 110, 110, 101, 108, 84, 97, 114, 103, 101, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 83, 97, 109, 112, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 65, 115, 115, 101, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 66, 117, 102, 102, 101, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 66, 117, 102, 102, 101, 114, 86, 105, 101, 119, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 66, 117, 102, 102, 101, 114, 86, 105, 101, 119, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 94, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 67, 111, 110, 115, 116, 97, 110, 116, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 70, 97, 107, 101, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 70, 97, 107, 101, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 69, 120, 116, 101, 110, 115, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 70, 97, 107, 101, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 70, 97, 107, 101, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 80, 114, 105, 109, 105, 116, 105, 118, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 70, 97, 107, 101, 83, 99, 104, 101, 109, 97, 92, 78, 97, 109, 101, 100, 79, 98, 106, 101, 99, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 70, 97, 107, 101, 83, 99, 104, 101, 109, 97, 92, 82, 111, 111, 116, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 71, 108, 116, 102, 65, 110, 105, 109, 97, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 5, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 71, 108, 116, 102, 67, 97, 109, 101, 114, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 73, 66, 117, 102, 102, 101, 114, 86, 105, 101, 119, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 73, 109, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 74, 115, 111, 110, 87, 114, 105, 116, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 76, 105, 103, 104, 116, 80, 117, 110, 99, 116, 117, 97, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 76, 105, 103, 104, 116, 115, 80, 117, 110, 99, 116, 117, 97, 108, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 67, 108, 101, 97, 114, 67, 111, 97, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 73, 111, 114, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 80, 98, 114, 77, 101, 116, 97, 108, 108, 105, 99, 82, 111, 117, 103, 104, 110, 101, 115, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 83, 104, 101, 101, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 83, 112, 101, 99, 117, 108, 97, 114, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 111, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 69, 120, 116, 101, 110, 115, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 84, 114, 97, 110, 115, 109, 105, 115, 115, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 85, 110, 108, 105, 116, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 71, 112, 117, 73, 110, 115, 116, 97, 110, 99, 105, 110, 103, 46, 99, 115, 0, 0, 0, 6, 0, 0, 0, 98, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 80, 114, 105, 109, 105, 116, 105, 118, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 78, 97, 109, 101, 100, 79, 98, 106, 101, 99, 116, 46, 99, 115, 0, 0, 0, 4, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 78, 111, 100, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 78, 111, 100, 101, 76, 105, 103, 104, 116, 115, 80, 117, 110, 99, 116, 117, 97, 108, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 78, 111, 114, 109, 97, 108, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 105, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 79, 99, 99, 108, 117, 115, 105, 111, 110, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 80, 98, 114, 83, 112, 101, 99, 117, 108, 97, 114, 71, 108, 111, 115, 115, 105, 110, 101, 115, 115, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 82, 111, 111, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 82, 111, 111, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 83, 97, 109, 112, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 90, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 83, 99, 101, 110, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 83, 107, 105, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 94, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 83, 112, 111, 116, 76, 105, 103, 104, 116, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 92, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 3, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 84, 114, 97, 110, 115, 102, 111, 114, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 115, 104, 111, 114, 116, 51, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 84, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 115, 104, 111, 114, 116, 52, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 116, 114, 101, 97, 109, 69, 120, 116, 101, 110, 115, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 83, 117, 98, 77, 101, 115, 104, 65, 115, 115, 105, 103, 110, 109, 101, 110, 116, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 93, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 84, 101, 120, 116, 117, 114, 101, 68, 111, 119, 110, 108, 111, 97, 100, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 84, 105, 109, 101, 66, 117, 100, 103, 101, 116, 80, 101, 114, 70, 114, 97, 109, 101, 68, 101, 102, 101, 114, 65, 103, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 108, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 85, 110, 105, 110, 116, 101, 114, 114, 117, 112, 116, 101, 100, 68, 101, 102, 97, 117, 108, 116, 68, 101, 102, 101, 114, 65, 103, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 85, 110, 105, 110, 116, 101, 114, 114, 117, 112, 116, 101, 100, 68, 101, 102, 101, 114, 65, 103, 101, 110, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 87, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 85, 114, 105, 72, 101, 108, 112, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 85, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 117, 115, 104, 111, 114, 116, 51, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 89, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 85, 118, 84, 114, 97, 110, 115, 102, 111, 114, 109, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 95, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 101, 114, 116, 101, 120, 66, 117, 102, 102, 101, 114, 66, 111, 110, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 96, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 101, 114, 116, 101, 120, 66, 117, 102, 102, 101, 114, 67, 111, 108, 111, 114, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 101, 114, 116, 101, 120, 66, 117, 102, 102, 101, 114, 68, 101, 115, 99, 114, 105, 112, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 101, 114, 116, 101, 120, 66, 117, 102, 102, 101, 114, 71, 101, 110, 101, 114, 97, 116, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 101, 114, 116, 101, 120, 66, 117, 102, 102, 101, 114, 71, 101, 110, 101, 114, 97, 116, 111, 114, 66, 97, 115, 101, 46, 99, 115, 0, 0, 0, 2, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 101, 114, 116, 101, 120, 66, 117, 102, 102, 101, 114, 84, 101, 120, 67, 111, 111, 114, 100, 115, 46, 99, 115, 0, 0, 0, 12, 0, 0, 0, 91, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 86, 101, 114, 116, 101, 120, 83, 116, 114, 117, 99, 116, 115, 46, 99, 115 }; result.TypesData = new byte[10386] { 0, 0, 0, 0, 22, 71, 76, 84, 70, 97, 115, 116, 124, 65, 110, 105, 109, 97, 116, 105, 111, 110, 85, 116, 105, 108, 115, 0, 0, 0, 0, 13, 71, 76, 84, 70, 97, 115, 116, 124, 98, 121, 116, 101, 51, 0, 0, 0, 0, 15, 71, 76, 84, 70, 97, 115, 116, 124, 68, 97, 116, 97, 85, 114, 105, 0, 0, 0, 0, 25, 71, 76, 84, 70, 97, 115, 116, 124, 68, 101, 102, 97, 117, 108, 116, 68, 101, 102, 101, 114, 65, 103, 101, 110, 116, 0, 0, 0, 0, 25, 71, 76, 84, 70, 97, 115, 116, 124, 68, 111, 110, 116, 68, 101, 115, 116, 114, 111, 121, 79, 110, 76, 111, 97, 100, 0, 0, 0, 0, 21, 71, 76, 84, 70, 97, 115, 116, 124, 69, 120, 116, 101, 110, 115, 105, 111, 110, 78, 97, 109, 101, 0, 0, 0, 0, 17, 71, 76, 84, 70, 97, 115, 116, 124, 70, 108, 97, 116, 65, 114, 114, 97, 121, 0, 0, 0, 0, 36, 71, 76, 84, 70, 97, 115, 116, 124, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 66, 111, 117, 110, 100, 115, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 111, 114, 0, 0, 0, 0, 30, 71, 76, 84, 70, 97, 115, 116, 124, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 111, 114, 0, 0, 0, 0, 31, 71, 76, 84, 70, 97, 115, 116, 124, 71, 97, 109, 101, 79, 98, 106, 101, 99, 116, 83, 99, 101, 110, 101, 73, 110, 115, 116, 97, 110, 99, 101, 0, 0, 0, 0, 19, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 98, 66, 105, 110, 67, 104, 117, 110, 107, 0, 0, 0, 0, 17, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 65, 115, 115, 101, 116, 0, 0, 0, 0, 21, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 65, 115, 115, 101, 116, 66, 97, 115, 101, 0, 0, 0, 0, 23, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 66, 111, 117, 110, 100, 115, 65, 115, 115, 101, 116, 0, 0, 0, 0, 19, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 71, 108, 111, 98, 97, 108, 115, 0, 0, 0, 0, 18, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 73, 109, 112, 111, 114, 116, 1, 0, 0, 0, 22, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 73, 109, 112, 111, 114, 116, 66, 97, 115, 101, 1, 0, 0, 0, 22, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 73, 109, 112, 111, 114, 116, 66, 97, 115, 101, 0, 0, 0, 0, 29, 71, 76, 84, 70, 97, 115, 116, 124, 71, 108, 116, 102, 74, 115, 111, 110, 85, 116, 105, 108, 105, 116, 121, 80, 97, 114, 115, 101, 114, 0, 0, 0, 0, 19, 71, 76, 84, 70, 97, 115, 116, 124, 73, 68, 101, 102, 101, 114, 65, 103, 101, 110, 116, 0, 0, 0, 0, 20, 71, 76, 84, 70, 97, 115, 116, 124, 73, 71, 108, 116, 102, 66, 117, 102, 102, 101, 114, 115, 1, 0, 0, 0, 21, 71, 76, 84, 70, 97, 115, 116, 124, 73, 71, 108, 116, 102, 82, 101, 97, 100, 97, 98, 108, 101, 1, 0, 0, 0, 21, 71, 76, 84, 70, 97, 115, 116, 124, 73, 71, 108, 116, 102, 82, 101, 97, 100, 97, 98, 108, 101, 0, 0, 0, 0, 21, 71, 76, 84, 70, 97, 115, 116, 124, 73, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 111, 114, 0, 0, 0, 0, 29, 71, 76, 84, 70, 97, 115, 116, 124, 73, 109, 97, 103, 101, 70, 111, 114, 109, 97, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 25, 71, 76, 84, 70, 97, 115, 116, 124, 73, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 34, 71, 76, 84, 70, 97, 115, 116, 124, 73, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 80, 114, 111, 118, 105, 100, 101, 114, 1, 0, 0, 0, 26, 71, 76, 84, 70, 97, 115, 116, 46, 65, 100, 100, 111, 110, 115, 124, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 1, 0, 0, 0, 26, 71, 76, 84, 70, 97, 115, 116, 46, 65, 100, 100, 111, 110, 115, 124, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 0, 0, 0, 0, 34, 71, 76, 84, 70, 97, 115, 116, 46, 65, 100, 100, 111, 110, 115, 124, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 73, 110, 115, 116, 97, 110, 99, 101, 0, 0, 0, 0, 34, 71, 76, 84, 70, 97, 115, 116, 46, 65, 100, 100, 111, 110, 115, 124, 73, 109, 112, 111, 114, 116, 65, 100, 100, 111, 110, 82, 101, 103, 105, 115, 116, 114, 121, 0, 0, 0, 0, 22, 71, 76, 84, 70, 97, 115, 116, 124, 73, 109, 112, 111, 114, 116, 83, 101, 116, 116, 105, 110, 103, 115, 0, 0, 0, 0, 29, 71, 76, 84, 70, 97, 115, 116, 124, 73, 110, 115, 116, 97, 110, 116, 105, 97, 116, 105, 111, 110, 83, 101, 116, 116, 105, 110, 103, 115, 0, 0, 0, 0, 27, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 97, 99, 104, 101, 100, 70, 117, 110, 99, 116, 105, 111, 110, 0, 0, 0, 0, 35, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 114, 101, 97, 116, 101, 73, 110, 100, 105, 99, 101, 115, 85, 73, 110, 116, 51, 50, 74, 111, 98, 0, 0, 0, 0, 42, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 114, 101, 97, 116, 101, 73, 110, 100, 105, 99, 101, 115, 85, 73, 110, 116, 51, 50, 70, 108, 105, 112, 112, 101, 100, 74, 111, 98, 0, 0, 0, 0, 45, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 114, 101, 97, 116, 101, 73, 110, 100, 105, 99, 101, 115, 70, 111, 114, 84, 114, 105, 97, 110, 103, 108, 101, 83, 116, 114, 105, 112, 74, 111, 98, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 114, 101, 97, 116, 101, 73, 110, 100, 105, 99, 101, 115, 70, 111, 114, 84, 114, 105, 97, 110, 103, 108, 101, 70, 97, 110, 74, 111, 98, 0, 0, 0, 0, 50, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 82, 101, 99, 97, 108, 99, 117, 108, 97, 116, 101, 73, 110, 100, 105, 99, 101, 115, 70, 111, 114, 84, 114, 105, 97, 110, 103, 108, 101, 83, 116, 114, 105, 112, 74, 111, 98, 0, 0, 0, 0, 48, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 82, 101, 99, 97, 108, 99, 117, 108, 97, 116, 101, 73, 110, 100, 105, 99, 101, 115, 70, 111, 114, 84, 114, 105, 97, 110, 103, 108, 101, 70, 97, 110, 74, 111, 98, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 73, 110, 100, 105, 99, 101, 115, 85, 73, 110, 116, 56, 84, 111, 85, 73, 110, 116, 51, 50, 74, 111, 98, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 73, 110, 100, 105, 99, 101, 115, 85, 73, 110, 116, 56, 84, 111, 73, 110, 116, 51, 50, 70, 108, 105, 112, 112, 101, 100, 74, 111, 98, 0, 0, 0, 0, 50, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 73, 110, 100, 105, 99, 101, 115, 85, 73, 110, 116, 49, 54, 84, 111, 73, 110, 116, 51, 50, 70, 108, 105, 112, 112, 101, 100, 74, 111, 98, 0, 0, 0, 0, 44, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 73, 110, 100, 105, 99, 101, 115, 85, 73, 110, 116, 49, 54, 84, 111, 85, 73, 110, 116, 51, 50, 74, 111, 98, 0, 0, 0, 0, 50, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 73, 110, 100, 105, 99, 101, 115, 85, 73, 110, 116, 51, 50, 84, 111, 73, 110, 116, 51, 50, 70, 108, 105, 112, 112, 101, 100, 74, 111, 98, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 85, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 59, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 85, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 50, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 85, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 60, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 85, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 59, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 48, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 58, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 48, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 67, 111, 108, 111, 114, 115, 82, 71, 66, 70, 108, 111, 97, 116, 84, 111, 82, 71, 66, 65, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 48, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 67, 111, 108, 111, 114, 115, 82, 103, 98, 85, 73, 110, 116, 56, 84, 111, 82, 71, 66, 65, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 67, 111, 108, 111, 114, 115, 82, 103, 98, 85, 73, 110, 116, 49, 54, 84, 111, 82, 71, 66, 65, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 50, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 67, 111, 108, 111, 114, 115, 82, 103, 98, 97, 85, 73, 110, 116, 49, 54, 84, 111, 82, 71, 66, 65, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 67, 111, 108, 111, 114, 115, 82, 71, 66, 65, 70, 108, 111, 97, 116, 84, 111, 82, 71, 66, 65, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 67, 111, 108, 111, 114, 115, 82, 103, 98, 97, 85, 73, 110, 116, 56, 84, 111, 82, 71, 66, 65, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 23, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 77, 101, 109, 67, 111, 112, 121, 74, 111, 98, 0, 0, 0, 0, 42, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 86, 101, 99, 116, 111, 114, 51, 70, 108, 111, 97, 116, 84, 111, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 44, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 82, 111, 116, 97, 116, 105, 111, 110, 115, 70, 108, 111, 97, 116, 84, 111, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 44, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 82, 111, 116, 97, 116, 105, 111, 110, 115, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 82, 111, 116, 97, 116, 105, 111, 110, 115, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 74, 111, 98, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 85, 86, 115, 70, 108, 111, 97, 116, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 53, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 86, 101, 99, 116, 111, 114, 51, 70, 108, 111, 97, 116, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 36, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 86, 101, 99, 116, 111, 114, 51, 83, 112, 97, 114, 115, 101, 74, 111, 98, 0, 0, 0, 0, 54, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 84, 97, 110, 103, 101, 110, 116, 115, 70, 108, 111, 97, 116, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 57, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 66, 111, 110, 101, 87, 101, 105, 103, 104, 116, 115, 70, 108, 111, 97, 116, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 57, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 66, 111, 110, 101, 87, 101, 105, 103, 104, 116, 115, 85, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 58, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 66, 111, 110, 101, 87, 101, 105, 103, 104, 116, 115, 85, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 64, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 84, 97, 110, 103, 101, 110, 116, 115, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 63, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 84, 97, 110, 103, 101, 110, 116, 115, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 56, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 80, 111, 115, 105, 116, 105, 111, 110, 115, 85, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 66, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 80, 111, 115, 105, 116, 105, 111, 110, 115, 85, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 55, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 80, 111, 115, 105, 116, 105, 111, 110, 115, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 63, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 86, 101, 99, 116, 111, 114, 51, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 63, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 78, 111, 114, 109, 97, 108, 115, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 54, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 80, 111, 115, 105, 116, 105, 111, 110, 115, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 62, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 86, 101, 99, 116, 111, 114, 51, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 62, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 78, 111, 114, 109, 97, 108, 115, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 55, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 80, 111, 115, 105, 116, 105, 111, 110, 115, 85, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 74, 111, 98, 0, 0, 0, 0, 65, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 80, 111, 115, 105, 116, 105, 111, 110, 115, 85, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 73, 110, 116, 101, 114, 108, 101, 97, 118, 101, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 46, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 66, 111, 110, 101, 74, 111, 105, 110, 116, 115, 85, 73, 110, 116, 56, 84, 111, 85, 73, 110, 116, 51, 50, 74, 111, 98, 0, 0, 0, 0, 47, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 66, 111, 110, 101, 74, 111, 105, 110, 116, 115, 85, 73, 110, 116, 49, 54, 84, 111, 85, 73, 110, 116, 51, 50, 74, 111, 98, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 83, 111, 114, 116, 65, 110, 100, 78, 111, 114, 109, 97, 108, 105, 122, 101, 66, 111, 110, 101, 87, 101, 105, 103, 104, 116, 115, 74, 111, 98, 0, 0, 0, 0, 31, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 77, 97, 116, 114, 105, 99, 101, 115, 74, 111, 98, 0, 0, 0, 0, 50, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 83, 99, 97, 108, 97, 114, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 51, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 83, 99, 97, 108, 97, 114, 85, 73, 110, 116, 56, 84, 111, 70, 108, 111, 97, 116, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 51, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 83, 99, 97, 108, 97, 114, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 52, 71, 76, 84, 70, 97, 115, 116, 46, 74, 111, 98, 115, 124, 67, 111, 110, 118, 101, 114, 116, 83, 99, 97, 108, 97, 114, 85, 73, 110, 116, 49, 54, 84, 111, 70, 108, 111, 97, 116, 78, 111, 114, 109, 97, 108, 105, 122, 101, 100, 74, 111, 98, 0, 0, 0, 0, 30, 71, 76, 84, 70, 97, 115, 116, 124, 76, 105, 103, 104, 116, 80, 117, 110, 99, 116, 117, 97, 108, 69, 120, 116, 101, 110, 115, 105, 111, 110, 0, 0, 0, 0, 26, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 72, 116, 116, 112, 72, 101, 97, 100, 101, 114, 0, 0, 0, 0, 44, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 67, 117, 115, 116, 111, 109, 72, 101, 97, 100, 101, 114, 68, 111, 119, 110, 108, 111, 97, 100, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 36, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 67, 117, 115, 116, 111, 109, 72, 101, 97, 100, 101, 114, 68, 111, 119, 110, 108, 111, 97, 100, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 67, 117, 115, 116, 111, 109, 72, 101, 97, 100, 101, 114, 84, 101, 120, 116, 117, 114, 101, 68, 111, 119, 110, 108, 111, 97, 100, 0, 0, 0, 0, 39, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 68, 101, 102, 97, 117, 108, 116, 68, 111, 119, 110, 108, 111, 97, 100, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 33, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 65, 119, 97, 105, 116, 97, 98, 108, 101, 68, 111, 119, 110, 108, 111, 97, 100, 0, 0, 0, 0, 40, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 65, 119, 97, 105, 116, 97, 98, 108, 101, 84, 101, 120, 116, 117, 114, 101, 68, 111, 119, 110, 108, 111, 97, 100, 0, 0, 0, 0, 25, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 73, 68, 111, 119, 110, 108, 111, 97, 100, 0, 0, 0, 0, 33, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 73, 68, 111, 119, 110, 108, 111, 97, 100, 80, 114, 111, 118, 105, 100, 101, 114, 0, 0, 0, 0, 31, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 73, 78, 97, 116, 105, 118, 101, 68, 111, 119, 110, 108, 111, 97, 100, 0, 0, 0, 0, 32, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 97, 100, 105, 110, 103, 124, 73, 84, 101, 120, 116, 117, 114, 101, 68, 111, 119, 110, 108, 111, 97, 100, 0, 0, 0, 0, 32, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 103, 103, 105, 110, 103, 124, 67, 111, 108, 108, 101, 99, 116, 105, 110, 103, 76, 111, 103, 103, 101, 114, 0, 0, 0, 0, 23, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 103, 103, 105, 110, 103, 124, 76, 111, 103, 73, 116, 101, 109, 0, 0, 0, 0, 29, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 103, 103, 105, 110, 103, 124, 67, 111, 110, 115, 111, 108, 101, 76, 111, 103, 103, 101, 114, 0, 0, 0, 0, 27, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 103, 103, 105, 110, 103, 124, 73, 67, 111, 100, 101, 76, 111, 103, 103, 101, 114, 0, 0, 0, 0, 27, 71, 76, 84, 70, 97, 115, 116, 46, 76, 111, 103, 103, 105, 110, 103, 124, 76, 111, 103, 77, 101, 115, 115, 97, 103, 101, 115, 0, 0, 0, 0, 26, 71, 76, 84, 70, 97, 115, 116, 124, 77, 97, 110, 97, 103, 101, 100, 78, 97, 116, 105, 118, 101, 65, 114, 114, 97, 121, 0, 0, 0, 0, 42, 71, 76, 84, 70, 97, 115, 116, 46, 77, 97, 116, 101, 114, 105, 97, 108, 115, 124, 66, 117, 105, 108, 116, 73, 110, 77, 97, 116, 101, 114, 105, 97, 108, 71, 101, 110, 101, 114, 97, 116, 111, 114, 0, 0, 0, 0, 27, 71, 76, 84, 70, 97, 115, 116, 46, 77, 97, 116, 101, 114, 105, 97, 108, 115, 124, 67, 111, 110, 115, 116, 97, 110, 116, 115, 0, 0, 0, 0, 36, 71, 76, 84, 70, 97, 115, 116, 46, 77, 97, 116, 101, 114, 105, 97, 108, 115, 124, 73, 77, 97, 116, 101, 114, 105, 97, 108, 71, 101, 110, 101, 114, 97, 116, 111, 114, 0, 0, 0, 0, 35, 71, 76, 84, 70, 97, 115, 116, 46, 77, 97, 116, 101, 114, 105, 97, 108, 115, 124, 77, 97, 116, 101, 114, 105, 97, 108, 71, 101, 110, 101, 114, 97, 116, 111, 114, 0, 0, 0, 0, 34, 71, 76, 84, 70, 97, 115, 116, 46, 77, 97, 116, 101, 114, 105, 97, 108, 115, 124, 77, 97, 116, 101, 114, 105, 97, 108, 80, 114, 111, 112, 101, 114, 116, 121, 0, 0, 0, 0, 30, 71, 76, 84, 70, 97, 115, 116, 124, 73, 77, 97, 116, 101, 114, 105, 97, 108, 115, 86, 97, 114, 105, 97, 110, 116, 115, 83, 108, 111, 116, 0, 0, 0, 0, 38, 71, 76
glTFast.Newtonsoft.dll
Decompiled 3 weeks agousing System.CodeDom.Compiler; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using GLTFast.Loading; using GLTFast.Logging; using GLTFast.Materials; using GLTFast.Newtonsoft.Schema; using GLTFast.Schema; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using UnityEngine.Scripting; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyVersion("0.0.0.0")] [CompilerGenerated] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)] internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1 { private struct MonoScriptData { public byte[] FilePathsData; public byte[] TypesData; public int TotalTypes; public int TotalFiles; public bool IsEditorOnly; } [MethodImpl(MethodImplOptions.AggressiveInlining)] private static MonoScriptData Get() { MonoScriptData result = default(MonoScriptData); result.FilePathsData = new byte[4548] { 0, 0, 0, 1, 0, 0, 0, 99, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 71, 108, 116, 102, 73, 109, 112, 111, 114, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 117, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 73, 110, 100, 105, 99, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 116, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 86, 97, 108, 117, 101, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 104, 97, 110, 110, 101, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 118, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 104, 97, 110, 110, 101, 108, 84, 97, 114, 103, 101, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 110, 105, 109, 97, 116, 105, 111, 110, 83, 97, 109, 112, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 65, 115, 115, 101, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 102, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 66, 117, 102, 102, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 66, 117, 102, 102, 101, 114, 86, 105, 101, 119, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 116, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 66, 117, 102, 102, 101, 114, 86, 105, 101, 119, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 67, 97, 109, 101, 114, 97, 79, 114, 116, 104, 111, 103, 114, 97, 112, 104, 105, 99, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 67, 97, 109, 101, 114, 97, 80, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 71, 108, 116, 102, 65, 110, 105, 109, 97, 116, 105, 111, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 71, 108, 116, 102, 67, 97, 109, 101, 114, 97, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 73, 74, 115, 111, 110, 79, 98, 106, 101, 99, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 73, 109, 97, 103, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 104, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 114, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 77, 97, 116, 101, 114, 105, 97, 108, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 106, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 69, 120, 116, 114, 97, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 109, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 80, 114, 105, 109, 105, 116, 105, 118, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 119, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 77, 101, 115, 104, 80, 114, 105, 109, 105, 116, 105, 118, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 78, 111, 100, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 78, 111, 100, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 78, 111, 114, 109, 97, 108, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 116, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 79, 99, 99, 108, 117, 115, 105, 111, 110, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 116, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 80, 98, 114, 77, 101, 116, 97, 108, 108, 105, 99, 82, 111, 117, 103, 104, 110, 101, 115, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 82, 111, 111, 116, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 110, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 82, 111, 111, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 83, 97, 109, 112, 108, 101, 114, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 101, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 83, 99, 101, 110, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 100, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 83, 107, 105, 110, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 103, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 113, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 107, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 117, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 46, 99, 115, 0, 0, 0, 1, 0, 0, 0, 112, 92, 76, 105, 98, 114, 97, 114, 121, 92, 80, 97, 99, 107, 97, 103, 101, 67, 97, 99, 104, 101, 92, 99, 111, 109, 46, 117, 110, 105, 116, 121, 46, 99, 108, 111, 117, 100, 46, 103, 108, 116, 102, 97, 115, 116, 64, 57, 99, 97, 48, 49, 102, 100, 51, 51, 98, 54, 50, 92, 82, 117, 110, 116, 105, 109, 101, 92, 83, 99, 114, 105, 112, 116, 115, 92, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 92, 83, 99, 104, 101, 109, 97, 92, 85, 110, 99, 108, 97, 115, 115, 105, 102, 105, 101, 100, 68, 97, 116, 97, 46, 99, 115 }; result.TypesData = new byte[1693] { 0, 0, 0, 0, 29, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 124, 71, 108, 116, 102, 73, 109, 112, 111, 114, 116, 0, 0, 0, 0, 34, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 99, 99, 101, 115, 115, 111, 114, 0, 0, 0, 0, 40, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 0, 0, 0, 0, 47, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 73, 110, 100, 105, 99, 101, 115, 0, 0, 0, 0, 46, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 99, 99, 101, 115, 115, 111, 114, 83, 112, 97, 114, 115, 101, 86, 97, 108, 117, 101, 115, 0, 0, 0, 0, 42, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 104, 97, 110, 110, 101, 108, 0, 0, 0, 0, 48, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 110, 105, 109, 97, 116, 105, 111, 110, 67, 104, 97, 110, 110, 101, 108, 84, 97, 114, 103, 101, 116, 0, 0, 0, 0, 42, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 110, 105, 109, 97, 116, 105, 111, 110, 83, 97, 109, 112, 108, 101, 114, 0, 0, 0, 0, 31, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 115, 115, 101, 116, 0, 0, 0, 0, 32, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 66, 117, 102, 102, 101, 114, 0, 0, 0, 0, 36, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 66, 117, 102, 102, 101, 114, 86, 105, 101, 119, 0, 0, 0, 0, 46, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 66, 117, 102, 102, 101, 114, 86, 105, 101, 119, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 44, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 67, 97, 109, 101, 114, 97, 79, 114, 116, 104, 111, 103, 114, 97, 112, 104, 105, 99, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 67, 97, 109, 101, 114, 97, 80, 101, 114, 115, 112, 101, 99, 116, 105, 118, 101, 0, 0, 0, 0, 35, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 65, 110, 105, 109, 97, 116, 105, 111, 110, 0, 0, 0, 0, 32, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 67, 97, 109, 101, 114, 97, 0, 0, 0, 0, 37, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 73, 74, 115, 111, 110, 79, 98, 106, 101, 99, 116, 0, 0, 0, 0, 31, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 73, 109, 97, 103, 101, 0, 0, 0, 0, 34, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 77, 97, 116, 101, 114, 105, 97, 108, 0, 0, 0, 0, 44, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 77, 97, 116, 101, 114, 105, 97, 108, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 30, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 77, 101, 115, 104, 0, 0, 0, 0, 36, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 77, 101, 115, 104, 69, 120, 116, 114, 97, 115, 0, 0, 0, 0, 39, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 77, 101, 115, 104, 80, 114, 105, 109, 105, 116, 105, 118, 101, 0, 0, 0, 0, 49, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 77, 101, 115, 104, 80, 114, 105, 109, 105, 116, 105, 118, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 30, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 78, 111, 100, 101, 0, 0, 0, 0, 40, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 78, 111, 100, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 78, 111, 114, 109, 97, 108, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 0, 0, 0, 0, 46, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 79, 99, 99, 108, 117, 115, 105, 111, 110, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 0, 0, 0, 0, 46, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 80, 98, 114, 77, 101, 116, 97, 108, 108, 105, 99, 82, 111, 117, 103, 104, 110, 101, 115, 115, 0, 0, 0, 0, 30, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 82, 111, 111, 116, 0, 0, 0, 0, 40, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 82, 111, 111, 116, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 33, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 83, 97, 109, 112, 108, 101, 114, 0, 0, 0, 0, 31, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 83, 99, 101, 110, 101, 0, 0, 0, 0, 30, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 83, 107, 105, 110, 0, 0, 0, 0, 33, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 84, 101, 120, 116, 117, 114, 101, 0, 0, 0, 0, 43, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 84, 101, 120, 116, 117, 114, 101, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 37, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 0, 0, 0, 0, 47, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 84, 101, 120, 116, 117, 114, 101, 73, 110, 102, 111, 69, 120, 116, 101, 110, 115, 105, 111, 110, 115, 0, 0, 0, 0, 42, 71, 76, 84, 70, 97, 115, 116, 46, 78, 101, 119, 116, 111, 110, 115, 111, 102, 116, 46, 83, 99, 104, 101, 109, 97, 124, 85, 110, 99, 108, 97, 115, 115, 105, 102, 105, 101, 100, 68, 97, 116, 97 }; result.TotalFiles = 39; result.TotalTypes = 39; result.IsEditorOnly = false; return result; } } namespace GLTFast.Newtonsoft { public class GltfImport : GltfImportBase<Root> { public GltfImport(IDownloadProvider downloadProvider = null, IDeferAgent deferAgent = null, IMaterialGenerator materialGenerator = null, ICodeLogger logger = null) : base(downloadProvider, deferAgent, materialGenerator, logger) { } protected override RootBase ParseJson(string json) { return (RootBase)(object)JsonConvert.DeserializeObject<Root>(json); } } } namespace GLTFast.Newtonsoft.Schema { public class Accessor : AccessorBase<AccessorSparse>, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Accessor() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class AccessorSparse : AccessorSparseBase<AccessorSparseIndices, AccessorSparseValues>, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public AccessorSparse() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class AccessorSparseIndices : AccessorSparseIndices, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public AccessorSparseIndices() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class AccessorSparseValues : AccessorSparseValues, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public AccessorSparseValues() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class AnimationChannel : AnimationChannelBase<AnimationChannelTarget>, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public AnimationChannel() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class AnimationChannelTarget : AnimationChannelTarget, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public AnimationChannelTarget() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class AnimationSampler : AnimationSampler, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public AnimationSampler() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Asset : Asset, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Asset() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Buffer : Buffer, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Buffer() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class BufferView : BufferViewBase<BufferViewExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public BufferView() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class BufferViewExtensions : BufferViewExtensions, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public BufferViewExtensions() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class CameraOrthographic : CameraOrthographic, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public CameraOrthographic() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class CameraPerspective : CameraPerspective, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public CameraPerspective() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Animation : AnimationBase<AnimationChannel, AnimationSampler>, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Animation() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Camera : CameraBase<CameraOrthographic, CameraPerspective>, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Camera() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public interface IJsonObject { bool TryGetValue<T>(string key, out T value); } public class Image : Image, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Image() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Material : MaterialBase<MaterialExtensions, NormalTextureInfo, OcclusionTextureInfo, PbrMetallicRoughness, TextureInfo, TextureInfoExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Material() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class MaterialExtensions : MaterialExtensions, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public MaterialExtensions() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Mesh : MeshBase<MeshExtras, MeshPrimitive>, IJsonObject { public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Mesh() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class MeshExtras : MeshExtras, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public MeshExtras() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class MeshPrimitive : MeshPrimitiveBase<MeshPrimitiveExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public MeshPrimitive() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class MeshPrimitiveExtensions : MeshPrimitiveExtensions, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public MeshPrimitiveExtensions() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Node : NodeBase<NodeExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Node() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class NodeExtensions : NodeExtensions, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public NodeExtensions() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class NormalTextureInfo : NormalTextureInfoBase<TextureInfoExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public NormalTextureInfo() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class OcclusionTextureInfo : OcclusionTextureInfoBase<TextureInfoExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public OcclusionTextureInfo() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class PbrMetallicRoughness : PbrMetallicRoughnessBase<TextureInfo>, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public PbrMetallicRoughness() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Root : RootBase<Accessor, Animation, Asset, Buffer, BufferView, Camera, RootExtensions, Image, Material, Mesh, Node, Sampler, Scene, Skin, Texture>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Root() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class RootExtensions : RootExtensions, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public RootExtensions() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Sampler : Sampler, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Sampler() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Scene : Scene, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Scene() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Skin : Skin, IJsonObject { public UnclassifiedData extras; public UnclassifiedData extensions; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Skin() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class Texture : TextureBase<TextureExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public Texture() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class TextureExtensions : TextureExtensions, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public TextureExtensions() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class TextureInfo : TextureInfoBase<TextureInfoExtensions>, IJsonObject { public UnclassifiedData extras; [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public TextureInfo() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class TextureInfoExtensions : TextureInfoExtensions, IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public TextureInfoExtensions() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } public class UnclassifiedData : IJsonObject { [JsonExtensionData] private IDictionary<string, JToken> m_JsonExtensionData; [Preserve] public UnclassifiedData() { } public bool TryGetValue<T>(string key, out T value) { if (m_JsonExtensionData != null && m_JsonExtensionData.TryGetValue(key, out var value2)) { value = value2.ToObject<T>(); return true; } value = default(T); return false; } } }