Decompiled source of HalloweenHeim v1.0.5

HalloweenHeim.dll

Decompiled 3 weeks ago
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.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 BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using HalloweenHeim.Utils;
using HarmonyLib;
using JetBrains.Annotations;
using LocalizationManager;
using Microsoft.CodeAnalysis;
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: AssemblyProduct("HalloweenHeim")]
[assembly: AssemblyFileVersion("1.0.5")]
[assembly: AssemblyTrademark("")]
[assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
[assembly: AssemblyCopyright("Copyright ©  2023")]
[assembly: AssemblyCompany("blacks7ar")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyDescription("https://valheim.thunderstore.io/package/blacks7ar/HalloweenHeim/")]
[assembly: AssemblyTitle("HalloweenHeim")]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: CompilationRelaxations(8)]
[assembly: Guid("9738A387-E468-456C-A6EE-4E12C868470F")]
[assembly: ComVisible(false)]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.5.0")]
[module: UnverifiableCode]
[module: <3f544a1d-0dee-4a64-8075-095482e45f77>RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[<8f819d28-0210-4eaa-8747-bc71bb3b645e>Embedded]
	[CompilerGenerated]
	internal sealed class <8f819d28-0210-4eaa-8747-bc71bb3b645e>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[<8f819d28-0210-4eaa-8747-bc71bb3b645e>Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class <3f544a1d-0dee-4a64-8075-095482e45f77>RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public <3f544a1d-0dee-4a64-8075-095482e45f77>RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace HalloweenHeim
{
	[BepInPlugin("blacks7ar.HalloweenHeim", "HalloweenHeim", "1.0.5")]
	public class Plugin : BaseUnityPlugin
	{
		[HarmonyPatch]
		private static class Patches
		{
			[HarmonyPatch(typeof(ZNetScene), "Awake")]
			[HarmonyPostfix]
			private static void Awake_Postfix(ZNetScene __instance)
			{
				if (!((Object)(object)__instance == (Object)null) && __instance.m_prefabs.Count > 0)
				{
					RegisterPrefabs(__instance);
				}
			}

			[HarmonyPrefix]
			[HarmonyPatch(typeof(ZoneSystem), "ValidateVegetation")]
			private static void ValidateVegetation_Prefix(ZoneSystem __instance)
			{
				SetupVegetation(__instance);
			}
		}

		private const string modGUID = "blacks7ar.HalloweenHeim";

		public const string modName = "HalloweenHeim";

		public const string modAuthor = "blacks7ar";

		public const string modVersion = "1.0.5";

		public const string modLink = "https://valheim.thunderstore.io/package/blacks7ar/HalloweenHeim/";

		private static readonly Harmony _harmony = new Harmony("blacks7ar.HalloweenHeim");

		private static readonly ConfigSync _configSync = new ConfigSync("blacks7ar.HalloweenHeim")
		{
			DisplayName = "HalloweenHeim",
			CurrentVersion = "1.0.5",
			MinimumRequiredVersion = "1.0.5"
		};

		private static AssetBundle _halloweenBundle;

		private static GameObject _deadTree1;

		private static GameObject _deadTree2;

		private static GameObject _deadTree3;

		private static GameObject _deadTree4;

		private static GameObject _deadTree5;

		private static GameObject _deadTree6;

		private static GameObject _deadTree7;

		private static GameObject _deadTreePumpkin1;

		private static GameObject _deadTreePumpkin2;

		private static GameObject _deadTreePumpkin3;

		private static GameObject _deadTreePumpkin4;

		private static GameObject _deadTreePumpkin5;

		private static GameObject _deadTreePumpkin6;

		private static GameObject _deadTreeLog;

		private static GameObject _deadBush1;

		private static GameObject _deadBush2;

		private static GameObject _deadBush3;

		private static readonly List<ZoneVegetation> _vegetationList = new List<ZoneVegetation>();

		public void Awake()
		{
			Localizer.Load();
			_halloweenBundle = GetAssetBundleFromResources("hallowheimbundle");
			_deadTree1 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTree1");
			ShaderReplacer.Replace(_deadTree1);
			_deadTree2 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTree2");
			ShaderReplacer.Replace(_deadTree2);
			_deadTree3 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTree3");
			ShaderReplacer.Replace(_deadTree3);
			_deadTree4 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTree4");
			ShaderReplacer.Replace(_deadTree4);
			_deadTree5 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTree5");
			ShaderReplacer.Replace(_deadTree5);
			_deadTree6 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTree6");
			ShaderReplacer.Replace(_deadTree6);
			_deadTree7 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTree7");
			ShaderReplacer.Replace(_deadTree7);
			_deadTreePumpkin1 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTreePumpkin1");
			ShaderReplacer.Replace(_deadTreePumpkin1);
			_deadTreePumpkin2 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTreePumpkin2");
			ShaderReplacer.Replace(_deadTreePumpkin2);
			_deadTreePumpkin3 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTreePumpkin3");
			ShaderReplacer.Replace(_deadTreePumpkin3);
			_deadTreePumpkin4 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTreePumpkin4");
			ShaderReplacer.Replace(_deadTreePumpkin4);
			_deadTreePumpkin5 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTreePumpkin5");
			ShaderReplacer.Replace(_deadTreePumpkin5);
			_deadTreePumpkin6 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTreePumpkin6");
			ShaderReplacer.Replace(_deadTreePumpkin6);
			_deadTreeLog = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadTreeLog");
			ShaderReplacer.Replace(_deadTreeLog);
			_deadBush1 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadBush1");
			ShaderReplacer.Replace(_deadBush1);
			_deadBush2 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadBush2");
			ShaderReplacer.Replace(_deadBush2);
			_deadBush3 = _halloweenBundle.LoadAsset<GameObject>("BHH_DeadBush3");
			ShaderReplacer.Replace(_deadBush3);
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			_harmony.PatchAll(executingAssembly);
		}

		private static void RegisterPrefabs(ZNetScene zNetScene)
		{
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0120: Unknown result type (might be due to invalid IL or missing references)
			//IL_0150: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0210: Unknown result type (might be due to invalid IL or missing references)
			zNetScene.AddClonedObject(_deadTree1);
			zNetScene.AddClonedObject(_deadTree2);
			zNetScene.AddClonedObject(_deadTree3);
			zNetScene.AddClonedObject(_deadTree4);
			zNetScene.AddClonedObject(_deadTree5);
			zNetScene.AddClonedObject(_deadTree6);
			zNetScene.AddClonedObject(_deadTree7);
			zNetScene.AddClonedObject(_deadTreeLog);
			_deadTreeLog.GetComponent<TreeLog>().m_dropWhenDestroyed.m_drops = new List<DropData>(1)
			{
				new DropData
				{
					m_item = zNetScene.GetPrefab("Wood"),
					m_stackMin = 1,
					m_stackMax = 1,
					m_dontScale = false
				}
			};
			zNetScene.AddClonedObject(_deadTreePumpkin1);
			zNetScene.AddClonedObject(_deadTreePumpkin2);
			zNetScene.AddClonedObject(_deadTreePumpkin3);
			zNetScene.AddClonedObject(_deadTreePumpkin4);
			zNetScene.AddClonedObject(_deadTreePumpkin5);
			zNetScene.AddClonedObject(_deadTreePumpkin6);
			zNetScene.AddClonedObject(_deadBush1);
			_deadBush1.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops = new List<DropData>(1)
			{
				new DropData
				{
					m_item = zNetScene.GetPrefab("Wood"),
					m_stackMin = 1,
					m_stackMax = 1,
					m_dontScale = false
				}
			};
			zNetScene.AddClonedObject(_deadBush2);
			_deadBush2.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops = new List<DropData>(1)
			{
				new DropData
				{
					m_item = zNetScene.GetPrefab("Wood"),
					m_stackMin = 1,
					m_stackMax = 1,
					m_dontScale = false
				}
			};
			zNetScene.AddClonedObject(_deadBush3);
			_deadBush3.GetComponent<DropOnDestroyed>().m_dropWhenDestroyed.m_drops = new List<DropData>(1)
			{
				new DropData
				{
					m_item = zNetScene.GetPrefab("Wood"),
					m_stackMin = 1,
					m_stackMax = 1,
					m_dontScale = false
				}
			};
			GameObject gameObject = _halloweenBundle.LoadAsset<GameObject>("bhh_fx_WaterImpact_Big");
			ShaderReplacer.Replace(gameObject);
			zNetScene.AddClonedObject(gameObject);
			GameObject gameObject2 = _halloweenBundle.LoadAsset<GameObject>("bhh_sfx_tree_fall");
			zNetScene.AddClonedObject(gameObject2);
			GameObject gameObject3 = _halloweenBundle.LoadAsset<GameObject>("bhh_sfx_tree_fall_hit");
			zNetScene.AddClonedObject(gameObject3);
			GameObject gameObject4 = _halloweenBundle.LoadAsset<GameObject>("bhh_sfx_tree_hit");
			zNetScene.AddClonedObject(gameObject4);
			GameObject gameObject5 = _halloweenBundle.LoadAsset<GameObject>("bhh_sfx_wood_break");
			zNetScene.AddClonedObject(gameObject5);
			GameObject gameObject6 = _halloweenBundle.LoadAsset<GameObject>("bhh_vfx_beech_small1_destroy");
			zNetScene.AddClonedObject(gameObject6);
			GameObject gameObject7 = _halloweenBundle.LoadAsset<GameObject>("bhh_vfx_firlogdestroyed");
			zNetScene.AddClonedObject(gameObject7);
			GameObject gameObject8 = _halloweenBundle.LoadAsset<GameObject>("bhh_vfx_SawDust");
			zNetScene.AddClonedObject(gameObject8);
			GameObject gameObject9 = _halloweenBundle.LoadAsset<GameObject>("bhh_vfx_swamptree_cut");
			zNetScene.AddClonedObject(gameObject9);
			GameObject gameObject10 = _halloweenBundle.LoadAsset<GameObject>("bhh_vfx_tree_fall_hit");
			zNetScene.AddClonedObject(gameObject10);
		}

		private static void SetupVegetation(ZoneSystem zoneSystem)
		{
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0083: Unknown result type (might be due to invalid IL or missing references)
			//IL_008e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0099: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00de: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0102: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0114: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_012a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0135: Unknown result type (might be due to invalid IL or missing references)
			//IL_0140: Unknown result type (might be due to invalid IL or missing references)
			//IL_014b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0161: Unknown result type (might be due to invalid IL or missing references)
			//IL_016c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0177: Unknown result type (might be due to invalid IL or missing references)
			//IL_0182: Unknown result type (might be due to invalid IL or missing references)
			//IL_0189: Unknown result type (might be due to invalid IL or missing references)
			//IL_0194: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01cb: Expected O, but got Unknown
			//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0203: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0215: Unknown result type (might be due to invalid IL or missing references)
			//IL_0220: Unknown result type (might be due to invalid IL or missing references)
			//IL_022b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0236: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0241: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: Unknown result type (might be due to invalid IL or missing references)
			//IL_0248: Unknown result type (might be due to invalid IL or missing references)
			//IL_024f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0256: Unknown result type (might be due to invalid IL or missing references)
			//IL_0261: Unknown result type (might be due to invalid IL or missing references)
			//IL_026c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0277: Unknown result type (might be due to invalid IL or missing references)
			//IL_0282: Unknown result type (might be due to invalid IL or missing references)
			//IL_028d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0298: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_02fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0301: Unknown result type (might be due to invalid IL or missing references)
			//IL_030c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Expected O, but got Unknown
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_031d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0328: Unknown result type (might be due to invalid IL or missing references)
			//IL_0333: Unknown result type (might be due to invalid IL or missing references)
			//IL_033a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0345: Unknown result type (might be due to invalid IL or missing references)
			//IL_0350: Unknown result type (might be due to invalid IL or missing references)
			//IL_0357: Unknown result type (might be due to invalid IL or missing references)
			//IL_0362: Unknown result type (might be due to invalid IL or missing references)
			//IL_036d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0378: Unknown result type (might be due to invalid IL or missing references)
			//IL_0383: Unknown result type (might be due to invalid IL or missing references)
			//IL_0389: Unknown result type (might be due to invalid IL or missing references)
			//IL_038e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0390: Unknown result type (might be due to invalid IL or missing references)
			//IL_0395: Unknown result type (might be due to invalid IL or missing references)
			//IL_039c: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_03da: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0406: Unknown result type (might be due to invalid IL or missing references)
			//IL_0411: Unknown result type (might be due to invalid IL or missing references)
			//IL_041c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0423: Unknown result type (might be due to invalid IL or missing references)
			//IL_042e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0435: Unknown result type (might be due to invalid IL or missing references)
			//IL_043c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0447: Unknown result type (might be due to invalid IL or missing references)
			//IL_044e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0459: Unknown result type (might be due to invalid IL or missing references)
			//IL_0465: Expected O, but got Unknown
			//IL_0465: Unknown result type (might be due to invalid IL or missing references)
			//IL_046a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0475: Unknown result type (might be due to invalid IL or missing references)
			//IL_0480: Unknown result type (might be due to invalid IL or missing references)
			//IL_0487: Unknown result type (might be due to invalid IL or missing references)
			//IL_0492: Unknown result type (might be due to invalid IL or missing references)
			//IL_049d: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_04af: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_04db: Unknown result type (might be due to invalid IL or missing references)
			//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0506: Unknown result type (might be due to invalid IL or missing references)
			//IL_0511: Unknown result type (might be due to invalid IL or missing references)
			//IL_051c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0527: Unknown result type (might be due to invalid IL or missing references)
			//IL_0532: Unknown result type (might be due to invalid IL or missing references)
			//IL_053d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0548: Unknown result type (might be due to invalid IL or missing references)
			//IL_0553: Unknown result type (might be due to invalid IL or missing references)
			//IL_055e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0569: Unknown result type (might be due to invalid IL or missing references)
			//IL_0570: Unknown result type (might be due to invalid IL or missing references)
			//IL_057b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0582: Unknown result type (might be due to invalid IL or missing references)
			//IL_0589: Unknown result type (might be due to invalid IL or missing references)
			//IL_0594: Unknown result type (might be due to invalid IL or missing references)
			//IL_059b: Unknown result type (might be due to invalid IL or missing references)
			//IL_05a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b3: Expected O, but got Unknown
			//IL_05b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_05c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_05eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_05f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0608: Unknown result type (might be due to invalid IL or missing references)
			//IL_0613: Unknown result type (might be due to invalid IL or missing references)
			//IL_061e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0624: Unknown result type (might be due to invalid IL or missing references)
			//IL_0629: Unknown result type (might be due to invalid IL or missing references)
			//IL_062b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0630: Unknown result type (might be due to invalid IL or missing references)
			//IL_0637: Unknown result type (might be due to invalid IL or missing references)
			//IL_063e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0649: Unknown result type (might be due to invalid IL or missing references)
			//IL_0654: Unknown result type (might be due to invalid IL or missing references)
			//IL_065f: Unknown result type (might be due to invalid IL or missing references)
			//IL_066a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0675: Unknown result type (might be due to invalid IL or missing references)
			//IL_0680: Unknown result type (might be due to invalid IL or missing references)
			//IL_068b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0696: Unknown result type (might be due to invalid IL or missing references)
			//IL_06a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06be: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_06e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0701: Expected O, but got Unknown
			//IL_0701: Unknown result type (might be due to invalid IL or missing references)
			//IL_0706: Unknown result type (might be due to invalid IL or missing references)
			//IL_0711: Unknown result type (might be due to invalid IL or missing references)
			//IL_071c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0723: Unknown result type (might be due to invalid IL or missing references)
			//IL_072e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0739: Unknown result type (might be due to invalid IL or missing references)
			//IL_0740: Unknown result type (might be due to invalid IL or missing references)
			//IL_074b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0756: Unknown result type (might be due to invalid IL or missing references)
			//IL_0761: Unknown result type (might be due to invalid IL or missing references)
			//IL_076c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0772: Unknown result type (might be due to invalid IL or missing references)
			//IL_0777: Unknown result type (might be due to invalid IL or missing references)
			//IL_0779: Unknown result type (might be due to invalid IL or missing references)
			//IL_077e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0785: Unknown result type (might be due to invalid IL or missing references)
			//IL_078c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0797: Unknown result type (might be due to invalid IL or missing references)
			//IL_07a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_07c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ef: Unknown result type (might be due to invalid IL or missing references)
			//IL_07fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0805: Unknown result type (might be due to invalid IL or missing references)
			//IL_080c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0817: Unknown result type (might be due to invalid IL or missing references)
			//IL_081e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0825: Unknown result type (might be due to invalid IL or missing references)
			//IL_0830: Unknown result type (might be due to invalid IL or missing references)
			//IL_0837: Unknown result type (might be due to invalid IL or missing references)
			//IL_0842: Unknown result type (might be due to invalid IL or missing references)
			//IL_084f: Expected O, but got Unknown
			//IL_084f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0854: Unknown result type (might be due to invalid IL or missing references)
			//IL_085f: Unknown result type (might be due to invalid IL or missing references)
			//IL_086a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0871: Unknown result type (might be due to invalid IL or missing references)
			//IL_087c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0887: Unknown result type (might be due to invalid IL or missing references)
			//IL_088e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0899: Unknown result type (might be due to invalid IL or missing references)
			//IL_08a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_08af: Unknown result type (might be due to invalid IL or missing references)
			//IL_08ba: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_08cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08da: Unknown result type (might be due to invalid IL or missing references)
			//IL_08e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0906: Unknown result type (might be due to invalid IL or missing references)
			//IL_0911: Unknown result type (might be due to invalid IL or missing references)
			//IL_091c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0927: Unknown result type (might be due to invalid IL or missing references)
			//IL_0932: Unknown result type (might be due to invalid IL or missing references)
			//IL_093d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0948: Unknown result type (might be due to invalid IL or missing references)
			//IL_0953: Unknown result type (might be due to invalid IL or missing references)
			//IL_095a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0965: Unknown result type (might be due to invalid IL or missing references)
			//IL_096c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0973: Unknown result type (might be due to invalid IL or missing references)
			//IL_097e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0985: Unknown result type (might be due to invalid IL or missing references)
			//IL_0990: Unknown result type (might be due to invalid IL or missing references)
			//IL_099d: Expected O, but got Unknown
			//IL_099d: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_09ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a15: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a21: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a28: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a96: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aba: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0acc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ad3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aeb: Expected O, but got Unknown
			//IL_0aeb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0afb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b06: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b18: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b23: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b40: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b5c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b61: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b63: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b68: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b76: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bad: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bce: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bef: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bf6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c0f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c21: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c2c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c39: Expected O, but got Unknown
			//IL_0c39: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c66: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c71: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c78: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c83: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c8e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c99: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0caa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0caf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cb6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cbd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ccf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cda: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cfb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d06: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d11: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d27: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d32: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d44: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d5d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d68: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d7a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d87: Expected O, but got Unknown
			//IL_0d87: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0db4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dc6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dd1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ddc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0df8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e04: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e12: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e28: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e3e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e49: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e5f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e80: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e92: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e9d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eb6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ebd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ec8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ed5: Expected O, but got Unknown
			//IL_0ed5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eda: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ee5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ef0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ef7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f02: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f0d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f14: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f1f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f2a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f40: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f46: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f4b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f4d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f52: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f59: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f60: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f6b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f76: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f81: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fad: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fce: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fd9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fe0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0feb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ff9: Unknown result type (might be due to invalid IL or missing references)
			//IL_1004: Unknown result type (might be due to invalid IL or missing references)
			//IL_100b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1016: Unknown result type (might be due to invalid IL or missing references)
			//IL_1023: Expected O, but got Unknown
			//IL_1023: Unknown result type (might be due to invalid IL or missing references)
			//IL_1028: Unknown result type (might be due to invalid IL or missing references)
			//IL_1033: Unknown result type (might be due to invalid IL or missing references)
			//IL_103e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1045: Unknown result type (might be due to invalid IL or missing references)
			//IL_1050: Unknown result type (might be due to invalid IL or missing references)
			//IL_105b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1062: Unknown result type (might be due to invalid IL or missing references)
			//IL_106d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1078: Unknown result type (might be due to invalid IL or missing references)
			//IL_1083: Unknown result type (might be due to invalid IL or missing references)
			//IL_108e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1094: Unknown result type (might be due to invalid IL or missing references)
			//IL_1099: Unknown result type (might be due to invalid IL or missing references)
			//IL_109b: Unknown result type (might be due to invalid IL or missing references)
			//IL_10a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_10ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_10b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_10cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_10da: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_10f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_10fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1106: Unknown result type (might be due to invalid IL or missing references)
			//IL_1111: Unknown result type (might be due to invalid IL or missing references)
			//IL_111c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1127: Unknown result type (might be due to invalid IL or missing references)
			//IL_112e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1139: Unknown result type (might be due to invalid IL or missing references)
			//IL_1140: Unknown result type (might be due to invalid IL or missing references)
			//IL_1147: Unknown result type (might be due to invalid IL or missing references)
			//IL_1152: Unknown result type (might be due to invalid IL or missing references)
			//IL_1159: Unknown result type (might be due to invalid IL or missing references)
			//IL_1164: Unknown result type (might be due to invalid IL or missing references)
			//IL_1171: Expected O, but got Unknown
			//IL_1171: Unknown result type (might be due to invalid IL or missing references)
			//IL_1176: Unknown result type (might be due to invalid IL or missing references)
			//IL_1181: Unknown result type (might be due to invalid IL or missing references)
			//IL_118c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1193: Unknown result type (might be due to invalid IL or missing references)
			//IL_119e: Unknown result type (might be due to invalid IL or missing references)
			//IL_11a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_11b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_11bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_11c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_11d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_11dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_11ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_11f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_11fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_1207: Unknown result type (might be due to invalid IL or missing references)
			//IL_1212: Unknown result type (might be due to invalid IL or missing references)
			//IL_121d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1228: Unknown result type (might be due to invalid IL or missing references)
			//IL_1233: Unknown result type (might be due to invalid IL or missing references)
			//IL_123e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1249: Unknown result type (might be due to invalid IL or missing references)
			//IL_1254: Unknown result type (might be due to invalid IL or missing references)
			//IL_125f: Unknown result type (might be due to invalid IL or missing references)
			//IL_126a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1275: Unknown result type (might be due to invalid IL or missing references)
			//IL_127c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1287: Unknown result type (might be due to invalid IL or missing references)
			//IL_128e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1295: Unknown result type (might be due to invalid IL or missing references)
			//IL_12a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_12a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_12b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_12bf: Expected O, but got Unknown
			//IL_12bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_12c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_12cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_12da: Unknown result type (might be due to invalid IL or missing references)
			//IL_12e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_12ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_12f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_12fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_1309: Unknown result type (might be due to invalid IL or missing references)
			//IL_1314: Unknown result type (might be due to invalid IL or missing references)
			//IL_131f: Unknown result type (might be due to invalid IL or missing references)
			//IL_132a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1330: Unknown result type (might be due to invalid IL or missing references)
			//IL_1335: Unknown result type (might be due to invalid IL or missing references)
			//IL_1337: Unknown result type (might be due to invalid IL or missing references)
			//IL_133c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1343: Unknown result type (might be due to invalid IL or missing references)
			//IL_134a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1355: Unknown result type (might be due to invalid IL or missing references)
			//IL_1360: Unknown result type (might be due to invalid IL or missing references)
			//IL_136b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1376: Unknown result type (might be due to invalid IL or missing references)
			//IL_1381: Unknown result type (might be due to invalid IL or missing references)
			//IL_138c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1397: Unknown result type (might be due to invalid IL or missing references)
			//IL_13a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_13ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_13b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_13c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_13ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_13d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_13dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_13e3: Unknown result type (might be due to invalid IL or missing references)
			//IL_13ee: Unknown result type (might be due to invalid IL or missing references)
			//IL_13f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_1400: Unknown result type (might be due to invalid IL or missing references)
			//IL_140d: Expected O, but got Unknown
			//IL_140d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1412: Unknown result type (might be due to invalid IL or missing references)
			//IL_141d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1428: Unknown result type (might be due to invalid IL or missing references)
			//IL_142f: Unknown result type (might be due to invalid IL or missing references)
			//IL_143a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1445: Unknown result type (might be due to invalid IL or missing references)
			//IL_144c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1457: Unknown result type (might be due to invalid IL or missing references)
			//IL_1462: Unknown result type (might be due to invalid IL or missing references)
			//IL_146d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1478: Unknown result type (might be due to invalid IL or missing references)
			//IL_147e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1483: Unknown result type (might be due to invalid IL or missing references)
			//IL_1485: Unknown result type (might be due to invalid IL or missing references)
			//IL_148a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1491: Unknown result type (might be due to invalid IL or missing references)
			//IL_1498: Unknown result type (might be due to invalid IL or missing references)
			//IL_14a3: Unknown result type (might be due to invalid IL or missing references)
			//IL_14ae: Unknown result type (might be due to invalid IL or missing references)
			//IL_14b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_14c4: Unknown result type (might be due to invalid IL or missing references)
			//IL_14cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_14da: Unknown result type (might be due to invalid IL or missing references)
			//IL_14e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_14f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_14fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1506: Unknown result type (might be due to invalid IL or missing references)
			//IL_1511: Unknown result type (might be due to invalid IL or missing references)
			//IL_1518: Unknown result type (might be due to invalid IL or missing references)
			//IL_1523: Unknown result type (might be due to invalid IL or missing references)
			//IL_152a: Unknown result type (might be due to invalid IL or missing references)
			//IL_1531: Unknown result type (might be due to invalid IL or missing references)
			//IL_153c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1543: Unknown result type (might be due to invalid IL or missing references)
			//IL_154e: Unknown result type (might be due to invalid IL or missing references)
			//IL_155b: Expected O, but got Unknown
			foreach (ZoneVegetation item18 in _vegetationList.Where((ZoneVegetation item) => zoneSystem.m_vegetation.Contains(item)))
			{
				zoneSystem.m_vegetation.Remove(item18);
			}
			_vegetationList.Clear();
			ZoneVegetation item2 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTree1,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = true,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			ZoneVegetation item3 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTree2,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = false,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1f
			};
			ZoneVegetation item4 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTree3,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = true,
				m_forestTresholdMin = 1f,
				m_forestTresholdMax = 3f
			};
			ZoneVegetation item5 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTree4,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = false,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1f
			};
			ZoneVegetation item6 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTree5,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = true,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			ZoneVegetation item7 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTree6,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = true,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			ZoneVegetation item8 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTree7,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = false,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1f
			};
			ZoneVegetation item9 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTreePumpkin1,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = true,
				m_forestTresholdMin = 1f,
				m_forestTresholdMax = 3f
			};
			ZoneVegetation item10 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTreePumpkin2,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = false,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1f
			};
			ZoneVegetation item11 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTreePumpkin3,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = true,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			ZoneVegetation item12 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTreePumpkin4,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 0f,
				m_inForest = false,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			ZoneVegetation item13 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTreePumpkin5,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 3f,
				m_inForest = true,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			ZoneVegetation item14 = new ZoneVegetation
			{
				m_name = "deadtrees",
				m_prefab = _deadTreePumpkin6,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 0f,
				m_inForest = false,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1f
			};
			ZoneVegetation item15 = new ZoneVegetation
			{
				m_name = "deadbushes",
				m_prefab = _deadBush1,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 0f,
				m_inForest = true,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			ZoneVegetation item16 = new ZoneVegetation
			{
				m_name = "deadbushes",
				m_prefab = _deadBush2,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 0f,
				m_inForest = false,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1f
			};
			ZoneVegetation item17 = new ZoneVegetation
			{
				m_name = "deadbushes",
				m_prefab = _deadBush3,
				m_enable = true,
				m_min = 2f,
				m_max = 5f,
				m_forcePlacement = false,
				m_scaleMin = 0.6f,
				m_scaleMax = 1.5f,
				m_randTilt = 4f,
				m_chanceToUseGroundTilt = 0.1f,
				m_biome = (Biome)539,
				m_biomeArea = (BiomeArea)3,
				m_blockCheck = true,
				m_snapToStaticSolid = false,
				m_minAltitude = 0f,
				m_maxAltitude = 1000f,
				m_minVegetation = 0f,
				m_maxVegetation = 0f,
				m_minOceanDepth = 0f,
				m_maxOceanDepth = 2f,
				m_minTilt = 0f,
				m_maxTilt = 30f,
				m_terrainDeltaRadius = 0f,
				m_maxTerrainDelta = 2f,
				m_minTerrainDelta = 0f,
				m_snapToWater = false,
				m_groundOffset = -0.2f,
				m_groupSizeMin = 1,
				m_groupSizeMax = 1,
				m_groupRadius = 0f,
				m_inForest = true,
				m_forestTresholdMin = 0f,
				m_forestTresholdMax = 1.15f
			};
			_vegetationList.Add(item2);
			_vegetationList.Add(item3);
			_vegetationList.Add(item4);
			_vegetationList.Add(item5);
			_vegetationList.Add(item6);
			_vegetationList.Add(item7);
			_vegetationList.Add(item8);
			_vegetationList.Add(item9);
			_vegetationList.Add(item10);
			_vegetationList.Add(item11);
			_vegetationList.Add(item12);
			_vegetationList.Add(item13);
			_vegetationList.Add(item14);
			_vegetationList.Add(item15);
			_vegetationList.Add(item16);
			_vegetationList.Add(item17);
			foreach (ZoneVegetation vegetation in _vegetationList)
			{
				zoneSystem.m_vegetation.Add(vegetation);
			}
		}

		private static AssetBundle GetAssetBundleFromResources(string filename)
		{
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			string name = executingAssembly.GetManifestResourceNames().Single((string x) => x.EndsWith(filename));
			using Stream stream = executingAssembly.GetManifestResourceStream(name);
			return AssetBundle.LoadFromStream(stream);
		}
	}
}
namespace HalloweenHeim.Utils
{
	public static class Helper
	{
		public static void AddClonedObject(this ZNetScene zNetScene, GameObject gameObject, bool overWrite = true)
		{
			GameObject prefab;
			if ((Object)(object)(prefab = zNetScene.GetPrefab(((Object)gameObject).name)) != (Object)null)
			{
				if (!overWrite)
				{
					return;
				}
				zNetScene.m_prefabs.Remove(prefab);
				zNetScene.m_namedPrefabs.Remove(StringExtensionMethods.GetStableHashCode(((Object)gameObject).name));
			}
			zNetScene.m_prefabs.Add(gameObject);
			zNetScene.m_namedPrefabs.Add(StringExtensionMethods.GetStableHashCode(((Object)gameObject).name), gameObject);
		}
	}
	public static class ShaderReplacer
	{
		private static readonly List<GameObject> GOToSwap;

