Decompiled source of CrystalLights v1.0.16
CrystalLights.dll
Decompiled 3 months 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.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.IO; using System.IO.Compression; using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Reflection.Emit; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using System.Threading; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using HarmonyLib; using ItemManager; using JetBrains.Annotations; using LocalizationManager; using Microsoft.CodeAnalysis; using PieceManager; using ServerSync; using TMPro; using UnityEngine; using YamlDotNet.Core; using YamlDotNet.Core.Events; using YamlDotNet.Core.Tokens; using YamlDotNet.Helpers; using YamlDotNet.Serialization; using YamlDotNet.Serialization.Converters; using YamlDotNet.Serialization.EventEmitters; using YamlDotNet.Serialization.NamingConventions; using YamlDotNet.Serialization.NodeDeserializers; using YamlDotNet.Serialization.NodeTypeResolvers; using YamlDotNet.Serialization.ObjectFactories; using YamlDotNet.Serialization.ObjectGraphTraversalStrategies; using YamlDotNet.Serialization.ObjectGraphVisitors; using YamlDotNet.Serialization.Schemas; using YamlDotNet.Serialization.TypeInspectors; using YamlDotNet.Serialization.TypeResolvers; using YamlDotNet.Serialization.Utilities; using YamlDotNet.Serialization.ValueDeserializers; [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: Guid("D181CDA7-EF07-4BBC-B975-2B80FC6BBFAE")] [assembly: ComVisible(false)] [assembly: AssemblyTrademark("")] [assembly: AssemblyCopyright("Copyright © 2022")] [assembly: AssemblyProduct("CrystalLights")] [assembly: AssemblyCompany("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyDescription("")] [assembly: AssemblyTitle("CrystalLights")] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: CompilationRelaxations(8)] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [<24481a2a-01be-43c4-97a9-b3edadc04b33>Embedded] internal sealed class <24481a2a-01be-43c4-97a9-b3edadc04b33>EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] [<24481a2a-01be-43c4-97a9-b3edadc04b33>Embedded] [CompilerGenerated] internal sealed class <608c74ee-8480-4db4-a755-9f2b54fbb76e>NullableAttribute : Attribute { public readonly byte[] NullableFlags; public <608c74ee-8480-4db4-a755-9f2b54fbb76e>NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public <608c74ee-8480-4db4-a755-9f2b54fbb76e>NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } } namespace CrystalLights { [BepInPlugin("org.bepinex.plugins.crystallights", "CrystalLights", "1.0.16")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class CrystalLights : BaseUnityPlugin { private enum Toggle { On = 1, Off = 0 } private class ConfigurationManagerAttributes { [UsedImplicitly] [<608c74ee-8480-4db4-a755-9f2b54fbb76e>Nullable(2)] public string Category = null; } private const string ModName = "CrystalLights"; private const string ModVersion = "1.0.16"; private const string ModGUID = "org.bepinex.plugins.crystallights"; private static readonly ConfigSync configSync = new ConfigSync("CrystalLights") { DisplayName = "CrystalLights", CurrentVersion = "1.0.16", MinimumRequiredVersion = "1.0.16" }; private static ConfigEntry<Toggle> serverConfigLocked = null; private static readonly Dictionary<string, ConfigEntry<float>> lightIntensities = new Dictionary<string, ConfigEntry<float>>(); private static AssetBundle assets = null; private static Localization english = null; private ConfigEntry<T> config<T>(string group, string name, T value, ConfigDescription description, bool synchronizedSetting = true) { ConfigEntry<T> val = ((BaseUnityPlugin)this).Config.Bind<T>(group, name, value, description); SyncedConfigEntry<T> syncedConfigEntry = configSync.AddConfigEntry<T>(val); syncedConfigEntry.SynchronizedConfig = synchronizedSetting; return val; } private ConfigEntry<T> config<T>(string group, string name, T value, string description, bool synchronizedSetting = true) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown return config(group, name, value, new ConfigDescription(description, (AcceptableValueBase)null, Array.Empty<object>()), synchronizedSetting); } public void Awake() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_16ea: Unknown result type (might be due to invalid IL or missing references) //IL_16f1: Expected O, but got Unknown Localizer.Load(); english = new Localization(); english.SetupLanguage("English"); serverConfigLocked = config("1 - General", "Lock Configuration", Toggle.On, "If on, the configuration is locked and can be changed by server admins only."); configSync.AddLockingConfigEntry<Toggle>(serverConfigLocked); assets = PiecePrefabManager.RegisterAssetBundle("crystallights"); Item item = new Item(assets, "CL_Crystal_Hammer"); item.Crafting.Add(ItemManager.CraftingTable.Workbench, 1); item.RequiredItems.Add("Uncut_Red_Stone", 1); item.RequiredItems.Add("Wood", 1); item.CraftAmount = 1; BuildPiece buildPiece = AddLightPiece("CL_Large_Wall_Black"); buildPiece.RequiredItems.Add("Uncut_Black_Stone", 10, recover: true); buildPiece.RequiredItems.Add("IronNails", 2, recover: true); buildPiece.Crafting.Set(PieceManager.CraftingTable.None); buildPiece.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece2 = AddLightPiece("CL_Large_Wall_White"); buildPiece2.RequiredItems.Add("Uncut_Black_Stone", 10, recover: true); buildPiece2.RequiredItems.Add("IronNails", 2, recover: true); buildPiece2.Crafting.Set(PieceManager.CraftingTable.None); buildPiece2.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece3 = AddLightPiece("CL_Large_Wall_Blue"); buildPiece3.RequiredItems.Add("Uncut_Blue_Stone", 10, recover: true); buildPiece3.RequiredItems.Add("IronNails", 2, recover: true); buildPiece3.Crafting.Set(PieceManager.CraftingTable.None); buildPiece3.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece4 = AddLightPiece("CL_Large_Wall_Green"); buildPiece4.RequiredItems.Add("Uncut_Green_Stone", 10, recover: true); buildPiece4.RequiredItems.Add("IronNails", 2, recover: true); buildPiece4.Crafting.Set(PieceManager.CraftingTable.None); buildPiece4.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece5 = AddLightPiece("CL_Large_Wall_Orange"); buildPiece5.RequiredItems.Add("Uncut_Orange_Stone", 10, recover: true); buildPiece5.RequiredItems.Add("IronNails", 2, recover: true); buildPiece5.Crafting.Set(PieceManager.CraftingTable.None); buildPiece5.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece6 = AddLightPiece("CL_Large_Wall_Purple"); buildPiece6.RequiredItems.Add("Uncut_Purple_Stone", 10, recover: true); buildPiece6.RequiredItems.Add("IronNails", 2, recover: true); buildPiece6.Crafting.Set(PieceManager.CraftingTable.None); buildPiece6.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece7 = AddLightPiece("CL_Large_Wall_Red"); buildPiece7.RequiredItems.Add("Uncut_Red_Stone", 10, recover: true); buildPiece7.RequiredItems.Add("IronNails", 2, recover: true); buildPiece7.Crafting.Set(PieceManager.CraftingTable.None); buildPiece7.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece8 = AddLightPiece("CL_Large_Wall_Yellow"); buildPiece8.RequiredItems.Add("Uncut_Yellow_Stone", 10, recover: true); buildPiece8.RequiredItems.Add("IronNails", 2, recover: true); buildPiece8.Crafting.Set(PieceManager.CraftingTable.None); buildPiece8.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece9 = AddLightPiece("CL_Small_Wall_Black"); buildPiece9.RequiredItems.Add("Uncut_Black_Stone", 3, recover: true); buildPiece9.RequiredItems.Add("IronNails", 1, recover: true); buildPiece9.Crafting.Set(PieceManager.CraftingTable.None); buildPiece9.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece10 = AddLightPiece("CL_Small_Wall_White"); buildPiece10.RequiredItems.Add("Uncut_Black_Stone", 3, recover: true); buildPiece10.RequiredItems.Add("IronNails", 1, recover: true); buildPiece10.Crafting.Set(PieceManager.CraftingTable.None); buildPiece10.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece11 = AddLightPiece("CL_Small_Wall_Blue"); buildPiece11.RequiredItems.Add("Uncut_Blue_Stone", 3, recover: true); buildPiece11.RequiredItems.Add("IronNails", 1, recover: true); buildPiece11.Crafting.Set(PieceManager.CraftingTable.None); buildPiece11.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece12 = AddLightPiece("CL_Small_Wall_Green"); buildPiece12.RequiredItems.Add("Uncut_Green_Stone", 3, recover: true); buildPiece12.RequiredItems.Add("IronNails", 1, recover: true); buildPiece12.Crafting.Set(PieceManager.CraftingTable.None); buildPiece12.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece13 = AddLightPiece("CL_Small_Wall_Orange"); buildPiece13.RequiredItems.Add("Uncut_Orange_Stone", 3, recover: true); buildPiece13.RequiredItems.Add("IronNails", 1, recover: true); buildPiece13.Crafting.Set(PieceManager.CraftingTable.None); buildPiece13.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece14 = AddLightPiece("CL_Small_Wall_Purple"); buildPiece14.RequiredItems.Add("Uncut_Purple_Stone", 3, recover: true); buildPiece14.RequiredItems.Add("IronNails", 1, recover: true); buildPiece14.Crafting.Set(PieceManager.CraftingTable.None); buildPiece14.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece15 = AddLightPiece("CL_Small_Wall_Red"); buildPiece15.RequiredItems.Add("Uncut_Red_Stone", 3, recover: true); buildPiece15.RequiredItems.Add("IronNails", 1, recover: true); buildPiece15.Crafting.Set(PieceManager.CraftingTable.None); buildPiece15.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece16 = AddLightPiece("CL_Small_Wall_Yellow"); buildPiece16.RequiredItems.Add("Uncut_Yellow_Stone", 3, recover: true); buildPiece16.RequiredItems.Add("IronNails", 1, recover: true); buildPiece16.Crafting.Set(PieceManager.CraftingTable.None); buildPiece16.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece17 = AddLightPiece("CL_Standing_Lamp_Black"); buildPiece17.RequiredItems.Add("Uncut_Black_Stone", 1, recover: true); buildPiece17.RequiredItems.Add("IronNails", 1, recover: true); buildPiece17.Crafting.Set(PieceManager.CraftingTable.None); buildPiece17.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece18 = AddLightPiece("CL_Standing_Lamp_White"); buildPiece18.RequiredItems.Add("Uncut_Black_Stone", 1, recover: true); buildPiece18.RequiredItems.Add("IronNails", 1, recover: true); buildPiece18.Crafting.Set(PieceManager.CraftingTable.None); buildPiece18.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece19 = AddLightPiece("CL_Standing_Lamp_Blue"); buildPiece19.RequiredItems.Add("Uncut_Blue_Stone", 1, recover: true); buildPiece19.RequiredItems.Add("IronNails", 1, recover: true); buildPiece19.Crafting.Set(PieceManager.CraftingTable.None); buildPiece19.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece20 = AddLightPiece("CL_Standing_Lamp_Green"); buildPiece20.RequiredItems.Add("Uncut_Green_Stone", 1, recover: true); buildPiece20.RequiredItems.Add("IronNails", 1, recover: true); buildPiece20.Crafting.Set(PieceManager.CraftingTable.None); buildPiece20.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece21 = AddLightPiece("CL_Standing_Lamp_Orange"); buildPiece21.RequiredItems.Add("Uncut_Orange_Stone", 1, recover: true); buildPiece21.RequiredItems.Add("IronNails", 1, recover: true); buildPiece21.Crafting.Set(PieceManager.CraftingTable.None); buildPiece21.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece22 = AddLightPiece("CL_Standing_Lamp_Purple"); buildPiece22.RequiredItems.Add("Uncut_Purple_Stone", 1, recover: true); buildPiece22.RequiredItems.Add("IronNails", 1, recover: true); buildPiece22.Crafting.Set(PieceManager.CraftingTable.None); buildPiece22.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece23 = AddLightPiece("CL_Standing_Lamp_Red"); buildPiece23.RequiredItems.Add("Uncut_Red_Stone", 1, recover: true); buildPiece23.RequiredItems.Add("IronNails", 1, recover: true); buildPiece23.Crafting.Set(PieceManager.CraftingTable.None); buildPiece23.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece24 = AddLightPiece("CL_Standing_Lamp_Yellow"); buildPiece24.RequiredItems.Add("Uncut_Yellow_Stone", 1, recover: true); buildPiece24.RequiredItems.Add("IronNails", 1, recover: true); buildPiece24.Crafting.Set(PieceManager.CraftingTable.None); buildPiece24.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece25 = AddLightPiece("CL_Chandelier_Black"); buildPiece25.RequiredItems.Add("Uncut_Black_Stone", 15, recover: true); buildPiece25.RequiredItems.Add("IronNails", 5, recover: true); buildPiece25.Crafting.Set(PieceManager.CraftingTable.None); buildPiece25.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece26 = AddLightPiece("CL_Chandelier_White"); buildPiece26.RequiredItems.Add("Uncut_Black_Stone", 15, recover: true); buildPiece26.RequiredItems.Add("IronNails", 5, recover: true); buildPiece26.Crafting.Set(PieceManager.CraftingTable.None); buildPiece26.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece27 = AddLightPiece("CL_Chandelier_Blue"); buildPiece27.RequiredItems.Add("Uncut_Blue_Stone", 15, recover: true); buildPiece27.RequiredItems.Add("IronNails", 5, recover: true); buildPiece27.Crafting.Set(PieceManager.CraftingTable.None); buildPiece27.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece28 = AddLightPiece("CL_Chandelier_Green"); buildPiece28.RequiredItems.Add("Uncut_Green_Stone", 15, recover: true); buildPiece28.RequiredItems.Add("IronNails", 5, recover: true); buildPiece28.Crafting.Set(PieceManager.CraftingTable.None); buildPiece28.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece29 = AddLightPiece("CL_Chandelier_Orange"); buildPiece29.RequiredItems.Add("Uncut_Orange_Stone", 15, recover: true); buildPiece29.RequiredItems.Add("IronNails", 5, recover: true); buildPiece29.Crafting.Set(PieceManager.CraftingTable.None); buildPiece29.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece30 = AddLightPiece("CL_Chandelier_Yellow"); buildPiece30.RequiredItems.Add("Uncut_Yellow_Stone", 15, recover: true); buildPiece30.RequiredItems.Add("IronNails", 5, recover: true); buildPiece30.Crafting.Set(PieceManager.CraftingTable.None); buildPiece30.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece31 = AddLightPiece("CL_Chandelier_Purple"); buildPiece31.RequiredItems.Add("Uncut_Purple_Stone", 15, recover: true); buildPiece31.RequiredItems.Add("IronNails", 5, recover: true); buildPiece31.Crafting.Set(PieceManager.CraftingTable.None); buildPiece31.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece32 = AddLightPiece("CL_Chandelier_Red"); buildPiece32.RequiredItems.Add("Uncut_Red_Stone", 15, recover: true); buildPiece32.RequiredItems.Add("IronNails", 5, recover: true); buildPiece32.Crafting.Set(PieceManager.CraftingTable.None); buildPiece32.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece33 = AddLightPiece("CL_Brazier_Black"); buildPiece33.RequiredItems.Add("Uncut_Black_Stone", 10, recover: true); buildPiece33.RequiredItems.Add("IronNails", 4, recover: true); buildPiece33.Crafting.Set(PieceManager.CraftingTable.None); buildPiece33.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece34 = AddLightPiece("CL_Brazier_White"); buildPiece34.RequiredItems.Add("Uncut_Black_Stone", 10, recover: true); buildPiece34.RequiredItems.Add("IronNails", 4, recover: true); buildPiece34.Crafting.Set(PieceManager.CraftingTable.None); buildPiece34.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece35 = AddLightPiece("CL_Brazier_Blue"); buildPiece35.RequiredItems.Add("Uncut_Blue_Stone", 10, recover: true); buildPiece35.RequiredItems.Add("IronNails", 4, recover: true); buildPiece35.Crafting.Set(PieceManager.CraftingTable.None); buildPiece35.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece36 = AddLightPiece("CL_Brazier_Green"); buildPiece36.RequiredItems.Add("Uncut_Green_Stone", 10, recover: true); buildPiece36.RequiredItems.Add("IronNails", 4, recover: true); buildPiece36.Crafting.Set(PieceManager.CraftingTable.None); buildPiece36.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece37 = AddLightPiece("CL_Brazier_Orange"); buildPiece37.RequiredItems.Add("Uncut_Orange_Stone", 10, recover: true); buildPiece37.RequiredItems.Add("IronNails", 4, recover: true); buildPiece37.Crafting.Set(PieceManager.CraftingTable.None); buildPiece37.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece38 = AddLightPiece("CL_Brazier_Purple"); buildPiece38.RequiredItems.Add("Uncut_Purple_Stone", 10, recover: true); buildPiece38.RequiredItems.Add("IronNails", 4, recover: true); buildPiece38.Crafting.Set(PieceManager.CraftingTable.None); buildPiece38.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece39 = AddLightPiece("CL_Brazier_Red"); buildPiece39.RequiredItems.Add("Uncut_Red_Stone", 10, recover: true); buildPiece39.RequiredItems.Add("IronNails", 4, recover: true); buildPiece39.Crafting.Set(PieceManager.CraftingTable.None); buildPiece39.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece40 = AddLightPiece("CL_Brazier_Yellow"); buildPiece40.RequiredItems.Add("Uncut_Yellow_Stone", 10, recover: true); buildPiece40.RequiredItems.Add("IronNails", 4, recover: true); buildPiece40.Crafting.Set(PieceManager.CraftingTable.None); buildPiece40.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece41 = AddLightPiece("CL_Hanging_Black"); buildPiece41.RequiredItems.Add("Uncut_Black_Stone", 5, recover: true); buildPiece41.RequiredItems.Add("IronNails", 2, recover: true); buildPiece41.Crafting.Set(PieceManager.CraftingTable.None); buildPiece41.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece42 = AddLightPiece("CL_Hanging_White"); buildPiece42.RequiredItems.Add("Uncut_Black_Stone", 5, recover: true); buildPiece42.RequiredItems.Add("IronNails", 2, recover: true); buildPiece42.Crafting.Set(PieceManager.CraftingTable.None); buildPiece42.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece43 = AddLightPiece("CL_Hanging_Blue"); buildPiece43.RequiredItems.Add("Uncut_Blue_Stone", 5, recover: true); buildPiece43.RequiredItems.Add("IronNails", 2, recover: true); buildPiece43.Crafting.Set(PieceManager.CraftingTable.None); buildPiece43.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece44 = AddLightPiece("CL_Hanging_Green"); buildPiece44.RequiredItems.Add("Uncut_Green_Stone", 5, recover: true); buildPiece44.RequiredItems.Add("IronNails", 2, recover: true); buildPiece44.Crafting.Set(PieceManager.CraftingTable.None); buildPiece44.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece45 = AddLightPiece("CL_Hanging_Orange"); buildPiece45.RequiredItems.Add("Uncut_Orange_Stone", 5, recover: true); buildPiece45.RequiredItems.Add("IronNails", 2, recover: true); buildPiece45.Crafting.Set(PieceManager.CraftingTable.None); buildPiece45.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece46 = AddLightPiece("CL_Hanging_Purple"); buildPiece46.RequiredItems.Add("Uncut_Purple_Stone", 5, recover: true); buildPiece46.RequiredItems.Add("IronNails", 2, recover: true); buildPiece46.Crafting.Set(PieceManager.CraftingTable.None); buildPiece46.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece47 = AddLightPiece("CL_Hanging_Red"); buildPiece47.RequiredItems.Add("Uncut_Red_Stone", 5, recover: true); buildPiece47.RequiredItems.Add("IronNails", 2, recover: true); buildPiece47.Crafting.Set(PieceManager.CraftingTable.None); buildPiece47.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece48 = AddLightPiece("CL_Hanging_Yellow"); buildPiece48.RequiredItems.Add("Uncut_Yellow_Stone", 5, recover: true); buildPiece48.RequiredItems.Add("IronNails", 2, recover: true); buildPiece48.Crafting.Set(PieceManager.CraftingTable.None); buildPiece48.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece49 = AddLightPiece("CL_Pole_Black"); buildPiece49.RequiredItems.Add("Uncut_Black_Stone", 5, recover: true); buildPiece49.RequiredItems.Add("Iron", 2, recover: true); buildPiece49.Crafting.Set(PieceManager.CraftingTable.None); buildPiece49.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece50 = AddLightPiece("CL_Pole_White"); buildPiece50.RequiredItems.Add("Uncut_Black_Stone", 5, recover: true); buildPiece50.RequiredItems.Add("Iron", 2, recover: true); buildPiece50.Crafting.Set(PieceManager.CraftingTable.None); buildPiece50.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece51 = AddLightPiece("CL_Pole_Blue"); buildPiece51.RequiredItems.Add("Uncut_Blue_Stone", 5, recover: true); buildPiece51.RequiredItems.Add("Iron", 2, recover: true); buildPiece51.Crafting.Set(PieceManager.CraftingTable.None); buildPiece51.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece52 = AddLightPiece("CL_Pole_Green"); buildPiece52.RequiredItems.Add("Uncut_Green_Stone", 5, recover: true); buildPiece52.RequiredItems.Add("Iron", 2, recover: true); buildPiece52.Crafting.Set(PieceManager.CraftingTable.None); buildPiece52.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece53 = AddLightPiece("CL_Pole_Orange"); buildPiece53.RequiredItems.Add("Uncut_Orange_Stone", 5, recover: true); buildPiece53.RequiredItems.Add("Iron", 2, recover: true); buildPiece53.Crafting.Set(PieceManager.CraftingTable.None); buildPiece53.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece54 = AddLightPiece("CL_Pole_Purple"); buildPiece54.RequiredItems.Add("Uncut_Purple_Stone", 5, recover: true); buildPiece54.RequiredItems.Add("Iron", 2, recover: true); buildPiece54.Crafting.Set(PieceManager.CraftingTable.None); buildPiece54.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece55 = AddLightPiece("CL_Pole_Red"); buildPiece55.RequiredItems.Add("Uncut_Red_Stone", 5, recover: true); buildPiece55.RequiredItems.Add("Iron", 2, recover: true); buildPiece55.Crafting.Set(PieceManager.CraftingTable.None); buildPiece55.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece56 = AddLightPiece("CL_Pole_Yellow"); buildPiece56.RequiredItems.Add("Uncut_Yellow_Stone", 5, recover: true); buildPiece56.RequiredItems.Add("Iron", 2, recover: true); buildPiece56.Crafting.Set(PieceManager.CraftingTable.None); buildPiece56.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece57 = AddLightPiece("CL_Raw_Black"); buildPiece57.RequiredItems.Add("Uncut_Black_Stone", 5, recover: true); buildPiece57.Crafting.Set(PieceManager.CraftingTable.None); buildPiece57.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece58 = AddLightPiece("CL_Raw_White"); buildPiece58.RequiredItems.Add("Uncut_Black_Stone", 5, recover: true); buildPiece58.Crafting.Set(PieceManager.CraftingTable.None); buildPiece58.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece59 = AddLightPiece("CL_Raw_Blue"); buildPiece59.RequiredItems.Add("Uncut_Blue_Stone", 5, recover: true); buildPiece59.Crafting.Set(PieceManager.CraftingTable.None); buildPiece59.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece60 = AddLightPiece("CL_Raw_Green"); buildPiece60.RequiredItems.Add("Uncut_Green_Stone", 5, recover: true); buildPiece60.Crafting.Set(PieceManager.CraftingTable.None); buildPiece60.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece61 = AddLightPiece("CL_Raw_Orange"); buildPiece61.RequiredItems.Add("Uncut_Orange_Stone", 5, recover: true); buildPiece61.Crafting.Set(PieceManager.CraftingTable.None); buildPiece61.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece62 = AddLightPiece("CL_Raw_Purple"); buildPiece62.RequiredItems.Add("Uncut_Purple_Stone", 5, recover: true); buildPiece62.Crafting.Set(PieceManager.CraftingTable.None); buildPiece62.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece63 = AddLightPiece("CL_Raw_Red"); buildPiece63.RequiredItems.Add("Uncut_Red_Stone", 5, recover: true); buildPiece63.Crafting.Set(PieceManager.CraftingTable.None); buildPiece63.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece64 = AddLightPiece("CL_Raw_Yellow"); buildPiece64.RequiredItems.Add("Uncut_Yellow_Stone", 5, recover: true); buildPiece64.Crafting.Set(PieceManager.CraftingTable.None); buildPiece64.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece65 = AddLightPiece("CL_Standing_Torch_Black"); buildPiece65.RequiredItems.Add("Uncut_Black_Stone", 1, recover: true); buildPiece65.RequiredItems.Add("Wood", 2, recover: true); buildPiece65.Crafting.Set(PieceManager.CraftingTable.None); buildPiece65.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece66 = AddLightPiece("CL_Standing_Torch_White"); buildPiece66.RequiredItems.Add("Uncut_Black_Stone", 1, recover: true); buildPiece66.RequiredItems.Add("Wood", 2, recover: true); buildPiece66.Crafting.Set(PieceManager.CraftingTable.None); buildPiece66.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece67 = AddLightPiece("CL_Standing_Torch_Blue"); buildPiece67.RequiredItems.Add("Uncut_Blue_Stone", 1, recover: true); buildPiece67.RequiredItems.Add("Wood", 2, recover: true); buildPiece67.Crafting.Set(PieceManager.CraftingTable.None); buildPiece67.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece68 = AddLightPiece("CL_Standing_Torch_Green"); buildPiece68.RequiredItems.Add("Uncut_Green_Stone", 1, recover: true); buildPiece68.RequiredItems.Add("Wood", 2, recover: true); buildPiece68.Crafting.Set(PieceManager.CraftingTable.None); buildPiece68.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece69 = AddLightPiece("CL_Standing_Torch_Orange"); buildPiece69.RequiredItems.Add("Uncut_Orange_Stone", 1, recover: true); buildPiece69.RequiredItems.Add("Wood", 2, recover: true); buildPiece69.Crafting.Set(PieceManager.CraftingTable.None); buildPiece69.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece70 = AddLightPiece("CL_Standing_Torch_Purple"); buildPiece70.RequiredItems.Add("Uncut_Purple_Stone", 1, recover: true); buildPiece70.RequiredItems.Add("Wood", 2, recover: true); buildPiece70.Crafting.Set(PieceManager.CraftingTable.None); buildPiece70.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece71 = AddLightPiece("CL_Standing_Torch_Red"); buildPiece71.RequiredItems.Add("Uncut_Red_Stone", 1, recover: true); buildPiece71.RequiredItems.Add("Wood", 2, recover: true); buildPiece71.Crafting.Set(PieceManager.CraftingTable.None); buildPiece71.Category.Set(BuildPieceCategory.Misc); BuildPiece buildPiece72 = AddLightPiece("CL_Standing_Torch_Yellow"); buildPiece72.RequiredItems.Add("Uncut_Yellow_Stone", 1, recover: true); buildPiece72.RequiredItems.Add("Wood", 2, recover: true); buildPiece72.Crafting.Set(PieceManager.CraftingTable.None); buildPiece72.Category.Set(BuildPieceCategory.Misc); Assembly executingAssembly = Assembly.GetExecutingAssembly(); Harmony val = new Harmony("org.bepinex.plugins.crystallights"); val.PatchAll(executingAssembly); } private BuildPiece AddLightPiece(string prefabName) { //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Expected O, but got Unknown BuildPiece light = new BuildPiece(assets, prefabName); light.Tool.Add("CL_Crystal_Hammer"); string name = light.Prefab.GetComponent<Piece>().m_name; name = new Regex("['[\"\\]]").Replace(english.Localize(name), "").Trim(); string category = Localization.instance.Localize(name).Trim(); lightIntensities.Add(prefabName, config(name, "Light Range", light.Prefab.GetComponentInChildren<Light>().range, new ConfigDescription("The range of the light emitted by " + english.Localize(prefabName) + ".", (AcceptableValueBase)null, new object[1] { new ConfigurationManagerAttributes { Category = category } }))); lightIntensities[prefabName].SettingChanged += delegate { SetLightRange(light.Prefab); }; SetLightRange(light.Prefab); return light; } private void SetLightRange(GameObject lightPrefab) { Light[] componentsInChildren = lightPrefab.GetComponentsInChildren<Light>(); foreach (Light val in componentsInChildren) { val.range = lightIntensities[((Object)lightPrefab).name].Value; } } } } namespace Microsoft.CodeAnalysis { [CompilerGenerated] [<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded] internal sealed class <b89b921d-8954-4084-bd4d-1feb826a594e>EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] [<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded] [CompilerGenerated] internal sealed class <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute : Attribute { public readonly byte[] NullableFlags; public <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class <bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContextAttribute : Attribute { public readonly byte Flag; public <bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace LocalizationManager { [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(1)] [PublicAPI] [<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(0)] internal class Localizer { private static readonly Dictionary<string, Dictionary<string, Func<string>>> PlaceholderProcessors; private static readonly Dictionary<string, Dictionary<string, string>> loadedTexts; private static readonly ConditionalWeakTable<Localization, string> localizationLanguage; private static readonly List<WeakReference<Localization>> localizationObjects; [<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(2)] private static BaseUnityPlugin _plugin; private static readonly List<string> fileExtensions; private static BaseUnityPlugin plugin { get { //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Expected O, but got Unknown if (_plugin == null) { IEnumerable<TypeInfo> source; try { source = Assembly.GetExecutingAssembly().DefinedTypes.ToList(); } catch (ReflectionTypeLoadException ex) { source = from t in ex.Types where t != null select t.GetTypeInfo(); } _plugin = (BaseUnityPlugin)Chainloader.ManagerObject.GetComponent((Type)source.First([<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (TypeInfo t) => t.IsClass && typeof(BaseUnityPlugin).IsAssignableFrom(t))); } return _plugin; } } private static void UpdatePlaceholderText(Localization localization, string key) { localizationLanguage.TryGetValue(localization, out var value); string text = loadedTexts[value][key]; if (PlaceholderProcessors.TryGetValue(key, out var value2)) { text = value2.Aggregate(text, [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (string current, KeyValuePair<string, Func<string>> kv) => current.Replace("{" + kv.Key + "}", kv.Value())); } localization.AddWord(key, text); } public static void AddPlaceholder<T>(string key, string placeholder, ConfigEntry<T> config, [<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(new byte[] { 2, 1, 1 })] Func<T, string> convertConfigValue = null) { if (convertConfigValue == null) { convertConfigValue = [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] [return: <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(1)] (T val) => val.ToString(); } if (!PlaceholderProcessors.ContainsKey(key)) { PlaceholderProcessors[key] = new Dictionary<string, Func<string>>(); } config.SettingChanged += [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (object _, EventArgs _) => { UpdatePlaceholder(); }; if (loadedTexts.ContainsKey(Localization.instance.GetSelectedLanguage())) { UpdatePlaceholder(); } void UpdatePlaceholder() { PlaceholderProcessors[key][placeholder] = () => convertConfigValue(config.Value); UpdatePlaceholderText(Localization.instance, key); } } public static void AddText(string key, string text) { List<WeakReference<Localization>> list = new List<WeakReference<Localization>>(); foreach (WeakReference<Localization> localizationObject in localizationObjects) { if (localizationObject.TryGetTarget(out var target)) { Dictionary<string, string> dictionary = loadedTexts[localizationLanguage.GetOrCreateValue(target)]; if (!target.m_translations.ContainsKey(key)) { dictionary[key] = text; target.AddWord(key, text); } } else { list.Add(localizationObject); } } foreach (WeakReference<Localization> item in list) { localizationObjects.Remove(item); } } public static void Load() { LoadLocalization(Localization.instance, Localization.instance.GetSelectedLanguage()); } private static void LoadLocalization(Localization __instance, string language) { if (!localizationLanguage.Remove(__instance)) { localizationObjects.Add(new WeakReference<Localization>(__instance)); } localizationLanguage.Add(__instance, language); Dictionary<string, string> dictionary = new Dictionary<string, string>(); foreach (string item in from f in Directory.GetFiles(Path.GetDirectoryName(Paths.PluginPath), plugin.Info.Metadata.Name + ".*", SearchOption.AllDirectories) where fileExtensions.IndexOf(Path.GetExtension(f)) >= 0 select f) { string text = Path.GetFileNameWithoutExtension(item).Split(new char[1] { '.' })[1]; if (dictionary.ContainsKey(text)) { Debug.LogWarning((object)("Duplicate key " + text + " found for " + plugin.Info.Metadata.Name + ". The duplicate file found at " + item + " will be skipped.")); } else { dictionary[text] = item; } } byte[] array = LoadTranslationFromAssembly("English"); if (array == null) { throw new Exception("Found no English localizations in mod " + plugin.Info.Metadata.Name + ". Expected an embedded resource translations/English.json or translations/English.yml."); } Dictionary<string, string> dictionary2 = new <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder().IgnoreFields().Build().Deserialize<Dictionary<string, string>>(Encoding.UTF8.GetString(array)); if (dictionary2 == null) { throw new Exception("Localization for mod " + plugin.Info.Metadata.Name + " failed: Localization file was empty."); } string text2 = null; if (language != "English") { if (dictionary.ContainsKey(language)) { text2 = File.ReadAllText(dictionary[language]); } else { byte[] array2 = LoadTranslationFromAssembly(language); if (array2 != null) { text2 = Encoding.UTF8.GetString(array2); } } } if (text2 == null && dictionary.ContainsKey("English")) { text2 = File.ReadAllText(dictionary["English"]); } if (text2 != null) { foreach (KeyValuePair<string, string> item2 in new <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder().IgnoreFields().Build().Deserialize<Dictionary<string, string>>(text2) ?? new Dictionary<string, string>()) { dictionary2[item2.Key] = item2.Value; } } loadedTexts[language] = dictionary2; foreach (KeyValuePair<string, string> item3 in dictionary2) { UpdatePlaceholderText(__instance, item3.Key); } } static Localizer() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Expected O, but got Unknown PlaceholderProcessors = new Dictionary<string, Dictionary<string, Func<string>>>(); loadedTexts = new Dictionary<string, Dictionary<string, string>>(); localizationLanguage = new ConditionalWeakTable<Localization, string>(); localizationObjects = new List<WeakReference<Localization>>(); fileExtensions = new List<string> { ".json", ".yml" }; new Harmony("org.bepinex.helpers.LocalizationManager").Patch((MethodBase)AccessTools.DeclaredMethod(typeof(Localization), "LoadCSV", (Type[])null, (Type[])null), (HarmonyMethod)null, new HarmonyMethod(AccessTools.DeclaredMethod(typeof(Localizer), "LoadLocalization", (Type[])null, (Type[])null)), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null); } [return: <f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(2)] private static byte[] LoadTranslationFromAssembly(string language) { foreach (string fileExtension in fileExtensions) { byte[] array = ReadEmbeddedFileBytes("translations." + language + fileExtension); if (array != null) { return array; } } return null; } [<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(2)] public static byte[] ReadEmbeddedFileBytes([<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(1)] string resourceFileName, Assembly containingAssembly = null) { using MemoryStream memoryStream = new MemoryStream(); if ((object)containingAssembly == null) { containingAssembly = Assembly.GetCallingAssembly(); } string text = containingAssembly.GetManifestResourceNames().FirstOrDefault([<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(0)] (string str) => str.EndsWith(resourceFileName, StringComparison.Ordinal)); if (text != null) { containingAssembly.GetManifestResourceStream(text)?.CopyTo(memoryStream); } return (memoryStream.Length == 0L) ? null : memoryStream.ToArray(); } } } namespace Microsoft.CodeAnalysis { [CompilerGenerated] [<8e4463b6-bae6-4f2c-8630-16f0a6d78824>Embedded] internal sealed class <8e4463b6-bae6-4f2c-8630-16f0a6d78824>EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [<8e4463b6-bae6-4f2c-8630-16f0a6d78824>Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class <d086df14-b1c5-4533-8c99-acbca0bd3e2f>NullableAttribute : Attribute { public readonly byte[] NullableFlags; public <d086df14-b1c5-4533-8c99-acbca0bd3e2f>NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public <d086df14-b1c5-4533-8c99-acbca0bd3e2f>NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [<8e4463b6-bae6-4f2c-8630-16f0a6d78824>Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class <b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContextAttribute : Attribute { public readonly byte Flag; public <b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace System.Diagnostics.CodeAnalysis { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)] internal sealed class <d1de1ac9-7138-42ea-95ad-d33b9cacfac9>AllowNullAttribute : Attribute { } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)] internal sealed class <239d04ff-e427-40bf-878d-5535acc30bb1>DisallowNullAttribute : Attribute { } [AttributeUsage(AttributeTargets.Method, Inherited = false)] internal sealed class <0994b631-39f0-4fc6-9e90-24fda3ed9928>DoesNotReturnAttribute : Attribute { } [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] internal sealed class <a0dd3811-5967-42ff-a130-5b976fd7dc1a>DoesNotReturnIfAttribute : Attribute { public bool ParameterValue { get; } public <a0dd3811-5967-42ff-a130-5b976fd7dc1a>DoesNotReturnIfAttribute(bool parameterValue) { ParameterValue = parameterValue; } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, Inherited = false)] internal sealed class <bb54031e-8042-4aae-b9d1-1ddf7e3afef7>MaybeNullAttribute : Attribute { } [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] internal sealed class <415262cd-afcf-4b06-94dd-19db9a2e5484>MaybeNullWhenAttribute : Attribute { public bool ReturnValue { get; } public <415262cd-afcf-4b06-94dd-19db9a2e5484>MaybeNullWhenAttribute(bool returnValue) { ReturnValue = returnValue; } } [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, Inherited = false)] internal sealed class <66397b17-5418-46c1-8ba9-5b3d2aa42f6b>NotNullAttribute : Attribute { } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Parameter | AttributeTargets.ReturnValue, AllowMultiple = true, Inherited = false)] [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] internal sealed class <acb5b025-f7c7-4f79-8b58-06a09e39368d>NotNullIfNotNullAttribute : Attribute { public string ParameterName { get; } public <acb5b025-f7c7-4f79-8b58-06a09e39368d>NotNullIfNotNullAttribute(string parameterName) { ParameterName = parameterName; } } [AttributeUsage(AttributeTargets.Parameter, Inherited = false)] internal sealed class <2c0161a2-2f88-4b9e-8b01-2a3d1df765e6>NotNullWhenAttribute : Attribute { public bool ReturnValue { get; } public <2c0161a2-2f88-4b9e-8b01-2a3d1df765e6>NotNullWhenAttribute(bool returnValue) { ReturnValue = returnValue; } } } namespace System.Collections.Generic { internal static class <fa27229c-a1df-44d9-8ded-4628ea49b205>DeconstructionExtensions { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public static void Deconstruct<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TKey, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TValue>([<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(new byte[] { 0, 1, 1 })] this KeyValuePair<TKey, TValue> pair, out TKey key, out TValue value) { key = pair.Key; value = pair.Value; } } } namespace YamlDotNet { [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal sealed class <b24e200b-793d-4194-b478-09fee28526b8>CultureInfoAdapter : CultureInfo { private readonly IFormatProvider provider; public <b24e200b-793d-4194-b478-09fee28526b8>CultureInfoAdapter(CultureInfo baseCulture, IFormatProvider provider) : base(baseCulture.LCID) { this.provider = provider; } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(2)] public override object GetFormat(Type formatType) { return provider.GetFormat(formatType); } } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] internal static class <6bb0ba5c-2315-4c5b-87b6-449ce29b70bd>ReflectionExtensions { [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] private static readonly FieldInfo RemoteStackTraceField = typeof(Exception).GetField("_remoteStackTraceString", BindingFlags.Instance | BindingFlags.NonPublic); [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public static Type BaseType(this Type type) { return type.BaseType; } public static bool IsValueType(this Type type) { return type.IsValueType; } public static bool IsGenericType(this Type type) { return type.IsGenericType; } public static bool IsGenericTypeDefinition(this Type type) { return type.IsGenericTypeDefinition; } public static bool IsInterface(this Type type) { return type.IsInterface; } public static bool IsEnum(this Type type) { return type.IsEnum; } public static bool IsDbNull(this object value) { return value is DBNull; } public static bool HasDefaultConstructor(this Type type) { if (!type.IsValueType) { return type.GetConstructor(BindingFlags.Instance | BindingFlags.Public, null, Type.EmptyTypes, null) != null; } return true; } public static TypeCode GetTypeCode(this Type type) { return Type.GetTypeCode(type); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public static PropertyInfo GetPublicProperty(this Type type, string name) { return type.GetProperty(name); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public static FieldInfo GetPublicStaticField(this Type type, string name) { return type.GetField(name, BindingFlags.Static | BindingFlags.Public); } public static IEnumerable<PropertyInfo> GetProperties(this Type type, bool includeNonPublic) { BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public; if (includeNonPublic) { bindingFlags |= BindingFlags.NonPublic; } if (!type.IsInterface) { return type.GetProperties(bindingFlags); } return new Type[1] { type }.Concat(type.GetInterfaces()).SelectMany([<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(0)] (Type i) => i.GetProperties(bindingFlags)); } public static IEnumerable<PropertyInfo> GetPublicProperties(this Type type) { return GetProperties(type, includeNonPublic: false); } public static IEnumerable<FieldInfo> GetPublicFields(this Type type) { return type.GetFields(BindingFlags.Instance | BindingFlags.Public); } public static IEnumerable<MethodInfo> GetPublicStaticMethods(this Type type) { return type.GetMethods(BindingFlags.Static | BindingFlags.Public); } public static MethodInfo GetPrivateStaticMethod(this Type type, string name) { return type.GetMethod(name, BindingFlags.Static | BindingFlags.NonPublic) ?? throw new MissingMethodException("Expected to find a method named '" + name + "' in '" + type.FullName + "'."); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public static MethodInfo GetPublicStaticMethod(this Type type, string name, params Type[] parameterTypes) { return type.GetMethod(name, BindingFlags.Static | BindingFlags.Public, null, parameterTypes, null); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public static MethodInfo GetPublicInstanceMethod(this Type type, string name) { return type.GetMethod(name, BindingFlags.Instance | BindingFlags.Public); } public static Exception Unwrap(this TargetInvocationException ex) { Exception innerException = ex.InnerException; if (innerException == null) { return ex; } if (RemoteStackTraceField != null) { RemoteStackTraceField.SetValue(innerException, innerException.StackTrace + "\r\n"); } return innerException; } public static bool IsInstanceOf(this Type type, object o) { return type.IsInstanceOfType(o); } public static Attribute[] GetAllCustomAttributes<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TAttribute>(this PropertyInfo property) { return Attribute.GetCustomAttributes(property, typeof(TAttribute)); } } internal static class <6537d2e8-ac34-4a99-bffc-b13e4e289fa6>PropertyInfoExtensions { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public static object ReadValue(this PropertyInfo property, object target) { return property.GetValue(target, null); } } internal static class <05ed95d6-9f6c-408c-a04c-446167f122cf>StandardRegexOptions { public const RegexOptions Compiled = RegexOptions.Compiled; } } namespace YamlDotNet.Serialization { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] internal abstract class <6854748a-db39-4259-ba81-0594adb5b94b>BuilderSkeleton<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TBuilder> where TBuilder : <6854748a-db39-4259-ba81-0594adb5b94b>BuilderSkeleton<TBuilder> { internal <8415bd25-4c19-4eaf-bf46-fb9f0daeef6a>INamingConvention namingConvention = <4a26ba71-df91-4273-a61d-a8fff76a177b>NullNamingConvention.Instance; internal <c069c2af-387d-45b0-b5eb-4e1ab6ea4a77>ITypeResolver typeResolver; internal readonly <eff85ddc-dcf2-4d16-88c1-009583e332ce>YamlAttributeOverrides overrides; internal readonly <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing, <05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter> typeConverterFactories; internal readonly <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector, <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector> typeInspectorFactories; private bool ignoreFields; private bool includeNonPublicProperties; protected abstract TBuilder Self { get; } internal <6854748a-db39-4259-ba81-0594adb5b94b>BuilderSkeleton(<c069c2af-387d-45b0-b5eb-4e1ab6ea4a77>ITypeResolver typeResolver) { overrides = new <eff85ddc-dcf2-4d16-88c1-009583e332ce>YamlAttributeOverrides(); typeConverterFactories = new <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing, <05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter> { { typeof(<7866561d-d4c2-48a2-900c-2addd8e28c5d>GuidConverter), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <7866561d-d4c2-48a2-900c-2addd8e28c5d>GuidConverter(jsonCompatible: false) }, { typeof(<623a0269-948e-4c4c-ae3b-3587b42c06c4>SystemTypeConverter), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <623a0269-948e-4c4c-ae3b-3587b42c06c4>SystemTypeConverter() } }; typeInspectorFactories = new <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector, <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector>(); this.typeResolver = typeResolver ?? throw new ArgumentNullException("typeResolver"); } internal <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector BuildTypeInspector() { <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector2 = new <4a711928-f8f3-4eac-aa98-638defae6e47>ReadablePropertiesTypeInspector(typeResolver, includeNonPublicProperties); if (!ignoreFields) { <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector2 = new <1d6ad2d5-32f4-4786-99f7-2adaecc4b7e0>CompositeTypeInspector(new <0eb1579c-6bec-4643-b44c-c77bdcb166a5>ReadableFieldsTypeInspector(typeResolver), <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector2); } return typeInspectorFactories.BuildComponentChain(<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector2); } public TBuilder IgnoreFields() { ignoreFields = true; return Self; } public TBuilder IncludeNonPublicProperties() { includeNonPublicProperties = true; return Self; } public TBuilder WithNamingConvention(<8415bd25-4c19-4eaf-bf46-fb9f0daeef6a>INamingConvention namingConvention) { this.namingConvention = namingConvention ?? throw new ArgumentNullException("namingConvention"); return Self; } public TBuilder WithTypeResolver(<c069c2af-387d-45b0-b5eb-4e1ab6ea4a77>ITypeResolver typeResolver) { this.typeResolver = typeResolver ?? throw new ArgumentNullException("typeResolver"); return Self; } public abstract TBuilder WithTagMapping(<bca081f8-df74-4d1e-ae06-8e5741607d60>TagName tag, Type type); public TBuilder WithAttributeOverride<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TClass>(Expression<Func<TClass, object>> propertyAccessor, Attribute attribute) { overrides.Add(propertyAccessor, attribute); return Self; } public TBuilder WithAttributeOverride(Type type, string member, Attribute attribute) { overrides.Add(type, member, attribute); return Self; } public TBuilder WithTypeConverter(<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter typeConverter) { return WithTypeConverter(typeConverter, delegate(<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter> w) { w.OnTop(); }); } public TBuilder WithTypeConverter(<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter typeConverter, Action<<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter>> where) { if (typeConverter == null) { throw new ArgumentNullException("typeConverter"); } if (where == null) { throw new ArgumentNullException("where"); } where(typeConverterFactories.CreateRegistrationLocationSelector(typeConverter.GetType(), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => typeConverter)); return Self; } public TBuilder WithTypeConverter<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TYamlTypeConverter>(<b0ad906e-7555-4d2b-b31f-3a4db3c3d970>WrapperFactory<<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter, <05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter> typeConverterFactory, Action<<2fe8cad5-706d-47d3-8140-aaaa0d817290>ITrackingRegistrationLocationSelectionSyntax<<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter>> where) where TYamlTypeConverter : <05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter { if (typeConverterFactory == null) { throw new ArgumentNullException("typeConverterFactory"); } if (where == null) { throw new ArgumentNullException("where"); } where(typeConverterFactories.CreateTrackingRegistrationLocationSelector(typeof(TYamlTypeConverter), (<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter wrapped, <b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => typeConverterFactory(wrapped))); return Self; } public TBuilder WithoutTypeConverter<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TYamlTypeConverter>() where TYamlTypeConverter : <05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter { return WithoutTypeConverter(typeof(TYamlTypeConverter)); } public TBuilder WithoutTypeConverter(Type converterType) { if (converterType == null) { throw new ArgumentNullException("converterType"); } typeConverterFactories.Remove(converterType); return Self; } public TBuilder WithTypeInspector<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TTypeInspector>(Func<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector, TTypeInspector> typeInspectorFactory) where TTypeInspector : <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector { return WithTypeInspector(typeInspectorFactory, delegate(<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector> w) { w.OnTop(); }); } public TBuilder WithTypeInspector<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TTypeInspector>(Func<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector, TTypeInspector> typeInspectorFactory, Action<<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector>> where) where TTypeInspector : <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector { if (typeInspectorFactory == null) { throw new ArgumentNullException("typeInspectorFactory"); } if (where == null) { throw new ArgumentNullException("where"); } where(typeInspectorFactories.CreateRegistrationLocationSelector(typeof(TTypeInspector), (<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector inner) => typeInspectorFactory(inner))); return Self; } public TBuilder WithTypeInspector<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TTypeInspector>(<88009b9a-4e6f-4110-94f3-c7987fc4c9bc>WrapperFactory<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector, <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector, TTypeInspector> typeInspectorFactory, Action<<2fe8cad5-706d-47d3-8140-aaaa0d817290>ITrackingRegistrationLocationSelectionSyntax<<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector>> where) where TTypeInspector : <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector { if (typeInspectorFactory == null) { throw new ArgumentNullException("typeInspectorFactory"); } if (where == null) { throw new ArgumentNullException("where"); } where(typeInspectorFactories.CreateTrackingRegistrationLocationSelector(typeof(TTypeInspector), (<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector wrapped, <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector inner) => typeInspectorFactory(wrapped, inner))); return Self; } public TBuilder WithoutTypeInspector<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TTypeInspector>() where TTypeInspector : <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector { return WithoutTypeInspector(typeof(TTypeInspector)); } public TBuilder WithoutTypeInspector(Type inspectorType) { if (inspectorType == null) { throw new ArgumentNullException("inspectorType"); } typeInspectorFactories.Remove(inspectorType); return Self; } protected IEnumerable<<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter> BuildTypeConverters() { return typeConverterFactories.BuildComponentList(); } } internal delegate TComponent <b0ad906e-7555-4d2b-b31f-3a4db3c3d970>WrapperFactory<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TComponentBase, TComponent>(TComponentBase wrapped) where TComponent : TComponentBase; internal delegate TComponent <88009b9a-4e6f-4110-94f3-c7987fc4c9bc>WrapperFactory<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TArgument, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TComponentBase, TComponent>(TComponentBase wrapped, TArgument argument) where TComponent : TComponentBase; [Flags] internal enum <5349508e-acd6-4c61-918f-c43c92fa9787>DefaultValuesHandling { Preserve = 0, OmitNull = 1, OmitDefaults = 2, OmitEmptyCollections = 4 } [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal sealed class <c9dc66d2-0457-4631-b8e6-e1c40a97386a>Deserializer : <a39d1482-581f-4ce7-9e9e-724db035cead>IDeserializer { private readonly <edc783a3-50cf-4ecf-b878-3be583573362>IValueDeserializer valueDeserializer; public <c9dc66d2-0457-4631-b8e6-e1c40a97386a>Deserializer() : this(new <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder().BuildValueDeserializer()) { } private <c9dc66d2-0457-4631-b8e6-e1c40a97386a>Deserializer(<edc783a3-50cf-4ecf-b878-3be583573362>IValueDeserializer valueDeserializer) { this.valueDeserializer = valueDeserializer ?? throw new ArgumentNullException("valueDeserializer"); } public static <c9dc66d2-0457-4631-b8e6-e1c40a97386a>Deserializer FromValueDeserializer(<edc783a3-50cf-4ecf-b878-3be583573362>IValueDeserializer valueDeserializer) { return new <c9dc66d2-0457-4631-b8e6-e1c40a97386a>Deserializer(valueDeserializer); } public T Deserialize<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] T>(string input) { using StringReader input2 = new StringReader(input); return Deserialize<T>(input2); } public T Deserialize<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] T>(TextReader input) { return Deserialize<T>(new <e603777b-18a3-4908-8443-b68d7bd851e2>Parser(input)); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public object Deserialize(TextReader input) { return Deserialize(input, typeof(object)); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public object Deserialize(string input, Type type) { using StringReader input2 = new StringReader(input); return Deserialize(input2, type); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public object Deserialize(TextReader input, Type type) { return Deserialize(new <e603777b-18a3-4908-8443-b68d7bd851e2>Parser(input), type); } public T Deserialize<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] T>(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser) { return (T)Deserialize(parser, typeof(T)); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public object Deserialize(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser) { return Deserialize(parser, typeof(object)); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] public object Deserialize(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser, Type type) { if (parser == null) { throw new ArgumentNullException("parser"); } if (type == null) { throw new ArgumentNullException("type"); } <3bece373-4354-48b2-9342-10c9792a53d5>StreamStart @event; bool flag = parser.TryConsume<<3bece373-4354-48b2-9342-10c9792a53d5>StreamStart>(out @event); <dfd30d8d-6d47-4808-9b1e-9829933f22e1>DocumentStart event2; bool flag2 = parser.TryConsume<<dfd30d8d-6d47-4808-9b1e-9829933f22e1>DocumentStart>(out event2); object result = null; if (!parser.Accept<<d79f5d22-172a-49d3-a7ec-d74a33dc9ee6>DocumentEnd>(out var _) && !parser.Accept<<6a77ae44-c1c4-48ae-918a-09ec514d3828>StreamEnd>(out var _)) { using <b69ce8c5-17a3-4090-8575-e74f6381e75b>SerializerState <b69ce8c5-17a3-4090-8575-e74f6381e75b>SerializerState = new <b69ce8c5-17a3-4090-8575-e74f6381e75b>SerializerState(); result = valueDeserializer.DeserializeValue(parser, type, <b69ce8c5-17a3-4090-8575-e74f6381e75b>SerializerState, valueDeserializer); <b69ce8c5-17a3-4090-8575-e74f6381e75b>SerializerState.OnDeserialization(); } if (flag2) { parser.Consume<<d79f5d22-172a-49d3-a7ec-d74a33dc9ee6>DocumentEnd>(); } if (flag) { parser.Consume<<6a77ae44-c1c4-48ae-918a-09ec514d3828>StreamEnd>(); } return result; } } [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(new byte[] { 0, 1 })] [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal sealed class <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder : <6854748a-db39-4259-ba81-0594adb5b94b>BuilderSkeleton<<3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder> { private Lazy<<2f3625cb-d27d-4387-99cd-500bae7b18ec>IObjectFactory> objectFactory; private readonly <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing, <3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer> nodeDeserializerFactories; private readonly <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing, <05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver> nodeTypeResolverFactories; private readonly Dictionary<<bca081f8-df74-4d1e-ae06-8e5741607d60>TagName, Type> tagMappings; private readonly Dictionary<Type, Type> typeMappings; private bool ignoreUnmatched; protected override <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder Self => this; public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder() : base((<c069c2af-387d-45b0-b5eb-4e1ab6ea4a77>ITypeResolver)new <b04c5a21-bc50-43c3-bd5e-74f7cb0e4575>StaticTypeResolver()) { typeMappings = new Dictionary<Type, Type>(); objectFactory = new Lazy<<2f3625cb-d27d-4387-99cd-500bae7b18ec>IObjectFactory>(() => new <4bf8d7d6-7c68-4bba-b408-1e155665305e>DefaultObjectFactory(typeMappings), isThreadSafe: true); tagMappings = new Dictionary<<bca081f8-df74-4d1e-ae06-8e5741607d60>TagName, Type> { { <8213d600-99cd-4bca-a7c8-03ee5133b323>FailsafeSchema.Tags.Map, typeof(Dictionary<object, object>) }, { <8213d600-99cd-4bca-a7c8-03ee5133b323>FailsafeSchema.Tags.Str, typeof(string) }, { <33eafa7a-f492-4897-9337-c2cb319237b9>JsonSchema.Tags.Bool, typeof(bool) }, { <33eafa7a-f492-4897-9337-c2cb319237b9>JsonSchema.Tags.Float, typeof(double) }, { <33eafa7a-f492-4897-9337-c2cb319237b9>JsonSchema.Tags.Int, typeof(int) }, { <bdd55c9b-f00e-4439-9f56-713bc254c84b>DefaultSchema.Tags.Timestamp, typeof(DateTime) } }; typeInspectorFactories.Add(typeof(<6ab0b628-dfd9-455f-a463-501b1ed761c5>CachedTypeInspector), (<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector inner) => new <6ab0b628-dfd9-455f-a463-501b1ed761c5>CachedTypeInspector(inner)); typeInspectorFactories.Add(typeof(<1839a533-fa32-47f1-8859-2ec8058072cc>NamingConventionTypeInspector), (<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector inner) => (!(namingConvention is <4a26ba71-df91-4273-a61d-a8fff76a177b>NullNamingConvention)) ? new <1839a533-fa32-47f1-8859-2ec8058072cc>NamingConventionTypeInspector(inner, namingConvention) : inner); typeInspectorFactories.Add(typeof(<b58611fa-60ba-4b21-872f-edbce1af4075>YamlAttributesTypeInspector), (<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector inner) => new <b58611fa-60ba-4b21-872f-edbce1af4075>YamlAttributesTypeInspector(inner)); typeInspectorFactories.Add(typeof(<c767fa7d-9f06-40f1-89f2-0cbc97e8450d>YamlAttributeOverridesInspector), (<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector inner) => (overrides == null) ? inner : new <c767fa7d-9f06-40f1-89f2-0cbc97e8450d>YamlAttributeOverridesInspector(inner, overrides.Clone())); typeInspectorFactories.Add(typeof(<c1656527-a766-4c0a-8f19-d429f28587c1>ReadableAndWritablePropertiesTypeInspector), (<8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector inner) => new <c1656527-a766-4c0a-8f19-d429f28587c1>ReadableAndWritablePropertiesTypeInspector(inner)); nodeDeserializerFactories = new <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing, <3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer> { { typeof(<b8a8ad5c-6e24-4f35-a55f-aa1a0a8687d1>YamlConvertibleNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <b8a8ad5c-6e24-4f35-a55f-aa1a0a8687d1>YamlConvertibleNodeDeserializer(objectFactory.Value) }, { typeof(<0d454deb-f6ab-4b5f-9d74-afb5c1ae1912>YamlSerializableNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <0d454deb-f6ab-4b5f-9d74-afb5c1ae1912>YamlSerializableNodeDeserializer(objectFactory.Value) }, { typeof(<0e0f30e2-cf57-41b9-a5b3-04aa82b2f7f2>TypeConverterNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <0e0f30e2-cf57-41b9-a5b3-04aa82b2f7f2>TypeConverterNodeDeserializer(BuildTypeConverters()) }, { typeof(<67e2785e-327c-4d9d-818a-fff2b37ec38c>NullNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <67e2785e-327c-4d9d-818a-fff2b37ec38c>NullNodeDeserializer() }, { typeof(<e0624b1e-beec-4206-90fb-80606c5318f2>ScalarNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <e0624b1e-beec-4206-90fb-80606c5318f2>ScalarNodeDeserializer() }, { typeof(<8494bf18-030f-4a7a-b3e7-202f3db35cb9>ArrayNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <8494bf18-030f-4a7a-b3e7-202f3db35cb9>ArrayNodeDeserializer() }, { typeof(<9528613b-16f8-46fe-b3a1-ef145c244edc>DictionaryNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <9528613b-16f8-46fe-b3a1-ef145c244edc>DictionaryNodeDeserializer(objectFactory.Value) }, { typeof(<19730291-0901-4bad-8c95-b38293a85159>CollectionNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <19730291-0901-4bad-8c95-b38293a85159>CollectionNodeDeserializer(objectFactory.Value) }, { typeof(<4c9be8ae-986c-4bf2-abcb-e854d240e0d2>EnumerableNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <4c9be8ae-986c-4bf2-abcb-e854d240e0d2>EnumerableNodeDeserializer() }, { typeof(<4004ad93-3fa2-4377-8d14-4d1169457b5a>ObjectNodeDeserializer), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <4004ad93-3fa2-4377-8d14-4d1169457b5a>ObjectNodeDeserializer(objectFactory.Value, BuildTypeInspector(), ignoreUnmatched) } }; nodeTypeResolverFactories = new <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing, <05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver> { { typeof(<20c7d62c-a87a-40f5-b93b-5a58b3461df2>MappingNodeTypeResolver), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <20c7d62c-a87a-40f5-b93b-5a58b3461df2>MappingNodeTypeResolver(typeMappings) }, { typeof(<d84ba592-bf7c-4037-8620-1cb6e74b5ea5>YamlConvertibleTypeResolver), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <d84ba592-bf7c-4037-8620-1cb6e74b5ea5>YamlConvertibleTypeResolver() }, { typeof(<a285e8e0-ba26-4975-b339-c8d47a557fb5>YamlSerializableTypeResolver), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <a285e8e0-ba26-4975-b339-c8d47a557fb5>YamlSerializableTypeResolver() }, { typeof(<7c9a16e2-3008-4b9e-8e4f-f3ed87bebf4f>TagNodeTypeResolver), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <7c9a16e2-3008-4b9e-8e4f-f3ed87bebf4f>TagNodeTypeResolver(tagMappings) }, { typeof(<9ca241f9-6070-4944-9c8e-35c514107598>PreventUnknownTagsNodeTypeResolver), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <9ca241f9-6070-4944-9c8e-35c514107598>PreventUnknownTagsNodeTypeResolver() }, { typeof(<655c4487-748f-41c7-8f9f-44f60b522c32>DefaultContainersNodeTypeResolver), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => new <655c4487-748f-41c7-8f9f-44f60b522c32>DefaultContainersNodeTypeResolver() } }; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithObjectFactory(<2f3625cb-d27d-4387-99cd-500bae7b18ec>IObjectFactory objectFactory) { if (objectFactory == null) { throw new ArgumentNullException("objectFactory"); } this.objectFactory = new Lazy<<2f3625cb-d27d-4387-99cd-500bae7b18ec>IObjectFactory>(() => objectFactory, isThreadSafe: true); return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithObjectFactory(Func<Type, object> objectFactory) { if (objectFactory == null) { throw new ArgumentNullException("objectFactory"); } return WithObjectFactory(new <56471553-687d-4c85-82a1-ee6eb2295863>LambdaObjectFactory(objectFactory)); } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithNodeDeserializer(<3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer nodeDeserializer) { return WithNodeDeserializer(nodeDeserializer, delegate(<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer> w) { w.OnTop(); }); } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithNodeDeserializer(<3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer nodeDeserializer, Action<<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer>> where) { if (nodeDeserializer == null) { throw new ArgumentNullException("nodeDeserializer"); } if (where == null) { throw new ArgumentNullException("where"); } where(nodeDeserializerFactories.CreateRegistrationLocationSelector(nodeDeserializer.GetType(), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => nodeDeserializer)); return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithNodeDeserializer<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TNodeDeserializer>(<b0ad906e-7555-4d2b-b31f-3a4db3c3d970>WrapperFactory<<3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer, TNodeDeserializer> nodeDeserializerFactory, Action<<2fe8cad5-706d-47d3-8140-aaaa0d817290>ITrackingRegistrationLocationSelectionSyntax<<3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer>> where) where TNodeDeserializer : <3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer { if (nodeDeserializerFactory == null) { throw new ArgumentNullException("nodeDeserializerFactory"); } if (where == null) { throw new ArgumentNullException("where"); } where(nodeDeserializerFactories.CreateTrackingRegistrationLocationSelector(typeof(TNodeDeserializer), (<3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer wrapped, <b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => nodeDeserializerFactory(wrapped))); return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithoutNodeDeserializer<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TNodeDeserializer>() where TNodeDeserializer : <3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer { return WithoutNodeDeserializer(typeof(TNodeDeserializer)); } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithoutNodeDeserializer(Type nodeDeserializerType) { if (nodeDeserializerType == null) { throw new ArgumentNullException("nodeDeserializerType"); } nodeDeserializerFactories.Remove(nodeDeserializerType); return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithNodeTypeResolver(<05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver nodeTypeResolver) { return WithNodeTypeResolver(nodeTypeResolver, delegate(<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver> w) { w.OnTop(); }); } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithNodeTypeResolver(<05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver nodeTypeResolver, Action<<9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<<05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver>> where) { if (nodeTypeResolver == null) { throw new ArgumentNullException("nodeTypeResolver"); } if (where == null) { throw new ArgumentNullException("where"); } where(nodeTypeResolverFactories.CreateRegistrationLocationSelector(nodeTypeResolver.GetType(), (<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => nodeTypeResolver)); return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithNodeTypeResolver<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TNodeTypeResolver>(<b0ad906e-7555-4d2b-b31f-3a4db3c3d970>WrapperFactory<<05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver, TNodeTypeResolver> nodeTypeResolverFactory, Action<<2fe8cad5-706d-47d3-8140-aaaa0d817290>ITrackingRegistrationLocationSelectionSyntax<<05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver>> where) where TNodeTypeResolver : <05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver { if (nodeTypeResolverFactory == null) { throw new ArgumentNullException("nodeTypeResolverFactory"); } if (where == null) { throw new ArgumentNullException("where"); } where(nodeTypeResolverFactories.CreateTrackingRegistrationLocationSelector(typeof(TNodeTypeResolver), (<05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver wrapped, <b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing _) => nodeTypeResolverFactory(wrapped))); return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithoutNodeTypeResolver<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TNodeTypeResolver>() where TNodeTypeResolver : <05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver { return WithoutNodeTypeResolver(typeof(TNodeTypeResolver)); } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithoutNodeTypeResolver(Type nodeTypeResolverType) { if (nodeTypeResolverType == null) { throw new ArgumentNullException("nodeTypeResolverType"); } nodeTypeResolverFactories.Remove(nodeTypeResolverType); return this; } public override <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithTagMapping(<bca081f8-df74-4d1e-ae06-8e5741607d60>TagName tag, Type type) { if (tag.IsEmpty) { throw new ArgumentException("Non-specific tags cannot be maped"); } if (type == null) { throw new ArgumentNullException("type"); } if (tagMappings.TryGetValue(tag, out var value)) { throw new ArgumentException($"Type already has a registered type '{value.FullName}' for tag '{tag}'", "tag"); } tagMappings.Add(tag, type); return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithTypeMapping<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TInterface, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] TConcrete>() where TConcrete : TInterface { Type typeFromHandle = typeof(TInterface); Type typeFromHandle2 = typeof(TConcrete); if (!typeFromHandle.IsAssignableFrom(typeFromHandle2)) { throw new InvalidOperationException("The type '" + typeFromHandle2.Name + "' does not implement interface '" + typeFromHandle.Name + "'."); } if (typeMappings.ContainsKey(typeFromHandle)) { typeMappings[typeFromHandle] = typeFromHandle2; } else { typeMappings.Add(typeFromHandle, typeFromHandle2); } return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder WithoutTagMapping(<bca081f8-df74-4d1e-ae06-8e5741607d60>TagName tag) { if (tag.IsEmpty) { throw new ArgumentException("Non-specific tags cannot be maped"); } if (!tagMappings.Remove(tag)) { throw new KeyNotFoundException($"Tag '{tag}' is not registered"); } return this; } public <3cf445f2-8137-4c05-8ef1-f36507a360e7>DeserializerBuilder IgnoreUnmatchedProperties() { ignoreUnmatched = true; return this; } public <a39d1482-581f-4ce7-9e9e-724db035cead>IDeserializer Build() { return <c9dc66d2-0457-4631-b8e6-e1c40a97386a>Deserializer.FromValueDeserializer(BuildValueDeserializer()); } public <edc783a3-50cf-4ecf-b878-3be583573362>IValueDeserializer BuildValueDeserializer() { return new <c51132e9-459e-4550-bc47-a2aa50401d28>AliasValueDeserializer(new <8a098687-d448-479a-bd71-ecea391aeeb9>NodeValueDeserializer(nodeDeserializerFactories.BuildComponentList(), nodeTypeResolverFactories.BuildComponentList())); } } [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal sealed class <693d97de-24f5-4ad6-b4d7-03d8b9085e0a>EmissionPhaseObjectGraphVisitorArgs { private readonly IEnumerable<<daf58f3b-d649-4dce-af65-d06cef0166ff>IObjectGraphVisitor<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing>> preProcessingPhaseVisitors; public <daf58f3b-d649-4dce-af65-d06cef0166ff>IObjectGraphVisitor<<08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter> InnerVisitor { get; private set; } public <bc2eadf6-32dc-467d-bdf9-5f56544c920e>IEventEmitter EventEmitter { get; private set; } public <782d98f0-ca60-4479-a3a3-ca1ea49c5414>ObjectSerializer NestedObjectSerializer { get; private set; } public IEnumerable<<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter> TypeConverters { get; private set; } public <693d97de-24f5-4ad6-b4d7-03d8b9085e0a>EmissionPhaseObjectGraphVisitorArgs(<daf58f3b-d649-4dce-af65-d06cef0166ff>IObjectGraphVisitor<<08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter> innerVisitor, <bc2eadf6-32dc-467d-bdf9-5f56544c920e>IEventEmitter eventEmitter, IEnumerable<<daf58f3b-d649-4dce-af65-d06cef0166ff>IObjectGraphVisitor<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing>> preProcessingPhaseVisitors, IEnumerable<<05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter> typeConverters, <782d98f0-ca60-4479-a3a3-ca1ea49c5414>ObjectSerializer nestedObjectSerializer) { InnerVisitor = innerVisitor ?? throw new ArgumentNullException("innerVisitor"); EventEmitter = eventEmitter ?? throw new ArgumentNullException("eventEmitter"); this.preProcessingPhaseVisitors = preProcessingPhaseVisitors ?? throw new ArgumentNullException("preProcessingPhaseVisitors"); TypeConverters = typeConverters ?? throw new ArgumentNullException("typeConverters"); NestedObjectSerializer = nestedObjectSerializer ?? throw new ArgumentNullException("nestedObjectSerializer"); } public T GetPreProcessingPhaseObjectGraphVisitor<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] T>() where T : <daf58f3b-d649-4dce-af65-d06cef0166ff>IObjectGraphVisitor<<b86f96e8-6844-4e7a-9b55-3bb88a700a8a>Nothing> { return preProcessingPhaseVisitors.OfType<T>().Single(); } } [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal abstract class <90241b4a-060e-4d37-9533-22ebd603694b>EventInfo { public <9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor Source { get; } protected <90241b4a-060e-4d37-9533-22ebd603694b>EventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source) { Source = source ?? throw new ArgumentNullException("source"); } } internal class <799027f0-c091-40d5-bba6-18b38e558b59>AliasEventInfo : <90241b4a-060e-4d37-9533-22ebd603694b>EventInfo { public <a9b2c62b-7d7f-4118-b787-d50ad5b627d8>AnchorName Alias { get; } public bool NeedsExpansion { get; set; } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public <799027f0-c091-40d5-bba6-18b38e558b59>AliasEventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source, <a9b2c62b-7d7f-4118-b787-d50ad5b627d8>AnchorName alias) : base(source) { if (alias.IsEmpty) { throw new ArgumentNullException("alias"); } Alias = alias; } } internal class <f21d903c-5e4d-4e59-9e10-b0fd1ed4d128>ObjectEventInfo : <90241b4a-060e-4d37-9533-22ebd603694b>EventInfo { public <a9b2c62b-7d7f-4118-b787-d50ad5b627d8>AnchorName Anchor { get; set; } public <bca081f8-df74-4d1e-ae06-8e5741607d60>TagName Tag { get; set; } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] protected <f21d903c-5e4d-4e59-9e10-b0fd1ed4d128>ObjectEventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source) : base(source) { } } [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal sealed class <aab2f741-ceff-4f30-ad39-99bd8d26f8d7>ScalarEventInfo : <f21d903c-5e4d-4e59-9e10-b0fd1ed4d128>ObjectEventInfo { public string RenderedValue { get; set; } public <0d4f8979-7e8e-43df-a54e-84c0da5442c8>ScalarStyle Style { get; set; } public bool IsPlainImplicit { get; set; } public bool IsQuotedImplicit { get; set; } public <aab2f741-ceff-4f30-ad39-99bd8d26f8d7>ScalarEventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source) : base(source) { Style = source.ScalarStyle; RenderedValue = string.Empty; } } internal sealed class <4dbcd715-90b3-4870-a365-543de6a9b5b3>MappingStartEventInfo : <f21d903c-5e4d-4e59-9e10-b0fd1ed4d128>ObjectEventInfo { public bool IsImplicit { get; set; } public <f54701ff-fa12-4576-aad5-9ae9bb452b91>MappingStyle Style { get; set; } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public <4dbcd715-90b3-4870-a365-543de6a9b5b3>MappingStartEventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source) : base(source) { } } internal sealed class <2eb5fe5c-e619-4032-9e6e-b55494e8a910>MappingEndEventInfo : <90241b4a-060e-4d37-9533-22ebd603694b>EventInfo { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public <2eb5fe5c-e619-4032-9e6e-b55494e8a910>MappingEndEventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source) : base(source) { } } internal sealed class <3d0bf879-9c62-40d9-9778-8af88dac0079>SequenceStartEventInfo : <f21d903c-5e4d-4e59-9e10-b0fd1ed4d128>ObjectEventInfo { public bool IsImplicit { get; set; } public <33eb6fd6-bd78-4abb-8ae5-8d689db1f6eb>SequenceStyle Style { get; set; } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public <3d0bf879-9c62-40d9-9778-8af88dac0079>SequenceStartEventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source) : base(source) { } } internal sealed class <e72c499a-952c-4ccd-8dd8-bab26a1f1906>SequenceEndEventInfo : <90241b4a-060e-4d37-9533-22ebd603694b>EventInfo { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public <e72c499a-952c-4ccd-8dd8-bab26a1f1906>SequenceEndEventInfo(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor source) : base(source) { } } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <6bc9fddb-b405-4496-a65d-cd202f953ed5>IAliasProvider { <a9b2c62b-7d7f-4118-b787-d50ad5b627d8>AnchorName GetAlias(object target); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <a39d1482-581f-4ce7-9e9e-724db035cead>IDeserializer { T Deserialize<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] T>(string input); T Deserialize<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] T>(TextReader input); [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object Deserialize(TextReader input); [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object Deserialize(string input, Type type); [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object Deserialize(TextReader input, Type type); T Deserialize<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] T>(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser); [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object Deserialize(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser); [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object Deserialize(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser, Type type); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <bc2eadf6-32dc-467d-bdf9-5f56544c920e>IEventEmitter { void Emit(<799027f0-c091-40d5-bba6-18b38e558b59>AliasEventInfo eventInfo, <08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter); void Emit(<aab2f741-ceff-4f30-ad39-99bd8d26f8d7>ScalarEventInfo eventInfo, <08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter); void Emit(<4dbcd715-90b3-4870-a365-543de6a9b5b3>MappingStartEventInfo eventInfo, <08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter); void Emit(<2eb5fe5c-e619-4032-9e6e-b55494e8a910>MappingEndEventInfo eventInfo, <08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter); void Emit(<3d0bf879-9c62-40d9-9778-8af88dac0079>SequenceStartEventInfo eventInfo, <08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter); void Emit(<e72c499a-952c-4ccd-8dd8-bab26a1f1906>SequenceEndEventInfo eventInfo, <08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <8415bd25-4c19-4eaf-bf46-fb9f0daeef6a>INamingConvention { string Apply(string value); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <3fd98355-c58c-4292-966c-b5141c909d85>INodeDeserializer { bool Deserialize(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser reader, Type expectedType, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(new byte[] { 1, 1, 1, 2 })] Func<<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser, Type, object> nestedObjectDeserializer, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] out object value); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <05602ffd-a716-4815-9714-6e734839e086>INodeTypeResolver { bool Resolve([<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] <986a1f13-9cc5-4f6b-9c89-bd14fe6842de>NodeEvent nodeEvent, ref Type currentType); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor { [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object Value { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(2)] get; } Type Type { get; } Type StaticType { get; } <0d4f8979-7e8e-43df-a54e-84c0da5442c8>ScalarStyle ScalarStyle { get; } } internal static class <f14c13af-0305-4658-8e1f-d1863db4b717>ObjectDescriptorExtensions { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public static object NonNullValue(this <9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor objectDescriptor) { return objectDescriptor.Value ?? throw new InvalidOperationException("Attempted to use a IObjectDescriptor of type '" + objectDescriptor.Type.FullName + "' whose Value is null at a point whete it is invalid to do so. This may indicate a bug in YamlDotNet."); } } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <2f3625cb-d27d-4387-99cd-500bae7b18ec>IObjectFactory { object Create(Type type); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <1371a809-f7f7-432f-bf1c-48295ccc7056>IObjectGraphTraversalStrategy { void Traverse<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TContext>(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor graph, <daf58f3b-d649-4dce-af65-d06cef0166ff>IObjectGraphVisitor<TContext> visitor, TContext context); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <daf58f3b-d649-4dce-af65-d06cef0166ff>IObjectGraphVisitor<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TContext> { bool Enter(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor value, TContext context); bool EnterMapping(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor key, <9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor value, TContext context); bool EnterMapping(<c348836e-1640-47b5-9016-065bdedb23f9>IPropertyDescriptor key, <9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor value, TContext context); void VisitScalar(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor scalar, TContext context); void VisitMappingStart(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor mapping, Type keyType, Type valueType, TContext context); void VisitMappingEnd(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor mapping, TContext context); void VisitSequenceStart(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor sequence, Type elementType, TContext context); void VisitSequenceEnd(<9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor sequence, TContext context); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <c348836e-1640-47b5-9016-065bdedb23f9>IPropertyDescriptor { string Name { get; } bool CanWrite { get; } Type Type { get; } [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] Type TypeOverride { [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(2)] get; [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(2)] set; } int Order { get; set; } <0d4f8979-7e8e-43df-a54e-84c0da5442c8>ScalarStyle ScalarStyle { get; set; } T GetCustomAttribute<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] T>() where T : Attribute; <9e1cff88-7d49-4eb7-af36-c82ec4c24f08>IObjectDescriptor Read(object target); void Write(object target, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object value); } internal interface <9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TBaseRegistrationType> { void InsteadOf<TRegistrationType>() where TRegistrationType : TBaseRegistrationType; void Before<TRegistrationType>() where TRegistrationType : TBaseRegistrationType; void After<TRegistrationType>() where TRegistrationType : TBaseRegistrationType; void OnTop(); void OnBottom(); } internal interface <2fe8cad5-706d-47d3-8140-aaaa0d817290>ITrackingRegistrationLocationSelectionSyntax<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TBaseRegistrationType> { void InsteadOf<TRegistrationType>() where TRegistrationType : TBaseRegistrationType; } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <fa2f47ed-c6ac-495a-a740-42641950e948>ISerializer { void Serialize(TextWriter writer, object graph); string Serialize(object graph); void Serialize(TextWriter writer, object graph, Type type); void Serialize(<08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter, object graph); void Serialize(<08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter, object graph, Type type); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <8df5fb57-3d13-4cfb-bc47-c34b4d2a9b21>ITypeInspector { IEnumerable<<c348836e-1640-47b5-9016-065bdedb23f9>IPropertyDescriptor> GetProperties(Type type, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object container); <c348836e-1640-47b5-9016-065bdedb23f9>IPropertyDescriptor GetProperty(Type type, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object container, string name, [<415262cd-afcf-4b06-94dd-19db9a2e5484>MaybeNullWhen(true)] bool ignoreUnmatched); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <c069c2af-387d-45b0-b5eb-4e1ab6ea4a77>ITypeResolver { Type Resolve(Type staticType, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object actualValue); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <edc783a3-50cf-4ecf-b878-3be583573362>IValueDeserializer { [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object DeserializeValue(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser, Type expectedType, <b69ce8c5-17a3-4090-8575-e74f6381e75b>SerializerState state, <edc783a3-50cf-4ecf-b878-3be583573362>IValueDeserializer nestedObjectDeserializer); } internal interface <220cd0d8-0c0b-4dcf-92d9-eb5fa577ce53>IValuePromise { [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(new byte[] { 1, 2 })] event Action<object> ValueAvailable; } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(2)] internal interface <b86542d0-d35f-4e75-aa7f-a63fe063fe38>IValueSerializer { void SerializeValue([<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(1)] <08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter, object value, Type type); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <455a3da7-8082-483d-b61c-5b77c17e0ede>IYamlConvertible { void Read(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser, Type expectedType, <559bd4a9-55d2-41c3-9d08-2a8f6e9ac25e>ObjectDeserializer nestedObjectDeserializer); void Write(<08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter, <782d98f0-ca60-4479-a3a3-ca1ea49c5414>ObjectSerializer nestedObjectSerializer); } [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] internal delegate object <559bd4a9-55d2-41c3-9d08-2a8f6e9ac25e>ObjectDeserializer(Type type); internal delegate void <782d98f0-ca60-4479-a3a3-ca1ea49c5414>ObjectSerializer(object value, Type type = null); [Obsolete("Please use IYamlConvertible instead")] [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <8ada1155-e1c4-4915-8632-ea173ddf229f>IYamlSerializable { void ReadYaml(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser); void WriteYaml(<08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] internal interface <05933b86-61e1-4bf6-9308-a047f8718317>IYamlTypeConverter { bool Accepts(Type type); [return: <d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object ReadYaml(<2afdd087-0341-4faa-a1b8-b2a8bbcd78dc>IParser parser, Type type); void WriteYaml(<08bc9bff-f70e-49ae-9c2a-30be71831c1c>IEmitter emitter, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] object value, Type type); } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] internal sealed class <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<[<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TArgument, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(2)] TComponent> : IEnumerable<Func<TArgument, TComponent>>, IEnumerable { [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] public sealed class LazyComponentRegistration { public readonly Type ComponentType; public readonly Func<TArgument, TComponent> Factory; public LazyComponentRegistration(Type componentType, Func<TArgument, TComponent> factory) { ComponentType = componentType; Factory = factory; } } [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(0)] public sealed class TrackingLazyComponentRegistration { public readonly Type ComponentType; public readonly Func<TComponent, TArgument, TComponent> Factory; public TrackingLazyComponentRegistration(Type componentType, Func<TComponent, TArgument, TComponent> factory) { ComponentType = componentType; Factory = factory; } } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(0)] private class RegistrationLocationSelector : <9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<TComponent> { [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(1)] private readonly <467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<TArgument, TComponent> registrations; [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(new byte[] { 1, 0, 0 })] private readonly LazyComponentRegistration newRegistration; [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(1)] public RegistrationLocationSelector(<467d24ea-f025-4cfb-8554-4c93084dd61a>LazyComponentRegistrationList<TArgument, TComponent> registrations, [<d086df14-b1c5-4533-8c99-acbca0bd3e2f>Nullable(new byte[] { 1, 0, 0 })] LazyComponentRegistration newRegistration) { this.registrations = registrations; this.newRegistration = newRegistration; } void <9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<TComponent>.InsteadOf<TRegistrationType>() { if (newRegistration.ComponentType != typeof(TRegistrationType)) { registrations.EnsureNoDuplicateRegistrationType(newRegistration.ComponentType); } int index = registrations.EnsureRegistrationExists<TRegistrationType>(); registrations.entries[index] = newRegistration; } void <9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<TComponent>.After<TRegistrationType>() { registrations.EnsureNoDuplicateRegistrationType(newRegistration.ComponentType); int num = registrations.EnsureRegistrationExists<TRegistrationType>(); registrations.entries.Insert(num + 1, newRegistration); } void <9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<TComponent>.Before<TRegistrationType>() { registrations.EnsureNoDuplicateRegistrationType(newRegistration.ComponentType); int index = registrations.EnsureRegistrationExists<TRegistrationType>(); registrations.entries.Insert(index, newRegistration); } void <9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<TComponent>.OnBottom() { registrations.EnsureNoDuplicateRegistrationType(newRegistration.ComponentType); registrations.entries.Add(newRegistration); } void <9010d17e-fd7f-4424-8aae-e9005d94ce42>IRegistrationLocationSelectionSyntax<TComponent>.OnTop() { registrations.EnsureNoDuplicateRegistrationType(newRegistration.ComponentType); registrations.entries.Insert(0, newRegistration); } } [<b24a5620-3cfd-4c16-af9c-fce18c0f999f>NullableContext(0)] private class T