		static ShaderReplacer()
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Expected O, but got Unknown
			GOToSwap = new List<GameObject>();
			new Harmony("blacks7ar.utilities.ShaderReplacer").Patch((MethodBase)AccessTools.DeclaredMethod(typeof(FejdStartup), "Awake", (Type[])null, (Type[])null), (HarmonyMethod)null, new HarmonyMethod(AccessTools.DeclaredMethod(typeof(ShaderReplacer), "ReplaceShaderPatch", (Type[])null, (Type[])null)), (HarmonyMethod)null, (HarmonyMethod)null, (HarmonyMethod)null);
		}

		public static void Replace(GameObject gameObject)
		{
			GOToSwap.Add(gameObject);
		}

		[HarmonyPriority(700)]
		private static void ReplaceShaderPatch()
		{
			foreach (Material item in from gameObject in GOToSwap
				select gameObject.GetComponentsInChildren<Renderer>(true) into renderers
				from renderer in renderers
				where (Object)(object)renderer != (Object)null
				from material in renderer.sharedMaterials
				where (Object)(object)material != (Object)null
				select material)
			{
				Shader[] array = Resources.FindObjectsOfTypeAll<Shader>();
				foreach (Shader val in array)
				{
					if (((Object)item.shader).name == ((Object)val).name)
					{
						item.shader = val;
					}
				}
			}
		}
	}
}
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	internal sealed class <b89b921d-8954-4084-bd4d-1feb826a594e>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	[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;
		}
	}
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	[CompilerGenerated]
	[<b89b921d-8954-4084-bd4d-1feb826a594e>Embedded]
	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
{
	[<f6f8ff5f-fa45-43ba-9489-b740a9e7c98b>Nullable(0)]
	[<bb5e3e5e-5c47-485a-88ef-ea5afd7f01c7>NullableContext(1)]
	[PublicAPI]
	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 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 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
{
	[<3d8a569c-9f68-4921-88d4-264256c5168e>Embedded]
	[CompilerGenerated]
	internal sealed class <3d8a569c-9f68-4921-88d4-264256c5168e>EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[<3d8a569c-9f68-4921-88d4-264256c5168e>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class <b8507111-bb24-45e5-aa63-a88ce50332d2>NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public <b8507111-bb24-45e5-aa63-a88ce50332d2>NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public <b8507111-bb24-45e5-aa63-a88ce50332d2>NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[<3d8a569c-9f68-4921-88d4-264256c5168e>Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
	internal sealed class <d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContextAttribute : Attribute
	{
		public readonly byte Flag;

		public <d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContextAttribute(byte P_0)
		{
			Flag = P_0;
		}
	}
}
namespace System.Diagnostics.CodeAnalysis
{
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)]
	internal sealed class AllowNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, Inherited = false)]
	internal sealed class DisallowNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Method, Inherited = false)]
	internal sealed class DoesNotReturnAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
	internal sealed class DoesNotReturnIfAttribute : Attribute
	{
		public bool ParameterValue { get; }

		public DoesNotReturnIfAttribute(bool parameterValue)
		{
			ParameterValue = parameterValue;
		}
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, Inherited = false)]
	internal sealed class MaybeNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
	internal sealed class MaybeNullWhenAttribute : Attribute
	{
		public bool ReturnValue { get; }

		public MaybeNullWhenAttribute(bool returnValue)
		{
			ReturnValue = returnValue;
		}
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, Inherited = false)]
	internal sealed class NotNullAttribute : Attribute
	{
	}
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Parameter | AttributeTargets.ReturnValue, AllowMultiple = true, Inherited = false)]
	[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(0)]
	[<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(1)]
	internal sealed class NotNullIfNotNullAttribute : Attribute
	{
		public string ParameterName { get; }

		public NotNullIfNotNullAttribute(string parameterName)
		{
			ParameterName = parameterName;
		}
	}
	[AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
	internal sealed class NotNullWhenAttribute : Attribute
	{
		public bool ReturnValue { get; }

		public NotNullWhenAttribute(bool returnValue)
		{
			ReturnValue = returnValue;
		}
	}
}
namespace System.Collections.Generic
{
	internal static class DeconstructionExtensions
	{
		[<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(1)]
		public static void Deconstruct<[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(2)] TKey, [<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(2)] TValue>([<b8507111-bb24-45e5-aa63-a88ce50332d2>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
{
	[<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(1)]
	[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(0)]
	internal sealed class CultureInfoAdapter : CultureInfo
	{
		private readonly IFormatProvider provider;

		public CultureInfoAdapter(CultureInfo baseCulture, IFormatProvider provider)
			: base(baseCulture.LCID)
		{
			this.provider = provider;
		}

		[<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(2)]
		public override object GetFormat(Type formatType)
		{
			return provider.GetFormat(formatType);
		}
	}
	[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(0)]
	[<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(1)]
	internal static class ReflectionExtensions
	{
		[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(2)]
		private static readonly FieldInfo RemoteStackTraceField = typeof(Exception).GetField("_remoteStackTraceString", BindingFlags.Instance | BindingFlags.NonPublic);

		[return: <b8507111-bb24-45e5-aa63-a88ce50332d2>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: <b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(2)]
		public static PropertyInfo GetPublicProperty(this Type type, string name)
		{
			return type.GetProperty(name);
		}

		[return: <b8507111-bb24-45e5-aa63-a88ce50332d2>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([<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(0)] (Type i) => i.GetProperties(bindingFlags));
		}

		public static IEnumerable<PropertyInfo> GetPublicProperties(this Type type)
		{
			return type.GetProperties(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: <b8507111-bb24-45e5-aa63-a88ce50332d2>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: <b8507111-bb24-45e5-aa63-a88ce50332d2>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<[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(2)] TAttribute>(this PropertyInfo property)
		{
			return Attribute.GetCustomAttributes(property, typeof(TAttribute));
		}
	}
	internal static class PropertyInfoExtensions
	{
		[<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(1)]
		[return: <b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(2)]
		public static object ReadValue(this PropertyInfo property, object target)
		{
			return property.GetValue(target, null);
		}
	}
	internal static class StandardRegexOptions
	{
		public const RegexOptions Compiled = RegexOptions.Compiled;
	}
}
namespace YamlDotNet.Serialization
{
	[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(0)]
	[<d003bac8-6a85-4958-9854-9f8a6b3f304b>NullableContext(1)]
	internal abstract class BuilderSkeleton<[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(0)] TBuilder> where TBuilder : BuilderSkeleton<TBuilder>
	{
		internal INamingConvention namingConvention = NullNamingConvention.Instance;

		internal ITypeResolver typeResolver;

		internal readonly YamlAttributeOverrides overrides;

		internal readonly LazyComponentRegistrationList<Nothing, IYamlTypeConverter> typeConverterFactories;

		internal readonly LazyComponentRegistrationList<ITypeInspector, ITypeInspector> typeInspectorFactories;

		private bool ignoreFields;

		private bool includeNonPublicProperties;

		protected abstract TBuilder Self { get; }

		internal BuilderSkeleton(ITypeResolver typeResolver)
		{
			overrides = new YamlAttributeOverrides();
			typeConverterFactories = new LazyComponentRegistrationList<Nothing, IYamlTypeConverter>
			{
				{
					typeof(YamlDotNet.Serialization.Converters.GuidConverter),
					(Nothing _) => new YamlDotNet.Serialization.Converters.GuidConverter(jsonCompatible: false)
				},
				{
					typeof(SystemTypeConverter),
					(Nothing _) => new SystemTypeConverter()
				}
			};
			typeInspectorFactories = new LazyComponentRegistrationList<ITypeInspector, ITypeInspector>();
			this.typeResolver = typeResolver ?? throw new ArgumentNullException("typeResolver");
		}

		internal ITypeInspector BuildTypeInspector()
		{
			ITypeInspector typeInspector = new ReadablePropertiesTypeInspector(typeResolver, includeNonPublicProperties);
			if (!ignoreFields)
			{
				typeInspector = new CompositeTypeInspector(new ReadableFieldsTypeInspector(typeResolver), typeInspector);
			}
			return typeInspectorFactories.BuildComponentChain(typeInspector);
		}

		public TBuilder IgnoreFields()
		{
			ignoreFields = true;
			return Self;
		}

		public TBuilder IncludeNonPublicProperties()
		{
			includeNonPublicProperties = true;
			return Self;
		}

		public TBuilder WithNamingConvention(INamingConvention namingConvention)
		{
			this.namingConvention = namingConvention ?? throw new ArgumentNullException("namingConvention");
			return Self;
		}

		public TBuilder WithTypeResolver(ITypeResolver typeResolver)
		{
			this.typeResolver = typeResolver ?? throw new ArgumentNullException("typeResolver");
			return Self;
		}

		public abstract TBuilder WithTagMapping(TagName tag, Type type);

		public TBuilder WithAttributeOverride<[<b8507111-bb24-45e5-aa63-a88ce50332d2>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(IYamlTypeConverter typeConverter)
		{
			return WithTypeConverter(typeConverter, delegate(IRegistrationLocationSelectionSyntax<IYamlTypeConverter> w)
			{
				w.OnTop();
			});
		}

		public TBuilder WithTypeConverter(IYamlTypeConverter typeConverter, Action<IRegistrationLocationSelectionSyntax<IYamlTypeConverter>> where)
		{
			if (typeConverter == null)
			{
				throw new ArgumentNullException("typeConverter");
			}
			if (where == null)
			{
				throw new ArgumentNullException("where");
			}
			where(typeConverterFactories.CreateRegistrationLocationSelector(typeConverter.GetType(), (Nothing _) => typeConverter));
			return Self;
		}

		public TBuilder WithTypeConverter<[<b8507111-bb24-45e5-aa63-a88ce50332d2>Nullable(0)] TYamlTypeConverter>(WrapperFactory<IYamlTypeConverter, IYamlTypeConverter> typeConverterFactory, Action<ITrackingRegistrationLocationSelectionSyntax<IYamlTypeConverter>> where) where TYamlTypeConverter : IYamlTypeConverter
		{
			if (typeConverterFactory == null)
			{
				throw new ArgumentNullException("typeConverterFactory");
			}
			if (where == null)
			{
				throw new ArgumentNullException("where");
			}
			where(typeConverterFactories.CreateTrackingRegi