BepInEx/plugins/CWVR/CWVR.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;
using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using CWVR.Assets;
using CWVR.Input;
using CWVR.Networking;
using CWVR.Patches;
using CWVR.Player;
using CWVR.Properties;
using CWVR.UI;
using CWVR.UI.Settings;
using ContentSettings.API;
using ContentSettings.API.Settings.UI;
using CurvedUI;
using HarmonyLib;
using HorizonBasedAmbientOcclusion.Universal;
using Microsoft.CodeAnalysis;
using Microsoft.MixedReality.Toolkit.Experimental.UI;
using Newtonsoft.Json;
using Photon.Pun;
using TMPro;
using Unity.Mathematics;
using UnityEngine;
using UnityEngine.Animations.Rigging;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.InputSystem;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using UnityEngine.SceneManagement;
using UnityEngine.Serialization;
using UnityEngine.SpatialTracking;
using UnityEngine.UI;
using UnityEngine.XR;
using UnityEngine.XR.Interaction.Toolkit;
using UnityEngine.XR.Interaction.Toolkit.UI;
using UnityEngine.XR.Management;
using UnityEngine.XR.OpenXR;
using UnityEngine.XR.OpenXR.Features;
using UnityEngine.XR.OpenXR.Features.Interactions;
using Zorro.Core;
using Zorro.Core.CLI;
using Zorro.Core.Serizalization;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("CWVR")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyCopyright("Copyright (c) DaXcess 2024")]
[assembly: AssemblyDescription("Recording creatures in VR")]
[assembly: AssemblyFileVersion("1.0.4.0")]
[assembly: AssemblyInformationalVersion("1.0.4+ae9bc8dceb174dec0e2d4f85b5de067db5a0cba4")]
[assembly: AssemblyProduct("CWVR")]
[assembly: AssemblyTitle("CWVR")]
[assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/DaXcess/CWVR")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.4.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
	internal sealed class NullableAttribute : Attribute
	{
		public readonly byte[] NullableFlags;

		public NullableAttribute(byte P_0)
		{
			NullableFlags = new byte[1] { P_0 };
		}

		public NullableAttribute(byte[] P_0)
		{
			NullableFlags = P_0;
		}
	}
	[CompilerGenerated]
	[Microsoft.CodeAnalysis.Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace BepInEx
{
	[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
	[Conditional("CodeGeneration")]
	internal sealed class BepInAutoPluginAttribute : Attribute
	{
		public BepInAutoPluginAttribute(string id = null, string name = null, string version = null)
		{
		}
	}
}
namespace BepInEx.Preloader.Core.Patching
{
	[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
	[Conditional("CodeGeneration")]
	internal sealed class PatcherAutoPluginAttribute : Attribute
	{
		public PatcherAutoPluginAttribute(string id = null, string name = null, string version = null)
		{
		}
	}
}
namespace Microsoft.MixedReality.Toolkit.Experimental.UI
{
	public class CapsLockHighlight : MonoBehaviour
	{
		[SerializeField]
		private Image m_Highlight;

		private NonNativeKeyboard m_Keyboard;

		private void Start()
		{
			m_Keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>();
			UpdateState();
		}

		private void Update()
		{
			UpdateState();
		}

		private void UpdateState()
		{
			bool enabled = false;
			if ((Object)(object)m_Keyboard != (Object)null)
			{
				enabled = m_Keyboard.IsCapsLocked;
			}
			if ((Object)(object)m_Highlight != (Object)null)
			{
				((Behaviour)m_Highlight).enabled = enabled;
			}
		}
	}
	[RequireComponent(typeof(Button))]
	public class KeyboardKeyFunc : MonoBehaviour
	{
		public enum Function
		{
			Enter,
			Tab,
			ABC,
			Symbol,
			Previous,
			Next,
			Close,
			Dictate,
			Shift,
			CapsLock,
			Space,
			Backspace,
			Macro,
			UNDEFINED
		}

		private NonNativeKeyboard keyboard;

		[SerializeField]
		[FormerlySerializedAs("m_ButtonFunction")]
		private Function buttonFunction = Function.UNDEFINED;

		[SerializeField]
		[FormerlySerializedAs("m_MacroText")]
		private string macroText;

		public Function ButtonFunction => buttonFunction;

		public string MacroText => macroText;

		private void Awake()
		{
			if ((Object)(object)keyboard == (Object)null)
			{
				keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>();
			}
		}

		private void Start()
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			Button component = ((Component)this).GetComponent<Button>();
			((UnityEventBase)component.onClick).RemoveAllListeners();
			((UnityEvent)component.onClick).AddListener(new UnityAction(FireFunctionKey));
		}

		private void FireFunctionKey()
		{
			keyboard.FunctionKey(this);
		}
	}
	[RequireComponent(typeof(Button))]
	public class KeyboardValueKey : MonoBehaviour
	{
		private NonNativeKeyboard keyboard;

		public string Value;

		public string ShiftValue;

		private TextMeshProUGUI m_Text;

		private Button m_Button;

		private void Awake()
		{
			if ((Object)(object)keyboard == (Object)null)
			{
				keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>();
			}
			m_Button = ((Component)this).GetComponent<Button>();
		}

		private void Start()
		{
			//IL_0044: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Expected O, but got Unknown
			m_Text = ((Component)this).gameObject.GetComponentInChildren<TextMeshProUGUI>();
			((TMP_Text)m_Text).text = Value;
			((UnityEventBase)m_Button.onClick).RemoveAllListeners();
			((UnityEvent)m_Button.onClick).AddListener(new UnityAction(FireAppendValue));
			keyboard.OnKeyboardShifted += Shift;
		}

		private void FireAppendValue()
		{
			keyboard.AppendValue(this);
		}

		public void Shift(bool isShifted)
		{
			if (isShifted && !string.IsNullOrEmpty(ShiftValue))
			{
				((TMP_Text)m_Text).text = ShiftValue;
			}
			else
			{
				((TMP_Text)m_Text).text = Value;
			}
		}
	}
	public class NonNativeKeyboard : MonoBehaviour
	{
		public enum LayoutType
		{
			Alpha,
			Symbol,
			URL,
			Email
		}

		public TMP_InputField InputField;

		public bool SliderEnabled;

		public bool CloseOnEnter = true;

		public bool SubmitOnEnter;

		public bool DisableLayouts = true;

		public Image NumbersKeyboard;

		public Image AlphaKeyboard;

		public Image SymbolKeyboard;

		public Image AlphaSubKeys;

		public Image AlphaWebKeys;

		public Image AlphaMailKeys;

		private LayoutType m_LastKeyboardLayout;

		[Header("Positioning")]
		[SerializeField]
		private float m_MaxScale = 1f;

		[SerializeField]
		private float m_MinScale = 1f;

		[SerializeField]
		private float m_MaxDistance = 3.5f;

		[SerializeField]
		private float m_MinDistance = 0.25f;

		public bool CloseOnInactivity = true;

		public float CloseOnInactivityTime = 15f;

		private float _closingTime;

		private bool m_IsShifted;

		private bool m_IsCapslocked;

		private int m_CaretPosition;

		private Vector3 m_StartingScale = Vector3.one;

		private Vector3 m_ObjectBounds;

		private AudioSource _audioSource;

		public bool IsShifted => m_IsShifted;

		public bool IsCapsLocked => m_IsCapslocked;

		public event EventHandler OnTextSubmitted = delegate
		{
		};

		public event Action<string> OnMacroTriggered = delegate
		{
		};

		public event Action<string> OnTextUpdated = delegate
		{
		};

		public event EventHandler OnClosed = delegate
		{
		};

		public event EventHandler OnPrevious = delegate
		{
		};

		public event EventHandler OnNext = delegate
		{
		};

		public event EventHandler OnPlacement = delegate
		{
		};

		public event Action<bool> OnKeyboardShifted = delegate
		{
		};

		public event Action<KeyboardValueKey> OnKeyboardValueKeyPressed = delegate
		{
		};

		public event Action<KeyboardKeyFunc> OnKeyboardFunctionKeyPressed = delegate
		{
		};

		private void Awake()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_0062: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			m_StartingScale = ((Component)this).transform.localScale;
			Bounds val = RectTransformUtility.CalculateRelativeRectTransformBounds(((Component)this).transform);
			RectTransform component = ((Component)this).GetComponent<RectTransform>();
			m_ObjectBounds = new Vector3(((Bounds)(ref val)).size.x * ((Transform)component).localScale.x, ((Bounds)(ref val)).size.y * ((Transform)component).localScale.y, ((Bounds)(ref val)).size.z * ((Transform)component).localScale.z);
			((Component)this).gameObject.SetActive(false);
		}

		protected void Start()
		{
			TMP_InputField inputField = InputField;
			if (inputField != null)
			{
				((UnityEvent<string>)(object)inputField.onValueChanged).AddListener((UnityAction<string>)DoTextUpdated);
			}
		}

		private void DoTextUpdated(string value)
		{
			this.OnTextUpdated?.Invoke(value);
		}

		private void UpdateCaretPosition(int newPos)
		{
			InputField.caretPosition = newPos;
		}

		protected void OnDisable()
		{
			m_LastKeyboardLayout = LayoutType.Alpha;
		}

		public void PresentKeyboard()
		{
			ResetClosingTime();
			((Component)this).gameObject.SetActive(true);
			ActivateSpecificKeyboard(LayoutType.Alpha);
			this.OnPlacement(this, EventArgs.Empty);
			TMP_InputField inputField = InputField;
			if (inputField != null)
			{
				inputField.ActivateInputField();
			}
		}

		public void PresentKeyboard(string startText)
		{
			PresentKeyboard();
			Clear();
			InputField.text = startText;
		}

		public void PresentKeyboard(LayoutType keyboardType)
		{
			PresentKeyboard();
			ActivateSpecificKeyboard(keyboardType);
		}

		public void PresentKeyboard(string startText, LayoutType keyboardType)
		{
			PresentKeyboard(startText);
			ActivateSpecificKeyboard(keyboardType);
		}

		public void RepositionKeyboard(Vector3 kbPos, float verticalOffset = 0f)
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			((Component)this).transform.position = kbPos;
			ScaleToSize();
			LookAtTargetOrigin();
		}

		public void RepositionKeyboard(Transform objectTransform, BoxCollider aCollider = null, float verticalOffset = 0f)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			((Component)this).transform.position = objectTransform.position;
			if ((Object)(object)aCollider != (Object)null)
			{
				Bounds bounds = ((Collider)aCollider).bounds;
				float num = 0f - (((Bounds)(ref bounds)).size.y * 0.5f + verticalOffset);
				((Component)this).transform.Translate(0f, num, -0.6f, objectTransform);
			}
			else
			{
				float num2 = 0f - (m_ObjectBounds.y * 0.5f + verticalOffset);
				((Component)this).transform.Translate(0f, num2, -0.6f, objectTransform);
			}
			ScaleToSize();
			LookAtTargetOrigin();
		}

		private void ScaleToSize()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			Vector3 val = ((Component)this).transform.position - ((Component)Camera.main).transform.position;
			float magnitude = ((Vector3)(ref val)).magnitude;
			float num = (magnitude - m_MinDistance) / (m_MaxDistance - m_MinDistance);
			float num2 = m_MinScale + (m_MaxScale - m_MinScale) * num;
			num2 = Mathf.Clamp(num2, m_MinScale, m_MaxScale);
			((Component)this).transform.localScale = m_StartingScale * num2;
			Debug.LogFormat("Setting scale: {0} for distance: {1}", new object[2] { num2, magnitude });
		}

		private void LookAtTargetOrigin()
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			((Component)this).transform.LookAt(((Component)Camera.main).transform.position);
			((Component)this).transform.Rotate(Vector3.up, 180f);
		}

		private void ActivateSpecificKeyboard(LayoutType keyboardType)
		{
			if (DisableLayouts)
			{
				DisableAllKeyboards();
				ResetKeyboardState();
				switch (keyboardType)
				{
				case LayoutType.URL:
					ShowAlphaKeyboard();
					TryToShowURLSubkeys();
					break;
				case LayoutType.Email:
					ShowAlphaKeyboard();
					TryToShowEmailSubkeys();
					break;
				case LayoutType.Symbol:
					ShowSymbolKeyboard();
					break;
				default:
					ShowAlphaKeyboard();
					TryToShowAlphaSubkeys();
					break;
				}
			}
		}

		public void AppendValue(KeyboardValueKey valueKey)
		{
			IndicateActivity();
			string text = "";
			this.OnKeyboardValueKeyPressed(valueKey);
			if (Object.op_Implicit((Object)(object)InputField))
			{
				text = ((!m_IsShifted || string.IsNullOrEmpty(valueKey.ShiftValue)) ? valueKey.Value : valueKey.ShiftValue);
				if (!m_IsCapslocked)
				{
					Shift(newShiftState: false);
				}
				m_CaretPosition = InputField.caretPosition;
				InputField.text = InputField.text.Insert(m_CaretPosition, text);
				m_CaretPosition += text.Length;
				UpdateCaretPosition(m_CaretPosition);
			}
		}

		public void FunctionKey(KeyboardKeyFunc functionKey)
		{
			IndicateActivity();
			this.OnKeyboardFunctionKeyPressed(functionKey);
			switch (functionKey.ButtonFunction)
			{
			case KeyboardKeyFunc.Function.Enter:
				Enter();
				break;
			case KeyboardKeyFunc.Function.Tab:
				Tab();
				break;
			case KeyboardKeyFunc.Function.ABC:
				ActivateSpecificKeyboard(m_LastKeyboardLayout);
				break;
			case KeyboardKeyFunc.Function.Symbol:
				ActivateSpecificKeyboard(LayoutType.Symbol);
				break;
			case KeyboardKeyFunc.Function.Previous:
				MoveCaretLeft();
				break;
			case KeyboardKeyFunc.Function.Next:
				MoveCaretRight();
				break;
			case KeyboardKeyFunc.Function.Close:
				Close();
				break;
			case KeyboardKeyFunc.Function.Shift:
				Shift(!m_IsShifted);
				break;
			case KeyboardKeyFunc.Function.CapsLock:
				CapsLock(!m_IsCapslocked);
				break;
			case KeyboardKeyFunc.Function.Space:
				Space();
				break;
			case KeyboardKeyFunc.Function.Backspace:
				Backspace();
				break;
			case KeyboardKeyFunc.Function.Macro:
				Macro(functionKey.MacroText);
				break;
			case KeyboardKeyFunc.Function.UNDEFINED:
				Debug.LogErrorFormat("The {0} key on this keyboard hasn't been assigned a function.", new object[1] { ((Object)functionKey).name });
				break;
			default:
				throw new ArgumentOutOfRangeException();
			}
		}

		public void Backspace()
		{
			if (!Object.op_Implicit((Object)(object)InputField))
			{
				return;
			}
			if (InputField.selectionFocusPosition != InputField.caretPosition || InputField.selectionAnchorPosition != InputField.caretPosition)
			{
				if (InputField.selectionAnchorPosition > InputField.selectionFocusPosition)
				{
					InputField.text = InputField.text.Substring(0, InputField.selectionFocusPosition) + InputField.text.Substring(InputField.selectionAnchorPosition);
					InputField.caretPosition = InputField.selectionFocusPosition;
				}
				else
				{
					InputField.text = InputField.text.Substring(0, InputField.selectionAnchorPosition) + InputField.text.Substring(InputField.selectionFocusPosition);
					InputField.caretPosition = InputField.selectionAnchorPosition;
				}
				m_CaretPosition = InputField.caretPosition;
				InputField.selectionAnchorPosition = m_CaretPosition;
				InputField.selectionFocusPosition = m_CaretPosition;
			}
			else
			{
				m_CaretPosition = InputField.caretPosition;
				if (m_CaretPosition > 0)
				{
					m_CaretPosition--;
					InputField.text = InputField.text.Remove(m_CaretPosition, 1);
					UpdateCaretPosition(m_CaretPosition);
				}
			}
		}

		public void Previous()
		{
			this.OnPrevious(this, EventArgs.Empty);
		}

		public void Next()
		{
			this.OnNext(this, EventArgs.Empty);
		}

		public void Enter()
		{
			this.OnTextSubmitted?.Invoke(this, EventArgs.Empty);
			if (SubmitOnEnter)
			{
				InputField.OnSubmit((BaseEventData)null);
			}
			if (CloseOnEnter)
			{
				Close();
			}
		}

		public void Macro(string text)
		{
			this.OnMacroTriggered?.Invoke(text);
		}

		public void Shift(bool newShiftState)
		{
			m_IsShifted = newShiftState;
			this.OnKeyboardShifted(m_IsShifted);
			if (m_IsCapslocked && !newShiftState)
			{
				m_IsCapslocked = false;
			}
		}

		public void CapsLock(bool newCapsLockState)
		{
			m_IsCapslocked = newCapsLockState;
			Shift(newCapsLockState);
		}

		public void Space()
		{
			m_CaretPosition = InputField.caretPosition;
			InputField.text = InputField.text.Insert(m_CaretPosition++, " ");
			UpdateCaretPosition(m_CaretPosition);
		}

		public void Tab()
		{
			string text = "\t";
			m_CaretPosition = InputField.caretPosition;
			InputField.text = InputField.text.Insert(m_CaretPosition, text);
			m_CaretPosition += text.Length;
			UpdateCaretPosition(m_CaretPosition);
		}

		public void MoveCaretLeft()
		{
			m_CaretPosition = InputField.caretPosition;
			if (m_CaretPosition > 0)
			{
				m_CaretPosition--;
				UpdateCaretPosition(m_CaretPosition);
			}
		}

		public void MoveCaretRight()
		{
			m_CaretPosition = InputField.caretPosition;
			if (m_CaretPosition < InputField.text.Length)
			{
				m_CaretPosition++;
				UpdateCaretPosition(m_CaretPosition);
			}
		}

		public void Close()
		{
			((Component)this).gameObject.SetActive(false);
			this.OnClosed(this, EventArgs.Empty);
		}

		public void Clear()
		{
			ResetKeyboardState();
			if (InputField.caretPosition != 0)
			{
				InputField.MoveTextStart(false);
			}
			InputField.text = "";
			m_CaretPosition = InputField.caretPosition;
		}

		public void SetScaleSizeValues(float minScale, float maxScale, float minDistance, float maxDistance)
		{
			m_MinScale = minScale;
			m_MaxScale = maxScale;
			m_MinDistance = minDistance;
			m_MaxDistance = maxDistance;
		}

		public void ShowAlphaKeyboard()
		{
			((Component)NumbersKeyboard).gameObject.SetActive(true);
			((Component)AlphaKeyboard).gameObject.SetActive(true);
			m_LastKeyboardLayout = LayoutType.Alpha;
		}

		private bool TryToShowAlphaSubkeys()
		{
			if (((UIBehaviour)AlphaKeyboard).IsActive())
			{
				((Component)AlphaSubKeys).gameObject.SetActive(true);
				return true;
			}
			return false;
		}

		private bool TryToShowEmailSubkeys()
		{
			if (((UIBehaviour)AlphaKeyboard).IsActive())
			{
				((Component)AlphaMailKeys).gameObject.SetActive(true);
				m_LastKeyboardLayout = LayoutType.Email;
				return true;
			}
			return false;
		}

		private bool TryToShowURLSubkeys()
		{
			if (((UIBehaviour)AlphaKeyboard).IsActive())
			{
				((Component)AlphaWebKeys).gameObject.SetActive(true);
				m_LastKeyboardLayout = LayoutType.URL;
				return true;
			}
			return false;
		}

		public void ShowSymbolKeyboard()
		{
			((Component)SymbolKeyboard).gameObject.SetActive(true);
		}

		private void DisableAllKeyboards()
		{
			if (DisableLayouts)
			{
				Image numbersKeyboard = NumbersKeyboard;
				if (numbersKeyboard != null)
				{
					((Component)numbersKeyboard).gameObject.SetActive(false);
				}
				Image alphaKeyboard = AlphaKeyboard;
				if (alphaKeyboard != null)
				{
					((Component)alphaKeyboard).gameObject.SetActive(false);
				}
				Image symbolKeyboard = SymbolKeyboard;
				if (symbolKeyboard != null)
				{
					((Component)symbolKeyboard).gameObject.SetActive(false);
				}
				Image alphaWebKeys = AlphaWebKeys;
				if (alphaWebKeys != null)
				{
					((Component)alphaWebKeys).gameObject.SetActive(false);
				}
				Image alphaMailKeys = AlphaMailKeys;
				if (alphaMailKeys != null)
				{
					((Component)alphaMailKeys).gameObject.SetActive(false);
				}
				Image alphaSubKeys = AlphaSubKeys;
				if (alphaSubKeys != null)
				{
					((Component)alphaSubKeys).gameObject.SetActive(false);
				}
			}
		}

		private void ResetKeyboardState()
		{
			CapsLock(newCapsLockState: false);
		}

		private void IndicateActivity()
		{
			ResetClosingTime();
			if ((Object)(object)_audioSource == (Object)null)
			{
				_audioSource = ((Component)this).GetComponent<AudioSource>();
			}
			if ((Object)(object)_audioSource != (Object)null)
			{
				_audioSource.Play();
			}
		}

		private void ResetClosingTime()
		{
			if (CloseOnInactivity)
			{
				_closingTime = Time.time + CloseOnInactivityTime;
			}
		}

		private void CheckForCloseOnInactivityTimeExpired()
		{
			if (Time.time > _closingTime && CloseOnInactivity)
			{
				Close();
			}
		}
	}
	public class SymbolDisableHighlight : MonoBehaviour
	{
		[SerializeField]
		private Text m_TextField;

		[SerializeField]
		private Image m_ImageField;

		[SerializeField]
		private Color m_DisabledColor = Color.grey;

		private Color m_StartingColor = Color.white;

		private Button m_Button;

		private void Start()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)m_TextField != (Object)null)
			{
				m_StartingColor = ((Graphic)m_TextField).color;
			}
			if ((Object)(object)m_ImageField != (Object)null)
			{
				m_StartingColor = ((Graphic)m_ImageField).color;
			}
			m_Button = ((Component)this).GetComponentInParent<Button>();
			UpdateState();
		}

		private void Update()
		{
			UpdateState();
		}

		private void UpdateState()
		{
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)m_TextField != (Object)null && (Object)(object)m_Button != (Object)null)
			{
				((Graphic)m_TextField).color = (((Selectable)m_Button).interactable ? m_StartingColor : m_DisabledColor);
			}
			if ((Object)(object)m_ImageField != (Object)null && (Object)(object)m_Button != (Object)null)
			{
				((Graphic)m_ImageField).color = (((Selectable)m_Button).interactable ? m_StartingColor : m_DisabledColor);
			}
		}
	}
	public class SymbolKeyboard : MonoBehaviour
	{
		private NonNativeKeyboard keyboard;

		[SerializeField]
		private Button m_PageBck;

		[SerializeField]
		private Button m_PageFwd;

		private void Awake()
		{
			if ((Object)(object)keyboard == (Object)null)
			{
				keyboard = ((Component)this).GetComponentInParent<NonNativeKeyboard>();
			}
		}

		private void Update()
		{
			((Selectable)m_PageBck).interactable = keyboard.IsShifted;
			((Selectable)m_PageFwd).interactable = !keyboard.IsShifted;
		}
	}
	[AddComponentMenu("Scripts/MRTK/Experimental/UICollection")]
	[RequireComponent(typeof(RectTransform))]
	[ExecuteInEditMode]
	public class UICollection : MonoBehaviour
	{
		[SerializeField]
		private float maxWidth = -1f;

		[SerializeField]
		private float maxHeight = -1f;

		[SerializeField]
		private float horizontalSpacing;

		[SerializeField]
		private float verticalSpacing;

		private RectTransform rectTransform;

		public float MaxWidth
		{
			get
			{
				return maxWidth;
			}
			set
			{
				maxWidth = value;
			}
		}

		public float MaxHeight
		{
			get
			{
				return maxHeight;
			}
			set
			{
				maxHeight = value;
			}
		}

		public float HorizontalSpacing
		{
			get
			{
				return horizontalSpacing;
			}
			set
			{
				horizontalSpacing = value;
			}
		}

		public float VerticalSpacing
		{
			get
			{
				return verticalSpacing;
			}
			set
			{
				verticalSpacing = value;
			}
		}

		public List<RectTransform> Items { get; private set; }

		private void Awake()
		{
			Items = new List<RectTransform>();
		}

		private void Start()
		{
			rectTransform = ((Component)this).GetComponent<RectTransform>();
			if (Application.isEditor)
			{
				CollectItems();
				UpdateLayout();
			}
		}

		private void Update()
		{
			if (Application.isEditor)
			{
				CollectItems();
				UpdateLayout();
			}
		}

		public void AddItem(RectTransform item)
		{
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			Items.Add(item);
			((Transform)item).SetParent(((Component)this).transform);
			((Component)item).transform.localScale = Vector3.one;
			((Transform)item).position = Vector3.zero;
			item.anchoredPosition3D = Vector3.zero;
			UpdateLayout();
		}

		public void RemoveItem(RectTransform item)
		{
			Items.Remove(item);
			UpdateLayout();
		}

		public void RemoveAllItems()
		{
			Items.Clear();
			UpdateLayout();
		}

		private void CollectItems()
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			Items.Clear();
			foreach (Transform item in ((Component)this).transform)
			{
				RectTransform component = ((Component)item).GetComponent<RectTransform>();
				if ((Object)(object)component != (Object)null)
				{
					AddItem(component);
				}
			}
		}

		protected virtual void UpdateLayout()
		{
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006b: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: 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_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ce: 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_00f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_0107: Unknown result type (might be due to invalid IL or missing references)
			//IL_0183: 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_0190: 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_01b5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_013c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0141: Unknown result type (might be due to invalid IL or missing references)
			//IL_0159: Unknown result type (might be due to invalid IL or missing references)
			//IL_015e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_021e: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: Unknown result type (might be due to invalid IL or missing references)
			Rect rect = rectTransform.rect;
			Vector2 zero = Vector2.zero;
			if (maxWidth < 0f)
			{
				zero.x = ((Rect)(ref rect)).width;
			}
			else
			{
				zero.x = maxWidth;
			}
			if (maxHeight < 0f)
			{
				zero.y = ((Rect)(ref rect)).height;
			}
			else
			{
				zero.y = maxHeight;
			}
			Vector2 zero2 = Vector2.zero;
			Vector2 up = Vector2.up;
			float num = 0f;
			float num2 = 0f;
			for (int i = 0; i < Items.Count; i++)
			{
				Items[i].anchorMin = up;
				Items[i].anchorMax = up;
				Items[i].pivot = up;
				Rect rect2 = Items[i].rect;
				num = Mathf.Max(((Rect)(ref rect2)).height, num);
				rect2 = Items[i].rect;
				if (((Rect)(ref rect2)).width + zero2.x > zero.x)
				{
					zero2.y += num + verticalSpacing;
					zero2.x = 0f;
					rect2 = Items[i].rect;
					num = ((Rect)(ref rect2)).height;
					rect2 = Items[i].rect;
					if (((Rect)(ref rect2)).height + zero2.y > zero.y)
					{
						break;
					}
				}
				Items[i].anchoredPosition = new Vector2(zero2.x, 0f - zero2.y);
				ref float x = ref zero2.x;
				float num3 = x;
				rect2 = Items[i].rect;
				x = num3 + (((Rect)(ref rect2)).width + horizontalSpacing);
				num2 = Mathf.Max(zero2.x - horizontalSpacing, num2);
			}
			float num4 = ((maxWidth < 0f) ? ((Rect)(ref rect)).width : num2);
			float num5 = ((maxHeight < 0f) ? ((Rect)(ref rect)).height : (num + zero2.y));
			rectTransform.sizeDelta = new Vector2(num4, num5);
		}
	}
}
namespace CWVR
{
	public class Compat
	{
		private class CompatibleMod
		{
			public string Name { get; }

			public string Guid { get; }

			public CompatibleMod(string name, string guid)
			{
				Name = name;
				Guid = guid;
				base..ctor();
			}
		}

		private readonly CompatibleMod[] ModCompatibilityList = new CompatibleMod[1]
		{
			new CompatibleMod("ContentSettings", "CommanderCat101.ContentSettings")
		};

		private readonly List<string> DetectedMods = new List<string>();

		public Compat(IEnumerable<PluginInfo> plugins)
		{
			foreach (PluginInfo plugin in plugins)
			{
				CompatibleMod compatibleMod = ModCompatibilityList.FirstOrDefault((CompatibleMod mod) => mod.Guid == plugin.Metadata.GUID);
				if (compatibleMod != null)
				{
					Logger.LogInfo("Found compatible mod " + compatibleMod.Name);
					DetectedMods.Add(compatibleMod.Name);
				}
			}
		}

		public bool IsLoaded(string modName)
		{
			return DetectedMods.Contains(modName);
		}
	}
	public class Config
	{
		public enum TurnProviderOption
		{
			Snap,
			Smooth,
			Disabled
		}

		public ConfigFile File { get; }

		public ConfigEntry<bool> DisableVR { get; }

		public ConfigEntry<bool> DisableRagdollCamera { get; }

		public ConfigEntry<TurnProviderOption> TurnProvider { get; }

		public ConfigEntry<float> SmoothTurnSpeedModifier { get; }

		public ConfigEntry<int> SnapTurnSize { get; }

		public ConfigEntry<bool> ToggleSprint { get; }

		public ConfigEntry<bool> InteractToZoom { get; }

		public ConfigEntry<bool> FirstTimeLaunch { get; }

		public ConfigEntry<string> OpenXRRuntimeFile { get; }

		public ConfigEntry<bool> EnableCustomControls { get; }

		public ConfigEntry<string> CustomControls { get; }

		public Config(ConfigFile file)
		{
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_0094: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Expected O, but got Unknown
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d1: Expected O, but got Unknown
			File = file;
			DisableVR = file.Bind<bool>("General", "DisableVR", false, "Disables the main functionality of this mod, can be used if you want to play without VR while keeping the mod installed.");
			DisableRagdollCamera = file.Bind<bool>("General", "DisableRagdollCamera", false, "Disable if coward");
			TurnProvider = file.Bind<TurnProviderOption>("Input", "TurnProvider", TurnProviderOption.Smooth, new ConfigDescription("Specify which turning provider your player uses, if any.", (AcceptableValueBase)(object)new AcceptableValueEnum<TurnProviderOption>(), Array.Empty<object>()));
			SmoothTurnSpeedModifier = file.Bind<float>("Input", "SmoothTurnSpeedModifier", 1f, new ConfigDescription("A multiplier that is added to the smooth turning speed. Requires turn provider to be set to smooth.", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0.25f, 5f), Array.Empty<object>()));
			SnapTurnSize = file.Bind<int>("Input", "SnapTurnSize", 45, new ConfigDescription("The amount of rotation that is applied when performing a snap turn. Requires turn provider to be set to snap.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(10, 180), Array.Empty<object>()));
			ToggleSprint = file.Bind<bool>("Input", "ToggleSprint", false, "Whether the sprint button should toggle sprint instead of having to hold it down.");
			InteractToZoom = file.Bind<bool>("Input", "InteractToZoom", false, "Require holding the interact button to zoom the camera. Removes the need to hold interact to swap items.");
			FirstTimeLaunch = file.Bind<bool>("Internal", "FirstTimeLaunch", true, "Keeps track if the game was launched in VR before. For internal use only.");
			OpenXRRuntimeFile = file.Bind<string>("Internal", "OpenXRRuntimeFile", "", "Overrides the OpenXR plugin to use a specific json file. For internal use only.");
			EnableCustomControls = file.Bind<bool>("Internal", "EnableCustomControls", false, "Whether or not to use a customized control schema");
			CustomControls = file.Bind<string>("Internal", "CustomControls", "", "The custom control schema to use");
			base..ctor();
		}
	}
	internal class AcceptableValueEnum<T> : AcceptableValueBase where T : notnull, Enum
	{
		private readonly string[] names = Enum.GetNames(typeof(T));

		public AcceptableValueEnum()
			: base(typeof(T))
		{
		}

		public override object Clamp(object value)
		{
			return value;
		}

		public override bool IsValid(object value)
		{
			return true;
		}

		public override string ToDescriptionString()
		{
			return "# Acceptable values: " + string.Join(", ", names);
		}
	}
	[CWVRPatch(CWVRPatchTarget.VROnly, null)]
	[HarmonyPatch]
	internal static class VREntrypoint
	{
		[HarmonyPatch(typeof(GameAPI), "Awake")]
		[HarmonyPostfix]
		private static void OnGameEntered(GameAPI __instance)
		{
			if (!(((Object)__instance).name != "MainMenuGame"))
			{
				((Component)__instance).gameObject.AddComponent<MainMenu>();
			}
		}
	}
	[CWVRPatch(CWVRPatchTarget.Universal, null)]
	[HarmonyPatch]
	internal static class UniversalEntrypoint
	{
		[HarmonyPatch(typeof(GameAPI), "Awake")]
		[HarmonyPostfix]
		private static void OnGameEntered(GameAPI __instance)
		{
			if (((Object)__instance).name == "MainMenuGame")
			{
				GameObject gameObject = ((Component)Object.FindObjectOfType<MainMenuSettingsPage>(true)).gameObject;
				RemapHandler remapHandler = gameObject.AddComponent<RemapHandler>();
				gameObject.AddComponent<SettingsMenu>().remapHandler = remapHandler;
			}
			else
			{
				((MonoBehaviour)__instance).StartCoroutine(Start());
			}
		}

		private static IEnumerator Start()
		{
			yield return (object)new WaitUntil((Func<bool>)(() => Player.localPlayer != null));
			Scene activeScene = SceneManager.GetActiveScene();
			if (!(((Scene)(ref activeScene)).name == "MainMenuGame"))
			{
				new GameObject("CWVR Session Manager").AddComponent<VRSession>();
			}
		}
	}
	public class Logger
	{
		private static ManualLogSource logSource;

		public static void SetSource(ManualLogSource source)
		{
			logSource = source;
		}

		public static void Log(object message)
		{
			logSource.LogInfo(message);
		}

		public static void LogInfo(object message)
		{
			logSource.LogInfo(message);
		}

		public static void LogWarning(object message)
		{
			logSource.LogWarning(message);
		}

		public static void LogError(object message)
		{
			logSource.LogError(message);
		}

		public static void LogDebug(object message)
		{
			logSource.LogDebug(message);
		}
	}
	internal static class Native
	{
		public static readonly IntPtr HKEY_LOCAL_MACHINE = new IntPtr(2147483650L);

		[DllImport("Advapi32.dll", CharSet = CharSet.Ansi, EntryPoint = "RegOpenKeyExA")]
		public static extern int RegOpenKeyEx(IntPtr hKey, [In] string lpSubKey, int ulOptions, int samDesired, out IntPtr phkResult);

		[DllImport("advapi32.dll", CharSet = CharSet.Ansi)]
		public static extern int RegQueryValueEx(IntPtr hKey, string lpValueName, int lpReserved, out uint lpType, StringBuilder lpData, ref uint lpcbData);

		[DllImport("advapi32.dll", CharSet = CharSet.Ansi)]
		public static extern int RegQueryInfoKey(IntPtr hKey, StringBuilder lpClass, IntPtr lpcbClass, IntPtr lpReserved, out uint lpcSubKeys, out uint lpcbMaxSubKeyLen, out uint lpcbMaxClassLen, out uint lpcValues, out uint lpcbMaxValueNameLen, out uint lpcbMaxValueLen, IntPtr lpSecurityDescriptor, IntPtr lpftLastWriteTime);

		[DllImport("advapi32.dll", CharSet = CharSet.Ansi, EntryPoint = "RegEnumValueA")]
		public static extern int RegEnumValue(IntPtr hKey, uint dwIndex, StringBuilder lpValueName, ref uint lpcchValueName, IntPtr lpReserved, IntPtr lpType, IntPtr lpData, IntPtr lpcbData);

		[DllImport("advapi32.dll")]
		public static extern int RegCloseKey(IntPtr hKey);
	}
	internal static class OpenXR
	{
		public class OpenXRReport
		{
			public string RuntimeName { get; }

			public string RuntimeVersion { get; }

			public string Error { get; }

			public OpenXRReport(string runtimeName, string runtimeVersion, string error)
			{
				RuntimeName = runtimeName;
				RuntimeVersion = runtimeVersion;
				Error = error;
				base..ctor();
			}
		}

		[DataContract]
		private struct OpenXRRuntime
		{
			[DataMember(Name = "runtime")]
			public RuntimeInfo Runtime { get; set; }
		}

		[DataContract]
		private struct RuntimeInfo
		{
			[DataMember(Name = "name")]
			public string Name { get; set; }
		}

		[DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_GenerateReport")]
		private static extern IntPtr GenerateReport();

		[DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_ReleaseReport")]
		private static extern void ReleaseReport(IntPtr report);

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeName")]
		private static extern bool GetRuntimeName(out IntPtr runtimeNamePtr);

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeVersion")]
		public static extern bool GetRuntimeVersion(out ushort major, out ushort minor, out ushort patch);

		public static string GenerateTextReport()
		{
			IntPtr intPtr = GenerateReport();
			if (intPtr == IntPtr.Zero)
			{
				return "";
			}
			string result = Marshal.PtrToStringAnsi(intPtr);
			ReleaseReport(intPtr);
			return result;
		}

		public static bool GetDiagnosticReport(out OpenXRReport report)
		{
			report = null;
			Regex regex = new Regex("^==== ([A-z0-9-_ ]+) ====$", RegexOptions.Multiline);
			Regex regex2 = new Regex("^\\[FAILURE\\] [A-z]+: ([A-Z_]+) \\(\\d+x\\)$");
			string input = GenerateTextReport();
			string[] array = (from v in regex.Split(input).Skip(1)
				select v.Trim()).ToArray();
			Dictionary<string, string> dictionary = new Dictionary<string, string>();
			for (int i = 0; i < array.Length; i += 2)
			{
				dictionary.Add(array[i], array[i + 1]);
			}
			if (!dictionary.TryGetValue("OpenXR Runtime Info", out var value))
			{
				return false;
			}
			string[] source = value.Split('\n');
			string text = source.FirstOrDefault((string line) => line.StartsWith("Runtime Name: "));
			string text2 = source.FirstOrDefault((string line) => line.StartsWith("Runtime Version: "));
			if (text == null || text2 == null)
			{
				text = "<Missing>";
				text2 = "<Missing>";
			}
			else
			{
				text = text.Split(": ")[1];
				text2 = text2.Split(": ")[1];
			}
			if (!dictionary.TryGetValue("Last 20 non-XR_SUCCESS returns", out value))
			{
				return false;
			}
			Match match = regex2.Match(value.Split('\n')[0].Trim());
			if (match.Groups.Count == 0)
			{
				return false;
			}
			string value2 = match.Groups[1].Value;
			report = new OpenXRReport(text, text2, value2);
			return true;
		}

		public static Dictionary<string, string> DetectOpenXRRuntimes(out string @default)
		{
			Dictionary<string, string> dictionary = new Dictionary<string, string>();
			@default = null;
			IntPtr phkResult = IntPtr.Zero;
			uint lpcbData = 0u;
			try
			{
				if (Native.RegOpenKeyEx(Native.HKEY_LOCAL_MACHINE, "SOFTWARE\\Khronos\\OpenXR\\1", 0, 131097, out phkResult) != 0)
				{
					throw new Exception("Failed to open registry key HKLM\\SOFTWARE\\Khronos\\OpenXR\\1");
				}
				if (Native.RegQueryValueEx(phkResult, "ActiveRuntime", 0, out var lpType, null, ref lpcbData) != 0)
				{
					throw new Exception("Failed to query ActiveRuntime value");
				}
				StringBuilder stringBuilder = new StringBuilder((int)lpcbData);
				if (Native.RegQueryValueEx(phkResult, "ActiveRuntime", 0, out lpType, stringBuilder, ref lpcbData) != 0)
				{
					throw new Exception("Failed to query ActiveRuntime value");
				}
				string path = stringBuilder.ToString();
				@default = JSON.Deserialize<OpenXRRuntime>(File.ReadAllText(path)).Runtime.Name;
				if (Native.RegOpenKeyEx(phkResult, "AvailableRuntimes", 0, 131097, out phkResult) != 0)
				{
					throw new Exception("Failed to open AvailableRuntimes registry key");
				}
				if (Native.RegQueryInfoKey(phkResult, null, IntPtr.Zero, IntPtr.Zero, out lpType, out var _, out var _, out var lpcValues, out var lpcbMaxValueNameLen, out var _, IntPtr.Zero, IntPtr.Zero) != 0)
				{
					throw new Exception("Failed to query AvailableRuntimes registry key");
				}
				List<string> list = new List<string>();
				for (uint num = 0u; num < lpcValues; num++)
				{
					try
					{
						StringBuilder stringBuilder2 = new StringBuilder((int)(lpcbMaxValueNameLen + 1));
						uint lpcchValueName = lpcbMaxValueNameLen + 1;
						if (Native.RegEnumValue(phkResult, num, stringBuilder2, ref lpcchValueName, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero) == 0)
						{
							list.Add(stringBuilder2.ToString());
						}
					}
					catch
					{
					}
				}
				foreach (string item in list)
				{
					int num2 = 0;
					string name = JSON.Deserialize<OpenXRRuntime>(File.ReadAllText(item)).Runtime.Name;
					string key = name;
					while (dictionary.ContainsKey(key))
					{
						num2++;
						key = $"{name} ({num2})";
					}
					dictionary.Add(name, item);
				}
				return dictionary;
			}
			catch (Exception ex)
			{
				Logger.LogWarning("Failed to query runtimes: " + ex.Message);
				return null;
			}
			finally
			{
				if (phkResult != IntPtr.Zero)
				{
					Native.RegCloseKey(phkResult);
				}
			}
		}

		public static bool GetRuntimeName(out string name)
		{
			name = null;
			if (!GetRuntimeName(out IntPtr runtimeNamePtr))
			{
				return false;
			}
			if (runtimeNamePtr == IntPtr.Zero)
			{
				return false;
			}
			name = Marshal.PtrToStringAnsi(runtimeNamePtr);
			return true;
		}
	}
	[ContentWarningPlugin("io.daxcess.cwvr", "1.0.4", true)]
	[BepInPlugin("io.daxcess.cwvr", "CWVR", "1.0.4")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		private const string PLUGIN_GUID = "io.daxcess.cwvr";

		private const string PLUGIN_NAME = "CWVR";

		private const string PLUGIN_VERSION = "1.0.4";

		private const string BANNER = "                             ,--.,--.                         \n ,-----.,--.   ,--.         /  //  /     ,--.   ,--.,------.  \n'  .--./|  |   |  |        /  //  /       \\  `.'  / |  .--. ' \n|  |    |  |.'.|  |       /  //  /         \\     /  |  '--'.' \n'  '--'\\|   ,'.   |      /  //  /           \\   /   |  |\\  \\  \n `-----''--'   '--'     /  //  /             `-'    `--' '--' \n                       `--'`--'                               \n\n             ___________________________ \n            < Another VR mod by DaXcess >\n             --------------------------- \n                    \\   ^__^\n                     \\  (oo)\\_______\n                        (__)\\       )\\/\\\n                            ||----w |\n                            ||     ||\n";

		public static Config Config { get; private set; }

		public static Compat Compatibility { get; private set; }

		public static Flags Flags { get; private set; }

		private void Awake()
		{
			CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;
			Logger.SetSource(((BaseUnityPlugin)this).Logger);
			Config = new Config(((BaseUnityPlugin)this).Config);
			Dictionary<string, PluginInfo>.ValueCollection values = Chainloader.PluginInfos.Values;
			int num = 0;
			PluginInfo[] array = (PluginInfo[])(object)new PluginInfo[values.Count];
			foreach (PluginInfo item in values)
			{
				array[num] = item;
				num++;
			}
			Compatibility = new Compat(new <>z__ReadOnlyArray<PluginInfo>(array));
			string[] array2 = "                             ,--.,--.                         \n ,-----.,--.   ,--.         /  //  /     ,--.   ,--.,------.  \n'  .--./|  |   |  |        /  //  /       \\  `.'  / |  .--. ' \n|  |    |  |.'.|  |       /  //  /         \\     /  |  '--'.' \n'  '--'\\|   ,'.   |      /  //  /           \\   /   |  |\\  \\  \n `-----''--'   '--'     /  //  /             `-'    `--' '--' \n                       `--'`--'                               \n\n             ___________________________ \n            < Another VR mod by DaXcess >\n             --------------------------- \n                    \\   ^__^\n                     \\  (oo)\\_______\n                        (__)\\       )\\/\\\n                            ||----w |\n                            ||     ||\n".Split('\n');
			foreach (string text in array2)
			{
				((BaseUnityPlugin)this).Logger.LogInfo((object)("   " + text));
			}
			bool flag = Config.DisableVR.Value || Environment.GetCommandLineArgs().Contains<string>("--disable-vr", StringComparer.InvariantCultureIgnoreCase);
			if (flag)
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"VR has been disabled by config or the `--disable-vr` command line flag");
			}
			if (!LoadEarlyRuntimeDependencies())
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Disabling mod because required runtime dependencies could not be loaded!");
				return;
			}
			if (!AssetManager.LoadAssets())
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Disabling mod because assets could not be loaded!");
				return;
			}
			HarmonyPatcher.PatchUniversal();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Inserted Universal patches using Harmony");
			SceneManager.sceneLoaded += delegate(Scene scene, LoadSceneMode mode)
			{
				((BaseUnityPlugin)this).Logger.LogDebug((object)("Loaded scene: " + ((Scene)(ref scene)).name));
			};
			if (!flag && InitializeVR())
			{
				Flags |= Flags.VR;
			}
		}

		private bool LoadEarlyRuntimeDependencies()
		{
			try
			{
				string[] files = Directory.GetFiles(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) ?? throw new Exception("Failed to get assembly location"), "RuntimeDeps"), "*.dll");
				foreach (string path in files)
				{
					string fileName = Path.GetFileName(path);
					if ((!(fileName == "UnityOpenXR.dll") && !(fileName == "openxr_loader.dll")) || 1 == 0)
					{
						((BaseUnityPlugin)this).Logger.LogDebug((object)("Early loading " + fileName));
						try
						{
							Assembly.LoadFile(path);
						}
						catch (Exception ex)
						{
							((BaseUnityPlugin)this).Logger.LogWarning((object)("Failed to early load " + fileName + ": " + ex.Message));
						}
					}
				}
			}
			catch (Exception ex2)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)("Unexpected error occured while loading early runtime dependencies (incorrect folder structure?): " + ex2.Message));
				return false;
			}
			return true;
		}

		private bool InitializeVR()
		{
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Loading VR...");
			SetupRuntimeAssets(out var mustRestart);
			if (mustRestart)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"You must restart the game to allow VR to function properly");
				Flags |= Flags.RestartRequired;
				return false;
			}
			if (!string.IsNullOrEmpty(Config.OpenXRRuntimeFile.Value))
			{
				Environment.SetEnvironmentVariable("XR_RUNTIME_JSON", Config.OpenXRRuntimeFile.Value);
			}
			EnableControllerProfiles();
			InitializeXRRuntime();
			if (!StartDisplay())
			{
				((BaseUnityPlugin)this).Logger.LogError((object)"Failed to start in VR Mode! Only Non-VR features are available!");
				if (OpenXR.GetDiagnosticReport(out var report))
				{
					((BaseUnityPlugin)this).Logger.LogWarning((object)("Runtime Name:    " + report.RuntimeName));
					((BaseUnityPlugin)this).Logger.LogWarning((object)("Runtime Version: " + report.RuntimeVersion));
					((BaseUnityPlugin)this).Logger.LogWarning((object)("Last Error:      " + report.Error));
					((BaseUnityPlugin)this).Logger.LogWarning((object)"");
					string error = report.Error;
					if (!(error == "XR_ERROR_RUNTIME_UNAVAILABLE"))
					{
						if (error == "XR_ERROR_FORM_FACTOR_UNAVAILABLE")
						{
							((BaseUnityPlugin)this).Logger.LogWarning((object)"This generally means that your headset is not connected, or that your headset is connected to a different runtime. Please make sure your headset is active and connected, and that you are using the correct OpenXR runtime.");
						}
						else
						{
							((BaseUnityPlugin)this).Logger.LogWarning((object)"Unknown reason for OpenXR failure!");
							((BaseUnityPlugin)this).Logger.LogWarning((object)("\n" + OpenXR.GenerateTextReport()));
						}
					}
					else
					{
						((BaseUnityPlugin)this).Logger.LogWarning((object)"It appears that no OpenXR runtime is currently active. Please go to the dedicated application for your VR headset and make sure that it is running, and set as default OpenXR runtime.");
					}
				}
				else
				{
					((BaseUnityPlugin)this).Logger.LogError((object)"Failed to generate OpenXR diagnostics report!");
				}
				string defaultRuntime;
				Dictionary<string, string> dictionary = OpenXR.DetectOpenXRRuntimes(out defaultRuntime);
				if (dictionary == null)
				{
					return false;
				}
				((BaseUnityPlugin)this).Logger.LogWarning((object)"List of registered OpenXR runtimes on this device:");
				((BaseUnityPlugin)this).Logger.LogWarning((object)((defaultRuntime != null) ? (">>> " + defaultRuntime) : "No default runtime detected!"));
				foreach (string item in dictionary.Keys.Where((string rt) => rt != defaultRuntime))
				{
					((BaseUnityPlugin)this).Logger.LogWarning((object)("    " + item));
				}
				return false;
			}
			if (OpenXR.GetRuntimeName(out var name) && OpenXR.GetRuntimeVersion(out var major, out var minor, out var patch))
			{
				((BaseUnityPlugin)this).Logger.LogInfo((object)$"OpenXR Runtime being used: {name} ({major}.{minor}.{patch})");
			}
			else
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"Could not get OpenXR Runtime info?");
			}
			HarmonyPatcher.PatchVR();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Inserted VR patches using Harmony");
			return true;
		}

		private void EnableControllerProfiles()
		{
			ValveIndexControllerProfile val = ScriptableObject.CreateInstance<ValveIndexControllerProfile>();
			HPReverbG2ControllerProfile val2 = ScriptableObject.CreateInstance<HPReverbG2ControllerProfile>();
			HTCViveControllerProfile val3 = ScriptableObject.CreateInstance<HTCViveControllerProfile>();
			MicrosoftMotionControllerProfile val4 = ScriptableObject.CreateInstance<MicrosoftMotionControllerProfile>();
			KHRSimpleControllerProfile val5 = ScriptableObject.CreateInstance<KHRSimpleControllerProfile>();
			MetaQuestTouchProControllerProfile val6 = ScriptableObject.CreateInstance<MetaQuestTouchProControllerProfile>();
			OculusTouchControllerProfile val7 = ScriptableObject.CreateInstance<OculusTouchControllerProfile>();
			((OpenXRFeature)val).enabled = true;
			((OpenXRFeature)val2).enabled = true;
			((OpenXRFeature)val3).enabled = true;
			((OpenXRFeature)val4).enabled = true;
			((OpenXRFeature)val5).enabled = true;
			((OpenXRFeature)val6).enabled = true;
			((OpenXRFeature)val7).enabled = true;
			OpenXRSettings.Instance.features = (OpenXRFeature[])(object)new OpenXRFeature[7]
			{
				(OpenXRFeature)val,
				(OpenXRFeature)val2,
				(OpenXRFeature)val3,
				(OpenXRFeature)val4,
				(OpenXRFeature)val5,
				(OpenXRFeature)val6,
				(OpenXRFeature)val7
			};
			((BaseUnityPlugin)this).Logger.LogDebug((object)"Enabled XR Controller Profiles");
		}

		private void InitializeXRRuntime()
		{
			XRGeneralSettings obj = ScriptableObject.CreateInstance<XRGeneralSettings>();
			XRManagerSettings val = ScriptableObject.CreateInstance<XRManagerSettings>();
			OpenXRLoader item = ScriptableObject.CreateInstance<OpenXRLoader>();
			obj.Manager = val;
			((List<XRLoader>)val.activeLoaders).Clear();
			((List<XRLoader>)val.activeLoaders).Add((XRLoader)(object)item);
			OpenXRSettings.Instance.renderMode = (RenderMode)0;
			OpenXRSettings.Instance.depthSubmissionMode = (DepthSubmissionMode)0;
			obj.InitXRSDK();
			obj.Start();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Initialized OpenXR Runtime");
		}

		private bool StartDisplay()
		{
			List<XRDisplaySubsystem> list = new List<XRDisplaySubsystem>();
			SubsystemManager.GetInstances<XRDisplaySubsystem>(list);
			if (list.Count < 1)
			{
				return false;
			}
			((IntegratedSubsystem)list[0]).Start();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Started XR Display subsystem, welcome to VR!");
			return true;
		}

		private bool CopyResourceFile(string sourceFile, string destinationFile)
		{
			if (!File.Exists(sourceFile))
			{
				return false;
			}
			if (File.Exists(destinationFile))
			{
				byte[] first = Utils.ComputeHash(File.ReadAllBytes(sourceFile));
				byte[] second = Utils.ComputeHash(File.ReadAllBytes(destinationFile));
				if (first.SequenceEqual(second))
				{
					return true;
				}
			}
			File.Copy(sourceFile, destinationFile, overwrite: true);
			return true;
		}

		private void SetupRuntimeAssets(out bool mustRestart)
		{
			mustRestart = false;
			string path = Path.Combine(Paths.GameRootPath, "Content Warning_Data");
			string text = Path.Combine(path, "UnitySubsystems");
			if (!Directory.Exists(text))
			{
				Directory.CreateDirectory(text);
			}
			string text2 = Path.Combine(text, "UnityOpenXR");
			if (!Directory.Exists(text2))
			{
				Directory.CreateDirectory(text2);
			}
			string path2 = Path.Combine(text2, "UnitySubsystemsManifest.json");
			if (!File.Exists(path2))
			{
				File.WriteAllText(path2, "{\n        \"name\": \"OpenXR XR Plugin\",\n        \"version\": \"1.8.2\",\n        \"libraryName\": \"UnityOpenXR\",\n        \"displays\": [\n                {\n                        \"id\": \"OpenXR Display\"\n                }\n        ],\n        \"inputs\": [\n                {\n                        \"id\": \"OpenXR Input\"\n                }\n        ]\n}");
				mustRestart = true;
			}
			string path3 = Path.Combine(path, "Plugins");
			string destinationFile = Path.Combine(path3, "UnityOpenXR.dll");
			string destinationFile2 = Path.Combine(path3, "openxr_loader.dll");
			string? directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
			string sourceFile = Path.Combine(directoryName, "RuntimeDeps/UnityOpenXR.dll");
			string sourceFile2 = Path.Combine(directoryName, "RuntimeDeps/openxr_loader.dll");
			if (!CopyResourceFile(sourceFile, destinationFile))
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"Could not find UnityOpenXR.dll to copy to the game, VR might not work!");
			}
			if (!CopyResourceFile(sourceFile2, destinationFile2))
			{
				((BaseUnityPlugin)this).Logger.LogWarning((object)"Could not find openxr_loader.dll to copy to the game, VR might not work!");
			}
		}
	}
	[Flags]
	public enum Flags
	{
		VR = 1,
		RestartRequired = 2
	}
	internal static class Utils
	{
		public static byte[] ComputeHash(byte[] input)
		{
			using SHA256 sHA = SHA256.Create();
			return sHA.ComputeHash(input);
		}

		public static Pose GetPoseData(this TrackedPoseDriver driver)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			Pose result = default(Pose);
			driver.GetPoseData(driver.m_Device, driver.m_PoseSource, ref result);
			return result;
		}

		public static void SetLayerRecursive(this GameObject go, int layer)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			go.layer = layer;
			foreach (Transform item in go.transform)
			{
				Transform val = item;
				((Component)val).gameObject.layer = layer;
				if (((Component)val).GetComponentInChildren<Transform>() != null)
				{
					((Component)val).gameObject.SetLayerRecursive(layer);
				}
			}
		}

		public static string PascalToLongString(string text)
		{
			StringBuilder stringBuilder = new StringBuilder(text[0].ToString());
			if (stringBuilder.Length <= 0)
			{
				return stringBuilder.ToString();
			}
			for (int i = 1; i < text.Length; i++)
			{
				char c = text[i - 1];
				char c2 = ((i + 1 < text.Length) ? text[i + 1] : '\0');
				bool flag = char.IsLower(c2);
				bool flag2 = char.IsUpper(c2);
				bool flag3 = char.IsUpper(text[i]);
				bool flag4 = char.IsLower(c);
				bool flag5 = char.IsUpper(c);
				if (!string.IsNullOrWhiteSpace(c.ToString()) && ((flag5 && flag3 && flag) || (flag4 && flag3 && flag) || (flag4 && flag3 && flag2)))
				{
					stringBuilder.Append(' ');
					stringBuilder.Append(text[i]);
				}
				else
				{
					stringBuilder.Append(text[i]);
				}
			}
			return stringBuilder.ToString();
		}

		public static bool InVR(this Player player)
		{
			if (player.IsLocal)
			{
				return VRSession.InVR;
			}
			if (Object.op_Implicit((Object)(object)VRSession.Instance))
			{
				return VRSession.Instance.NetworkManager.InVR(player);
			}
			return false;
		}

		public static InputDevice GetDevice(this InputSystem.XRController controller)
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			return (InputDevice)(controller switch
			{
				InputSystem.XRController.Left => InputDevices.GetDeviceAtXRNode((XRNode)4), 
				InputSystem.XRController.Right => InputDevices.GetDeviceAtXRNode((XRNode)5), 
				_ => throw new ArgumentOutOfRangeException("controller", controller, null), 
			});
		}
	}
	internal static class JSON
	{
		public static T Deserialize<T>(string json)
		{
			using MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(json));
			return (T)new DataContractJsonSerializer(typeof(T)).ReadObject(stream);
		}
	}
}
namespace CWVR.UI
{
	public class AutoKeyboard : MonoBehaviour
	{
		private readonly Dictionary<TMP_InputField, UnityAction<string>> inputFields = new Dictionary<TMP_InputField, UnityAction<string>>();

		private Coroutine populateCoroutine;

		public NonNativeKeyboard keyboard;

		private void OnEnable()
		{
			populateCoroutine = ((MonoBehaviour)this).StartCoroutine(PopulateInputsRoutine());
		}

		private void OnDisable()
		{
			((MonoBehaviour)this).StopCoroutine(populateCoroutine);
		}

		private IEnumerator PopulateInputsRoutine()
		{
			while (true)
			{
				RemoveDestroyed();
				PopulateInputs();
				yield return (object)new WaitForSeconds(0.5f);
			}
		}

		private void RemoveDestroyed()
		{
			foreach (KeyValuePair<TMP_InputField, UnityAction<string>> item in inputFields.Where((KeyValuePair<TMP_InputField, UnityAction<string>> kvp) => (Object)(object)kvp.Key == (Object)null).ToList())
			{
				inputFields.Remove(item.Key);
			}
		}

		private void PopulateInputs()
		{
			TMP_InputField[] array = Object.FindObjectsOfType<TMP_InputField>(true);
			foreach (TMP_InputField input in array)
			{
				if (!inputFields.ContainsKey(input))
				{
					UnityAction<string> val = delegate
					{
						keyboard.InputField = input;
						keyboard.PresentKeyboard();
					};
					inputFields.Add(input, val);
					((UnityEvent<string>)(object)input.onSelect).AddListener(val);
				}
			}
		}

		private void OnDestroy()
		{
			foreach (KeyValuePair<TMP_InputField, UnityAction<string>> inputField in inputFields)
			{
				((UnityEvent<string>)(object)inputField.Key.onSelect).RemoveListener(inputField.Value);
			}
		}
	}
	public class Customizer : MonoBehaviour
	{
		private NonNativeKeyboard keyboard;

		private PlayerCustomizer customizer;

		private XRRayInteractor leftHandInteractor;

		private XRRayInteractor rightHandInteractor;

		private XRInteractorLineVisual leftHandVisual;

		private XRInteractorLineVisual rightHandVisual;

		private bool leftTerminal;

		private void Awake()
		{
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			customizer = ((Component)this).GetComponent<PlayerCustomizer>();
			((Component)((Component)this).GetComponentInChildren<Canvas>()).gameObject.AddComponent<TrackedDeviceGraphicRaycaster>();
			(leftHandInteractor, leftHandVisual) = CreateInteractorController((XRNode)4);
			(rightHandInteractor, rightHandVisual) = CreateInteractorController((XRNode)5);
			((Behaviour)leftHandInteractor).enabled = false;
			((Behaviour)leftHandVisual).enabled = false;
			((Behaviour)rightHandInteractor).enabled = false;
			((Behaviour)rightHandVisual).enabled = false;
			keyboard = Object.Instantiate<GameObject>(AssetManager.Keyboard, ((Component)this).transform).GetComponent<NonNativeKeyboard>();
			((Component)keyboard).transform.localPosition = new Vector3(0f, -0.85f, 0.25f);
			((Component)keyboard).transform.localEulerAngles = new Vector3(12f, 180f, 0f);
			((Component)keyboard).transform.localScale = Vector3.one * 0.0015f;
			keyboard.OnKeyboardValueKeyPressed += OnKeyPressed;
			keyboard.OnKeyboardFunctionKeyPressed += OnFnKeyPressed;
			keyboard.OnClosed += KeyboardOnOnClosed;
		}

		private void KeyboardOnOnClosed(object sender, EventArgs e)
		{
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			if (!leftTerminal)
			{
				customizer.backSound.Play(((Component)this).transform.position, false, 1f, (Transform)null);
				customizer.view_g.RPC("RPCA_PlayerLeftTerminal", (RpcTarget)0, new object[1] { false });
			}
		}

		private void OnFnKeyPressed(KeyboardKeyFunc obj)
		{
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			switch (obj.ButtonFunction)
			{
			case KeyboardKeyFunc.Function.Backspace:
				customizer.backSound.Play(((Component)this).transform.position, false, 1f, (Transform)null);
				if (((TMP_Text)customizer.faceText).text.Length != 0)
				{
					PhotonView view_g = customizer.view_g;
					object[] array = new object[1];
					string text = ((TMP_Text)customizer.faceText).text;
					array[0] = text.Substring(0, text.Length - 1);
					view_g.RPC("RCP_SetFaceText", (RpcTarget)0, array);
				}
				break;
			case KeyboardKeyFunc.Function.Enter:
				customizer.view_g.RPC("RPCA_PlayerLeftTerminal", (RpcTarget)0, new object[1] { true });
				customizer.applySound.Play(((Component)this).transform.position, false, 1f, (Transform)null);
				break;
			}
		}

		private void OnKeyPressed(KeyboardValueKey obj)
		{
			//IL_005d: Unknown result type (might be due to invalid IL or missing references)
			string text = ((keyboard.IsShifted && !string.IsNullOrEmpty(obj.ShiftValue)) ? obj.ShiftValue : obj.Value);
			if (text.Length >= 1 && ((TMP_Text)customizer.faceText).text.Length < 3)
			{
				customizer.typeSound.Play(((Component)this).transform.position, false, 1f, (Transform)null);
				customizer.view_g.RPC("RCP_SetFaceText", (RpcTarget)0, new object[1] { ((TMP_Text)customizer.faceText).text + text[0] });
			}
		}

		internal void OnEnter()
		{
			leftTerminal = false;
			((Behaviour)leftHandInteractor).enabled = true;
			((Behaviour)leftHandVisual).enabled = true;
			((Behaviour)rightHandInteractor).enabled = true;
			((Behaviour)rightHandVisual).enabled = true;
			keyboard.PresentKeyboard();
		}

		internal void OnLeave()
		{
			leftTerminal = true;
			((Behaviour)leftHandInteractor).enabled = false;
			((Behaviour)leftHandVisual).enabled = false;
			((Behaviour)rightHandInteractor).enabled = false;
			((Behaviour)rightHandVisual).enabled = false;
			keyboard.Close();
		}

		private static (XRRayInteractor, XRInteractorLineVisual) CreateInteractorController(XRNode node)
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Invalid comparison between Unknown and I4
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Invalid comparison between Unknown and I4
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d9: Expected O, but got Unknown
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_010b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_0149: Unknown result type (might be due to invalid IL or missing references)
			//IL_016d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_009a: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = new GameObject($"{node} Controller (Player Customizer)");
			val.transform.SetParent(((Component)VRSession.Instance.LocalPlayer.Rig).transform, false);
			XRController val2 = val.AddComponent<XRController>();
			XRRayInteractor val3 = val.AddComponent<XRRayInteractor>();
			XRInteractorLineVisual val4 = val.AddComponent<XRInteractorLineVisual>();
			LineRenderer component = val.GetComponent<LineRenderer>();
			val.AddComponent<SortingGroup>().sortingOrder = 5;
			Transform rayOriginTransform = val3.rayOriginTransform;
			Vector3 localEulerAngles;
			if ((int)node != 4)
			{
				if ((int)node != 5)
				{
					throw new ArgumentOutOfRangeException("node", node, null);
				}
				localEulerAngles = new Vector3(60f, 347f, 270f);
			}
			else
			{
				localEulerAngles = new Vector3(60f, 347f, 90f);
			}
			rayOriginTransform.localEulerAngles = localEulerAngles;
			val3.raycastMask = LayerMask.op_Implicit(32);
			val4.lineBendRatio = 1f;
			Gradient val5 = new Gradient();
			val5.mode = (GradientMode)0;
			val5.alphaKeys = (GradientAlphaKey[])(object)new GradientAlphaKey[2]
			{
				new GradientAlphaKey(0.1f, 0f),
				new GradientAlphaKey(0.1f, 1f)
			};
			val5.colorKeys = (GradientColorKey[])(object)new GradientColorKey[2]
			{
				new GradientColorKey(Color.white, 0f),
				new GradientColorKey(Color.white, 1f)
			};
			val4.invalidColorGradient = val5;
			((Behaviour)val4).enabled = true;
			((Renderer)component).material = AssetManager.WhiteMat;
			val2.controllerNode = node;
			return (val3, val4);
		}
	}
	[CWVRPatch(CWVRPatchTarget.VROnly, null)]
	[HarmonyPatch]
	internal static class PlayerCustomizerPatches
	{
		[HarmonyPatch(typeof(PlayerCustomizer), "RPCA_EnterTerminal")]
		[HarmonyPostfix]
		private static void OnEnterTerminal(PlayerCustomizer __instance)
		{
			if (__instance.playerInTerminal.refs.view.IsMine)
			{
				((Component)__instance).GetComponent<Customizer>().OnEnter();
			}
		}

		[HarmonyPatch(typeof(PlayerCustomizer), "RPCA_PlayerLeftTerminal")]
		[HarmonyPrefix]
		private static void OnLeaveTerminal(PlayerCustomizer __instance)
		{
			if (__instance.playerInTerminal.refs.view.IsMine)
			{
				((Component)__instance).GetComponent<Customizer>().OnLeave();
			}
		}
	}
	public class HUD : MonoBehaviour
	{
		private CurvedUISettings curvedUISettings;

		private Canvas modalCanvas;

		public Camera UICamera { get; private set; }

		public Canvas WorldInteractionCanvas { get; private set; }

		public Canvas LeftHandCanvas { get; private set; }

		public Canvas RightHandCanvas { get; private set; }

		public PauseMenu PauseMenu { get; private set; }

		private void Awake()
		{
			//IL_007b: 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_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_011c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0126: Unknown result type (might be due to invalid IL or missing references)
			//IL_0167: Unknown result type (might be due to invalid IL or missing references)
			//IL_017c: Unknown result type (might be due to invalid IL or missing references)
			//IL_018c: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0212: Unknown result type (might be due to invalid IL or missing references)
			//IL_0227: Unknown result type (might be due to invalid IL or missing references)
			//IL_0270: Unknown result type (might be due to invalid IL or missing references)
			//IL_027a: Expected O, but got Unknown
			//IL_02db: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0302: Unknown result type (might be due to invalid IL or missing references)
			//IL_0342: Unknown result type (might be due to invalid IL or missing references)
			//IL_034e: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0364: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c6: 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_0421: Unknown result type (might be due to invalid IL or missing references)
			//IL_042d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0437: Unknown result type (might be due to invalid IL or missing references)
			//IL_0477: 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_049e: Unknown result type (might be due to invalid IL or missing references)
			//IL_04a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_053f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0549: Unknown result type (might be due to invalid IL or missing references)
			//IL_0579: Unknown result type (might be due to invalid IL or missing references)
			//IL_0583: Unknown result type (might be due to invalid IL or missing references)
			Transform transform = Player.localPlayer.refs.rigRoot.transform;
			UserInterface val = Object.FindObjectOfType<UserInterface>();
			Transform val2 = transform.Find("Rig/Armature/Hip/Torso/Arm_L/Elbow_L/Hand_L");
			Transform val3 = transform.Find("Rig/Armature/Hip/Torso/Arm_R/Elbow_R/Hand_R");
			Transform val4 = ((Component)val).transform.Find("Pivot/Others");
			string text = JsonUtility.ToJson((object)((Component)val).GetComponent<CurvedUISettings>());
			curvedUISettings = ((Component)this).gameObject.AddComponent<CurvedUISettings>();
			JsonUtility.FromJsonOverwrite(text, (object)curvedUISettings);
			curvedUISettings.Angle = 0;
			WorldInteractionCanvas = new GameObject("World Interaction Canvas").AddComponent<Canvas>();
			WorldInteractionCanvas.worldCamera = VRSession.Instance.MainCamera;
			WorldInteractionCanvas.renderMode = (RenderMode)2;
			((Component)WorldInteractionCanvas).transform.localScale = Vector3.one * 0.0066f;
			((Component)WorldInteractionCanvas).gameObject.layer = 6;
			LeftHandCanvas = new GameObject("Left Hand VR Canvas").AddComponent<Canvas>();
			LeftHandCanvas.worldCamera = VRSession.Instance.MainCamera;
			LeftHandCanvas.renderMode = (RenderMode)2;
			((Component)LeftHandCanvas).transform.localScale = Vector3.one * 0.001f;
			((Component)LeftHandCanvas).gameObject.layer = LayerMask.NameToLayer("UI");
			((Component)LeftHandCanvas).transform.SetParent(val2, false);
			((Component)LeftHandCanvas).transform.localPosition = Vector3.zero;
			((Component)LeftHandCanvas).transform.localEulerAngles = Vector3.zero;
			RightHandCanvas = new GameObject("Right Hand VR Canvas").AddComponent<Canvas>();
			RightHandCanvas.worldCamera = VRSession.Instance.MainCamera;
			RightHandCanvas.renderMode = (RenderMode)2;
			((Component)RightHandCanvas).transform.localScale = Vector3.one * 0.001f;
			((Component)RightHandCanvas).gameObject.layer = LayerMask.NameToLayer("UI");
			((Component)RightHandCanvas).transform.SetParent(val3, false);
			((Component)RightHandCanvas).transform.localPosition = Vector3.zero;
			((Component)RightHandCanvas).transform.localEulerAngles = Vector3.zero;
			Transform val5 = val4.Find("InteractionUI");
			((Component)val5).transform.SetParent(((Component)WorldInteractionCanvas).transform, false);
			TextMeshProUGUI[] componentsInChildren = ((Component)val5).GetComponentsInChildren<TextMeshProUGUI>();
			foreach (TextMeshProUGUI obj in componentsInChildren)
			{
				((TMP_Text)obj).fontSharedMaterial = new Material(((TMP_Text)obj).fontSharedMaterial);
				((TMP_Text)obj).isOverlay = true;
			}
			((Component)val5.Find("KEY")).gameObject.SetActive(false);
			Transform val6 = val4.Find("Stamina");
			((Component)val6).transform.SetParent(((Component)LeftHandCanvas).transform, false);
			val6.localPosition = new Vector3(0f, 450f, -170f);
			val6.localEulerAngles = Vector3.zero;
			val6.localScale = new Vector3(1.75f, 2.5f, 1.75f);
			Transform val7 = val4.Find("O2");
			((Component)val7).transform.SetParent(((Component)LeftHandCanvas).transform, false);
			val7.localPosition = new Vector3(-55f, 610f, -170f);
			val7.localEulerAngles = Vector3.zero;
			val7.localScale = Vector3.one * 3.5f;
			Transform val8 = val4.Find("Health");
			((Component)val8).transform.SetParent(((Component)LeftHandCanvas).transform, false);
			val8.localPosition = new Vector3(0f, 520f, -170f);
			val8.localEulerAngles = Vector3.zero;
			val8.localScale = Vector3.one * 2.5f;
			Transform val9 = val4.Find("NextStep/List/GameObject");
			((Component)val9).transform.SetParent(((Component)RightHandCanvas).transform, false);
			val9.localPosition = new Vector3(250f, 710f, -215f);
			val9.localEulerAngles = new Vector3(0f, 0f, 270f);
			val9.localScale = Vector3.one * 2.5f;
			Transform val10 = val4.Find("Hotbar");
			((Component)val10).transform.SetParent(((Component)RightHandCanvas).transform, false);
			val10.localPosition = new Vector3(-100f, 800f, -200f);
			val10.localEulerAngles = new Vector3(0f, 0f, 270f);
			val10.localScale = Vector3.one * 2.5f;
			Transform val11 = val4.Find("HelmetMessage");
			Transform obj2 = val4.parent.Find("MoneyAdded");
			val11.localPosition = new Vector3(0f, 150f, -225f);
			obj2.localPosition = new Vector3(260f, -115f, -100f);
			modalCanvas = ((Component)RetrievableResourceSingleton<Modal>.Instance).GetComponent<Canvas>();
			modalCanvas.worldCamera = VRSession.Instance.MainCamera;
			modalCanvas.renderMode = (RenderMode)2;
			((Component)modalCanvas).transform.localScale = Vector3.one * 0.001f;
			((Component)modalCanvas).gameObject.SetLayerRecursive(6);
			((Component)modalCanvas).transform.Find("Image").localScale = Vector3.one * 10f;
			((Component)val4.parent.Find("Edge")).gameObject.SetActive(false);
			((Component)val4.Find("NextStep")).gameObject.SetActive(false);
			((Component)val4.Find("LINE")).gameObject.SetActive(false);
			((Component)val4.Find("LINE (1)")).gameObject.SetActive(false);
			((Component)val4.Find("EmoteUI")).gameObject.SetActive(false);
			PauseMenu = Singleton<EscapeMenu>.Instance.m_menu.gameObject.AddComponent<PauseMenu>();
			PlayerCustomizer obj3 = Object.FindObjectOfType<PlayerCustomizer>();
			if (obj3 != null)
			{
				((Component)obj3).gameObject.AddComponent<Customizer>();
			}
			ReplaceCurvedUISettings((Component)val5, (Component)val6, (Component)val7, (Component)val8, (Component)val9, (Component)val10);
			CreateUICamera();
		}

		private void LateUpdate()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b0: 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_00bb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			Transform transform = ((Component)VRSession.Instance.MainCamera).transform;
			((Component)modalCanvas).transform.position = ((Component)transform).transform.position + ((Component)transform).transform.forward * 1.5f;
			((Component)modalCanvas).transform.rotation = transform.rotation;
			if (Object.op_Implicit((Object)(object)Singleton<UserInterface>.Instance.interactionUI.m_currentInteractable))
			{
				((Component)WorldInteractionCanvas).transform.position = ((Component)Singleton<UserInterface>.Instance.interactionUI.m_currentInteractable).transform.position;
			}
			((Component)WorldInteractionCanvas).transform.rotation = Quaternion.LookRotation(((Component)WorldInteractionCanvas).transform.position - transform.position);
			Transform transform2 = ((Component)WorldInteractionCanvas).transform;
			transform2.position += ((Component)WorldInteractionCanvas).transform.forward * -0.2f;
		}

		private void CreateUICamera()
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			Camera mainCamera = VRSession.Instance.MainCamera;
			UICamera = new GameObject("VR UI Camera").AddComponent<Camera>();
			((Component)UICamera).transform.SetParent(((Component)mainCamera).transform, false);
			((Component)UICamera).transform.localPosition = Vector3.zero;
			((Component)UICamera).transform.localEulerAngles = Vector3.zero;
			UICamera.clearFlags = (CameraClearFlags)3;
			UICamera.depth = 10f;
			UICamera.cullingMask = 64;
			mainCamera.cullingMask &= -65;
			CameraExtensions.GetUniversalAdditionalCameraData(UICamera).renderType = (CameraRenderType)1;
			CameraExtensions.GetUniversalAdditionalCameraData(mainCamera).cameraStack.Add(UICamera);
		}

		private void ReplaceCurvedUISettings(params Component[] sources)
		{
			foreach (Component obj in sources)
			{
				CurvedUIVertexEffect component = obj.GetComponent<CurvedUIVertexEffect>();
				if (Object.op_Implicit((Object)(object)component))
				{
					component.mySettings = curvedUISettings;
				}
				CurvedUIVertexEffect[] componentsInChildren = obj.GetComponentsInChildren<CurvedUIVertexEffect>();
				for (int j = 0; j < componentsInChildren.Length; j++)
				{
					componentsInChildren[j].mySettings = curvedUISettings;
				}
			}
		}
	}
	public class MainMenu : MonoBehaviour
	{
		private Transform xrOrigin;

		private TrackedPoseDriver cameraTracker;

		private void Awake()
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_00db: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0127: Unknown result type (might be due to invalid IL or missing references)
			//IL_0131: Unknown result type (might be due to invalid IL or missing references)
			//IL_0136: Unknown result type (might be due to invalid IL or missing references)
			//IL_0137: Unknown result type (might be due to invalid IL or missing references)
			//IL_013e: 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_0141: Unknown result type (might be due to invalid IL or missing references)
			//IL_0148: Unknown result type (might be due to invalid IL or missing references)
			//IL_015b: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_018e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0193: Unknown result type (might be due to invalid IL or missing references)
			//IL_01bf: Unknown result type (might be due to invalid IL or missing references)
			//IL_01d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f6: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0216: Unknown result type (might be due to invalid IL or missing references)
			//IL_021b: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0223: Unknown result type (might be due to invalid IL or missing references)
			//IL_023a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0254: Unknown result type (might be due to invalid IL or missing references)
			//IL_026e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0288: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d9: Unknown result type (might be due to invalid IL or missing references)
			//IL_02f9: Unknown result type (might be due to invalid IL or missing references)
			//IL_030a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0314: Unknown result type (might be due to invalid IL or missing references)
			//IL_037a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0380: Expected O, but got Unknown
			//IL_03a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ac: Expected O, but got Unknown
			GameObject gameObject = ((Component)((Component)this).transform.Find("Main Camera")).gameObject;
			xrOrigin = new GameObject("XR Origin").transform;
			xrOrigin.position = gameObject.transform.position;
			xrOrigin.eulerAngles = new Vector3(0f, 180f, 0f);
			gameObject.transform.SetParent(xrOrigin, false);
			cameraTracker = gameObject.AddComponent<TrackedPoseDriver>();
			cameraTracker.deviceType = (DeviceType)0;
			cameraTracker.poseSource = (TrackedPose)2;
			cameraTracker.trackingType = (TrackingType)0;
			CreateInteractorController((XRNode)4);
			CreateInteractorController((XRNode)5);
			Canvas component = ((Component)Object.FindObjectOfType<IntroScreenAnimator>()).GetComponent<Canvas>();
			Canvas component2 = ((Component)MainMenuHandler.Instance.UIHandler).GetComponent<Canvas>();
			Canvas component3 = ((Component)RetrievableResourceSingleton<Modal>.Instance).GetComponent<Canvas>();
			RenderMode val = (RenderMode)2;
			component3.renderMode = (RenderMode)2;
			RenderMode renderMode = (component2.renderMode = val);
			component.renderMode = renderMode;
			Camera val3 = (component3.worldCamera = gameObject.GetComponent<Camera>());
			Camera worldCamera = (component2.worldCamera = val3);
			component.worldCamera = worldCamera;
			Transform transform = ((Component)component).transform;
			Transform transform2 = ((Component)component2).transform;
			Vector3 val6 = (((Component)component3).transform.localScale = Vector3.one * 0.0033f);
			Vector3 localScale = (transform2.localScale = val6);
			transform.localScale = localScale;
			((Component)component).transform.position = xrOrigin.position + ((Component)xrOrigin).transform.forward * 3f + new Vector3(0f, 1f, 0f);
			((Component)component).transform.LookAt(xrOrigin);
			((Component)component).transform.eulerAngles = new Vector3(0f, ((Component)component).transform.eulerAngles.y + 180f, 0f);
			Transform transform3 = ((Component)component2).transform;
			localScale = (((Component)component3).transform.position = ((Component)component).transform.position);
			transform3.position = localScale;
			Transform transform4 = ((Component)component2).transform;
			Quaternion rotation2 = (((Component)component3).transform.rotation = ((Component)component).transform.rotation);
			transform4.rotation = rotation2;
			((Component)component).GetComponent<RectTransform>().sizeDelta = new Vector2(1920f, 1080f);
			((Component)component2).GetComponent<RectTransform>().sizeDelta = new Vector2(1920f, 1080f);
			((Component)component3).GetComponent<RectTransform>().sizeDelta = new Vector2(1920f, 1080f);
			((Component)component3).transform.Find("Image").localScale = Vector3.one;
			((Component)component2).gameObject.AddComponent<TrackedDeviceGraphicRaycaster>();
			((Component)component3).gameObject.AddComponent<TrackedDeviceGraphicRaycaster>();
			NonNativeKeyboard component5 = Object.Instantiate<GameObject>(AssetManager.Keyboard).GetComponent<NonNativeKeyboard>();
			component5.SubmitOnEnter = true;
			((Component)component5).transform.position = new Vector3(-20.0352f, 4.4452f, 34.5683f);
			((Component)component5).transform.eulerAngles = new Vector3(20f, 180f, 0f);
			((Component)component5).transform.localScale = Vector3.one * 0.005f;
			((Component)component2).gameObject.AddComponent<AutoKeyboard>().keyboard = component5;
			if (Plugin.Config.FirstTimeLaunch.Value)
			{
				Modal.Show("Welcome to CW // VR", "Due to the nature of this game, the VR mod might cause more severe motion sickness than usual in some individuals.\nIf you suffer from motion sickness easily, it is recommended to enable \"Reduced Motion Sickness\".\nGoing for the full experience means that the camera can rotate on its own during ragdolls, death, sleeping and certain enemy attacks.\n(You can always change this setting in the VR Settings later).\n\nI wish you happy travels in trying to get SpöökFamous in VR!\n- DaXcess", (ModalOption[])(object)new ModalOption[2]
				{
					new ModalOption("Full Experience", (Action)delegate
					{
						Plugin.Config.DisableRagdollCamera.Value = false;
					}),
					new ModalOption("Reduced Motion Sickness", (Action)delegate
					{
						Plugin.Config.DisableRagdollCamera.Value = true;
					})
				}, (Action)delegate
				{
					Plugin.Config.FirstTimeLaunch.Value = false;
				});
			}
			((MonoBehaviour)this).StartCoroutine(DisableDoF());
			((MonoBehaviour)this).StartCoroutine(AutoRotate());
		}

		private void CreateInteractorController(XRNode node)
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0056: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Invalid comparison between Unknown and I4
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Unknown result type (might be due to invalid IL or missing references)
			//IL_005c: Invalid comparison between Unknown and I4
			//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Expected O, but got Unknown
			//IL_00da: Unknown result type (might be due to invalid IL or missing references)
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0109: Unknown result type (might be due to invalid IL or missing references)
			//IL_0113: Unknown result type (might be due to invalid IL or missing references)
			//IL_0118: 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_0129: Unknown result type (might be due to invalid IL or missing references)
			//IL_012e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0152: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0095: Unknown result type (might be due to invalid IL or missing references)
			GameObject val = new GameObject($"{node} Controller");
			val.transform.SetParent(xrOrigin, false);
			XRController val2 = val.AddComponent<XRController>();
			XRRayInteractor val3 = val.AddComponent<XRRayInteractor>();
			XRInteractorLineVisual val4 = val.AddComponent<XRInteractorLineVisual>();
			LineRenderer component = val.GetComponent<LineRenderer>();
			val.AddComponent<SortingGroup>().sortingOrder = 5;
			Transform rayOriginTransform = val3.rayOriginTransform;
			Vector3 localEulerAngles;
			if ((int)node != 4)
			{
				if ((int)node != 5)
				{
					throw new ArgumentOutOfRangeException("node", node, null);
				}
				localEulerAngles = new Vector3(60f, 347f, 270f);
			}
			else
			{
				localEulerAngles = new Vector3(60f, 347f, 90f);
			}
			rayOriginTransform.localEulerAngles = localEulerAngles;
			val4.lineBendRatio = 1f;
			Gradient val5 = new Gradient();
			val5.mode = (GradientMode)0;
			val5.alphaKeys = (GradientAlphaKey[])(object)new GradientAlphaKey[2]
			{
				new GradientAlphaKey(0.1f, 0f),
				new GradientAlphaKey(0.1f, 1f)
			};
			val5.colorKeys = (GradientColorKey[])(object)new GradientColorKey[2]
			{
				new GradientColorKey(Color.white, 0f),
				new GradientColorKey(Color.white, 1f)
			};
			val4.invalidColorGradient = val5;
			((Behaviour)val4).enabled = true;
			((Renderer)component).material = AssetManager.WhiteMat;
			val2.controllerNode = node;
		}

		private IEnumerator DisableDoF()
		{
			PostVolumeHandler pvh;
			while ((pvh = Object.FindObjectOfType<PostVolumeHandler>()) == null)
			{
				yield return null;
			}
			yield return (object)new WaitUntil((Func<bool>)(() => pvh.m_volume != null));
			yield return (object)new WaitUntil((Func<bool>)(() => pvh.m_volume.profile != null));
			DepthOfField val = default(DepthOfField);
			if (pvh.m_volume.profile.TryGet<DepthOfField>(ref val))
			{
				((VolumeComponent)val).active = false;
			}
		}

		private IEnumerator AutoRotate()
		{
			Pose poseData;
			while (true)
			{
				Pose val = (poseData = cameraTracker.GetPoseData());
				if (!(((Quaternion)(ref val.rotation)).eulerAngles == Vector3.zero))
				{
					break;
				}
				yield return null;
			}
			xrOrigin.eulerAngles = new Vector3(0f, 180f - ((Quaternion)(ref poseData.rotation)).eulerAngles.y, 0f);
		}
	}
	public class PauseMenu : MonoBehaviour
	{
		private XRRayInteractor leftHandInteractor;

		private XRRayInteractor rightHandInteractor;

		private XRInteractorLineVisual leftHandVisual;

		private XRInteractorLineVisual rightHandVisual;

		private NonNativeKeyboard keyboard;

		private void Awake()
		{
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0053: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00eb: Unknown result type (might be due to invalid IL or missing references)
			//IL_00f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0100: Unknown result type (might be due to invalid IL or missing references)
			//IL_010a: Unknown result type (might be due to invalid IL or missing references)
			//IL_010f: 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_0133: Unknown result type (might be due to invalid IL or missing references)
			//IL_0175: 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_018a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0195: Unknown result type (might be due to invalid IL or missing references)
			//IL_019f: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a9: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: 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_021f: Unknown result type (might be due to invalid IL or missing references)
			//IL_022a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0234: Unknown result type (might be due to invalid IL or missing references)
			//IL_0239: Unknown result type (might be due to invalid IL or missing references)
			//IL_023e: Unknown result type (might be due to invalid IL or missing references)
			//IL_025d: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cd: Unknown result typ

BepInEx/plugins/CWVR/RuntimeDeps/Unity.InputSystem.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Security;
using System.Security.Permissions;
using System.Text;
using System.Text.RegularExpressions;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.XR.GoogleVr;
using Unity.XR.Oculus.Input;
using Unity.XR.OpenVR;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.Experimental.Rendering;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Composites;
using UnityEngine.InputSystem.Controls;
using UnityEngine.InputSystem.DualShock;
using UnityEngine.InputSystem.DualShock.LowLevel;
using UnityEngine.InputSystem.HID;
using UnityEngine.InputSystem.Haptics;
using UnityEngine.InputSystem.Interactions;
using UnityEngine.InputSystem.Layouts;
using UnityEngine.InputSystem.LowLevel;
using UnityEngine.InputSystem.Processors;
using UnityEngine.InputSystem.Switch;
using UnityEngine.InputSystem.Switch.LowLevel;
using UnityEngine.InputSystem.UI;
using UnityEngine.InputSystem.Users;
using UnityEngine.InputSystem.Utilities;
using UnityEngine.InputSystem.XInput;
using UnityEngine.InputSystem.XInput.LowLevel;
using UnityEngine.InputSystem.XR;
using UnityEngine.InputSystem.XR.Haptics;
using UnityEngine.Networking.PlayerConnection;
using UnityEngine.Pool;
using UnityEngine.Scripting;
using UnityEngine.Serialization;
using UnityEngine.UI;
using UnityEngine.UIElements;
using UnityEngine.XR;
using UnityEngine.XR.WindowsMR.Input;
using UnityEngineInternal.Input;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: InternalsVisibleTo("Unity.InputSystem.TestFramework")]
[assembly: InternalsVisibleTo("Unity.InputSystem.Tests.Editor")]
[assembly: InternalsVisibleTo("Unity.InputSystem.Tests")]
[assembly: InternalsVisibleTo("Unity.InputSystem.IntegrationTests")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.7.0.0")]
[module: UnverifiableCode]
internal static class UISupport
{
	public static void Initialize()
	{
		InputSystem.RegisterLayout("\n            {\n                \"name\" : \"VirtualMouse\",\n                \"extend\" : \"Mouse\"\n            }\n        ");
	}
}
[CompilerGenerated]
[EditorBrowsable(EditorBrowsableState.Never)]
[GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)]
internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1
{
	private struct MonoScriptData
	{
		public byte[] FilePathsData;

		public byte[] TypesData;

		public int TotalTypes;

		public int TotalFiles;

		public bool IsEditorOnly;
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private static MonoScriptData Get()
	{
		MonoScriptData result = default(MonoScriptData);
		result.FilePathsData = new byte[24040]
		{
			0, 0, 0, 1, 0, 0, 0, 97, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			65, 99, 116, 105, 111, 110, 115, 92, 67, 111,
			109, 112, 111, 115, 105, 116, 101, 115, 92, 65,
			120, 105, 115, 67, 111, 109, 112, 111, 115, 105,
			116, 101, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 105, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 65, 99, 116, 105, 111,
			110, 115, 92, 67, 111, 109, 112, 111, 115, 105,
			116, 101, 115, 92, 66, 117, 116, 116, 111, 110,
			87, 105, 116, 104, 79, 110, 101, 77, 111, 100,
			105, 102, 105, 101, 114, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 106, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 65, 99,
			116, 105, 111, 110, 115, 92, 67, 111, 109, 112,
			111, 115, 105, 116, 101, 115, 92, 66, 117, 116,
			116, 111, 110, 87, 105, 116, 104, 84, 119, 111,
			77, 111, 100, 105, 102, 105, 101, 114, 115, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 104,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 65, 99, 116, 105, 111, 110, 115, 92,
			67, 111, 109, 112, 111, 115, 105, 116, 101, 115,
			92, 79, 110, 101, 77, 111, 100, 105, 102, 105,
			101, 114, 67, 111, 109, 112, 111, 115, 105, 116,
			101, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 105, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 65, 99, 116, 105, 111, 110,
			115, 92, 67, 111, 109, 112, 111, 115, 105, 116,
			101, 115, 92, 84, 119, 111, 77, 111, 100, 105,
			102, 105, 101, 114, 115, 67, 111, 109, 112, 111,
			115, 105, 116, 101, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 100, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 65, 99, 116,
			105, 111, 110, 115, 92, 67, 111, 109, 112, 111,
			115, 105, 116, 101, 115, 92, 86, 101, 99, 116,
			111, 114, 50, 67, 111, 109, 112, 111, 115, 105,
			116, 101, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 100, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 65, 99, 116, 105, 111,
			110, 115, 92, 67, 111, 109, 112, 111, 115, 105,
			116, 101, 115, 92, 86, 101, 99, 116, 111, 114,
			51, 67, 111, 109, 112, 111, 115, 105, 116, 101,
			46, 99, 115, 0, 0, 0, 2, 0, 0, 0,
			95, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 65, 99, 116, 105, 111, 110, 115,
			92, 73, 73, 110, 112, 117, 116, 65, 99, 116,
			105, 111, 110, 67, 111, 108, 108, 101, 99, 116,
			105, 111, 110, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 90, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 65, 99, 116, 105,
			111, 110, 115, 92, 73, 73, 110, 112, 117, 116,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 99, 115, 0, 0, 0, 2, 0, 0,
			0, 84, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 65, 99, 116, 105, 111, 110,
			115, 92, 73, 110, 112, 117, 116, 65, 99, 116,
			105, 111, 110, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 89, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 65, 99, 116, 105,
			111, 110, 115, 92, 73, 110, 112, 117, 116, 65,
			99, 116, 105, 111, 110, 65, 115, 115, 101, 116,
			46, 99, 115, 0, 0, 0, 11, 0, 0, 0,
			87, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 65, 99, 116, 105, 111, 110, 115,
			92, 73, 110, 112, 117, 116, 65, 99, 116, 105,
			111, 110, 77, 97, 112, 46, 99, 115, 0, 0,
			0, 5, 0, 0, 0, 94, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 65, 99,
			116, 105, 111, 110, 115, 92, 73, 110, 112, 117,
			116, 65, 99, 116, 105, 111, 110, 80, 97, 114,
			97, 109, 101, 116, 101, 114, 115, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 92, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			65, 99, 116, 105, 111, 110, 115, 92, 73, 110,
			112, 117, 116, 65, 99, 116, 105, 111, 110, 80,
			114, 111, 112, 101, 114, 116, 121, 46, 99, 115,
			0, 0, 0, 3, 0, 0, 0, 103, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			65, 99, 116, 105, 111, 110, 115, 92, 73, 110,
			112, 117, 116, 65, 99, 116, 105, 111, 110, 82,
			101, 98, 105, 110, 100, 105, 110, 103, 69, 120,
			116, 101, 110, 115, 105, 111, 110, 115, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 93, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 65, 99, 116, 105, 111, 110, 115, 92, 73,
			110, 112, 117, 116, 65, 99, 116, 105, 111, 110,
			82, 101, 102, 101, 114, 101, 110, 99, 101, 46,
			99, 115, 0, 0, 0, 4, 0, 0, 0, 99,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 65, 99, 116, 105, 111, 110, 115, 92,
			73, 110, 112, 117, 116, 65, 99, 116, 105, 111,
			110, 83, 101, 116, 117, 112, 69, 120, 116, 101,
			110, 115, 105, 111, 110, 115, 46, 99, 115, 0,
			0, 0, 7, 0, 0, 0, 89, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 65,
			99, 116, 105, 111, 110, 115, 92, 73, 110, 112,
			117, 116, 65, 99, 116, 105, 111, 110, 83, 116,
			97, 116, 101, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 89, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 65, 99, 116, 105,
			111, 110, 115, 92, 73, 110, 112, 117, 116, 65,
			99, 116, 105, 111, 110, 84, 114, 97, 99, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			85, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 65, 99, 116, 105, 111, 110, 115,
			92, 73, 110, 112, 117, 116, 66, 105, 110, 100,
			105, 110, 103, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 94, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 65, 99, 116, 105,
			111, 110, 115, 92, 73, 110, 112, 117, 116, 66,
			105, 110, 100, 105, 110, 103, 67, 111, 109, 112,
			111, 115, 105, 116, 101, 46, 99, 115, 0, 0,
			0, 3, 0, 0, 0, 101, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 65, 99,
			116, 105, 111, 110, 115, 92, 73, 110, 112, 117,
			116, 66, 105, 110, 100, 105, 110, 103, 67, 111,
			109, 112, 111, 115, 105, 116, 101, 67, 111, 110,
			116, 101, 120, 116, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 93, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 65, 99, 116,
			105, 111, 110, 115, 92, 73, 110, 112, 117, 116,
			66, 105, 110, 100, 105, 110, 103, 82, 101, 115,
			111, 108, 118, 101, 114, 46, 99, 115, 0, 0,
			0, 7, 0, 0, 0, 91, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 65, 99,
			116, 105, 111, 110, 115, 92, 73, 110, 112, 117,
			116, 67, 111, 110, 116, 114, 111, 108, 83, 99,
			104, 101, 109, 101, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 96, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 65, 99, 116,
			105, 111, 110, 115, 92, 73, 110, 112, 117, 116,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 67, 111, 110, 116, 101, 120, 116, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 101, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 65, 99, 116, 105, 111, 110, 115, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			115, 92, 72, 111, 108, 100, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 105, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			65, 99, 116, 105, 111, 110, 115, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 115,
			92, 77, 117, 108, 116, 105, 84, 97, 112, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			102, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 65, 99, 116, 105, 111, 110, 115,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 115, 92, 80, 114, 101, 115, 115, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			104, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 65, 99, 116, 105, 111, 110, 115,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 115, 92, 83, 108, 111, 119, 84, 97,
			112, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 100, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 65, 99, 116, 105, 111,
			110, 115, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 115, 92, 84, 97, 112, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			77, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 65, 115, 115, 101, 109, 98, 108,
			121, 73, 110, 102, 111, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 87, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 67, 111,
			110, 116, 114, 111, 108, 115, 92, 65, 110, 121,
			75, 101, 121, 67, 111, 110, 116, 114, 111, 108,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			85, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 67, 111, 110, 116, 114, 111, 108,
			115, 92, 65, 120, 105, 115, 67, 111, 110, 116,
			114, 111, 108, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 87, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 67, 111, 110, 116,
			114, 111, 108, 115, 92, 66, 117, 116, 116, 111,
			110, 67, 111, 110, 116, 114, 111, 108, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 86, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 67, 111, 110, 116, 114, 111, 108, 115, 92,
			67, 111, 109, 109, 111, 110, 85, 115, 97, 103,
			101, 115, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 86, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 67, 111, 110, 116, 114,
			111, 108, 115, 92, 68, 101, 108, 116, 97, 67,
			111, 110, 116, 114, 111, 108, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 95, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 67,
			111, 110, 116, 114, 111, 108, 115, 92, 68, 105,
			115, 99, 114, 101, 116, 101, 66, 117, 116, 116,
			111, 110, 67, 111, 110, 116, 114, 111, 108, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 87,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 67, 111, 110, 116, 114, 111, 108, 115,
			92, 68, 111, 117, 98, 108, 101, 67, 111, 110,
			116, 114, 111, 108, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 85, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 67, 111, 110,
			116, 114, 111, 108, 115, 92, 68, 112, 97, 100,
			67, 111, 110, 116, 114, 111, 108, 46, 99, 115,
			0, 0, 0, 2, 0, 0, 0, 86, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			67, 111, 110, 116, 114, 111, 108, 115, 92, 73,
			110, 112, 117, 116, 67, 111, 110, 116, 114, 111,
			108, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 95, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 67, 111, 110, 116, 114, 111,
			108, 115, 92, 73, 110, 112, 117, 116, 67, 111,
			110, 116, 114, 111, 108, 65, 116, 116, 114, 105,
			98, 117, 116, 101, 46, 99, 115, 0, 0, 0,
			5, 0, 0, 0, 96, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 67, 111, 110,
			116, 114, 111, 108, 115, 92, 73, 110, 112, 117,
			116, 67, 111, 110, 116, 114, 111, 108, 69, 120,
			116, 101, 110, 115, 105, 111, 110, 115, 46, 99,
			115, 0, 0, 0, 13, 0, 0, 0, 92, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 67, 111, 110, 116, 114, 111, 108, 115, 92,
			73, 110, 112, 117, 116, 67, 111, 110, 116, 114,
			111, 108, 76, 97, 121, 111, 117, 116, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 101, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 67, 111, 110, 116, 114, 111, 108, 115, 92,
			73, 110, 112, 117, 116, 67, 111, 110, 116, 114,
			111, 108, 76, 97, 121, 111, 117, 116, 65, 116,
			116, 114, 105, 98, 117, 116, 101, 46, 99, 115,
			0, 0, 0, 2, 0, 0, 0, 90, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			67, 111, 110, 116, 114, 111, 108, 115, 92, 73,
			110, 112, 117, 116, 67, 111, 110, 116, 114, 111,
			108, 76, 105, 115, 116, 46, 99, 115, 0, 0,
			0, 3, 0, 0, 0, 90, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 67, 111,
			110, 116, 114, 111, 108, 115, 92, 73, 110, 112,
			117, 116, 67, 111, 110, 116, 114, 111, 108, 80,
			97, 116, 104, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 88, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 67, 111, 110, 116,
			114, 111, 108, 115, 92, 73, 110, 112, 117, 116,
			80, 114, 111, 99, 101, 115, 115, 111, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 88,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 67, 111, 110, 116, 114, 111, 108, 115,
			92, 73, 110, 116, 101, 103, 101, 114, 67, 111,
			110, 116, 114, 111, 108, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 84, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 67, 111,
			110, 116, 114, 111, 108, 115, 92, 75, 101, 121,
			67, 111, 110, 116, 114, 111, 108, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 106, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			67, 111, 110, 116, 114, 111, 108, 115, 92, 80,
			114, 111, 99, 101, 115, 115, 111, 114, 115, 92,
			65, 120, 105, 115, 68, 101, 97, 100, 122, 111,
			110, 101, 80, 114, 111, 99, 101, 115, 115, 111,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 99, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 67, 111, 110, 116, 114, 111,
			108, 115, 92, 80, 114, 111, 99, 101, 115, 115,
			111, 114, 115, 92, 67, 108, 97, 109, 112, 80,
			114, 111, 99, 101, 115, 115, 111, 114, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 113, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 67, 111, 110, 116, 114, 111, 108, 115, 92,
			80, 114, 111, 99, 101, 115, 115, 111, 114, 115,
			92, 67, 111, 109, 112, 101, 110, 115, 97, 116,
			101, 68, 105, 114, 101, 99, 116, 105, 111, 110,
			80, 114, 111, 99, 101, 115, 115, 111, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 112,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 67, 111, 110, 116, 114, 111, 108, 115,
			92, 80, 114, 111, 99, 101, 115, 115, 111, 114,
			115, 92, 67, 111, 109, 112, 101, 110, 115, 97,
			116, 101, 82, 111, 116, 97, 116, 105, 111, 110,
			80, 114, 111, 99, 101, 115, 115, 111, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 100,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 67, 111, 110, 116, 114, 111, 108, 115,
			92, 80, 114, 111, 99, 101, 115, 115, 111, 114,
			115, 92, 73, 110, 118, 101, 114, 116, 80, 114,
			111, 99, 101, 115, 115, 111, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 107, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			67, 111, 110, 116, 114, 111, 108, 115, 92, 80,
			114, 111, 99, 101, 115, 115, 111, 114, 115, 92,
			73, 110, 118, 101, 114, 116, 86, 101, 99, 116,
			111, 114, 50, 80, 114, 111, 99, 101, 115, 115,
			111, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 107, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 67, 111, 110, 116, 114,
			111, 108, 115, 92, 80, 114, 111, 99, 101, 115,
			115, 111, 114, 115, 92, 73, 110, 118, 101, 114,
			116, 86, 101, 99, 116, 111, 114, 51, 80, 114,
			111, 99, 101, 115, 115, 111, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 103, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			67, 111, 110, 116, 114, 111, 108, 115, 92, 80,
			114, 111, 99, 101, 115, 115, 111, 114, 115, 92,
			78, 111, 114, 109, 97, 108, 105, 122, 101, 80,
			114, 111, 99, 101, 115, 115, 111, 114, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 110, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 67, 111, 110, 116, 114, 111, 108, 115, 92,
			80, 114, 111, 99, 101, 115, 115, 111, 114, 115,
			92, 78, 111, 114, 109, 97, 108, 105, 122, 101,
			86, 101, 99, 116, 111, 114, 50, 80, 114, 111,
			99, 101, 115, 115, 111, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 110, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 67,
			111, 110, 116, 114, 111, 108, 115, 92, 80, 114,
			111, 99, 101, 115, 115, 111, 114, 115, 92, 78,
			111, 114, 109, 97, 108, 105, 122, 101, 86, 101,
			99, 116, 111, 114, 51, 80, 114, 111, 99, 101,
			115, 115, 111, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 99, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 67, 111, 110,
			116, 114, 111, 108, 115, 92, 80, 114, 111, 99,
			101, 115, 115, 111, 114, 115, 92, 83, 99, 97,
			108, 101, 80, 114, 111, 99, 101, 115, 115, 111,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 106, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 67, 111, 110, 116, 114, 111,
			108, 115, 92, 80, 114, 111, 99, 101, 115, 115,
			111, 114, 115, 92, 83, 99, 97, 108, 101, 86,
			101, 99, 116, 111, 114, 50, 80, 114, 111, 99,
			101, 115, 115, 111, 114, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 106, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 67, 111,
			110, 116, 114, 111, 108, 115, 92, 80, 114, 111,
			99, 101, 115, 115, 111, 114, 115, 92, 83, 99,
			97, 108, 101, 86, 101, 99, 116, 111, 114, 51,
			80, 114, 111, 99, 101, 115, 115, 111, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 107,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 67, 111, 110, 116, 114, 111, 108, 115,
			92, 80, 114, 111, 99, 101, 115, 115, 111, 114,
			115, 92, 83, 116, 105, 99, 107, 68, 101, 97,
			100, 122, 111, 110, 101, 80, 114, 111, 99, 101,
			115, 115, 111, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 91, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 67, 111, 110,
			116, 114, 111, 108, 115, 92, 81, 117, 97, 116,
			101, 114, 110, 105, 111, 110, 67, 111, 110, 116,
			114, 111, 108, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 86, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 67, 111, 110, 116,
			114, 111, 108, 115, 92, 83, 116, 105, 99, 107,
			67, 111, 110, 116, 114, 111, 108, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 86, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			67, 111, 110, 116, 114, 111, 108, 115, 92, 84,
			111, 117, 99, 104, 67, 111, 110, 116, 114, 111,
			108, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 91, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 67, 111, 110, 116, 114, 111,
			108, 115, 92, 84, 111, 117, 99, 104, 80, 104,
			97, 115, 101, 67, 111, 110, 116, 114, 111, 108,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			91, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 67, 111, 110, 116, 114, 111, 108,
			115, 92, 84, 111, 117, 99, 104, 80, 114, 101,
			115, 115, 67, 111, 110, 116, 114, 111, 108, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 88,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 67, 111, 110, 116, 114, 111, 108, 115,
			92, 86, 101, 99, 116, 111, 114, 50, 67, 111,
			110, 116, 114, 111, 108, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 88, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 67, 111,
			110, 116, 114, 111, 108, 115, 92, 86, 101, 99,
			116, 111, 114, 51, 67, 111, 110, 116, 114, 111,
			108, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 102, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 67, 111, 109, 109, 97, 110, 100, 115,
			92, 68, 105, 115, 97, 98, 108, 101, 68, 101,
			118, 105, 99, 101, 67, 111, 109, 109, 97, 110,
			100, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 101, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 67, 111, 109, 109, 97, 110, 100, 115,
			92, 69, 110, 97, 98, 108, 101, 68, 101, 118,
			105, 99, 101, 67, 111, 109, 109, 97, 110, 100,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			109, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 67, 111, 109, 109, 97, 110, 100, 115, 92,
			69, 110, 97, 98, 108, 101, 73, 77, 69, 67,
			111, 109, 112, 111, 115, 105, 116, 105, 111, 110,
			67, 111, 109, 109, 97, 110, 100, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 105, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			68, 101, 118, 105, 99, 101, 115, 92, 67, 111,
			109, 109, 97, 110, 100, 115, 92, 73, 73, 110,
			112, 117, 116, 68, 101, 118, 105, 99, 101, 67,
			111, 109, 109, 97, 110, 100, 73, 110, 102, 111,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			115, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 67, 111, 109, 109, 97, 110, 100, 115, 92,
			73, 110, 105, 116, 105, 97, 116, 101, 85, 115,
			101, 114, 65, 99, 99, 111, 117, 110, 116, 80,
			97, 105, 114, 105, 110, 103, 67, 111, 109, 109,
			97, 110, 100, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 100, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 68, 101, 118, 105,
			99, 101, 115, 92, 67, 111, 109, 109, 97, 110,
			100, 115, 92, 73, 110, 112, 117, 116, 68, 101,
			118, 105, 99, 101, 67, 111, 109, 109, 97, 110,
			100, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 105, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 67, 111, 109, 109, 97, 110, 100, 115,
			92, 81, 117, 101, 114, 121, 67, 97, 110, 82,
			117, 110, 73, 110, 66, 97, 99, 107, 103, 114,
			111, 117, 110, 100, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 104, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 68, 101, 118,
			105, 99, 101, 115, 92, 67, 111, 109, 109, 97,
			110, 100, 115, 92, 81, 117, 101, 114, 121, 68,
			105, 109, 101, 110, 115, 105, 111, 110, 115, 67,
			111, 109, 109, 97, 110, 100, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 106, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 68,
			101, 118, 105, 99, 101, 115, 92, 67, 111, 109,
			109, 97, 110, 100, 115, 92, 81, 117, 101, 114,
			121, 69, 110, 97, 98, 108, 101, 100, 83, 116,
			97, 116, 101, 67, 111, 109, 109, 97, 110, 100,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			108, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 67, 111, 109, 109, 97, 110, 100, 115, 92,
			81, 117, 101, 114, 121, 75, 101, 121, 98, 111,
			97, 114, 100, 76, 97, 121, 111, 117, 116, 67,
			111, 109, 109, 97, 110, 100, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 101, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 68,
			101, 118, 105, 99, 101, 115, 92, 67, 111, 109,
			109, 97, 110, 100, 115, 92, 81, 117, 101, 114,
			121, 75, 101, 121, 78, 97, 109, 101, 67, 111,
			109, 109, 97, 110, 100, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 111, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 68, 101,
			118, 105, 99, 101, 115, 92, 67, 111, 109, 109,
			97, 110, 100, 115, 92, 81, 117, 101, 114, 121,
			80, 97, 105, 114, 101, 100, 85, 115, 101, 114,
			65, 99, 99, 111, 117, 110, 116, 67, 111, 109,
			109, 97, 110, 100, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 111, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 68, 101, 118,
			105, 99, 101, 115, 92, 67, 111, 109, 109, 97,
			110, 100, 115, 92, 81, 117, 101, 114, 121, 83,
			97, 109, 112, 108, 105, 110, 103, 70, 114, 101,
			113, 117, 101, 110, 99, 121, 67, 111, 109, 109,
			97, 110, 100, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 100, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 68, 101, 118, 105,
			99, 101, 115, 92, 67, 111, 109, 109, 97, 110,
			100, 115, 92, 81, 117, 101, 114, 121, 85, 115,
			101, 114, 73, 100, 67, 111, 109, 109, 97, 110,
			100, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 101, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 67, 111, 109, 109, 97, 110, 100, 115,
			92, 82, 101, 113, 117, 101, 115, 116, 82, 101,
			115, 101, 116, 67, 111, 109, 109, 97, 110, 100,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			100, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 67, 111, 109, 109, 97, 110, 100, 115, 92,
			82, 101, 113, 117, 101, 115, 116, 83, 121, 110,
			99, 67, 111, 109, 109, 97, 110, 100, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 109, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 68, 101, 118, 105, 99, 101, 115, 92, 67,
			111, 109, 109, 97, 110, 100, 115, 92, 83, 101,
			116, 73, 77, 69, 67, 117, 114, 115, 111, 114,
			80, 111, 115, 105, 116, 105, 111, 110, 67, 111,
			109, 109, 97, 110, 100, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 109, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 68, 101,
			118, 105, 99, 101, 115, 92, 67, 111, 109, 109,
			97, 110, 100, 115, 92, 83, 101, 116, 83, 97,
			109, 112, 108, 105, 110, 103, 70, 114, 101, 113,
			117, 101, 110, 99, 121, 67, 111, 109, 109, 97,
			110, 100, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 110, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 68, 101, 118, 105, 99,
			101, 115, 92, 67, 111, 109, 109, 97, 110, 100,
			115, 92, 85, 115, 101, 87, 105, 110, 100, 111,
			119, 115, 71, 97, 109, 105, 110, 103, 73, 110,
			112, 117, 116, 67, 111, 109, 109, 97, 110, 100,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			106, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 67, 111, 109, 109, 97, 110, 100, 115, 92,
			87, 97, 114, 112, 77, 111, 117, 115, 101, 80,
			111, 115, 105, 116, 105, 111, 110, 67, 111, 109,
			109, 97, 110, 100, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 80, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 68, 101, 118,
			105, 99, 101, 115, 92, 71, 97, 109, 101, 112,
			97, 100, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 96, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 68, 101, 118, 105, 99,
			101, 115, 92, 72, 97, 112, 116, 105, 99, 115,
			92, 68, 117, 97, 108, 77, 111, 116, 111, 114,
			82, 117, 109, 98, 108, 101, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 103, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 68,
			101, 118, 105, 99, 101, 115, 92, 72, 97, 112,
			116, 105, 99, 115, 92, 68, 117, 97, 108, 77,
			111, 116, 111, 114, 82, 117, 109, 98, 108, 101,
			67, 111, 109, 109, 97, 110, 100, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 97, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			68, 101, 118, 105, 99, 101, 115, 92, 72, 97,
			112, 116, 105, 99, 115, 92, 73, 68, 117, 97,
			108, 77, 111, 116, 111, 114, 82, 117, 109, 98,
			108, 101, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 89, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 68, 101, 118, 105, 99,
			101, 115, 92, 72, 97, 112, 116, 105, 99, 115,
			92, 73, 72, 97, 112, 116, 105, 99, 115, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 91,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 68, 101, 118, 105, 99, 101, 115, 92,
			73, 67, 117, 115, 116, 111, 109, 68, 101, 118,
			105, 99, 101, 82, 101, 115, 101, 116, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 85, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 68, 101, 118, 105, 99, 101, 115, 92, 73,
			69, 118, 101, 110, 116, 77, 101, 114, 103, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 91, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 73, 69, 118, 101, 110, 116, 80, 114,
			101, 80, 114, 111, 99, 101, 115, 115, 111, 114,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			101, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 73, 73, 110, 112, 117, 116, 85, 112, 100,
			97, 116, 101, 67, 97, 108, 108, 98, 97, 99,
			107, 82, 101, 99, 101, 105, 118, 101, 114, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 84,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 68, 101, 118, 105, 99, 101, 115, 92,
			73, 110, 112, 117, 116, 68, 101, 118, 105, 99,
			101, 46, 99, 115, 0, 0, 0, 2, 0, 0,
			0, 91, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 73, 110, 112, 117, 116, 68, 101, 118,
			105, 99, 101, 66, 117, 105, 108, 100, 101, 114,
			46, 99, 115, 0, 0, 0, 2, 0, 0, 0,
			95, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 73, 110, 112, 117, 116, 68, 101, 118, 105,
			99, 101, 68, 101, 115, 99, 114, 105, 112, 116,
			105, 111, 110, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 91, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 68, 101, 118, 105,
			99, 101, 115, 92, 73, 110, 112, 117, 116, 68,
			101, 118, 105, 99, 101, 77, 97, 116, 99, 104,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 91, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 68, 101, 118, 105, 99,
			101, 115, 92, 73, 84, 101, 120, 116, 73, 110,
			112, 117, 116, 82, 101, 99, 101, 105, 118, 101,
			114, 46, 99, 115, 0, 0, 0, 2, 0, 0,
			0, 81, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 74, 111, 121, 115, 116, 105, 99, 107,
			46, 99, 115, 0, 0, 0, 2, 0, 0, 0,
			81, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 68, 101, 118, 105, 99, 101, 115,
			92, 75, 101, 121, 98, 111, 97, 114, 100, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 78,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 68, 101, 118, 105, 99, 101, 115, 92,
			77, 111, 117, 115, 101, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 76, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 68, 101,
			118, 105, 99, 101, 115, 92, 80, 101, 110, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 80,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 68, 101, 118, 105, 99, 101, 115, 92,
			80, 111, 105, 110, 116, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 97, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			68, 101, 118, 105, 99, 101, 115, 92, 80, 114,
			101, 99, 111, 109, 112, 105, 108, 101, 100, 92,
			70, 97, 115, 116, 75, 101, 121, 98, 111, 97,
			114, 100, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 94, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 68, 101, 118, 105, 99,
			101, 115, 92, 80, 114, 101, 99, 111, 109, 112,
			105, 108, 101, 100, 92, 70, 97, 115, 116, 77,
			111, 117, 115, 101, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 102, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 68, 101, 118,
			105, 99, 101, 115, 92, 80, 114, 101, 99, 111,
			109, 112, 105, 108, 101, 100, 92, 70, 97, 115,
			116, 77, 111, 117, 115, 101, 46, 112, 97, 114,
			116, 105, 97, 108, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 100, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 68, 101, 118,
			105, 99, 101, 115, 92, 80, 114, 101, 99, 111,
			109, 112, 105, 108, 101, 100, 92, 70, 97, 115,
			116, 84, 111, 117, 99, 104, 115, 99, 114, 101,
			101, 110, 46, 99, 115, 0, 0, 0, 17, 0,
			0, 0, 93, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 68, 101, 118, 105, 99,
			101, 115, 92, 82, 101, 109, 111, 116, 101, 92,
			73, 110, 112, 117, 116, 82, 101, 109, 111, 116,
			105, 110, 103, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 107, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 68, 101, 118, 105,
			99, 101, 115, 92, 82, 101, 109, 111, 116, 101,
			92, 82, 101, 109, 111, 116, 101, 73, 110, 112,
			117, 116, 80, 108, 97, 121, 101, 114, 67, 111,
			110, 110, 101, 99, 116, 105, 111, 110, 46, 99,
			115, 0, 0, 0, 18, 0, 0, 0, 79, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 68, 101, 118, 105, 99, 101, 115, 92, 83,
			101, 110, 115, 111, 114, 46, 99, 115, 0, 0,
			0, 3, 0, 0, 0, 84, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 68, 101,
			118, 105, 99, 101, 115, 92, 84, 111, 117, 99,
			104, 115, 99, 114, 101, 101, 110, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 86, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			68, 101, 118, 105, 99, 101, 115, 92, 84, 114,
			97, 99, 107, 101, 100, 68, 101, 118, 105, 99,
			101, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 83, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 69, 118, 101, 110, 116, 115,
			92, 65, 99, 116, 105, 111, 110, 69, 118, 101,
			110, 116, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 87, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 69, 118, 101, 110, 116,
			115, 92, 68, 101, 108, 116, 97, 83, 116, 97,
			116, 101, 69, 118, 101, 110, 116, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 96, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			69, 118, 101, 110, 116, 115, 92, 68, 101, 118,
			105, 99, 101, 67, 111, 110, 102, 105, 103, 117,
			114, 97, 116, 105, 111, 110, 69, 118, 101, 110,
			116, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 89, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 69, 118, 101, 110, 116, 115,
			92, 68, 101, 118, 105, 99, 101, 82, 101, 109,
			111, 118, 101, 69, 118, 101, 110, 116, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 88, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 69, 118, 101, 110, 116, 115, 92, 68, 101,
			118, 105, 99, 101, 82, 101, 115, 101, 116, 69,
			118, 101, 110, 116, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 91, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 69, 118, 101,
			110, 116, 115, 92, 73, 73, 110, 112, 117, 116,
			69, 118, 101, 110, 116, 84, 121, 112, 101, 73,
			110, 102, 111, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 91, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 69, 118, 101, 110,
			116, 115, 92, 73, 77, 69, 67, 111, 109, 112,
			111, 115, 105, 116, 105, 111, 110, 69, 118, 101,
			110, 116, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 82, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 69, 118, 101, 110, 116,
			115, 92, 73, 110, 112, 117, 116, 69, 118, 101,
			110, 116, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 88, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 69, 118, 101, 110, 116,
			115, 92, 73, 110, 112, 117, 116, 69, 118, 101,
			110, 116, 66, 117, 102, 102, 101, 114, 46, 99,
			115, 0, 0, 0, 3, 0, 0, 0, 90, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 69, 118, 101, 110, 116, 115, 92, 73, 110,
			112, 117, 116, 69, 118, 101, 110, 116, 76, 105,
			115, 116, 101, 110, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 85, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 69,
			118, 101, 110, 116, 115, 92, 73, 110, 112, 117,
			116, 69, 118, 101, 110, 116, 80, 116, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 88,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 69, 118, 101, 110, 116, 115, 92, 73,
			110, 112, 117, 116, 69, 118, 101, 110, 116, 83,
			116, 114, 101, 97, 109, 46, 99, 115, 0, 0,
			0, 4, 0, 0, 0, 87, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 69, 118,
			101, 110, 116, 115, 92, 73, 110, 112, 117, 116,
			69, 118, 101, 110, 116, 84, 114, 97, 99, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			82, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 69, 118, 101, 110, 116, 115, 92,
			83, 116, 97, 116, 101, 69, 118, 101, 110, 116,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			81, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 69, 118, 101, 110, 116, 115, 92,
			84, 101, 120, 116, 69, 118, 101, 110, 116, 46,
			99, 115, 0, 0, 0, 3, 0, 0, 0, 78,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 73, 73, 110, 112, 117, 116, 82, 117,
			110, 116, 105, 109, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 80, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 73, 110,
			112, 117, 116, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 82, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 73, 110, 112, 117,
			116, 70, 101, 97, 116, 117, 114, 101, 78, 97,
			109, 101, 115, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 77, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 73, 110, 112, 117,
			116, 77, 97, 110, 97, 103, 101, 114, 46, 99,
			115, 0, 0, 0, 4, 0, 0, 0, 90, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 73, 110, 112, 117, 116, 77, 97, 110, 97,
			103, 101, 114, 83, 116, 97, 116, 101, 77, 111,
			110, 105, 116, 111, 114, 115, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 77, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 73,
			110, 112, 117, 116, 77, 101, 116, 114, 105, 99,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 78, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 73, 110, 112, 117, 116, 83,
			101, 116, 116, 105, 110, 103, 115, 46, 99, 115,
			0, 0, 0, 3, 0, 0, 0, 76, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 46, 99, 115, 0, 0, 0, 3, 0, 0,
			0, 80, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 73, 110, 112, 117, 116, 85,
			112, 100, 97, 116, 101, 84, 121, 112, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 83,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 78, 97, 116, 105, 118, 101, 73, 110,
			112, 117, 116, 82, 117, 110, 116, 105, 109, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			99, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 80, 108, 117, 103, 105, 110, 115,
			92, 68, 117, 97, 108, 83, 104, 111, 99, 107,
			92, 68, 117, 97, 108, 83, 104, 111, 99, 107,
			71, 97, 109, 101, 112, 97, 100, 46, 99, 115,
			0, 0, 0, 15, 0, 0, 0, 102, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			80, 108, 117, 103, 105, 110, 115, 92, 68, 117,
			97, 108, 83, 104, 111, 99, 107, 92, 68, 117,
			97, 108, 83, 104, 111, 99, 107, 71, 97, 109,
			101, 112, 97, 100, 72, 73, 68, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 99, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			80, 108, 117, 103, 105, 110, 115, 92, 68, 117,
			97, 108, 83, 104, 111, 99, 107, 92, 68, 117,
			97, 108, 83, 104, 111, 99, 107, 83, 117, 112,
			112, 111, 114, 116, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 100, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 68, 117, 97, 108, 83,
			104, 111, 99, 107, 92, 73, 68, 117, 97, 108,
			83, 104, 111, 99, 107, 72, 97, 112, 116, 105,
			99, 115, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 107, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 80, 108, 117, 103, 105,
			110, 115, 92, 69, 110, 104, 97, 110, 99, 101,
			100, 84, 111, 117, 99, 104, 92, 69, 110, 104,
			97, 110, 99, 101, 100, 84, 111, 117, 99, 104,
			83, 117, 112, 112, 111, 114, 116, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 93, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			80, 108, 117, 103, 105, 110, 115, 92, 69, 110,
			104, 97, 110, 99, 101, 100, 84, 111, 117, 99,
			104, 92, 70, 105, 110, 103, 101, 114, 46, 99,
			115, 0, 0, 0, 4, 0, 0, 0, 92, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 69,
			110, 104, 97, 110, 99, 101, 100, 84, 111, 117,
			99, 104, 92, 84, 111, 117, 99, 104, 46, 99,
			115, 0, 0, 0, 2, 0, 0, 0, 99, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 69,
			110, 104, 97, 110, 99, 101, 100, 84, 111, 117,
			99, 104, 92, 84, 111, 117, 99, 104, 72, 105,
			115, 116, 111, 114, 121, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 102, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 80, 108,
			117, 103, 105, 110, 115, 92, 69, 110, 104, 97,
			110, 99, 101, 100, 84, 111, 117, 99, 104, 92,
			84, 111, 117, 99, 104, 83, 105, 109, 117, 108,
			97, 116, 105, 111, 110, 46, 99, 115, 0, 0,
			0, 6, 0, 0, 0, 80, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 80, 108,
			117, 103, 105, 110, 115, 92, 72, 73, 68, 92,
			72, 73, 68, 46, 99, 115, 0, 0, 0, 4,
			0, 0, 0, 86, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 80, 108, 117, 103,
			105, 110, 115, 92, 72, 73, 68, 92, 72, 73,
			68, 80, 97, 114, 115, 101, 114, 46, 99, 115,
			0, 0, 0, 2, 0, 0, 0, 87, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			80, 108, 117, 103, 105, 110, 115, 92, 72, 73,
			68, 92, 72, 73, 68, 83, 117, 112, 112, 111,
			114, 116, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 96, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 80, 108, 117, 103, 105,
			110, 115, 92, 79, 110, 83, 99, 114, 101, 101,
			110, 92, 79, 110, 83, 99, 114, 101, 101, 110,
			66, 117, 116, 116, 111, 110, 46, 99, 115, 0,
			0, 0, 2, 0, 0, 0, 97, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 80,
			108, 117, 103, 105, 110, 115, 92, 79, 110, 83,
			99, 114, 101, 101, 110, 92, 79, 110, 83, 99,
			114, 101, 101, 110, 67, 111, 110, 116, 114, 111,
			108, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 95, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 80, 108, 117, 103, 105, 110,
			115, 92, 79, 110, 83, 99, 114, 101, 101, 110,
			92, 79, 110, 83, 99, 114, 101, 101, 110, 83,
			116, 105, 99, 107, 46, 99, 115, 0, 0, 0,
			5, 0, 0, 0, 104, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 80, 108, 97, 121, 101,
			114, 73, 110, 112, 117, 116, 92, 68, 101, 102,
			97, 117, 108, 116, 73, 110, 112, 117, 116, 65,
			99, 116, 105, 111, 110, 115, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 95, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 80,
			108, 117, 103, 105, 110, 115, 92, 80, 108, 97,
			121, 101, 114, 73, 110, 112, 117, 116, 92, 73,
			110, 112, 117, 116, 86, 97, 108, 117, 101, 46,
			99, 115, 0, 0, 0, 5, 0, 0, 0, 96,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 80, 108, 117, 103, 105, 110, 115, 92,
			80, 108, 97, 121, 101, 114, 73, 110, 112, 117,
			116, 92, 80, 108, 97, 121, 101, 114, 73, 110,
			112, 117, 116, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 103, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 105, 110, 112, 117,
			116, 115, 121, 115, 116, 101, 109, 64, 49, 46,
			55, 46, 48, 92, 73, 110, 112, 117, 116, 83,
			121, 115, 116, 101, 109, 92, 80, 108, 117, 103,
			105, 110, 115, 92, 80, 108, 97, 121, 101, 114,
			73, 110, 112, 117, 116, 92, 80, 108, 97, 121,
			101, 114, 73, 110, 112, 117, 116, 77, 97, 110,
			97, 103, 101, 114, 46, 99, 115, 0, 0, 0,
			9, 0, 0, 0, 102, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 83, 119, 105, 116, 99,
			104, 92, 83, 119, 105, 116, 99, 104, 80, 114,
			111, 67, 111, 110, 116, 114, 111, 108, 108, 101,
			114, 72, 73, 68, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 96, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 83, 119, 105, 116, 99,
			104, 92, 83, 119, 105, 116, 99, 104, 83, 117,
			112, 112, 111, 114, 116, 72, 73, 68, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 93, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 85,
			73, 92, 66, 97, 115, 101, 73, 110, 112, 117,
			116, 79, 118, 101, 114, 114, 105, 100, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 97,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 80, 108, 117, 103, 105, 110, 115, 92,
			85, 73, 92, 69, 120, 116, 101, 110, 100, 101,
			100, 65, 120, 105, 115, 69, 118, 101, 110, 116,
			68, 97, 116, 97, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 100, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 85, 73, 92, 69, 120,
			116, 101, 110, 100, 101, 100, 80, 111, 105, 110,
			116, 101, 114, 69, 118, 101, 110, 116, 68, 97,
			116, 97, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 100, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 80, 108, 117, 103, 105,
			110, 115, 92, 85, 73, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 85, 73, 73,
			110, 112, 117, 116, 77, 111, 100, 117, 108, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			98, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 80, 108, 117, 103, 105, 110, 115,
			92, 85, 73, 92, 77, 117, 108, 116, 105, 112,
			108, 97, 121, 101, 114, 69, 118, 101, 110, 116,
			83, 121, 115, 116, 101, 109, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 91, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 80,
			108, 117, 103, 105, 110, 115, 92, 85, 73, 92,
			78, 97, 118, 105, 103, 97, 116, 105, 111, 110,
			77, 111, 100, 101, 108, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 88, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 105, 110,
			112, 117, 116, 115, 121, 115, 116, 101, 109, 64,
			49, 46, 55, 46, 48, 92, 73, 110, 112, 117,
			116, 83, 121, 115, 116, 101, 109, 92, 80, 108,
			117, 103, 105, 110, 115, 92, 85, 73, 92, 80,
			111, 105, 110, 116, 101, 114, 77, 111, 100, 101,
			108, 46, 99, 115, 0, 0, 0, 2, 0, 0,
			0, 98, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 80, 108, 117, 103, 105, 110,
			115, 92, 85, 73, 92, 84, 114, 97, 99, 107,
			101, 100, 68, 101, 118, 105, 99, 101, 82, 97,
			121, 99, 97, 115, 116, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 85, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			80, 108, 117, 103, 105, 110, 115, 92, 85, 73,
			92, 85, 73, 83, 117, 112, 112, 111, 114, 116,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			93, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 80, 108, 117, 103, 105, 110, 115,
			92, 85, 73, 92, 86, 105, 114, 116, 117, 97,
			108, 77, 111, 117, 115, 101, 73, 110, 112, 117,
			116, 46, 99, 115, 0, 0, 0, 6, 0, 0,
			0, 88, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 80, 108, 117, 103, 105, 110,
			115, 92, 85, 115, 101, 114, 115, 92, 73, 110,
			112, 117, 116, 85, 115, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 101, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			80, 108, 117, 103, 105, 110, 115, 92, 85, 115,
			101, 114, 115, 92, 73, 110, 112, 117, 116, 85,
			115, 101, 114, 65, 99, 99, 111, 117, 110, 116,
			72, 97, 110, 100, 108, 101, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 96, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 80,
			108, 117, 103, 105, 110, 115, 92, 85, 115, 101,
			114, 115, 92, 73, 110, 112, 117, 116, 85, 115,
			101, 114, 83, 101, 116, 116, 105, 110, 103, 115,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			94, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 80, 108, 117, 103, 105, 110, 115,
			92, 88, 73, 110, 112, 117, 116, 92, 73, 88,
			98, 111, 120, 79, 110, 101, 82, 117, 109, 98,
			108, 101, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 96, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 80, 108, 117, 103, 105,
			110, 115, 92, 88, 73, 110, 112, 117, 116, 92,
			88, 73, 110, 112, 117, 116, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 46, 99, 115, 0,
			0, 0, 2, 0, 0, 0, 103, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 105,
			110, 112, 117, 116, 115, 121, 115, 116, 101, 109,
			64, 49, 46, 55, 46, 48, 92, 73, 110, 112,
			117, 116, 83, 121, 115, 116, 101, 109, 92, 80,
			108, 117, 103, 105, 110, 115, 92, 88, 73, 110,
			112, 117, 116, 92, 88, 73, 110, 112, 117, 116,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			87, 105, 110, 100, 111, 119, 115, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 93, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			80, 108, 117, 103, 105, 110, 115, 92, 88, 73,
			110, 112, 117, 116, 92, 88, 73, 110, 112, 117,
			116, 83, 117, 112, 112, 111, 114, 116, 46, 99,
			115, 0, 0, 0, 2, 0, 0, 0, 96, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 88,
			82, 92, 67, 111, 110, 116, 114, 111, 108, 115,
			92, 80, 111, 115, 101, 67, 111, 110, 116, 114,
			111, 108, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 92, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 80, 108, 117, 103, 105,
			110, 115, 92, 88, 82, 92, 68, 101, 118, 105,
			99, 101, 115, 92, 71, 111, 111, 103, 108, 101,
			86, 82, 46, 99, 115, 0, 0, 0, 6, 0,
			0, 0, 90, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 80, 108, 117, 103, 105,
			110, 115, 92, 88, 82, 92, 68, 101, 118, 105,
			99, 101, 115, 92, 79, 99, 117, 108, 117, 115,
			46, 99, 115, 0, 0, 0, 7, 0, 0, 0,
			90, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 80, 108, 117, 103, 105, 110, 115,
			92, 88, 82, 92, 68, 101, 118, 105, 99, 101,
			115, 92, 79, 112, 101, 110, 86, 82, 46, 99,
			115, 0, 0, 0, 3, 0, 0, 0, 93, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 88,
			82, 92, 68, 101, 118, 105, 99, 101, 115, 92,
			87, 105, 110, 100, 111, 119, 115, 77, 82, 46,
			99, 115, 0, 0, 0, 3, 0, 0, 0, 91,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 80, 108, 117, 103, 105, 110, 115, 92,
			88, 82, 92, 71, 101, 110, 101, 114, 105, 99,
			88, 82, 68, 101, 118, 105, 99, 101, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 98, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 88,
			82, 92, 72, 97, 112, 116, 105, 99, 115, 92,
			66, 117, 102, 102, 101, 114, 101, 100, 82, 117,
			109, 98, 108, 101, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 112, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 88, 82, 92, 72, 97,
			112, 116, 105, 99, 115, 92, 71, 101, 116, 67,
			117, 114, 114, 101, 110, 116, 72, 97, 112, 116,
			105, 99, 83, 116, 97, 116, 101, 67, 111, 109,
			109, 97, 110, 100, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 112, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 88, 82, 92, 72, 97,
			112, 116, 105, 99, 115, 92, 71, 101, 116, 72,
			97, 112, 116, 105, 99, 67, 97, 112, 97, 98,
			105, 108, 105, 116, 105, 101, 115, 67, 111, 109,
			109, 97, 110, 100, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 110, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 105, 110, 112,
			117, 116, 115, 121, 115, 116, 101, 109, 64, 49,
			46, 55, 46, 48, 92, 73, 110, 112, 117, 116,
			83, 121, 115, 116, 101, 109, 92, 80, 108, 117,
			103, 105, 110, 115, 92, 88, 82, 92, 72, 97,
			112, 116, 105, 99, 115, 92, 83, 101, 110, 100,
			66, 117, 102, 102, 101, 114, 101, 100, 72, 97,
			112, 116, 105, 99, 115, 67, 111, 109, 109, 97,
			110, 100, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 108, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 105, 110, 112, 117, 116,
			115, 121, 115, 116, 101, 109, 64, 49, 46, 55,
			46, 48, 92, 73, 110, 112, 117, 116, 83, 121,
			115, 116, 101, 109, 92, 80, 108, 117, 103, 105,
			110, 115, 92, 88, 82, 92, 72, 97, 112, 116,
			105, 99, 115, 92, 83, 101, 110, 100, 72, 97,
			112, 116, 105, 99, 73, 109, 112, 117, 108, 115,
			101, 67, 111, 109, 109, 97, 110, 100, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 93, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 88,
			82, 92, 84, 114, 97, 99, 107, 101, 100, 80,
			111, 115, 101, 68, 114, 105, 118, 101, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 91,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 105, 110, 112, 117, 116, 115, 121, 115,
			116, 101, 109, 64, 49, 46, 55, 46, 48, 92,
			73, 110, 112, 117, 116, 83, 121, 115, 116, 101,
			109, 92, 80, 108, 117, 103, 105, 110, 115, 92,
			88, 82, 92, 88, 82, 76, 97, 121, 111, 117,
			116, 66, 117, 105, 108, 100, 101, 114, 46, 99,
			115, 0, 0, 0, 9, 0, 0, 0, 85, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 80, 108, 117, 103, 105, 110, 115, 92, 88,
			82, 92, 88, 82, 83, 117, 112, 112, 111, 114,
			116, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 98, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 83, 116, 97, 116, 101, 92,
			73, 73, 110, 112, 117, 116, 83, 116, 97, 116,
			101, 67, 97, 108, 108, 98, 97, 99, 107, 82,
			101, 99, 101, 105, 118, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 95, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			83, 116, 97, 116, 101, 92, 73, 73, 110, 112,
			117, 116, 83, 116, 97, 116, 101, 67, 104, 97,
			110, 103, 101, 77, 111, 110, 105, 116, 111, 114,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			90, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 105, 110, 112, 117, 116, 115, 121,
			115, 116, 101, 109, 64, 49, 46, 55, 46, 48,
			92, 73, 110, 112, 117, 116, 83, 121, 115, 116,
			101, 109, 92, 83, 116, 97, 116, 101, 92, 73,
			73, 110, 112, 117, 116, 83, 116, 97, 116, 101,
			84, 121, 112, 101, 73, 110, 102, 111, 46, 99,
			115, 0, 0, 0, 2, 0, 0, 0, 81, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 105, 110, 112, 117, 116, 115, 121, 115, 116,
			101, 109, 64, 49, 46, 55, 46, 48, 92, 73,
			110, 112, 117, 116, 83, 121, 115, 116, 101, 109,
			92, 83, 116, 97, 116, 101, 92, 73, 110, 112,
			117, 116, 83, 116, 97, 116, 101, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 86, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			83, 116, 97, 116, 101, 92, 73, 110, 112, 117,
			116, 83, 116, 97, 116, 101, 66, 108, 111, 99,
			107, 46, 99, 115, 0, 0, 0, 2, 0, 0,
			0, 88, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 105, 110, 112, 117, 116, 115,
			121, 115, 116, 101, 109, 64, 49, 46, 55, 46,
			48, 92, 73, 110, 112, 117, 116, 83, 121, 115,
			116, 101, 109, 92, 83, 116, 97, 116, 101, 92,
			73, 110, 112, 117, 116, 83, 116, 97, 116, 101,
			66, 117, 102, 102, 101, 114, 115, 46, 99, 115,
			0, 0, 0, 7, 0, 0, 0, 88, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			105, 110, 112, 117, 116, 115, 121, 115, 116, 101,
			109, 64, 49, 46, 55, 46, 48, 92, 73, 110,
			112, 117, 116, 83, 121, 115, 116, 101, 109, 92,
			83, 116, 97, 116, 101, 92, 73, 110, 112, 117,
			116, 83, 116, 97, 116, 101, 72, 105, 115, 116,
		

BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.CoreUtils.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using Unity.Collections;
using Unity.XR.CoreUtils.Bindings.Variables;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.InputSystem.XR;
using UnityEngine.SceneManagement;
using UnityEngine.Serialization;
using UnityEngine.SpatialTracking;
using UnityEngine.UI;
using UnityEngine.XR;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyVersion("0.0.0.0")]
[CompilerGenerated]
[EditorBrowsable(EditorBrowsableState.Never)]
[GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)]
internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1
{
	private struct MonoScriptData
	{
		public byte[] FilePathsData;

		public byte[] TypesData;

		public int TotalTypes;

		public int TotalFiles;

		public bool IsEditorOnly;
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private static MonoScriptData Get()
	{
		MonoScriptData result = default(MonoScriptData);
		result.FilePathsData = new byte[6425]
		{
			0, 0, 0, 1, 0, 0, 0, 106, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 65, 82,
			84, 114, 97, 99, 107, 97, 98, 108, 101, 115,
			80, 97, 114, 101, 110, 116, 84, 114, 97, 110,
			115, 102, 111, 114, 109, 67, 104, 97, 110, 103,
			101, 100, 69, 118, 101, 110, 116, 65, 114, 103,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 94, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 99, 111, 114,
			101, 45, 117, 116, 105, 108, 115, 64, 50, 46,
			50, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 116, 116, 114, 105, 98, 117, 116,
			101, 115, 92, 69, 110, 117, 109, 68, 105, 115,
			112, 108, 97, 121, 65, 116, 116, 114, 105, 98,
			117, 116, 101, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 96, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 65, 116, 116, 114, 105, 98,
			117, 116, 101, 115, 92, 70, 108, 97, 103, 115,
			80, 114, 111, 112, 101, 114, 116, 121, 65, 116,
			116, 114, 105, 98, 117, 116, 101, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 91, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 65, 116,
			116, 114, 105, 98, 117, 116, 101, 115, 92, 82,
			101, 97, 100, 79, 110, 108, 121, 65, 116, 116,
			114, 105, 98, 117, 116, 101, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 105, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 99, 111, 114, 101, 45, 117, 116, 105,
			108, 115, 64, 50, 46, 50, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 116, 116,
			114, 105, 98, 117, 116, 101, 115, 92, 83, 99,
			114, 105, 112, 116, 97, 98, 108, 101, 83, 101,
			116, 116, 105, 110, 103, 115, 80, 97, 116, 104,
			65, 116, 116, 114, 105, 98, 117, 116, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 85,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 99, 111, 114, 101, 45,
			117, 116, 105, 108, 115, 64, 50, 46, 50, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			66, 105, 110, 100, 105, 110, 103, 115, 92, 66,
			105, 110, 100, 105, 110, 103, 115, 71, 114, 111,
			117, 112, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 84, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 99, 111,
			114, 101, 45, 117, 116, 105, 108, 115, 64, 50,
			46, 50, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 66, 105, 110, 100, 105, 110, 103,
			115, 92, 69, 118, 101, 110, 116, 66, 105, 110,
			100, 105, 110, 103, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 85, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 66, 105, 110, 100, 105,
			110, 103, 115, 92, 73, 69, 118, 101, 110, 116,
			66, 105, 110, 100, 105, 110, 103, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 94, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 66, 105,
			110, 100, 105, 110, 103, 115, 92, 86, 97, 114,
			105, 97, 98, 108, 101, 115, 92, 66, 105, 110,
			100, 97, 98, 108, 101, 69, 110, 117, 109, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 98,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 99, 111, 114, 101, 45,
			117, 116, 105, 108, 115, 64, 50, 46, 50, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			66, 105, 110, 100, 105, 110, 103, 115, 92, 86,
			97, 114, 105, 97, 98, 108, 101, 115, 92, 66,
			105, 110, 100, 97, 98, 108, 101, 86, 97, 114,
			105, 97, 98, 108, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 103, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 99, 111, 114, 101, 45, 117, 116, 105, 108,
			115, 64, 50, 46, 50, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 66, 105, 110, 100,
			105, 110, 103, 115, 92, 86, 97, 114, 105, 97,
			98, 108, 101, 115, 92, 66, 105, 110, 100, 97,
			98, 108, 101, 86, 97, 114, 105, 97, 98, 108,
			101, 65, 108, 108, 111, 99, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 102, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 99, 111, 114, 101, 45, 117, 116, 105,
			108, 115, 64, 50, 46, 50, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 66, 105, 110,
			100, 105, 110, 103, 115, 92, 86, 97, 114, 105,
			97, 98, 108, 101, 115, 92, 66, 105, 110, 100,
			97, 98, 108, 101, 86, 97, 114, 105, 97, 98,
			108, 101, 66, 97, 115, 101, 46, 99, 115, 0,
			0, 0, 2, 0, 0, 0, 111, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 99, 111, 114, 101, 45, 117, 116, 105,
			108, 115, 64, 50, 46, 50, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 66, 105, 110,
			100, 105, 110, 103, 115, 92, 86, 97, 114, 105,
			97, 98, 108, 101, 115, 92, 66, 105, 110, 100,
			97, 98, 108, 101, 86, 97, 114, 105, 97, 98,
			108, 101, 84, 97, 115, 107, 80, 114, 101, 100,
			105, 99, 97, 116, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 107, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 99, 111, 114, 101, 45, 117, 116, 105, 108,
			115, 64, 50, 46, 50, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 66, 105, 110, 100,
			105, 110, 103, 115, 92, 86, 97, 114, 105, 97,
			98, 108, 101, 115, 92, 73, 82, 101, 97, 100,
			79, 110, 108, 121, 66, 105, 110, 100, 97, 98,
			108, 101, 86, 97, 114, 105, 97, 98, 108, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			74, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 99, 111, 114, 101,
			45, 117, 116, 105, 108, 115, 64, 50, 46, 50,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 66, 111, 117, 110, 100, 115, 85, 116, 105,
			108, 115, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 84, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 99, 111,
			114, 101, 45, 117, 116, 105, 108, 115, 64, 50,
			46, 50, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 67, 97, 99, 104, 101, 100, 67,
			111, 109, 112, 111, 110, 101, 110, 116, 70, 105,
			108, 116, 101, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 77, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 67, 111, 108, 108, 101,
			99, 116, 105, 111, 110, 80, 111, 111, 108, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 86,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 99, 111, 114, 101, 45,
			117, 116, 105, 108, 115, 64, 50, 46, 50, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			67, 111, 108, 108, 101, 99, 116, 105, 111, 110,
			115, 92, 72, 97, 115, 104, 83, 101, 116, 76,
			105, 115, 116, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 77, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 67, 111, 109, 112, 111, 110,
			101, 110, 116, 85, 116, 105, 108, 115, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 89, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 68,
			97, 116, 117, 109, 115, 92, 65, 110, 105, 109,
			97, 116, 105, 111, 110, 67, 117, 114, 118, 101,
			68, 97, 116, 117, 109, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 97, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 99, 111, 114, 101, 45, 117, 116, 105, 108,
			115, 64, 50, 46, 50, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 68, 97, 116, 117,
			109, 115, 92, 65, 110, 105, 109, 97, 116, 105,
			111, 110, 67, 117, 114, 118, 101, 68, 97, 116,
			117, 109, 80, 114, 111, 112, 101, 114, 116, 121,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			75, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 99, 111, 114, 101,
			45, 117, 116, 105, 108, 115, 64, 50, 46, 50,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 68, 97, 116, 117, 109, 115, 92, 68, 97,
			116, 117, 109, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 83, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 68, 97, 116, 117, 109, 115,
			92, 68, 97, 116, 117, 109, 80, 114, 111, 112,
			101, 114, 116, 121, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 80, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 68, 97, 116, 117, 109,
			115, 92, 70, 108, 111, 97, 116, 68, 97, 116,
			117, 109, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 88, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 99, 111,
			114, 101, 45, 117, 116, 105, 108, 115, 64, 50,
			46, 50, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 68, 97, 116, 117, 109, 115, 92,
			70, 108, 111, 97, 116, 68, 97, 116, 117, 109,
			80, 114, 111, 112, 101, 114, 116, 121, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 78, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 68,
			97, 116, 117, 109, 115, 92, 73, 110, 116, 68,
			97, 116, 117, 109, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 86, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 68, 97, 116, 117, 109,
			115, 92, 73, 110, 116, 68, 97, 116, 117, 109,
			80, 114, 111, 112, 101, 114, 116, 121, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 81, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 68,
			97, 116, 117, 109, 115, 92, 83, 116, 114, 105,
			110, 103, 68, 97, 116, 117, 109, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 89, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 68, 97,
			116, 117, 109, 115, 92, 83, 116, 114, 105, 110,
			103, 68, 97, 116, 117, 109, 80, 114, 111, 112,
			101, 114, 116, 121, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 73, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 69, 110, 117, 109, 86,
			97, 108, 117, 101, 115, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 90, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 99, 111, 114, 101, 45, 117, 116, 105, 108,
			115, 64, 50, 46, 50, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 69, 120, 116, 101,
			110, 115, 105, 111, 110, 115, 92, 66, 111, 117,
			110, 100, 115, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 90, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 69, 120, 116, 101, 110, 115,
			105, 111, 110, 115, 92, 67, 97, 109, 101, 114,
			97, 69, 120, 116, 101, 110, 115, 105, 111, 110,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 94, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 99, 111, 114,
			101, 45, 117, 116, 105, 108, 115, 64, 50, 46,
			50, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 69, 120, 116, 101, 110, 115, 105, 111,
			110, 115, 92, 67, 111, 108, 108, 101, 99, 116,
			105, 111, 110, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 94, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 69, 120, 116, 101, 110, 115,
			105, 111, 110, 115, 92, 68, 105, 99, 116, 105,
			111, 110, 97, 114, 121, 69, 120, 116, 101, 110,
			115, 105, 111, 110, 115, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 94, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 99, 111, 114, 101, 45, 117, 116, 105, 108,
			115, 64, 50, 46, 50, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 69, 120, 116, 101,
			110, 115, 105, 111, 110, 115, 92, 71, 97, 109,
			101, 79, 98, 106, 101, 99, 116, 69, 120, 116,
			101, 110, 115, 105, 111, 110, 115, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 88, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 69, 120,
			116, 101, 110, 115, 105, 111, 110, 115, 92, 71,
			117, 105, 100, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 91, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 69, 120, 116, 101, 110, 115,
			105, 111, 110, 115, 92, 72, 97, 115, 104, 83,
			101, 116, 69, 120, 116, 101, 110, 115, 105, 111,
			110, 115, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 93, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 99, 111,
			114, 101, 45, 117, 116, 105, 108, 115, 64, 50,
			46, 50, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 92, 76, 97, 121, 101, 114, 77,
			97, 115, 107, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 88, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 69, 120, 116, 101, 110, 115,
			105, 111, 110, 115, 92, 76, 105, 115, 116, 69,
			120, 116, 101, 110, 115, 105, 111, 110, 115, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 97,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 99, 111, 114, 101, 45,
			117, 116, 105, 108, 115, 64, 50, 46, 50, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			92, 77, 111, 110, 111, 66, 101, 104, 97, 118,
			105, 111, 117, 114, 69, 120, 116, 101, 110, 115,
			105, 111, 110, 115, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 88, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 69, 120, 116, 101, 110,
			115, 105, 111, 110, 115, 92, 80, 111, 115, 101,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			94, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 99, 111, 114, 101,
			45, 117, 116, 105, 108, 115, 64, 50, 46, 50,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 69, 120, 116, 101, 110, 115, 105, 111, 110,
			115, 92, 81, 117, 97, 116, 101, 114, 110, 105,
			111, 110, 69, 120, 116, 101, 110, 115, 105, 111,
			110, 115, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 93, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 99, 111,
			114, 101, 45, 117, 116, 105, 108, 115, 64, 50,
			46, 50, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 92, 83, 116, 111, 112, 119, 97,
			116, 99, 104, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 90, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 69, 120, 116, 101, 110, 115,
			105, 111, 110, 115, 92, 83, 116, 114, 105, 110,
			103, 69, 120, 116, 101, 110, 115, 105, 111, 110,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 93, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 99, 111, 114,
			101, 45, 117, 116, 105, 108, 115, 64, 50, 46,
			50, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 69, 120, 116, 101, 110, 115, 105, 111,
			110, 115, 92, 84, 114, 97, 110, 115, 102, 111,
			114, 109, 69, 120, 116, 101, 110, 115, 105, 111,
			110, 115, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 88, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 99, 111,
			114, 101, 45, 117, 116, 105, 108, 115, 64, 50,
			46, 50, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 92, 84, 121, 112, 101, 69, 120,
			116, 101, 110, 115, 105, 111, 110, 115, 46, 99,
			115, 0, 0, 0, 9, 0, 0, 0, 94, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 69,
			120, 116, 101, 110, 115, 105, 111, 110, 115, 92,
			85, 110, 105, 116, 121, 69, 118, 101, 110, 116,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			91, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 99, 111, 114, 101,
			45, 117, 116, 105, 108, 115, 64, 50, 46, 50,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 69, 120, 116, 101, 110, 115, 105, 111, 110,
			115, 92, 86, 101, 99, 116, 111, 114, 50, 69,
			120, 116, 101, 110, 115, 105, 111, 110, 115, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 91,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 99, 111, 114, 101, 45,
			117, 116, 105, 108, 115, 64, 50, 46, 50, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			92, 86, 101, 99, 116, 111, 114, 51, 69, 120,
			116, 101, 110, 115, 105, 111, 110, 115, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 78, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 71,
			97, 109, 101, 79, 98, 106, 101, 99, 116, 85,
			116, 105, 108, 115, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 76, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 71, 101, 111, 109, 101,
			116, 114, 121, 85, 116, 105, 108, 115, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 71, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 71,
			117, 105, 100, 85, 116, 105, 108, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 75, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 72, 97,
			115, 104, 67, 111, 100, 101, 85, 116, 105, 108,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			76, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 99, 111, 114, 101,
			45, 117, 116, 105, 108, 115, 64, 50, 46, 50,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 77, 97, 116, 101, 114, 105, 97, 108, 85,
			116, 105, 108, 115, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 74, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 77, 97, 116, 104, 85,
			116, 105, 108, 105, 116, 121, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 79, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 99, 111, 114, 101, 45, 117, 116, 105,
			108, 115, 64, 50, 46, 50, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 78, 97, 116,
			105, 118, 101, 65, 114, 114, 97, 121, 85, 116,
			105, 108, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 73, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 79, 98, 106, 101, 99, 116,
			80, 111, 111, 108, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 80, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			99, 111, 114, 101, 45, 117, 116, 105, 108, 115,
			64, 50, 46, 50, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 79, 110, 68, 101, 115,
			116, 114, 111, 121, 78, 111, 116, 105, 102, 105,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 78, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 99, 111,
			114, 101, 45, 117, 116, 105, 108, 115, 64, 50,
			46, 50, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 82, 101, 102, 108, 101, 99, 116,
			105, 111, 110, 85, 116, 105, 108, 115, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 81, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 83,
			99, 114, 105, 112, 116, 97, 98, 108, 101, 83,
			101, 116, 116, 105, 110, 103, 115, 46, 99, 115,
			0, 0, 0, 2, 0, 0, 0, 85, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 83, 99,
			114, 105, 112, 116, 97, 98, 108, 101, 83, 101,
			116, 116, 105, 110, 103, 115, 66, 97, 115, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			79, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 99, 111, 114, 101,
			45, 117, 116, 105, 108, 115, 64, 50, 46, 50,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 83, 101, 114, 105, 97, 108, 105, 122, 97,
			98, 108, 101, 71, 117, 105, 100, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 83, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 99, 111, 114, 101, 45, 117, 116,
			105, 108, 115, 64, 50, 46, 50, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 83, 101,
			114, 105, 97, 108, 105, 122, 97, 98, 108, 101,
			71, 117, 105, 100, 85, 116, 105, 108, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 75, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 84,
			101, 120, 116, 117, 114, 101, 85, 116, 105, 108,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 72, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 99, 111, 114,
			101, 45, 117, 116, 105, 108, 115, 64, 50, 46,
			50, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 85, 110, 100, 111, 66, 108, 111, 99,
			107, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 79, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 99, 111, 114,
			101, 45, 117, 116, 105, 108, 115, 64, 50, 46,
			50, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 85, 110, 105, 116, 121, 79, 98, 106,
			101, 99, 116, 85, 116, 105, 108, 115, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 77, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 99, 111, 114, 101, 45, 117,
			116, 105, 108, 115, 64, 50, 46, 50, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 88,
			82, 76, 111, 103, 103, 105, 110, 103, 85, 116,
			105, 108, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 71, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 99,
			111, 114, 101, 45, 117, 116, 105, 108, 115, 64,
			50, 46, 50, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 88, 82, 79, 114, 105, 103,
			105, 110, 46, 99, 115
		};
		result.TypesData = new byte[3490]
		{
			0, 0, 0, 0, 62, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 65, 82, 84, 114, 97, 99,
			107, 97, 98, 108, 101, 115, 80, 97, 114, 101,
			110, 116, 84, 114, 97, 110, 115, 102, 111, 114,
			109, 67, 104, 97, 110, 103, 101, 100, 69, 118,
			101, 110, 116, 65, 114, 103, 115, 0, 0, 0,
			0, 43, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			46, 71, 85, 73, 124, 69, 110, 117, 109, 68,
			105, 115, 112, 108, 97, 121, 65, 116, 116, 114,
			105, 98, 117, 116, 101, 0, 0, 0, 0, 45,
			85, 110, 105, 116, 121, 46, 88, 82, 46, 67,
			111, 114, 101, 85, 116, 105, 108, 115, 46, 71,
			85, 73, 124, 70, 108, 97, 103, 115, 80, 114,
			111, 112, 101, 114, 116, 121, 65, 116, 116, 114,
			105, 98, 117, 116, 101, 0, 0, 0, 0, 36,
			85, 110, 105, 116, 121, 46, 88, 82, 46, 67,
			111, 114, 101, 85, 116, 105, 108, 115, 124, 82,
			101, 97, 100, 79, 110, 108, 121, 65, 116, 116,
			114, 105, 98, 117, 116, 101, 0, 0, 0, 0,
			50, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 124,
			83, 99, 114, 105, 112, 116, 97, 98, 108, 101,
			83, 101, 116, 116, 105, 110, 103, 115, 80, 97,
			116, 104, 65, 116, 116, 114, 105, 98, 117, 116,
			101, 0, 0, 0, 0, 41, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 46, 66, 105, 110, 100, 105,
			110, 103, 115, 124, 66, 105, 110, 100, 105, 110,
			103, 115, 71, 114, 111, 117, 112, 0, 0, 0,
			0, 40, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			46, 66, 105, 110, 100, 105, 110, 103, 115, 124,
			69, 118, 101, 110, 116, 66, 105, 110, 100, 105,
			110, 103, 0, 0, 0, 0, 41, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 46, 66, 105, 110, 100,
			105, 110, 103, 115, 124, 73, 69, 118, 101, 110,
			116, 66, 105, 110, 100, 105, 110, 103, 0, 0,
			0, 0, 50, 85, 110, 105, 116, 121, 46, 88,
			82, 46, 67, 111, 114, 101, 85, 116, 105, 108,
			115, 46, 66, 105, 110, 100, 105, 110, 103, 115,
			46, 86, 97, 114, 105, 97, 98, 108, 101, 115,
			124, 66, 105, 110, 100, 97, 98, 108, 101, 69,
			110, 117, 109, 0, 0, 0, 0, 54, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 46, 66, 105, 110,
			100, 105, 110, 103, 115, 46, 86, 97, 114, 105,
			97, 98, 108, 101, 115, 124, 66, 105, 110, 100,
			97, 98, 108, 101, 86, 97, 114, 105, 97, 98,
			108, 101, 0, 0, 0, 0, 59, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 46, 66, 105, 110, 100,
			105, 110, 103, 115, 46, 86, 97, 114, 105, 97,
			98, 108, 101, 115, 124, 66, 105, 110, 100, 97,
			98, 108, 101, 86, 97, 114, 105, 97, 98, 108,
			101, 65, 108, 108, 111, 99, 0, 0, 0, 0,
			58, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 46,
			66, 105, 110, 100, 105, 110, 103, 115, 46, 86,
			97, 114, 105, 97, 98, 108, 101, 115, 124, 66,
			105, 110, 100, 97, 98, 108, 101, 86, 97, 114,
			105, 97, 98, 108, 101, 66, 97, 115, 101, 0,
			0, 0, 0, 67, 85, 110, 105, 116, 121, 46,
			88, 82, 46, 67, 111, 114, 101, 85, 116, 105,
			108, 115, 46, 66, 105, 110, 100, 105, 110, 103,
			115, 46, 86, 97, 114, 105, 97, 98, 108, 101,
			115, 124, 66, 105, 110, 100, 97, 98, 108, 101,
			86, 97, 114, 105, 97, 98, 108, 101, 84, 97,
			115, 107, 80, 114, 101, 100, 105, 99, 97, 116,
			101, 0, 0, 0, 0, 63, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 46, 66, 105, 110, 100, 105,
			110, 103, 115, 46, 86, 97, 114, 105, 97, 98,
			108, 101, 115, 124, 66, 105, 110, 100, 97, 98,
			108, 101, 86, 97, 114, 105, 97, 98, 108, 101,
			84, 97, 115, 107, 83, 116, 97, 116, 101, 0,
			0, 0, 0, 63, 85, 110, 105, 116, 121, 46,
			88, 82, 46, 67, 111, 114, 101, 85, 116, 105,
			108, 115, 46, 66, 105, 110, 100, 105, 110, 103,
			115, 46, 86, 97, 114, 105, 97, 98, 108, 101,
			115, 124, 73, 82, 101, 97, 100, 79, 110, 108,
			121, 66, 105, 110, 100, 97, 98, 108, 101, 86,
			97, 114, 105, 97, 98, 108, 101, 0, 0, 0,
			0, 30, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			124, 66, 111, 117, 110, 100, 115, 85, 116, 105,
			108, 115, 0, 0, 0, 0, 33, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 124, 73, 67, 111, 109,
			112, 111, 110, 101, 110, 116, 72, 111, 115, 116,
			0, 0, 0, 0, 40, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 67, 97, 99, 104, 101, 100,
			67, 111, 109, 112, 111, 110, 101, 110, 116, 70,
			105, 108, 116, 101, 114, 0, 0, 0, 0, 33,
			85, 110, 105, 116, 121, 46, 88, 82, 46, 67,
			111, 114, 101, 85, 116, 105, 108, 115, 124, 67,
			111, 108, 108, 101, 99, 116, 105, 111, 110, 80,
			111, 111, 108, 0, 0, 0, 0, 42, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 46, 67, 111, 108,
			108, 101, 99, 116, 105, 111, 110, 115, 124, 72,
			97, 115, 104, 83, 101, 116, 76, 105, 115, 116,
			1, 0, 0, 0, 33, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 67, 111, 109, 112, 111, 110,
			101, 110, 116, 85, 116, 105, 108, 115, 1, 0,
			0, 0, 33, 85, 110, 105, 116, 121, 46, 88,
			82, 46, 67, 111, 114, 101, 85, 116, 105, 108,
			115, 124, 67, 111, 109, 112, 111, 110, 101, 110,
			116, 85, 116, 105, 108, 115, 0, 0, 0, 0,
			45, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 46,
			68, 97, 116, 117, 109, 115, 124, 65, 110, 105,
			109, 97, 116, 105, 111, 110, 67, 117, 114, 118,
			101, 68, 97, 116, 117, 109, 0, 0, 0, 0,
			53, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 46,
			68, 97, 116, 117, 109, 115, 124, 65, 110, 105,
			109, 97, 116, 105, 111, 110, 67, 117, 114, 118,
			101, 68, 97, 116, 117, 109, 80, 114, 111, 112,
			101, 114, 116, 121, 0, 0, 0, 0, 31, 85,
			110, 105, 116, 121, 46, 88, 82, 46, 67, 111,
			114, 101, 85, 116, 105, 108, 115, 46, 68, 97,
			116, 117, 109, 115, 124, 68, 97, 116, 117, 109,
			0, 0, 0, 0, 39, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 46, 68, 97, 116, 117, 109, 115,
			124, 68, 97, 116, 117, 109, 80, 114, 111, 112,
			101, 114, 116, 121, 0, 0, 0, 0, 36, 85,
			110, 105, 116, 121, 46, 88, 82, 46, 67, 111,
			114, 101, 85, 116, 105, 108, 115, 46, 68, 97,
			116, 117, 109, 115, 124, 70, 108, 111, 97, 116,
			68, 97, 116, 117, 109, 0, 0, 0, 0, 44,
			85, 110, 105, 116, 121, 46, 88, 82, 46, 67,
			111, 114, 101, 85, 116, 105, 108, 115, 46, 68,
			97, 116, 117, 109, 115, 124, 70, 108, 111, 97,
			116, 68, 97, 116, 117, 109, 80, 114, 111, 112,
			101, 114, 116, 121, 0, 0, 0, 0, 34, 85,
			110, 105, 116, 121, 46, 88, 82, 46, 67, 111,
			114, 101, 85, 116, 105, 108, 115, 46, 68, 97,
			116, 117, 109, 115, 124, 73, 110, 116, 68, 97,
			116, 117, 109, 0, 0, 0, 0, 42, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 46, 68, 97, 116,
			117, 109, 115, 124, 73, 110, 116, 68, 97, 116,
			117, 109, 80, 114, 111, 112, 101, 114, 116, 121,
			0, 0, 0, 0, 37, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 46, 68, 97, 116, 117, 109, 115,
			124, 83, 116, 114, 105, 110, 103, 68, 97, 116,
			117, 109, 0, 0, 0, 0, 45, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 46, 68, 97, 116, 117,
			109, 115, 124, 83, 116, 114, 105, 110, 103, 68,
			97, 116, 117, 109, 80, 114, 111, 112, 101, 114,
			116, 121, 0, 0, 0, 0, 29, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 124, 69, 110, 117, 109,
			86, 97, 108, 117, 101, 115, 0, 0, 0, 0,
			35, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 124,
			66, 111, 117, 110, 100, 115, 69, 120, 116, 101,
			110, 115, 105, 111, 110, 115, 0, 0, 0, 0,
			35, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 124,
			67, 97, 109, 101, 114, 97, 69, 120, 116, 101,
			110, 115, 105, 111, 110, 115, 0, 0, 0, 0,
			39, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 124,
			67, 111, 108, 108, 101, 99, 116, 105, 111, 110,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			0, 0, 0, 0, 39, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 68, 105, 99, 116, 105, 111,
			110, 97, 114, 121, 69, 120, 116, 101, 110, 115,
			105, 111, 110, 115, 0, 0, 0, 0, 39, 85,
			110, 105, 116, 121, 46, 88, 82, 46, 67, 111,
			114, 101, 85, 116, 105, 108, 115, 124, 71, 97,
			109, 101, 79, 98, 106, 101, 99, 116, 69, 120,
			116, 101, 110, 115, 105, 111, 110, 115, 0, 0,
			0, 0, 33, 85, 110, 105, 116, 121, 46, 88,
			82, 46, 67, 111, 114, 101, 85, 116, 105, 108,
			115, 124, 71, 117, 105, 100, 69, 120, 116, 101,
			110, 115, 105, 111, 110, 115, 0, 0, 0, 0,
			36, 85, 110, 105, 116, 121, 46, 88, 82, 46,
			67, 111, 114, 101, 85, 116, 105, 108, 115, 124,
			72, 97, 115, 104, 83, 101, 116, 69, 120, 116,
			101, 110, 115, 105, 111, 110, 115, 0, 0, 0,
			0, 38, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			124, 76, 97, 121, 101, 114, 77, 97, 115, 107,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			0, 0, 0, 0, 33, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 76, 105, 115, 116, 69, 120,
			116, 101, 110, 115, 105, 111, 110, 115, 0, 0,
			0, 0, 42, 85, 110, 105, 116, 121, 46, 88,
			82, 46, 67, 111, 114, 101, 85, 116, 105, 108,
			115, 124, 77, 111, 110, 111, 66, 101, 104, 97,
			118, 105, 111, 117, 114, 69, 120, 116, 101, 110,
			115, 105, 111, 110, 115, 0, 0, 0, 0, 33,
			85, 110, 105, 116, 121, 46, 88, 82, 46, 67,
			111, 114, 101, 85, 116, 105, 108, 115, 124, 80,
			111, 115, 101, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 0, 0, 0, 0, 39, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 124, 81, 117, 97,
			116, 101, 114, 110, 105, 111, 110, 69, 120, 116,
			101, 110, 115, 105, 111, 110, 115, 0, 0, 0,
			0, 38, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			124, 83, 116, 111, 112, 119, 97, 116, 99, 104,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			0, 0, 0, 0, 35, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 83, 116, 114, 105, 110, 103,
			69, 120, 116, 101, 110, 115, 105, 111, 110, 115,
			0, 0, 0, 0, 38, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 84, 114, 97, 110, 115, 102,
			111, 114, 109, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 0, 0, 0, 0, 33, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 124, 84, 121, 112,
			101, 69, 120, 116, 101, 110, 115, 105, 111, 110,
			115, 0, 0, 0, 0, 33, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 124, 66, 111, 111, 108, 85,
			110, 105, 116, 121, 69, 118, 101, 110, 116, 0,
			0, 0, 0, 34, 85, 110, 105, 116, 121, 46,
			88, 82, 46, 67, 111, 114, 101, 85, 116, 105,
			108, 115, 124, 70, 108, 111, 97, 116, 85, 110,
			105, 116, 121, 69, 118, 101, 110, 116, 0, 0,
			0, 0, 36, 85, 110, 105, 116, 121, 46, 88,
			82, 46, 67, 111, 114, 101, 85, 116, 105, 108,
			115, 124, 86, 101, 99, 116, 111, 114, 50, 85,
			110, 105, 116, 121, 69, 118, 101, 110, 116, 0,
			0, 0, 0, 36, 85, 110, 105, 116, 121, 46,
			88, 82, 46, 67, 111, 114, 101, 85, 116, 105,
			108, 115, 124, 86, 101, 99, 116, 111, 114, 51,
			85, 110, 105, 116, 121, 69, 118, 101, 110, 116,
			0, 0, 0, 0, 36, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 86, 101, 99, 116, 111, 114,
			52, 85, 110, 105, 116, 121, 69, 118, 101, 110,
			116, 0, 0, 0, 0, 39, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 124, 81, 117, 97, 116, 101,
			114, 110, 105, 111, 110, 85, 110, 105, 116, 121,
			69, 118, 101, 110, 116, 0, 0, 0, 0, 32,
			85, 110, 105, 116, 121, 46, 88, 82, 46, 67,
			111, 114, 101, 85, 116, 105, 108, 115, 124, 73,
			110, 116, 85, 110, 105, 116, 121, 69, 118, 101,
			110, 116, 0, 0, 0, 0, 34, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 124, 67, 111, 108, 111,
			114, 85, 110, 105, 116, 121, 69, 118, 101, 110,
			116, 0, 0, 0, 0, 35, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 124, 83, 116, 114, 105, 110,
			103, 85, 110, 105, 116, 121, 69, 118, 101, 110,
			116, 0, 0, 0, 0, 36, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 124, 86, 101, 99, 116, 111,
			114, 50, 69, 120, 116, 101, 110, 115, 105, 111,
			110, 115, 0, 0, 0, 0, 36, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 124, 86, 101, 99, 116,
			111, 114, 51, 69, 120, 116, 101, 110, 115, 105,
			111, 110, 115, 0, 0, 0, 0, 34, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 124, 71, 97, 109,
			101, 79, 98, 106, 101, 99, 116, 85, 116, 105,
			108, 115, 0, 0, 0, 0, 32, 85, 110, 105,
			116, 121, 46, 88, 82, 46, 67, 111, 114, 101,
			85, 116, 105, 108, 115, 124, 71, 101, 111, 109,
			101, 116, 114, 121, 85, 116, 105, 108, 115, 0,
			0, 0, 0, 27, 85, 110, 105, 116, 121, 46,
			88, 82, 46, 67, 111, 114, 101, 85, 116, 105,
			108, 115, 124, 71, 117, 105, 100, 85, 116, 105,
			108, 0, 0, 0, 0, 31, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 124, 72, 97, 115, 104, 67,
			111, 100, 101, 85, 116, 105, 108, 0, 0, 0,
			0, 32, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			124, 77, 97, 116, 101, 114, 105, 97, 108, 85,
			116, 105, 108, 115, 0, 0, 0, 0, 30, 85,
			110, 105, 116, 121, 46, 88, 82, 46, 67, 111,
			114, 101, 85, 116, 105, 108, 115, 124, 77, 97,
			116, 104, 85, 116, 105, 108, 105, 116, 121, 0,
			0, 0, 0, 35, 85, 110, 105, 116, 121, 46,
			88, 82, 46, 67, 111, 114, 101, 85, 116, 105,
			108, 115, 124, 78, 97, 116, 105, 118, 101, 65,
			114, 114, 97, 121, 85, 116, 105, 108, 115, 0,
			0, 0, 0, 29, 85, 110, 105, 116, 121, 46,
			88, 82, 46, 67, 111, 114, 101, 85, 116, 105,
			108, 115, 124, 79, 98, 106, 101, 99, 116, 80,
			111, 111, 108, 0, 0, 0, 0, 36, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 124, 79, 110, 68,
			101, 115, 116, 114, 111, 121, 78, 111, 116, 105,
			102, 105, 101, 114, 0, 0, 0, 0, 34, 85,
			110, 105, 116, 121, 46, 88, 82, 46, 67, 111,
			114, 101, 85, 116, 105, 108, 115, 124, 82, 101,
			102, 108, 101, 99, 116, 105, 111, 110, 85, 116,
			105, 108, 115, 0, 0, 0, 0, 37, 85, 110,
			105, 116, 121, 46, 88, 82, 46, 67, 111, 114,
			101, 85, 116, 105, 108, 115, 124, 83, 99, 114,
			105, 112, 116, 97, 98, 108, 101, 83, 101, 116,
			116, 105, 110, 103, 115, 1, 0, 0, 0, 41,
			85, 110, 105, 116, 121, 46, 88, 82, 46, 67,
			111, 114, 101, 85, 116, 105, 108, 115, 124, 83,
			99, 114, 105, 112, 116, 97, 98, 108, 101, 83,
			101, 116, 116, 105, 110, 103, 115, 66, 97, 115,
			101, 1, 0, 0, 0, 41, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 124, 83, 99, 114, 105, 112,
			116, 97, 98, 108, 101, 83, 101, 116, 116, 105,
			110, 103, 115, 66, 97, 115, 101, 0, 0, 0,
			0, 35, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			124, 83, 101, 114, 105, 97, 108, 105, 122, 97,
			98, 108, 101, 71, 117, 105, 100, 0, 0, 0,
			0, 39, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			124, 83, 101, 114, 105, 97, 108, 105, 122, 97,
			98, 108, 101, 71, 117, 105, 100, 85, 116, 105,
			108, 0, 0, 0, 0, 31, 85, 110, 105, 116,
			121, 46, 88, 82, 46, 67, 111, 114, 101, 85,
			116, 105, 108, 115, 124, 84, 101, 120, 116, 117,
			114, 101, 85, 116, 105, 108, 115, 0, 0, 0,
			0, 28, 85, 110, 105, 116, 121, 46, 88, 82,
			46, 67, 111, 114, 101, 85, 116, 105, 108, 115,
			124, 85, 110, 100, 111, 66, 108, 111, 99, 107,
			0, 0, 0, 0, 35, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 85, 110, 105, 116, 121, 79,
			98, 106, 101, 99, 116, 85, 116, 105, 108, 115,
			0, 0, 0, 0, 33, 85, 110, 105, 116, 121,
			46, 88, 82, 46, 67, 111, 114, 101, 85, 116,
			105, 108, 115, 124, 88, 82, 76, 111, 103, 103,
			105, 110, 103, 85, 116, 105, 108, 115, 0, 0,
			0, 0, 27, 85, 110, 105, 116, 121, 46, 88,
			82, 46, 67, 111, 114, 101, 85, 116, 105, 108,
			115, 124, 88, 82, 79, 114, 105, 103, 105, 110
		};
		result.TotalFiles = 68;
		result.TotalTypes = 80;
		result.IsEditorOnly = false;
		return result;
	}
}
namespace Unity.XR.CoreUtils
{
	public readonly struct ARTrackablesParentTransformChangedEventArgs : IEquatable<ARTrackablesParentTransformChangedEventArgs>
	{
		public XROrigin Origin { get; }

		public Transform TrackablesParent { get; }

		public ARTrackablesParentTransformChangedEventArgs(XROrigin origin, Transform trackablesParent)
		{
			if ((Object)(object)origin == (Object)null)
			{
				throw new ArgumentNullException("origin");
			}
			if ((Object)(object)trackablesParent == (Object)null)
			{
				throw new ArgumentNullException("trackablesParent");
			}
			Origin = origin;
			TrackablesParent = trackablesParent;
		}

		public bool Equals(ARTrackablesParentTransformChangedEventArgs other)
		{
			if ((Object)(object)Origin == (Object)(object)other.Origin)
			{
				return (Object)(object)TrackablesParent == (Object)(object)other.TrackablesParent;
			}
			return false;
		}

		public override bool Equals(object obj)
		{
			if (obj is ARTrackablesParentTransformChangedEventArgs other)
			{
				return Equals(other);
			}
			return false;
		}

		public override int GetHashCode()
		{
			return HashCodeUtil.Combine(HashCodeUtil.ReferenceHash(Origin), HashCodeUtil.ReferenceHash(TrackablesParent));
		}

		public static bool operator ==(ARTrackablesParentTransformChangedEventArgs lhs, ARTrackablesParentTransformChangedEventArgs rhs)
		{
			return lhs.Equals(rhs);
		}

		public static bool operator !=(ARTrackablesParentTransformChangedEventArgs lhs, ARTrackablesParentTransformChangedEventArgs rhs)
		{
			return !lhs.Equals(rhs);
		}
	}
	public class ReadOnlyAttribute : PropertyAttribute
	{
	}
	[AttributeUsage(AttributeTargets.Class)]
	public class ScriptableSettingsPathAttribute : Attribute
	{
		private readonly string m_Path;

		public string Path => m_Path;

		public ScriptableSettingsPathAttribute(string path = "")
		{
			m_Path = path;
		}
	}
	public static class BoundsUtils
	{
		private static readonly List<Renderer> k_Renderers = new List<Renderer>();

		private static readonly List<Transform> k_Transforms = new List<Transform>();

		public static Bounds GetBounds(List<GameObject> gameObjects)
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Unknown result type (might be due to invalid IL or missing references)
			Bounds? val = null;
			foreach (GameObject gameObject in gameObjects)
			{
				Bounds bounds = GetBounds(gameObject.transform);
				if (!val.HasValue)
				{
					val = bounds;
					continue;
				}
				((Bounds)(ref bounds)).Encapsulate(val.Value);
				val = bounds;
			}
			return val.GetValueOrDefault();
		}

		public static Bounds GetBounds(Transform[] transforms)
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			Bounds? val = null;
			for (int i = 0; i < transforms.Length; i++)
			{
				Bounds bounds = GetBounds(transforms[i]);
				if (!val.HasValue)
				{
					val = bounds;
					continue;
				}
				((Bounds)(ref bounds)).Encapsulate(val.Value);
				val = bounds;
			}
			return val.GetValueOrDefault();
		}

		public static Bounds GetBounds(Transform transform)
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			((Component)transform).GetComponentsInChildren<Renderer>(k_Renderers);
			Bounds bounds = GetBounds(k_Renderers);
			if (((Bounds)(ref bounds)).size == Vector3.zero)
			{
				((Component)transform).GetComponentsInChildren<Transform>(k_Transforms);
				if (k_Transforms.Count > 0)
				{
					((Bounds)(ref bounds)).center = k_Transforms[0].position;
				}
				foreach (Transform k_Transform in k_Transforms)
				{
					((Bounds)(ref bounds)).Encapsulate(k_Transform.position);
				}
			}
			return bounds;
		}

		public static Bounds GetBounds(List<Renderer> renderers)
		{
			//IL_007e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Unknown result type (might be due to invalid IL or missing references)
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0043: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			//IL_0057: Unknown result type (might be due to invalid IL or missing references)
			//IL_007a: Unknown result type (might be due to invalid IL or missing references)
			Bounds result2;
			if (renderers.Count > 0)
			{
				Renderer val = renderers[0];
				Bounds result = default(Bounds);
				((Bounds)(ref result))..ctor(((Component)val).transform.position, Vector3.zero);
				{
					foreach (Renderer renderer in renderers)
					{
						result2 = renderer.bounds;
						if (((Bounds)(ref result2)).size != Vector3.zero)
						{
							((Bounds)(ref result)).Encapsulate(renderer.bounds);
						}
					}
					return result;
				}
			}
			result2 = default(Bounds);
			return result2;
		}

		public static Bounds GetBounds<T>(List<T> colliders) where T : Collider
		{
			//IL_0090: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_0069: Unknown result type (might be due to invalid IL or missing references)
			//IL_008c: Unknown result type (might be due to invalid IL or missing references)
			Bounds result2;
			if (colliders.Count > 0)
			{
				T val = colliders[0];
				Bounds result = default(Bounds);
				((Bounds)(ref result))..ctor(((Component)(object)val).transform.position, Vector3.zero);
				{
					foreach (T collider in colliders)
					{
						result2 = ((Collider)collider).bounds;
						if (((Bounds)(ref result2)).size != Vector3.zero)
						{
							((Bounds)(ref result)).Encapsulate(((Collider)collider).bounds);
						}
					}
					return result;
				}
			}
			result2 = default(Bounds);
			return result2;
		}

		public static Bounds GetBounds(List<Vector3> points)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ee: 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_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006e: Unknown result type (might be due to invalid IL or missing references)
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0084: Unknown result type (might be due to invalid IL or missing references)
			//IL_008b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0078: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a1: 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_0095: Unknown result type (might be due to invalid IL or missing references)
			//IL_00be: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			Bounds result = default(Bounds);
			if (points.Count < 1)
			{
				return result;
			}
			Vector3 val = points[0];
			Vector3 val2 = val;
			for (int i = 1; i < points.Count; i++)
			{
				Vector3 val3 = points[i];
				if (val3.x < val.x)
				{
					val.x = val3.x;
				}
				if (val3.y < val.y)
				{
					val.y = val3.y;
				}
				if (val3.z < val.z)
				{
					val.z = val3.z;
				}
				if (val3.x > val2.x)
				{
					val2.x = val3.x;
				}
				if (val3.y > val2.y)
				{
					val2.y = val3.y;
				}
				if (val3.z > val2.z)
				{
					val2.z = val3.z;
				}
			}
			((Bounds)(ref result)).SetMinMax(val, val2);
			return result;
		}
	}
	public interface IComponentHost<THostType> where THostType : class
	{
		THostType[] HostedComponents { get; }
	}
	[Flags]
	public enum CachedSearchType
	{
		Children = 1,
		Self = 2,
		Parents = 4
	}
	public class CachedComponentFilter<TFilterType, TRootType> : IDisposable where TFilterType : class where TRootType : Component
	{
		private readonly List<TFilterType> m_MasterComponentStorage;

		private static readonly List<TFilterType> k_TempComponentList = new List<TFilterType>();

		private static readonly List<IComponentHost<TFilterType>> k_TempHostComponentList = new List<IComponentHost<TFilterType>>();

		private bool m_DisposedValue;

		public CachedComponentFilter(TRootType componentRoot, CachedSearchType cachedSearchType = CachedSearchType.Children | CachedSearchType.Self, bool includeDisabled = true)
		{
			//IL_00cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
			m_MasterComponentStorage = CollectionPool<List<TFilterType>, TFilterType>.GetCollection();
			k_TempComponentList.Clear();
			k_TempHostComponentList.Clear();
			if ((cachedSearchType & CachedSearchType.Self) == CachedSearchType.Self)
			{
				((Component)componentRoot).GetComponents<TFilterType>(k_TempComponentList);
				((Component)componentRoot).GetComponents<IComponentHost<TFilterType>>(k_TempHostComponentList);
				FilteredCopyToMaster(includeDisabled);
			}
			if ((cachedSearchType & CachedSearchType.Parents) == CachedSearchType.Parents)
			{
				Transform parent = ((Component)componentRoot).transform.parent;
				while ((Object)(object)parent != (Object)null && !((Object)(object)((Component)parent).GetComponent<TRootType>() != (Object)null))
				{
					((Component)parent).GetComponents<TFilterType>(k_TempComponentList);
					((Component)parent).GetComponents<IComponentHost<TFilterType>>(k_TempHostComponentList);
					FilteredCopyToMaster(includeDisabled);
					parent = ((Component)parent).transform.parent;
				}
			}
			if ((cachedSearchType & CachedSearchType.Children) != CachedSearchType.Children)
			{
				return;
			}
			foreach (Transform item in ((Component)componentRoot).transform)
			{
				((Component)item).GetComponentsInChildren<TFilterType>(k_TempComponentList);
				((Component)item).GetComponentsInChildren<IComponentHost<TFilterType>>(k_TempHostComponentList);
				FilteredCopyToMaster(includeDisabled, componentRoot);
			}
		}

		public CachedComponentFilter(TFilterType[] componentList, bool includeDisabled = true)
		{
			if (componentList != null)
			{
				m_MasterComponentStorage = CollectionPool<List<TFilterType>, TFilterType>.GetCollection();
				k_TempComponentList.Clear();
				k_TempComponentList.AddRange(componentList);
				FilteredCopyToMaster(includeDisabled);
			}
		}

		public void StoreMatchingComponents<TChildType>(List<TChildType> outputList) where TChildType : class, TFilterType
		{
			foreach (TFilterType item2 in m_MasterComponentStorage)
			{
				if (item2 is TChildType item)
				{
					outputList.Add(item);
				}
			}
		}

		public TChildType[] GetMatchingComponents<TChildType>() where TChildType : class, TFilterType
		{
			int num = 0;
			foreach (TFilterType item in m_MasterComponentStorage)
			{
				if (item is TChildType)
				{
					num++;
				}
			}
			TChildType[] array = new TChildType[num];
			num = 0;
			foreach (TFilterType item2 in m_MasterComponentStorage)
			{
				if (item2 is TChildType val)
				{
					array[num] = val;
					num++;
				}
			}
			return array;
		}

		private void FilteredCopyToMaster(bool includeDisabled)
		{
			if (includeDisabled)
			{
				m_MasterComponentStorage.AddRange(k_TempComponentList);
				{
					foreach (IComponentHost<TFilterType> k_TempHostComponent in k_TempHostComponentList)
					{
						m_MasterComponentStorage.AddRange(k_TempHostComponent.HostedComponents);
					}
					return;
				}
			}
			foreach (TFilterType k_TempComponent in k_TempComponentList)
			{
				Behaviour val = (Behaviour)(object)((k_TempComponent is Behaviour) ? k_TempComponent : null);
				if (!((Object)(object)val != (Object)null) || val.enabled)
				{
					m_MasterComponentStorage.Add(k_TempComponent);
				}
			}
			foreach (IComponentHost<TFilterType> k_TempHostComponent2 in k_TempHostComponentList)
			{
				Behaviour val2 = (Behaviour)((k_TempHostComponent2 is Behaviour) ? k_TempHostComponent2 : null);
				if (!((Object)(object)val2 != (Object)null) || val2.enabled)
				{
					m_MasterComponentStorage.AddRange(k_TempHostComponent2.HostedComponents);
				}
			}
		}

		private void FilteredCopyToMaster(bool includeDisabled, TRootType requiredRoot)
		{
			if (includeDisabled)
			{
				foreach (TFilterType k_TempComponent in k_TempComponentList)
				{
					Component val = (Component)(object)((k_TempComponent is Component) ? k_TempComponent : null);
					if (!((Object)(object)val.transform == (Object)(object)requiredRoot) && !((Object)(object)val.GetComponentInParent<TRootType>() != (Object)(object)requiredRoot))
					{
						m_MasterComponentStorage.Add(k_TempComponent);
					}
				}
				{
					foreach (IComponentHost<TFilterType> k_TempHostComponent in k_TempHostComponentList)
					{
						Component val2 = (Component)((k_TempHostComponent is Component) ? k_TempHostComponent : null);
						if (!((Object)(object)val2.transform == (Object)(object)requiredRoot) && !((Object)(object)val2.GetComponentInParent<TRootType>() != (Object)(object)requiredRoot))
						{
							m_MasterComponentStorage.AddRange(k_TempHostComponent.HostedComponents);
						}
					}
					return;
				}
			}
			foreach (TFilterType k_TempComponent2 in k_TempComponentList)
			{
				Behaviour val3 = (Behaviour)(object)((k_TempComponent2 is Behaviour) ? k_TempComponent2 : null);
				if (val3.enabled && !((Object)(object)((Component)val3).transform == (Object)(object)requiredRoot) && !((Object)(object)((Component)val3).GetComponentInParent<TRootType>() != (Object)(object)requiredRoot))
				{
					m_MasterComponentStorage.Add(k_TempComponent2);
				}
			}
			foreach (IComponentHost<TFilterType> k_TempHostComponent2 in k_TempHostComponentList)
			{
				Behaviour val4 = (Behaviour)((k_TempHostComponent2 is Behaviour) ? k_TempHostComponent2 : null);
				if (val4.enabled && !((Object)(object)((Component)val4).transform == (Object)(object)requiredRoot) && !((Object)(object)((Component)val4).GetComponentInParent<TRootType>() != (Object)(object)requiredRoot))
				{
					m_MasterComponentStorage.AddRange(k_TempHostComponent2.HostedComponents);
				}
			}
		}

		protected virtual void Dispose(bool disposing)
		{
			if (!m_DisposedValue)
			{
				if (disposing && m_MasterComponentStorage != null)
				{
					CollectionPool<List<TFilterType>, TFilterType>.RecycleCollection(m_MasterComponentStorage);
				}
				m_DisposedValue = true;
			}
		}

		public void Dispose()
		{
			Dispose(disposing: true);
		}
	}
	public static class CollectionPool<TCollection, TValue> where TCollection : ICollection<TValue>, new()
	{
		private static readonly Queue<TCollection> k_CollectionQueue = new Queue<TCollection>();

		public static TCollection GetCollection()
		{
			if (k_CollectionQueue.Count <= 0)
			{
				return new TCollection();
			}
			return k_CollectionQueue.Dequeue();
		}

		public static void RecycleCollection(TCollection collection)
		{
			collection.Clear();
			k_CollectionQueue.Enqueue(collection);
		}
	}
	public static class ComponentUtils<T>
	{
		private static readonly List<T> k_RetrievalList = new List<T>();

		public static T GetComponent(GameObject gameObject)
		{
			T result = default(T);
			gameObject.GetComponents<T>(k_RetrievalList);
			if (k_RetrievalList.Count > 0)
			{
				return k_RetrievalList[0];
			}
			return result;
		}

		public static T GetComponentInChildren(GameObject gameObject)
		{
			T result = default(T);
			gameObject.GetComponentsInChildren<T>(k_RetrievalList);
			if (k_RetrievalList.Count > 0)
			{
				return k_RetrievalList[0];
			}
			return result;
		}
	}
	public static class ComponentUtils
	{
		public static T GetOrAddIf<T>(GameObject gameObject, bool add) where T : Component
		{
			T val = gameObject.GetComponent<T>();
			if (add && (Object)(object)val == (Object)null)
			{
				val = gameObject.AddComponent<T>();
			}
			return val;
		}
	}
	public static class EnumValues<T>
	{
		public static readonly T[] Values = (T[])Enum.GetValues(typeof(T));
	}
	public static class BoundsExtensions
	{
		public static bool ContainsCompletely(this Bounds outerBounds, Bounds innerBounds)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_0058: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			Vector3 max = ((Bounds)(ref outerBounds)).max;
			Vector3 min = ((Bounds)(ref outerBounds)).min;
			Vector3 max2 = ((Bounds)(ref innerBounds)).max;
			Vector3 min2 = ((Bounds)(ref innerBounds)).min;
			if (max.x >= max2.x && max.y >= max2.y && max.z >= max2.z && min.x <= min2.x && min.y <= min2.y)
			{
				return min.z <= min2.z;
			}
			return false;
		}
	}
	public static class CameraExtensions
	{
		private const float k_OneOverSqrt2 = 0.70710677f;

		public static float GetVerticalFieldOfView(this Camera camera, float aspectNeutralFieldOfView)
		{
			return Mathf.Atan(Mathf.Tan(aspectNeutralFieldOfView * 0.5f * (MathF.PI / 180f)) * 0.70710677f / Mathf.Sqrt(camera.aspect)) * 2f * 57.29578f;
		}

		public static float GetHorizontalFieldOfView(this Camera camera)
		{
			float num = camera.fieldOfView * 0.5f;
			return 57.29578f * Mathf.Atan(Mathf.Tan(num * (MathF.PI / 180f)) * camera.aspect);
		}

		public static float GetVerticalOrthographicSize(this Camera camera, float size)
		{
			return size * 0.70710677f / Mathf.Sqrt(camera.aspect);
		}
	}
	public static class CollectionExtensions
	{
		private static readonly StringBuilder k_String = new StringBuilder();

		public static string Stringify<T>(this ICollection<T> collection)
		{
			k_String.Length = 0;
			int num = collection.Count - 1;
			int num2 = 0;
			foreach (T item in collection)
			{
				k_String.AppendFormat((num2++ == num) ? "{0}" : "{0}, ", item);
			}
			return k_String.ToString();
		}
	}
	public static class DictionaryExtensions
	{
		public static KeyValuePair<TKey, TValue> First<TKey, TValue>(this Dictionary<TKey, TValue> dictionary)
		{
			KeyValuePair<TKey, TValue> result = default(KeyValuePair<TKey, TValue>);
			Dictionary<TKey, TValue>.Enumerator enumerator = dictionary.GetEnumerator();
			if (enumerator.MoveNext())
			{
				result = enumerator.Current;
			}
			enumerator.Dispose();
			return result;
		}
	}
	public static class GameObjectExtensions
	{
		public static void SetHideFlagsRecursively(this GameObject gameObject, HideFlags hideFlags)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			((Object)gameObject).hideFlags = hideFlags;
			foreach (Transform item in gameObject.transform)
			{
				((Component)item).gameObject.SetHideFlagsRecursively(hideFlags);
			}
		}

		public static void AddToHideFlagsRecursively(this GameObject gameObject, HideFlags hideFlags)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			((Object)gameObject).hideFlags = (HideFlags)(((Object)gameObject).hideFlags | hideFlags);
			foreach (Transform item in gameObject.transform)
			{
				((Component)item).gameObject.AddToHideFlagsRecursively(hideFlags);
			}
		}

		public static void SetLayerRecursively(this GameObject gameObject, int layer)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			gameObject.layer = layer;
			foreach (Transform item in gameObject.transform)
			{
				((Component)item).gameObject.SetLayerRecursively(layer);
			}
		}

		public static void SetLayerAndAddToHideFlagsRecursively(this GameObject gameObject, int layer, HideFlags hideFlags)
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			gameObject.layer = layer;
			((Object)gameObject).hideFlags = (HideFlags)(((Object)gameObject).hideFlags | hideFlags);
			foreach (Transform item in gameObject.transform)
			{
				((Component)item).gameObject.SetLayerAndAddToHideFlagsRecursively(layer, hideFlags);
			}
		}

		public static void SetLayerAndHideFlagsRecursively(this GameObject gameObject, int layer, HideFlags hideFlags)
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_002d: Unknown result type (might be due to invalid IL or missing references)
			gameObject.layer = layer;
			((Object)gameObject).hideFlags = hideFlags;
			foreach (Transform item in gameObject.transform)
			{
				((Component)item).gameObject.SetLayerAndHideFlagsRecursively(layer, hideFlags);
			}
		}

		public static void SetRunInEditModeRecursively(this GameObject gameObject, bool enabled)
		{
		}
	}
	public static class GuidExtensions
	{
		public static void Decompose(this Guid guid, out ulong low, out ulong high)
		{
			byte[] value = guid.ToByteArray();
			low = BitConverter.ToUInt64(value, 0);
			high = BitConverter.ToUInt64(value, 8);
		}
	}
	public static class HashSetExtensions
	{
		public static void ExceptWithNonAlloc<T>(this HashSet<T> self, HashSet<T> other)
		{
			foreach (T item in other)
			{
				self.Remove(item);
			}
		}

		public static T First<T>(this HashSet<T> set)
		{
			HashSet<T>.Enumerator enumerator = set.GetEnumerator();
			T result = (enumerator.MoveNext() ? enumerator.Current : default(T));
			enumerator.Dispose();
			return result;
		}
	}
	public static class LayerMaskExtensions
	{
		public static int GetFirstLayerIndex(this LayerMask layerMask)
		{
			if (((LayerMask)(ref layerMask)).value == 0)
			{
				return -1;
			}
			int num = 0;
			int num2 = ((LayerMask)(ref layerMask)).value;
			while ((num2 & 1) == 0)
			{
				num2 >>= 1;
				num++;
			}
			return num;
		}

		public static bool Contains(this LayerMask mask, int layer)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			return ((uint)LayerMask.op_Implicit(mask) & (1 << layer)) > 0;
		}
	}
	public static class ListExtensions
	{
		public static List<T> Fill<T>(this List<T> list, int count) where T : new()
		{
			for (int i = 0; i < count; i++)
			{
				list.Add(new T());
			}
			return list;
		}

		public static void EnsureCapacity<T>(this List<T> list, int capacity)
		{
			if (list.Capacity < capacity)
			{
				list.Capacity = capacity;
			}
		}

		public static void SwapAtIndices<T>(this List<T> list, int first, int second)
		{
			T val = list[second];
			T val2 = list[first];
			T val4 = (list[first] = val);
			val4 = (list[second] = val2);
		}
	}
	public static class MonoBehaviourExtensions
	{
	}
	public static class PoseExtensions
	{
		public static Pose ApplyOffsetTo(this Pose pose, Pose otherPose)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			Quaternion rotation = pose.rotation;
			return new Pose(rotation * otherPose.position + pose.position, rotation * otherPose.rotation);
		}

		public static Vector3 ApplyOffsetTo(this Pose pose, Vector3 position)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			return pose.rotation * position + pose.position;
		}

		public static Vector3 ApplyInverseOffsetTo(this Pose pose, Vector3 position)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			return Quaternion.Inverse(pose.rotation) * (position - pose.position);
		}
	}
	public static class QuaternionExtensions
	{
		public static Quaternion ConstrainYaw(this Quaternion rotation)
		{
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			rotation.x = 0f;
			rotation.z = 0f;
			return rotation;
		}

		public static Quaternion ConstrainYawNormalized(this Quaternion rotation)
		{
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			rotation.x = 0f;
			rotation.z = 0f;
			((Quaternion)(ref rotation)).Normalize();
			return rotation;
		}

		public static Quaternion ConstrainYawPitchNormalized(this Quaternion rotation)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			Vector3 eulerAngles = ((Quaternion)(ref rotation)).eulerAngles;
			eulerAngles.z = 0f;
			return Quaternion.Euler(eulerAngles);
		}
	}
	public static class StopwatchExtensions
	{
		public static void Restart(this Stopwatch stopwatch)
		{
			stopwatch.Stop();
			stopwatch.Reset();
			stopwatch.Start();
		}
	}
	public static class StringExtensions
	{
		private static readonly StringBuilder k_StringBuilder = new StringBuilder();

		public static string FirstToUpper(this string str)
		{
			if (string.IsNullOrEmpty(str))
			{
				return string.Empty;
			}
			if (str.Length == 1)
			{
				return char.ToUpper(str[0]).ToString();
			}
			return $"{char.ToUpper(str[0])}{str.Substring(1)}";
		}

		public static string InsertSpacesBetweenWords(this string str)
		{
			if (string.IsNullOrEmpty(str))
			{
				return string.Empty;
			}
			k_StringBuilder.Length = 0;
			k_StringBuilder.Append(str[0]);
			int length = str.Length;
			for (int i = 0; i < length - 1; i++)
			{
				char c = str[i];
				char c2 = str[i + 1];
				bool flag = char.IsLower(c);
				bool flag2 = char.IsLower(c2);
				bool flag3 = flag && !flag2;
				if (i + 2 < length)
				{
					bool flag4 = char.IsLower(str[i + 2]);
					flag3 = flag3 || (!flag && !flag2 && flag4);
				}
				if (flag3)
				{
					k_StringBuilder.Append(' ');
				}
				k_StringBuilder.Append(c2);
			}
			return k_StringBuilder.ToString();
		}
	}
	public static class TransformExtensions
	{
		public static Pose GetLocalPose(this Transform transform)
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			Vector3 val = default(Vector3);
			Quaternion val2 = default(Quaternion);
			transform.GetLocalPositionAndRotation(ref val, ref val2);
			return new Pose(val, val2);
		}

		public static Pose GetWorldPose(this Transform transform)
		{
			//IL_000a: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			Vector3 val = default(Vector3);
			Quaternion val2 = default(Quaternion);
			transform.GetPositionAndRotation(ref val, ref val2);
			return new Pose(val, val2);
		}

		public static void SetLocalPose(this Transform transform, Pose pose)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			transform.SetLocalPositionAndRotation(pose.position, pose.rotation);
		}

		public static void SetWorldPose(this Transform transform, Pose pose)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			transform.SetPositionAndRotation(pose.position, pose.rotation);
		}

		public static Pose TransformPose(this Transform transform, Pose pose)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			return ((Pose)(ref pose)).GetTransformedBy(transform);
		}

		public static Pose InverseTransformPose(this Transform transform, Pose pose)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)transform == (Object)null)
			{
				throw new ArgumentNullException("transform");
			}
			Pose result = default(Pose);
			result.position = transform.InverseTransformPoint(pose.position);
			result.rotation = Quaternion.Inverse(transform.rotation) * pose.rotation;
			return result;
		}

		public static Ray InverseTransformRay(this Transform transform, Ray ray)
		{
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			//IL_0029: Unknown result type (might be due to invalid IL or missing references)
			//IL_002e: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)transform == (Object)null)
			{
				throw new ArgumentNullException("transform");
			}
			return new Ray(transform.InverseTransformPoint(((Ray)(ref ray)).origin), transform.InverseTransformDirection(((Ray)(ref ray)).direction));
		}
	}
	public static class TypeExtensions
	{
		private static readonly List<FieldInfo> k_Fields = new List<FieldInfo>();

		private static readonly List<string> k_TypeNames = new List<string>();

		public static void GetAssignableTypes(this Type type, List<Type> list, Func<Type, bool> predicate = null)
		{
			ReflectionUtils.ForEachType(delegate(Type t)
			{
				if (type.IsAssignableFrom(t) && !t.IsInterface && !t.IsAbstract && (predicate == null || predicate(t)))
				{
					list.Add(t);
				}
			});
		}

		public static void GetImplementationsOfInterface(this Type type, List<Type> list)
		{
			if (type.IsInterface)
			{
				type.GetAssignableTypes(list);
			}
		}

		public static void GetExtensionsOfClass(this Type type, List<Type> list)
		{
			if (type.IsClass)
			{
				type.GetAssignableTypes(list);
			}
		}

		public static void GetGenericInterfaces(this Type type, Type genericInterface, List<Type> interfaces)
		{
			Type[] interfaces2 = type.GetInterfaces();
			foreach (Type type2 in interfaces2)
			{
				if (type2.IsGenericType && type2.GetGenericTypeDefinition() == genericInterface)
				{
					interfaces.Add(type2);
				}
			}
		}

		public static PropertyInfo GetPropertyRecursively(this Type type, string name, BindingFlags bindingAttr)
		{
			PropertyInfo propertyInfo = type.GetProperty(name, bindingAttr);
			if (propertyInfo != null)
			{
				return propertyInfo;
			}
			if (type.BaseType != null)
			{
				propertyInfo = type.BaseType.GetPropertyRecursively(name, bindingAttr);
			}
			return propertyInfo;
		}

		public static FieldInfo GetFieldRecursively(this Type type, string name, BindingFlags bindingAttr)
		{
			FieldInfo fieldInfo = type.GetField(name, bindingAttr);
			if (fieldInfo != null)
			{
				return fieldInfo;
			}
			if (type.BaseType != null)
			{
				fieldInfo = type.BaseType.GetFieldRecursively(name, bindingAttr);
			}
			return fieldInfo;
		}

		public static void GetFieldsRecursively(this Type type, List<FieldInfo> fields, BindingFlags bindingAttr = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
		{
			while (true)
			{
				FieldInfo[] fields2 = type.GetFields(bindingAttr);
				foreach (FieldInfo item in fields2)
				{
					fields.Add(item);
				}
				Type baseType = type.BaseType;
				if (baseType != null)
				{
					type = baseType;
					continue;
				}
				break;
			}
		}

		public static void GetPropertiesRecursively(this Type type, List<PropertyInfo> fields, BindingFlags bindingAttr = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
		{
			while (true)
			{
				PropertyInfo[] properties = type.GetProperties(bindingAttr);
				foreach (PropertyInfo item in properties)
				{
					fields.Add(item);
				}
				Type baseType = type.BaseType;
				if (baseType != null)
				{
					type = baseType;
					continue;
				}
				break;
			}
		}

		public static void GetInterfaceFieldsFromClasses(this IEnumerable<Type> classes, List<FieldInfo> fields, List<Type> interfaceTypes, BindingFlags bindingAttr)
		{
			foreach (Type interfaceType in interfaceTypes)
			{
				if (!interfaceType.IsInterface)
				{
					throw new ArgumentException($"Type {interfaceType} in interfaceTypes is not an interface!");
				}
			}
			foreach (Type @class in classes)
			{
				if (!@class.IsClass)
				{
					throw new ArgumentException($"Type {@class} in classes is not a class!");
				}
				k_Fields.Clear();
				@class.GetFieldsRecursively(k_Fields, bindingAttr);
				foreach (FieldInfo k_Field in k_Fields)
				{
					Type[] interfaces = k_Field.FieldType.GetInterfaces();
					foreach (Type item in interfaces)
					{
						if (interfaceTypes.Contains(item))
						{
							fields.Add(k_Field);
							break;
						}
					}
				}
			}
		}

		public static TAttribute GetAttribute<TAttribute>(this Type type, bool inherit = false) where TAttribute : Attribute
		{
			return (TAttribute)type.GetCustomAttributes(typeof(TAttribute), inherit)[0];
		}

		public static void IsDefinedGetInheritedTypes<TAttribute>(this Type type, List<Type> types) where TAttribute : Attribute
		{
			while (type != null)
			{
				if (type.IsDefined(typeof(TAttribute), inherit: true))
				{
					types.Add(type);
				}
				type = type.BaseType;
			}
		}

		public static FieldInfo GetFieldInTypeOrBaseType(this Type type, string fieldName)
		{
			FieldInfo field;
			while (true)
			{
				if (type == null)
				{
					return null;
				}
				field = type.GetField(fieldName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);
				if (field != null)
				{
					break;
				}
				type = type.BaseType;
			}
			return field;
		}

		public static string GetNameWithGenericArguments(this Type type)
		{
			string name = type.Name;
			name = name.Replace('+', '.');
			if (!type.IsGenericType)
			{
				return name;
			}
			name = name.Split('`')[0];
			Type[] genericArguments = type.GetGenericArguments();
			int num = genericArguments.Length;
			string[] array = new string[num];
			for (int i = 0; i < num; i++)
			{
				array[i] = genericArguments[i].GetNameWithGenericArguments();
			}
			return name + "<" + string.Join(", ", array) + ">";
		}

		public static string GetNameWithFullGenericArguments(this Type type)
		{
			string name = type.Name;
			name = name.Replace('+', '.');
			if (!type.IsGenericType)
			{
				return name;
			}
			name = name.Split('`')[0];
			Type[] genericArguments = type.GetGenericArguments();
			int num = genericArguments.Length;
			string[] array = new string[num];
			for (int i = 0; i < num; i++)
			{
				array[i] = genericArguments[i].GetFullNameWithGenericArgumentsInternal();
			}
			return name + "<" + string.Join(", ", array) + ">";
		}

		public static string GetFullNameWithGenericArguments(this Type type)
		{
			Type type2 = type.DeclaringType;
			if (type2 != null && !type.IsGenericParameter)
			{
				k_TypeNames.Clear();
				string nameWithFullGenericArguments = type.GetNameWithFullGenericArguments();
				k_TypeNames.Add(nameWithFullGenericArguments);
				while (true)
				{
					Type declaringType = type2.DeclaringType;
					if (declaringType == null)
					{
						break;
					}
					nameWithFullGenericArguments = type2.GetNameWithFullGenericArguments();
					k_TypeNames.Insert(0, nameWithFullGenericArguments);
					type2 = declaringType;
				}
				nameWithFullGenericArguments = type2.GetFullNameWithGenericArguments();
				k_TypeNames.Insert(0, nameWithFullGenericArguments);
				return string.Join(".", k_TypeNames.ToArray());
			}
			return type.GetFullNameWithGenericArgumentsInternal();
		}

		private static string GetFullNameWithGenericArgumentsInternal(this Type type)
		{
			string fullName = type.FullName;
			if (!type.IsGenericType)
			{
				return fullName;
			}
			fullName = fullName.Split('`')[0];
			Type[] genericArguments = type.GetGenericArguments();
			int num = genericArguments.Length;
			string[] array = new string[num];
			for (int i = 0; i < num; i++)
			{
				array[i] = genericArguments[i].GetFullNameWithGenericArguments();
			}
			return fullName + "<" + string.Join(", ", array) + ">";
		}

		public static bool IsAssignableFromOrSubclassOf(this Type checkType, Type baseType)
		{
			if (!checkType.IsAssignableFrom(baseType))
			{
				return checkType.IsSubclassOf(baseType);
			}
			return true;
		}

		public static MethodInfo GetMethodRecursively(this Type type, string name, BindingFlags bindingAttr)
		{
			MethodInfo methodInfo = type.GetMethod(name, bindingAttr);
			if (methodInfo != null)
			{
				return methodInfo;
			}
			if (type.BaseType != null)
			{
				methodInfo = type.BaseType.GetMethodRecursively(name, bindingAttr);
			}
			return methodInfo;
		}
	}
	[Serializable]
	public class BoolUnityEvent : UnityEvent<bool>
	{
	}
	[Serializable]
	public class FloatUnityEvent : UnityEvent<float>
	{
	}
	[Serializable]
	public class Vector2UnityEvent : UnityEvent<Vector2>
	{
	}
	[Serializable]
	public class Vector3UnityEvent : UnityEvent<Vector3>
	{
	}
	[Serializable]
	public class Vector4UnityEvent : UnityEvent<Vector4>
	{
	}
	[Serializable]
	public class QuaternionUnityEvent : UnityEvent<Quaternion>
	{
	}
	[Serializable]
	public class IntUnityEvent : UnityEvent<int>
	{
	}
	[Serializable]
	public class ColorUnityEvent : UnityEvent<Color>
	{
	}
	[Serializable]
	public class StringUnityEvent : UnityEvent<string>
	{
	}
	public static class Vector2Extensions
	{
		public static Vector2 Inverse(this Vector2 vector)
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			return new Vector2(1f / vector.x, 1f / vector.y);
		}

		public static float MinComponent(this Vector2 vector)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			return Mathf.Min(vector.x, vector.y);
		}

		public static float MaxComponent(this Vector2 vector)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			return Mathf.Max(vector.x, vector.y);
		}

		public static Vector2 Abs(this Vector2 vector)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			vector.x = Mathf.Abs(vector.x);
			vector.y = Mathf.Abs(vector.y);
			return vector;
		}
	}
	public static class Vector3Extensions
	{
		public static Vector3 Inverse(this Vector3 vector)
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			return new Vector3(1f / vector.x, 1f / vector.y, 1f / vector.z);
		}

		public static float MinComponent(this Vector3 vector)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			return Mathf.Min(Mathf.Min(vector.x, vector.y), vector.z);
		}

		public static float MaxComponent(this Vector3 vector)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			return Mathf.Max(Mathf.Max(vector.x, vector.y), vector.z);
		}

		public static Vector3 Abs(this Vector3 vector)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0036: Unknown result type (might be due to invalid IL or missing references)
			vector.x = Mathf.Abs(vector.x);
			vector.y = Mathf.Abs(vector.y);
			vector.z = Mathf.Abs(vector.z);
			return vector;
		}

		public static Vector3 Multiply(this Vector3 value, Vector3 scale)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			return new Vector3(value.x * scale.x, value.y * scale.y, value.z * scale.z);
		}

		public static Vector3 Divide(this Vector3 value, Vector3 scale)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			//IL_000d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0013: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			return new Vector3(value.x / scale.x, value.y / scale.y, value.z / scale.z);
		}

		public static Vector3 SafeDivide(this Vector3 value, Vector3 scale)
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Unknown result type (might be due to invalid IL or missing references)
			//IL_0035: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Unknown result type (might be due to invalid IL or missing references)
			//IL_004d: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0082: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			float num = (Mathf.Approximately(scale.x, 0f) ? 0f : (value.x / scale.x));
			if (float.IsNaN(num))
			{
				num = 0f;
			}
			float num2 = (Mathf.Approximately(scale.y, 0f) ? 0f : (value.y / scale.y));
			if (float.IsNaN(num2))
			{
				num2 = 0f;
			}
			float num3 = (Mathf.Approximately(scale.z, 0f) ? 0f : (value.z / scale.z));
			if (float.IsNaN(num3))
			{
				num3 = 0f;
			}
			return new Vector3(num, num2, num3);
		}
	}
	public static class GameObjectUtils
	{
		private static readonly List<GameObject> k_GameObjects = new List<GameObject>();

		private static readonly List<Transform> k_Transforms = new List<Transform>();

		public static event Action<GameObject> GameObjectInstantiated;

		public static GameObject Create()
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Expected O, but got Unknown
			GameObject val = new GameObject();
			GameObjectUtils.GameObjectInstantiated?.Invoke(val);
			return val;
		}

		public static GameObject Create(string name)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0007: Expected O, but got Unknown
			GameObject val = new GameObject(name);
			GameObjec

BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.Interaction.Toolkit.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.Permissions;
using System.Text;
using Unity.Collections;
using Unity.Jobs;
using Unity.Mathematics;
using Unity.Profiling;
using Unity.XR.CoreUtils;
using Unity.XR.CoreUtils.Bindings;
using Unity.XR.CoreUtils.Bindings.Variables;
using Unity.XR.CoreUtils.Collections;
using Unity.XR.CoreUtils.Datums;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.Experimental.XR.Interaction;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;
using UnityEngine.InputSystem.Layouts;
using UnityEngine.InputSystem.LowLevel;
using UnityEngine.InputSystem.UI;
using UnityEngine.InputSystem.Utilities;
using UnityEngine.InputSystem.XR;
using UnityEngine.Rendering;
using UnityEngine.SceneManagement;
using UnityEngine.Scripting;
using UnityEngine.Scripting.APIUpdating;
using UnityEngine.Serialization;
using UnityEngine.SpatialTracking;
using UnityEngine.UI;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Jobs;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Receiver;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Receiver.Primitives;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Rendering;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.State;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Theme;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Theme.Audio;
using UnityEngine.XR.Interaction.Toolkit.AffordanceSystem.Theme.Primitives;
using UnityEngine.XR.Interaction.Toolkit.Filtering;
using UnityEngine.XR.Interaction.Toolkit.Inputs;
using UnityEngine.XR.Interaction.Toolkit.Inputs.Simulation.Hands;
using UnityEngine.XR.Interaction.Toolkit.Transformers;
using UnityEngine.XR.Interaction.Toolkit.UI;
using UnityEngine.XR.Interaction.Toolkit.Utilities;
using UnityEngine.XR.Interaction.Toolkit.Utilities.Collections;
using UnityEngine.XR.Interaction.Toolkit.Utilities.Curves;
using UnityEngine.XR.Interaction.Toolkit.Utilities.Internal;
using UnityEngine.XR.Interaction.Toolkit.Utilities.Pooling;
using UnityEngine.XR.Interaction.Toolkit.Utilities.Tweenables.Primitives;
using UnityEngine.XR.Interaction.Toolkit.Utilities.Tweenables.SmartTweenableVariables;
using UnityEngine.XR.OpenXR.Features.Interactions;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Editor")]
[assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor")]
[assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Tests")]
[assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Editor.Tests")]
[assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.StarterAssets")]
[assembly: InternalsVisibleTo("Unity.XR.Interaction.Toolkit.Samples.ARStarterAssets")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[CompilerGenerated]
[EditorBrowsable(EditorBrowsableState.Never)]
[GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)]
internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1
{
	private struct MonoScriptData
	{
		public byte[] FilePathsData;

		public byte[] TypesData;

		public int TotalTypes;

		public int TotalFiles;

		public bool IsEditorOnly;
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private static MonoScriptData Get()
	{
		MonoScriptData result = default(MonoScriptData);
		result.FilePathsData = new byte[30912]
		{
			0, 0, 0, 1, 0, 0, 0, 113, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 82, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 97, 98,
			108, 101, 115, 92, 65, 82, 65, 110, 110, 111,
			116, 97, 116, 105, 111, 110, 73, 110, 116, 101,
			114, 97, 99, 116, 97, 98, 108, 101, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 114, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 65, 82,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 97,
			98, 108, 101, 115, 92, 65, 82, 66, 97, 115,
			101, 71, 101, 115, 116, 117, 114, 101, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			112, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			65, 82, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 97, 98, 108, 101, 115, 92, 65, 82, 80,
			108, 97, 99, 101, 109, 101, 110, 116, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			111, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			65, 82, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 97, 98, 108, 101, 115, 92, 65, 82, 82,
			111, 116, 97, 116, 105, 111, 110, 73, 110, 116,
			101, 114, 97, 99, 116, 97, 98, 108, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 108,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 65,
			82, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			97, 98, 108, 101, 115, 92, 65, 82, 83, 99,
			97, 108, 101, 73, 110, 116, 101, 114, 97, 99,
			116, 97, 98, 108, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 112, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 65, 82, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			115, 92, 65, 82, 83, 101, 108, 101, 99, 116,
			105, 111, 110, 73, 110, 116, 101, 114, 97, 99,
			116, 97, 98, 108, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 114, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 65, 82, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			115, 92, 65, 82, 84, 114, 97, 110, 115, 108,
			97, 116, 105, 111, 110, 73, 110, 116, 101, 114,
			97, 99, 116, 97, 98, 108, 101, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 106, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 82, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 111, 114,
			115, 92, 65, 82, 71, 101, 115, 116, 117, 114,
			101, 73, 110, 116, 101, 114, 97, 99, 116, 111,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 107, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 74, 111,
			98, 115, 92, 67, 111, 108, 111, 114, 84, 119,
			101, 101, 110, 74, 111, 98, 46, 99, 115, 0,
			0, 0, 4, 0, 0, 0, 107, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 121, 115, 116,
			101, 109, 92, 74, 111, 98, 115, 92, 70, 108,
			111, 97, 116, 84, 119, 101, 101, 110, 74, 111,
			98, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 103, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 74, 111,
			98, 115, 92, 73, 84, 119, 101, 101, 110, 74,
			111, 98, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 106, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 74,
			111, 98, 115, 92, 84, 119, 101, 101, 110, 74,
			111, 98, 68, 97, 116, 97, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 127, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 121, 115, 116,
			101, 109, 92, 82, 101, 99, 101, 105, 118, 101,
			114, 92, 65, 117, 100, 105, 111, 92, 65, 117,
			100, 105, 111, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 82, 101, 99, 101, 105, 118, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 125, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 82, 101,
			99, 101, 105, 118, 101, 114, 92, 66, 97, 115,
			101, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 116, 97, 116, 101, 82, 101, 99, 101,
			105, 118, 101, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 130, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 65, 102, 102, 111, 114, 100,
			97, 110, 99, 101, 83, 121, 115, 116, 101, 109,
			92, 82, 101, 99, 101, 105, 118, 101, 114, 92,
			66, 97, 115, 101, 65, 115, 121, 110, 99, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 83,
			116, 97, 116, 101, 82, 101, 99, 101, 105, 118,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 136, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 82,
			101, 99, 101, 105, 118, 101, 114, 92, 66, 97,
			115, 101, 83, 121, 110, 99, 104, 114, 111, 110,
			111, 117, 115, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 83, 116, 97, 116, 101, 82, 101,
			99, 101, 105, 118, 101, 114, 46, 99, 115, 0,
			0, 0, 2, 0, 0, 0, 122, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 121, 115, 116,
			101, 109, 92, 82, 101, 99, 101, 105, 118, 101,
			114, 92, 73, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 83, 116, 97, 116, 101, 82, 101,
			99, 101, 105, 118, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 127, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 121, 115, 116,
			101, 109, 92, 82, 101, 99, 101, 105, 118, 101,
			114, 92, 73, 65, 115, 121, 110, 99, 65, 102,
			102, 111, 114, 100, 97, 110, 99, 101, 83, 116,
			97, 116, 101, 82, 101, 99, 101, 105, 118, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 133, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 82, 101,
			99, 101, 105, 118, 101, 114, 92, 73, 83, 121,
			110, 99, 104, 114, 111, 110, 111, 117, 115, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 83,
			116, 97, 116, 101, 82, 101, 99, 101, 105, 118,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 132, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 82,
			101, 99, 101, 105, 118, 101, 114, 92, 80, 114,
			105, 109, 105, 116, 105, 118, 101, 115, 92, 67,
			111, 108, 111, 114, 65, 102, 102, 111, 114, 100,
			97, 110, 99, 101, 82, 101, 99, 101, 105, 118,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 132, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 82,
			101, 99, 101, 105, 118, 101, 114, 92, 80, 114,
			105, 109, 105, 116, 105, 118, 101, 115, 92, 70,
			108, 111, 97, 116, 65, 102, 102, 111, 114, 100,
			97, 110, 99, 101, 82, 101, 99, 101, 105, 118,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 137, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 82,
			101, 99, 101, 105, 118, 101, 114, 92, 80, 114,
			105, 109, 105, 116, 105, 118, 101, 115, 92, 81,
			117, 97, 116, 101, 114, 110, 105, 111, 110, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 82,
			101, 99, 101, 105, 118, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 142, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 83, 121, 115,
			116, 101, 109, 92, 82, 101, 99, 101, 105, 118,
			101, 114, 92, 80, 114, 105, 109, 105, 116, 105,
			118, 101, 115, 92, 81, 117, 97, 116, 101, 114,
			110, 105, 111, 110, 69, 117, 108, 101, 114, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 82,
			101, 99, 101, 105, 118, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 134, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 83, 121, 115,
			116, 101, 109, 92, 82, 101, 99, 101, 105, 118,
			101, 114, 92, 80, 114, 105, 109, 105, 116, 105,
			118, 101, 115, 92, 86, 101, 99, 116, 111, 114,
			50, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 82, 101, 99, 101, 105, 118, 101, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 134,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 83,
			121, 115, 116, 101, 109, 92, 82, 101, 99, 101,
			105, 118, 101, 114, 92, 80, 114, 105, 109, 105,
			116, 105, 118, 101, 115, 92, 86, 101, 99, 116,
			111, 114, 51, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 82, 101, 99, 101, 105, 118, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 134, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 82, 101,
			99, 101, 105, 118, 101, 114, 92, 80, 114, 105,
			109, 105, 116, 105, 118, 101, 115, 92, 86, 101,
			99, 116, 111, 114, 52, 65, 102, 102, 111, 114,
			100, 97, 110, 99, 101, 82, 101, 99, 101, 105,
			118, 101, 114, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 136, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 83, 121, 115, 116, 101, 109, 92,
			82, 101, 99, 101, 105, 118, 101, 114, 92, 82,
			101, 110, 100, 101, 114, 105, 110, 103, 92, 66,
			108, 101, 110, 100, 83, 104, 97, 112, 101, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 82,
			101, 99, 101, 105, 118, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 151, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 83, 121, 115,
			116, 101, 109, 92, 82, 101, 99, 101, 105, 118,
			101, 114, 92, 82, 101, 110, 100, 101, 114, 105,
			110, 103, 92, 67, 111, 108, 111, 114, 71, 114,
			97, 100, 105, 101, 110, 116, 76, 105, 110, 101,
			82, 101, 110, 100, 101, 114, 101, 114, 65, 102,
			102, 111, 114, 100, 97, 110, 99, 101, 82, 101,
			99, 101, 105, 118, 101, 114, 46, 99, 115, 0,
			0, 0, 2, 0, 0, 0, 147, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 121, 115, 116,
			101, 109, 92, 82, 101, 99, 101, 105, 118, 101,
			114, 92, 82, 101, 110, 100, 101, 114, 105, 110,
			103, 92, 67, 111, 108, 111, 114, 77, 97, 116,
			101, 114, 105, 97, 108, 80, 114, 111, 112, 101,
			114, 116, 121, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 82, 101, 99, 101, 105, 118, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 147, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 82, 101,
			99, 101, 105, 118, 101, 114, 92, 82, 101, 110,
			100, 101, 114, 105, 110, 103, 92, 70, 108, 111,
			97, 116, 77, 97, 116, 101, 114, 105, 97, 108,
			80, 114, 111, 112, 101, 114, 116, 121, 65, 102,
			102, 111, 114, 100, 97, 110, 99, 101, 82, 101,
			99, 101, 105, 118, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 149, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 121, 115, 116,
			101, 109, 92, 82, 101, 99, 101, 105, 118, 101,
			114, 92, 82, 101, 110, 100, 101, 114, 105, 110,
			103, 92, 86, 101, 99, 116, 111, 114, 50, 77,
			97, 116, 101, 114, 105, 97, 108, 80, 114, 111,
			112, 101, 114, 116, 121, 65, 102, 102, 111, 114,
			100, 97, 110, 99, 101, 82, 101, 99, 101, 105,
			118, 101, 114, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 149, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 83, 121, 115, 116, 101, 109, 92,
			82, 101, 99, 101, 105, 118, 101, 114, 92, 82,
			101, 110, 100, 101, 114, 105, 110, 103, 92, 86,
			101, 99, 116, 111, 114, 51, 77, 97, 116, 101,
			114, 105, 97, 108, 80, 114, 111, 112, 101, 114,
			116, 121, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 82, 101, 99, 101, 105, 118, 101, 114,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			149, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			65, 102, 102, 111, 114, 100, 97, 110, 99, 101,
			83, 121, 115, 116, 101, 109, 92, 82, 101, 99,
			101, 105, 118, 101, 114, 92, 82, 101, 110, 100,
			101, 114, 105, 110, 103, 92, 86, 101, 99, 116,
			111, 114, 52, 77, 97, 116, 101, 114, 105, 97,
			108, 80, 114, 111, 112, 101, 114, 116, 121, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 82,
			101, 99, 101, 105, 118, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 152, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 83, 121, 115,
			116, 101, 109, 92, 82, 101, 99, 101, 105, 118,
			101, 114, 92, 84, 114, 97, 110, 115, 102, 111,
			114, 109, 97, 116, 105, 111, 110, 92, 85, 110,
			105, 102, 111, 114, 109, 84, 114, 97, 110, 115,
			102, 111, 114, 109, 83, 99, 97, 108, 101, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 82,
			101, 99, 101, 105, 118, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 129, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 83, 121, 115,
			116, 101, 109, 92, 82, 101, 99, 101, 105, 118,
			101, 114, 92, 85, 73, 92, 73, 109, 97, 103,
			101, 67, 111, 108, 111, 114, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 82, 101, 99, 101,
			105, 118, 101, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 117, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 65, 102, 102, 111, 114, 100,
			97, 110, 99, 101, 83, 121, 115, 116, 101, 109,
			92, 82, 101, 110, 100, 101, 114, 105, 110, 103,
			92, 77, 97, 116, 101, 114, 105, 97, 108, 72,
			101, 108, 112, 101, 114, 66, 97, 115, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 121,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 83,
			121, 115, 116, 101, 109, 92, 82, 101, 110, 100,
			101, 114, 105, 110, 103, 92, 77, 97, 116, 101,
			114, 105, 97, 108, 73, 110, 115, 116, 97, 110,
			99, 101, 72, 101, 108, 112, 101, 114, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 126, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 65, 102,
			102, 111, 114, 100, 97, 110, 99, 101, 83, 121,
			115, 116, 101, 109, 92, 82, 101, 110, 100, 101,
			114, 105, 110, 103, 92, 77, 97, 116, 101, 114,
			105, 97, 108, 80, 114, 111, 112, 101, 114, 116,
			121, 66, 108, 111, 99, 107, 72, 101, 108, 112,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 119, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 83,
			116, 97, 116, 101, 92, 68, 97, 116, 97, 92,
			65, 102, 102, 111, 114, 100, 97, 110, 99, 101,
			83, 116, 97, 116, 101, 68, 97, 116, 97, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 124,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 83,
			121, 115, 116, 101, 109, 92, 83, 116, 97, 116,
			101, 92, 68, 97, 116, 97, 92, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 83, 116, 97,
			116, 101, 83, 104, 111, 114, 116, 99, 117, 116,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 131, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 83, 116,
			97, 116, 101, 92, 80, 114, 111, 118, 105, 100,
			101, 114, 92, 66, 97, 115, 101, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 83, 116, 97,
			116, 101, 80, 114, 111, 118, 105, 100, 101, 114,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			141, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			65, 102, 102, 111, 114, 100, 97, 110, 99, 101,
			83, 121, 115, 116, 101, 109, 92, 83, 116, 97,
			116, 101, 92, 80, 114, 111, 118, 105, 100, 101,
			114, 92, 88, 82, 73, 110, 116, 101, 114, 97,
			99, 116, 97, 98, 108, 101, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 116, 97, 116,
			101, 80, 114, 111, 118, 105, 100, 101, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 139,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 65,
			102, 102, 111, 114, 100, 97, 110, 99, 101, 83,
			121, 115, 116, 101, 109, 92, 83, 116, 97, 116,
			101, 92, 80, 114, 111, 118, 105, 100, 101, 114,
			92, 88, 82, 73, 110, 116, 101, 114, 97, 99,
			116, 111, 114, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 83, 116, 97, 116, 101, 80, 114,
			111, 118, 105, 100, 101, 114, 46, 99, 115, 0,
			0, 0, 4, 0, 0, 0, 126, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 65, 102, 102, 111,
			114, 100, 97, 110, 99, 101, 83, 121, 115, 116,
			101, 109, 92, 84, 104, 101, 109, 101, 92, 65,
			117, 100, 105, 111, 92, 65, 117, 100, 105, 111,
			65, 102, 102, 111, 114, 100, 97, 110, 99, 101,
			84, 104, 101, 109, 101, 68, 97, 116, 117, 109,
			46, 99, 115, 0, 0, 0, 2, 0, 0, 0,
			114, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			65, 102, 102, 111, 114, 100, 97, 110, 99, 101,
			83, 121, 115, 116, 101, 109, 92, 84, 104, 101,
			109, 101, 92, 66, 97, 115, 101, 65, 102, 102,
			111, 114, 100, 97, 110, 99, 101, 84, 104, 101,
			109, 101, 46, 99, 115, 0, 0, 0, 3, 0,
			0, 0, 131, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 84,
			104, 101, 109, 101, 92, 80, 114, 105, 109, 105,
			116, 105, 118, 101, 115, 92, 67, 111, 108, 111,
			114, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 84, 104, 101, 109, 101, 68, 97, 116, 117,
			109, 46, 99, 115, 0, 0, 0, 3, 0, 0,
			0, 131, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 84, 104,
			101, 109, 101, 92, 80, 114, 105, 109, 105, 116,
			105, 118, 101, 115, 92, 70, 108, 111, 97, 116,
			65, 102, 102, 111, 114, 100, 97, 110, 99, 101,
			84, 104, 101, 109, 101, 68, 97, 116, 117, 109,
			46, 99, 115, 0, 0, 0, 3, 0, 0, 0,
			133, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			65, 102, 102, 111, 114, 100, 97, 110, 99, 101,
			83, 121, 115, 116, 101, 109, 92, 84, 104, 101,
			109, 101, 92, 80, 114, 105, 109, 105, 116, 105,
			118, 101, 115, 92, 86, 101, 99, 116, 111, 114,
			50, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 84, 104, 101, 109, 101, 68, 97, 116, 117,
			109, 46, 99, 115, 0, 0, 0, 3, 0, 0,
			0, 133, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 65, 102, 102, 111, 114, 100, 97, 110, 99,
			101, 83, 121, 115, 116, 101, 109, 92, 84, 104,
			101, 109, 101, 92, 80, 114, 105, 109, 105, 116,
			105, 118, 101, 115, 92, 86, 101, 99, 116, 111,
			114, 51, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 84, 104, 101, 109, 101, 68, 97, 116,
			117, 109, 46, 99, 115, 0, 0, 0, 3, 0,
			0, 0, 133, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 65, 102, 102, 111, 114, 100, 97, 110,
			99, 101, 83, 121, 115, 116, 101, 109, 92, 84,
			104, 101, 109, 101, 92, 80, 114, 105, 109, 105,
			116, 105, 118, 101, 115, 92, 86, 101, 99, 116,
			111, 114, 52, 65, 102, 102, 111, 114, 100, 97,
			110, 99, 101, 84, 104, 101, 109, 101, 68, 97,
			116, 117, 109, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 94, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 112, 117, 116, 115, 92,
			67, 97, 114, 100, 105, 110, 97, 108, 85, 116,
			105, 108, 105, 116, 121, 46, 99, 115, 0, 0,
			0, 6, 0, 0, 0, 107, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 112, 117, 116,
			115, 92, 67, 111, 109, 112, 111, 115, 105, 116,
			101, 115, 92, 70, 97, 108, 108, 98, 97, 99,
			107, 67, 111, 109, 112, 111, 115, 105, 116, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			97, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 112, 117, 116, 115, 92, 73, 110, 112,
			117, 116, 65, 99, 116, 105, 111, 110, 77, 97,
			110, 97, 103, 101, 114, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 108, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 112, 117, 116,
			115, 92, 73, 110, 112, 117, 116, 65, 99, 116,
			105, 111, 110, 80, 114, 111, 112, 101, 114, 116,
			121, 69, 120, 116, 101, 110, 115, 105, 111, 110,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 109, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 112, 117, 116, 115, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 115,
			92, 83, 101, 99, 116, 111, 114, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 117, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			112, 117, 116, 115, 92, 83, 105, 109, 117, 108,
			97, 116, 105, 111, 110, 92, 72, 97, 110, 100,
			115, 92, 72, 97, 110, 100, 69, 120, 112, 114,
			101, 115, 115, 105, 111, 110, 67, 97, 112, 116,
			117, 114, 101, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 114, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 112, 117, 116, 115, 92,
			83, 105, 109, 117, 108, 97, 116, 105, 111, 110,
			92, 72, 97, 110, 100, 115, 92, 72, 97, 110,
			100, 69, 120, 112, 114, 101, 115, 115, 105, 111,
			110, 78, 97, 109, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 116, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 112, 117, 116,
			115, 92, 83, 105, 109, 117, 108, 97, 116, 105,
			111, 110, 92, 72, 97, 110, 100, 115, 92, 88,
			82, 83, 105, 109, 117, 108, 97, 116, 101, 100,
			72, 97, 110, 100, 83, 116, 97, 116, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 116,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 112, 117, 116, 115, 92, 83, 105, 109, 117,
			108, 97, 116, 105, 111, 110, 92, 83, 105, 109,
			117, 108, 97, 116, 101, 100, 73, 110, 112, 117,
			116, 76, 97, 121, 111, 117, 116, 76, 111, 97,
			100, 101, 114, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 107, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 112, 117, 116, 115, 92,
			83, 105, 109, 117, 108, 97, 116, 105, 111, 110,
			92, 88, 82, 68, 101, 118, 105, 99, 101, 83,
			105, 109, 117, 108, 97, 116, 111, 114, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 113, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			112, 117, 116, 115, 92, 83, 105, 109, 117, 108,
			97, 116, 105, 111, 110, 92, 88, 82, 68, 101,
			118, 105, 99, 101, 83, 105, 109, 117, 108, 97,
			116, 111, 114, 76, 111, 97, 100, 101, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 115,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 112, 117, 116, 115, 92, 83, 105, 109, 117,
			108, 97, 116, 105, 111, 110, 92, 88, 82, 68,
			101, 118, 105, 99, 101, 83, 105, 109, 117, 108,
			97, 116, 111, 114, 83, 101, 116, 116, 105, 110,
			103, 115, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 111, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 73, 110, 112, 117, 116, 115, 92, 83,
			105, 109, 117, 108, 97, 116, 105, 111, 110, 92,
			88, 82, 83, 105, 109, 117, 108, 97, 116, 101,
			100, 67, 111, 110, 116, 114, 111, 108, 108, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 116, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 112, 117, 116, 115, 92, 83, 105,
			109, 117, 108, 97, 116, 105, 111, 110, 92, 88,
			82, 83, 105, 109, 117, 108, 97, 116, 101, 100,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			83, 116, 97, 116, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 104, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 112, 117, 116,
			115, 92, 83, 105, 109, 117, 108, 97, 116, 105,
			111, 110, 92, 88, 82, 83, 105, 109, 117, 108,
			97, 116, 101, 100, 72, 77, 68, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 109, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 112,
			117, 116, 115, 92, 83, 105, 109, 117, 108, 97,
			116, 105, 111, 110, 92, 88, 82, 83, 105, 109,
			117, 108, 97, 116, 101, 100, 72, 77, 68, 83,
			116, 97, 116, 101, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 106, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 112, 117, 116, 115,
			92, 88, 82, 72, 97, 110, 100, 83, 107, 101,
			108, 101, 116, 111, 110, 80, 111, 107, 101, 68,
			105, 115, 112, 108, 97, 99, 101, 114, 46, 99,
			115, 0, 0, 0, 3, 0, 0, 0, 101, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			112, 117, 116, 115, 92, 88, 82, 73, 110, 112,
			117, 116, 77, 111, 100, 97, 108, 105, 116, 121,
			77, 97, 110, 97, 103, 101, 114, 46, 99, 115,
			0, 0, 0, 3, 0, 0, 0, 104, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 112,
			117, 116, 115, 92, 88, 82, 73, 110, 112, 117,
			116, 84, 114, 97, 99, 107, 105, 110, 103, 65,
			103, 103, 114, 101, 103, 97, 116, 111, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 100,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 112, 117, 116, 115, 92, 88, 82, 84, 114,
			97, 110, 115, 102, 111, 114, 109, 83, 116, 97,
			98, 105, 108, 105, 122, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 120, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 65,
			116, 116, 114, 105, 98, 117, 116, 101, 115, 92,
			67, 97, 110, 70, 111, 99, 117, 115, 77, 117,
			108, 116, 105, 112, 108, 101, 65, 116, 116, 114,
			105, 98, 117, 116, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 121, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 65, 116, 116,
			114, 105, 98, 117, 116, 101, 115, 92, 67, 97,
			110, 83, 101, 108, 101, 99, 116, 77, 117, 108,
			116, 105, 112, 108, 101, 65, 116, 116, 114, 105,
			98, 117, 116, 101, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 128, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 65, 116, 116, 114,
			105, 98, 117, 116, 101, 115, 92, 88, 82, 84,
			97, 114, 103, 101, 116, 69, 118, 97, 108, 117,
			97, 116, 111, 114, 69, 110, 97, 98, 108, 101,
			100, 65, 116, 116, 114, 105, 98, 117, 116, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			117, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 67, 111, 110, 116, 114, 111, 108, 108,
			101, 114, 115, 92, 65, 99, 116, 105, 111, 110,
			66, 97, 115, 101, 100, 67, 111, 110, 116, 114,
			111, 108, 108, 101, 114, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 128, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 67, 111, 110,
			116, 114, 111, 108, 108, 101, 114, 115, 92, 65,
			99, 116, 105, 111, 110, 66, 97, 115, 101, 100,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			46, 100, 101, 112, 114, 101, 99, 97, 116, 101,
			100, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 117, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 92, 67, 111, 110, 116, 114, 111, 108,
			108, 101, 114, 115, 92, 73, 88, 82, 83, 99,
			97, 108, 101, 86, 97, 108, 117, 101, 80, 114,
			111, 118, 105, 100, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 112, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 115, 92,
			88, 82, 66, 97, 115, 101, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 123, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 115, 92,
			88, 82, 66, 97, 115, 101, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 46, 100, 101, 112,
			114, 101, 99, 97, 116, 101, 100, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 108, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 67,
			111, 110, 116, 114, 111, 108, 108, 101, 114, 115,
			92, 88, 82, 67, 111, 110, 116, 114, 111, 108,
			108, 101, 114, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 116, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 67, 111, 110, 116, 114,
			111, 108, 108, 101, 114, 115, 92, 88, 82, 67,
			111, 110, 116, 114, 111, 108, 108, 101, 114, 82,
			101, 99, 111, 114, 100, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 117, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 67,
			111, 110, 116, 114, 111, 108, 108, 101, 114, 115,
			92, 88, 82, 67, 111, 110, 116, 114, 111, 108,
			108, 101, 114, 82, 101, 99, 111, 114, 100, 105,
			110, 103, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 128, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 92, 67, 111, 110, 116, 114, 111,
			108, 108, 101, 114, 115, 92, 88, 82, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 82, 101,
			99, 111, 114, 100, 105, 110, 103, 46, 100, 101,
			112, 114, 101, 99, 97, 116, 101, 100, 46, 99,
			115, 0, 0, 0, 2, 0, 0, 0, 113, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 92,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			115, 92, 88, 82, 67, 111, 110, 116, 114, 111,
			108, 108, 101, 114, 83, 116, 97, 116, 101, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 124,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 67, 111, 110, 116, 114, 111, 108, 108, 101,
			114, 115, 92, 88, 82, 67, 111, 110, 116, 114,
			111, 108, 108, 101, 114, 83, 116, 97, 116, 101,
			46, 100, 101, 112, 114, 101, 99, 97, 116, 101,
			100, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 119, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 92, 67, 111, 110, 116, 114, 111, 108,
			108, 101, 114, 115, 92, 88, 82, 83, 99, 114,
			101, 101, 110, 83, 112, 97, 99, 101, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 130, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 92,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			115, 92, 88, 82, 83, 99, 114, 101, 101, 110,
			83, 112, 97, 99, 101, 67, 111, 110, 116, 114,
			111, 108, 108, 101, 114, 46, 100, 101, 112, 114,
			101, 99, 97, 116, 101, 100, 46, 99, 115, 0,
			0, 0, 2, 0, 0, 0, 114, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 70, 105,
			108, 116, 101, 114, 105, 110, 103, 92, 72, 111,
			118, 101, 114, 92, 73, 88, 82, 72, 111, 118,
			101, 114, 70, 105, 108, 116, 101, 114, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 107, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 92,
			70, 105, 108, 116, 101, 114, 105, 110, 103, 92,
			73, 88, 82, 70, 105, 108, 116, 101, 114, 76,
			105, 115, 116, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 142, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 70, 105, 108, 116, 101,
			114, 105, 110, 103, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 83, 116, 114, 101,
			110, 103, 116, 104, 92, 73, 88, 82, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 83,
			116, 114, 101, 110, 103, 116, 104, 70, 105, 108,
			116, 101, 114, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 126, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 70, 105, 108, 116, 101,
			114, 105, 110, 103, 92, 80, 111, 107, 101, 92,
			73, 77, 117, 108, 116, 105, 80, 111, 107, 101,
			83, 116, 97, 116, 101, 68, 97, 116, 97, 80,
			114, 111, 118, 105, 100, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 121, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 70,
			105, 108, 116, 101, 114, 105, 110, 103, 92, 80,
			111, 107, 101, 92, 73, 80, 111, 107, 101, 83,
			116, 97, 116, 101, 68, 97, 116, 97, 80, 114,
			111, 118, 105, 100, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 112, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 70, 105,
			108, 116, 101, 114, 105, 110, 103, 92, 80, 111,
			107, 101, 92, 73, 88, 82, 80, 111, 107, 101,
			70, 105, 108, 116, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 112, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 70, 105,
			108, 116, 101, 114, 105, 110, 103, 92, 80, 111,
			107, 101, 92, 80, 111, 107, 101, 83, 116, 97,
			116, 101, 68, 97, 116, 97, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 116, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 70, 105,
			108, 116, 101, 114, 105, 110, 103, 92, 80, 111,
			107, 101, 92, 80, 111, 107, 101, 84, 104, 114,
			101, 115, 104, 111, 108, 100, 68, 97, 116, 97,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			117, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 70, 105, 108, 116, 101, 114, 105, 110,
			103, 92, 80, 111, 107, 101, 92, 80, 111, 107,
			101, 84, 104, 114, 101, 115, 104, 111, 108, 100,
			68, 97, 116, 117, 109, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 125, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 70, 105, 108,
			116, 101, 114, 105, 110, 103, 92, 80, 111, 107,
			101, 92, 80, 111, 107, 101, 84, 104, 114, 101,
			115, 104, 111, 108, 100, 68, 97, 116, 117, 109,
			80, 114, 111, 112, 101, 114, 116, 121, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 111, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 92,
			70, 105, 108, 116, 101, 114, 105, 110, 103, 92,
			80, 111, 107, 101, 92, 88, 82, 80, 111, 107,
			101, 70, 105, 108, 116, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 110, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 70,
			105, 108, 116, 101, 114, 105, 110, 103, 92, 80,
			111, 107, 101, 92, 88, 82, 80, 111, 107, 101,
			76, 111, 103, 105, 99, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 116, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 70, 105, 108,
			116, 101, 114, 105, 110, 103, 92, 83, 101, 108,
			101, 99, 116, 92, 73, 88, 82, 83, 101, 108,
			101, 99, 116, 70, 105, 108, 116, 101, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 138,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 70, 105, 108, 116, 101, 114, 105, 110, 103,
			92, 84, 97, 114, 103, 101, 116, 92, 69, 118,
			97, 108, 117, 97, 116, 111, 114, 115, 92, 73,
			88, 82, 84, 97, 114, 103, 101, 116, 69, 118,
			97, 108, 117, 97, 116, 111, 114, 76, 105, 110,
			107, 97, 98, 108, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 132, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 70, 105, 108,
			116, 101, 114, 105, 110, 103, 92, 84, 97, 114,
			103, 101, 116, 92, 69, 118, 97, 108, 117, 97,
			116, 111, 114, 115, 92, 88, 82, 65, 110, 103,
			108, 101, 71, 97, 122, 101, 69, 118, 97, 108,
			117, 97, 116, 111, 114, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 131, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 70, 105, 108,
			116, 101, 114, 105, 110, 103, 92, 84, 97, 114,
			103, 101, 116, 92, 69, 118, 97, 108, 117, 97,
			116, 111, 114, 115, 92, 88, 82, 68, 105, 115,
			116, 97, 110, 99, 101, 69, 118, 97, 108, 117,
			97, 116, 111, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 135, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 70, 105, 108, 116,
			101, 114, 105, 110, 103, 92, 84, 97, 114, 103,
			101, 116, 92, 69, 118, 97, 108, 117, 97, 116,
			111, 114, 115, 92, 88, 82, 76, 97, 115, 116,
			83, 101, 108, 101, 99, 116, 101, 100, 69, 118,
			97, 108, 117, 97, 116, 111, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 129, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 70,
			105, 108, 116, 101, 114, 105, 110, 103, 92, 84,
			97, 114, 103, 101, 116, 92, 69, 118, 97, 108,
			117, 97, 116, 111, 114, 115, 92, 88, 82, 84,
			97, 114, 103, 101, 116, 69, 118, 97, 108, 117,
			97, 116, 111, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 124, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 70, 105, 108, 116,
			101, 114, 105, 110, 103, 92, 84, 97, 114, 103,
			101, 116, 92, 70, 105, 108, 116, 101, 114, 115,
			92, 73, 88, 82, 84, 97, 114, 103, 101, 116,
			70, 105, 108, 116, 101, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 127, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 70, 105,
			108, 116, 101, 114, 105, 110, 103, 92, 84, 97,
			114, 103, 101, 116, 92, 70, 105, 108, 116, 101,
			114, 115, 92, 88, 82, 66, 97, 115, 101, 84,
			97, 114, 103, 101, 116, 70, 105, 108, 116, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 123, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 92, 70, 105, 108, 116, 101, 114, 105,
			110, 103, 92, 84, 97, 114, 103, 101, 116, 92,
			70, 105, 108, 116, 101, 114, 115, 92, 88, 82,
			84, 97, 114, 103, 101, 116, 70, 105, 108, 116,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 110, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 97, 98, 108, 101, 115, 92, 68, 105,
			115, 116, 97, 110, 99, 101, 73, 110, 102, 111,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			121, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			97, 98, 108, 101, 115, 92, 73, 88, 82, 65,
			99, 116, 105, 118, 97, 116, 101, 73, 110, 116,
			101, 114, 97, 99, 116, 97, 98, 108, 101, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 118,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 97,
			98, 108, 101, 115, 92, 73, 88, 82, 70, 111,
			99, 117, 115, 73, 110, 116, 101, 114, 97, 99,
			116, 97, 98, 108, 101, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 118, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 97, 98, 108, 101, 115,
			92, 73, 88, 82, 72, 111, 118, 101, 114, 73,
			110, 116, 101, 114, 97, 99, 116, 97, 98, 108,
			101, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 113, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 97, 98, 108, 101, 115, 92, 73, 88, 82,
			73, 110, 116, 101, 114, 97, 99, 116, 97, 98,
			108, 101, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 132, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 97, 98, 108, 101, 115, 92, 73, 88,
			82, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 83, 116, 114, 101, 110, 103, 116, 104,
			73, 110, 116, 101, 114, 97, 99, 116, 97, 98,
			108, 101, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 119, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 97, 98, 108, 101, 115, 92, 73, 88,
			82, 83, 101, 108, 101, 99, 116, 73, 110, 116,
			101, 114, 97, 99, 116, 97, 98, 108, 101, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 129,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 97,
			98, 108, 101, 115, 92, 86, 105, 115, 117, 97,
			108, 92, 88, 82, 84, 105, 110, 116, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			86, 105, 115, 117, 97, 108, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 116, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			115, 92, 88, 82, 66, 97, 115, 101, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			127, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			97, 98, 108, 101, 115, 92, 88, 82, 66, 97,
			115, 101, 73, 110, 116, 101, 114, 97, 99, 116,
			97, 98, 108, 101, 46, 100, 101, 112, 114, 101,
			99, 97, 116, 101, 100, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 116, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 97, 98, 108, 101, 115,
			92, 88, 82, 71, 114, 97, 98, 73, 110, 116,
			101, 114, 97, 99, 116, 97, 98, 108, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 127,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 97,
			98, 108, 101, 115, 92, 88, 82, 71, 114, 97,
			98, 73, 110, 116, 101, 114, 97, 99, 116, 97,
			98, 108, 101, 46, 100, 101, 112, 114, 101, 99,
			97, 116, 101, 100, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 122, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 97, 98, 108, 101, 115, 92,
			88, 82, 73, 110, 116, 101, 114, 97, 99, 116,
			97, 98, 108, 101, 83, 110, 97, 112, 86, 111,
			108, 117, 109, 101, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 118, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 97, 98, 108, 101, 115, 92,
			88, 82, 83, 105, 109, 112, 108, 101, 73, 110,
			116, 101, 114, 97, 99, 116, 97, 98, 108, 101,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			117, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			111, 114, 115, 92, 73, 88, 82, 65, 99, 116,
			105, 118, 97, 116, 101, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 110, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 111, 114, 115, 92, 73,
			88, 82, 71, 114, 111, 117, 112, 77, 101, 109,
			98, 101, 114, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 114, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 115, 92, 73, 88, 82,
			72, 111, 118, 101, 114, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 115, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 111, 114, 115, 92, 73,
			88, 82, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 71, 114, 111, 117, 112, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 123, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 111, 114,
			115, 92, 73, 88, 82, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 79, 118, 101, 114,
			114, 105, 100, 101, 71, 114, 111, 117, 112, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 128,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 111,
			114, 115, 92, 73, 88, 82, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 83, 116, 114,
			101, 110, 103, 116, 104, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 109, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 111, 114, 115, 92, 73,
			88, 82, 73, 110, 116, 101, 114, 97, 99, 116,
			111, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 110, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 46,
			116, 111, 111, 108, 107, 105, 116, 64, 50, 46,
			53, 46, 51, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 111, 114, 115, 92, 73, 88, 82, 82,
			97, 121, 80, 114, 111, 118, 105, 100, 101, 114,
			46, 99, 115, 0, 0, 0, 2, 0, 0, 0,
			115, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			111, 114, 115, 92, 73, 88, 82, 83, 101, 108,
			101, 99, 116, 73, 110, 116, 101, 114, 97, 99,
			116, 111, 114, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 123, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 115, 92, 73, 88, 82,
			84, 97, 114, 103, 101, 116, 80, 114, 105, 111,
			114, 105, 116, 121, 73, 110, 116, 101, 114, 97,
			99, 116, 111, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 127, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 111, 114, 115, 92, 86, 105,
			115, 117, 97, 108, 92, 73, 88, 82, 67, 117,
			115, 116, 111, 109, 82, 101, 116, 105, 99, 108,
			101, 80, 114, 111, 118, 105, 100, 101, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 130,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 111,
			114, 115, 92, 86, 105, 115, 117, 97, 108, 92,
			73, 88, 82, 82, 101, 116, 105, 99, 108, 101,
			68, 105, 114, 101, 99, 116, 105, 111, 110, 80,
			114, 111, 118, 105, 100, 101, 114, 46, 99, 115,
			0, 0, 0, 3, 0, 0, 0, 125, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 111, 114, 115,
			92, 86, 105, 115, 117, 97, 108, 92, 88, 82,
			73, 110, 116, 101, 114, 97, 99, 116, 111, 114,
			76, 105, 110, 101, 86, 105, 115, 117, 97, 108,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			128, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			111, 114, 115, 92, 86, 105, 115, 117, 97, 108,
			92, 88, 82, 73, 110, 116, 101, 114, 97, 99,
			116, 111, 114, 82, 101, 116, 105, 99, 108, 101,
			86, 105, 115, 117, 97, 108, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 122, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 111, 114, 115, 92,
			88, 82, 66, 97, 115, 101, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 73, 110, 116, 101,
			114, 97, 99, 116, 111, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 133, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 111, 114, 115, 92,
			88, 82, 66, 97, 115, 101, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 73, 110, 116, 101,
			114, 97, 99, 116, 111, 114, 46, 100, 101, 112,
			114, 101, 99, 97, 116, 101, 100, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 112, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 111, 114, 115,
			92, 88, 82, 66, 97, 115, 101, 73, 110, 116,
			101, 114, 97, 99, 116, 111, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 123, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 111, 114, 115,
			92, 88, 82, 66, 97, 115, 101, 73, 110, 116,
			101, 114, 97, 99, 116, 111, 114, 46, 100, 101,
			112, 114, 101, 99, 97, 116, 101, 100, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 114, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 111, 114,
			115, 92, 88, 82, 68, 105, 114, 101, 99, 116,
			73, 110, 116, 101, 114, 97, 99, 116, 111, 114,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			125, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 105, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 46, 116, 111,
			111, 108, 107, 105, 116, 64, 50, 46, 53, 46,
			51, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 92, 73, 110, 116, 101, 114, 97, 99, 116,
			111, 114, 115, 92, 88, 82, 68, 105, 114, 101,
			99, 116, 73, 110, 116, 101, 114, 97, 99, 116,
			111, 114, 46, 100, 101, 112, 114, 101, 99, 97,
			116, 101, 100, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 112, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 115, 92, 88, 82, 71,
			97, 122, 101, 73, 110, 116, 101, 114, 97, 99,
			116, 111, 114, 46, 99, 115, 0, 0, 0, 3,
			0, 0, 0, 114, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 115, 92, 88, 82, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			71, 114, 111, 117, 112, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 112, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 111, 114, 115, 92, 88,
			82, 80, 111, 107, 101, 73, 110, 116, 101, 114,
			97, 99, 116, 111, 114, 46, 99, 115, 0, 0,
			0, 3, 0, 0, 0, 111, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 111, 114, 115, 92, 88,
			82, 82, 97, 121, 73, 110, 116, 101, 114, 97,
			99, 116, 111, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 122, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 111, 114, 115, 92, 88, 82,
			82, 97, 121, 73, 110, 116, 101, 114, 97, 99,
			116, 111, 114, 46, 100, 101, 112, 114, 101, 99,
			97, 116, 101, 100, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 114, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 111, 114, 115, 92, 88, 82,
			83, 111, 99, 107, 101, 116, 73, 110, 116, 101,
			114, 97, 99, 116, 111, 114, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 125, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 105, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 46, 116, 111, 111, 108, 107, 105,
			116, 64, 50, 46, 53, 46, 51, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 111, 114, 115, 92,
			88, 82, 83, 111, 99, 107, 101, 116, 73, 110,
			116, 101, 114, 97, 99, 116, 111, 114, 46, 100,
			101, 112, 114, 101, 99, 97, 116, 101, 100, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 111,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 105, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 46, 116, 111, 111,
			108, 107, 105, 116, 64, 50, 46, 53, 46, 51,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			92, 76, 97, 121, 101, 114, 115, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 76,
			97, 121, 101, 114, 77, 97, 115, 107, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 115, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 105, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 46, 116, 111, 111, 108,
			107, 105, 116, 64, 50, 46, 53, 46, 51, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 92,
			76, 97, 121, 101, 114, 115, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 76, 97,
			121, 101, 114, 83, 101, 116, 116, 105, 110, 103,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 106, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 92, 79, 118, 101, 114, 114, 105, 100,
			101, 115, 92, 73, 88, 82, 65, 105, 109, 65,
			115, 115, 105, 115, 116, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 120, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 105, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 116, 111, 111, 108, 107, 105, 116,
			64, 50, 46, 53, 46, 51, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 92, 79, 118, 101,
			114, 114, 105, 100, 101, 115, 92, 73, 88, 82,
			79, 118, 101, 114, 114, 105, 100, 101, 115, 71,
			97, 122, 101, 65, 117, 116, 111, 83, 101, 108,
			101, 99, 116, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 110, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 79, 118, 101, 114, 114,
			105, 100, 101, 115, 92, 88, 82, 71, 97, 122,
			101, 65, 115, 115, 105, 115, 116, 97, 110, 99,
			101, 46, 99, 115, 0, 0, 0, 2, 0, 0,
			0, 115, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 105, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 116,
			111, 111, 108, 107, 105, 116, 64, 50, 46, 53,
			46, 51, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 92, 84, 114, 97, 110, 115, 102, 111,
			114, 109, 101, 114, 115, 92, 73, 88, 82, 68,
			114, 111, 112, 84, 114, 97, 110, 115, 102, 111,
			114, 109, 101, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 115, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			105, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 116, 111, 111, 108, 107, 105, 116, 64,
			50, 46, 53, 46, 51, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 92, 84, 114, 97, 110,
			115, 102, 111, 114, 109, 101, 114, 115, 92, 73,
			88, 82, 71, 114, 97, 98, 84, 114, 97, 110,
			115, 102, 111, 114, 109, 101, 114, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 118, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 105, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 116, 111, 111, 108, 107,
			105, 116, 64, 50, 46, 53, 46, 51, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 92, 84,
			114, 97, 110, 115, 102, 111, 114, 109, 101, 114,
			115, 92, 88, 82, 66, 97, 115, 101, 71, 114,
			97, 98, 84, 114, 97, 110, 115, 102, 111, 114,
			109, 101, 114, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 122, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 84, 114, 97, 110, 115,
			102, 111, 114, 109, 101, 114, 115, 92, 88, 82,
			68, 117, 97, 108, 71, 114, 97, 98, 70, 114,
			101, 101, 84, 114, 97, 110, 115, 102, 111, 114,
			109, 101, 114, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 121, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 105,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 116, 111, 111, 108, 107, 105, 116, 64, 50,
			46, 53, 46, 51, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 92, 84, 114, 97, 110, 115,
			102, 111, 114, 109, 101, 114, 115, 92, 88, 82,
			71, 101, 110, 101, 114, 97, 108, 71, 114, 97,
			98, 84, 114, 97, 110, 115, 102, 111, 114, 109,
			101, 114, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 120, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 105, 110,
			116, 101, 114, 97

BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.Management.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using UnityEngine.Rendering;
using UnityEngine.Serialization;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: InternalsVisibleTo("Unity.XR.Management.Editor")]
[assembly: InternalsVisibleTo("Unity.XR.Management.Tests")]
[assembly: InternalsVisibleTo("Unity.XR.Management.EditorTests")]
[assembly: AssemblyVersion("0.0.0.0")]
[CompilerGenerated]
[EditorBrowsable(EditorBrowsableState.Never)]
[GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)]
internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1
{
	private struct MonoScriptData
	{
		public byte[] FilePathsData;

		public byte[] TypesData;

		public int TotalTypes;

		public int TotalFiles;

		public bool IsEditorOnly;
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private static MonoScriptData Get()
	{
		MonoScriptData result = default(MonoScriptData);
		result.FilePathsData = new byte[522]
		{
			0, 0, 0, 1, 0, 0, 0, 82, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 109, 97, 110, 97, 103, 101, 109,
			101, 110, 116, 64, 52, 46, 52, 46, 49, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 88, 82,
			67, 111, 110, 102, 105, 103, 117, 114, 97, 116,
			105, 111, 110, 68, 97, 116, 97, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 80, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 109, 97, 110, 97, 103, 101, 109,
			101, 110, 116, 64, 52, 46, 52, 46, 49, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 88, 82,
			71, 101, 110, 101, 114, 97, 108, 83, 101, 116,
			116, 105, 110, 103, 115, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 71, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 109, 97, 110, 97, 103, 101, 109, 101, 110,
			116, 64, 52, 46, 52, 46, 49, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 88, 82, 76, 111,
			97, 100, 101, 114, 46, 99, 115, 0, 0, 0,
			1, 0, 0, 0, 77, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			109, 97, 110, 97, 103, 101, 109, 101, 110, 116,
			64, 52, 46, 52, 46, 49, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 88, 82, 76, 111, 97,
			100, 101, 114, 72, 101, 108, 112, 101, 114, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 84,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 109, 97, 110, 97, 103,
			101, 109, 101, 110, 116, 64, 52, 46, 52, 46,
			49, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			88, 82, 77, 97, 110, 97, 103, 101, 109, 101,
			110, 116, 65, 110, 97, 108, 121, 116, 105, 99,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 80, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 109, 97, 110,
			97, 103, 101, 109, 101, 110, 116, 64, 52, 46,
			52, 46, 49, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 88, 82, 77, 97, 110, 97, 103, 101,
			114, 83, 101, 116, 116, 105, 110, 103, 115, 46,
			99, 115
		};
		result.TypesData = new byte[354]
		{
			0, 0, 0, 0, 54, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			77, 97, 110, 97, 103, 101, 109, 101, 110, 116,
			124, 88, 82, 67, 111, 110, 102, 105, 103, 117,
			114, 97, 116, 105, 111, 110, 68, 97, 116, 97,
			65, 116, 116, 114, 105, 98, 117, 116, 101, 0,
			0, 0, 0, 43, 85, 110, 105, 116, 121, 69,
			110, 103, 105, 110, 101, 46, 88, 82, 46, 77,
			97, 110, 97, 103, 101, 109, 101, 110, 116, 124,
			88, 82, 71, 101, 110, 101, 114, 97, 108, 83,
			101, 116, 116, 105, 110, 103, 115, 0, 0, 0,
			0, 34, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 77, 97, 110,
			97, 103, 101, 109, 101, 110, 116, 124, 88, 82,
			76, 111, 97, 100, 101, 114, 0, 0, 0, 0,
			40, 85, 110, 105, 116, 121, 69, 110, 103, 105,
			110, 101, 46, 88, 82, 46, 77, 97, 110, 97,
			103, 101, 109, 101, 110, 116, 124, 88, 82, 76,
			111, 97, 100, 101, 114, 72, 101, 108, 112, 101,
			114, 0, 0, 0, 0, 47, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 77, 97, 110, 97, 103, 101, 109, 101, 110,
			116, 124, 88, 82, 77, 97, 110, 97, 103, 101,
			109, 101, 110, 116, 65, 110, 97, 108, 121, 116,
			105, 99, 115, 0, 0, 0, 0, 58, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 77, 97, 110, 97, 103, 101, 109,
			101, 110, 116, 46, 88, 82, 77, 97, 110, 97,
			103, 101, 109, 101, 110, 116, 65, 110, 97, 108,
			121, 116, 105, 99, 115, 124, 66, 117, 105, 108,
			100, 69, 118, 101, 110, 116, 0, 0, 0, 0,
			43, 85, 110, 105, 116, 121, 69, 110, 103, 105,
			110, 101, 46, 88, 82, 46, 77, 97, 110, 97,
			103, 101, 109, 101, 110, 116, 124, 88, 82, 77,
			97, 110, 97, 103, 101, 114, 83, 101, 116, 116,
			105, 110, 103, 115
		};
		result.TotalFiles = 6;
		result.TotalTypes = 7;
		result.IsEditorOnly = false;
		return result;
	}
}
namespace UnityEngine.XR.Management;

[AttributeUsage(AttributeTargets.Class)]
public sealed class XRConfigurationDataAttribute : Attribute
{
	public string displayName { get; set; }

	public string buildSettingsKey { get; set; }

	private XRConfigurationDataAttribute()
	{
	}

	public XRConfigurationDataAttribute(string displayName, string buildSettingsKey)
	{
		this.displayName = displayName;
		this.buildSettingsKey = buildSettingsKey;
	}
}
public class XRGeneralSettings : ScriptableObject
{
	public static string k_SettingsKey = "com.unity.xr.management.loader_settings";

	internal static XRGeneralSettings s_RuntimeSettingsInstance = null;

	[SerializeField]
	internal XRManagerSettings m_LoaderManagerInstance;

	[SerializeField]
	[Tooltip("Toggling this on/off will enable/disable the automatic startup of XR at run time.")]
	internal bool m_InitManagerOnStart = true;

	private XRManagerSettings m_XRManager;

	private bool m_ProviderIntialized;

	private bool m_ProviderStarted;

	public XRManagerSettings Manager
	{
		get
		{
			return m_LoaderManagerInstance;
		}
		set
		{
			m_LoaderManagerInstance = value;
		}
	}

	public static XRGeneralSettings Instance => s_RuntimeSettingsInstance;

	public XRManagerSettings AssignedSettings => m_LoaderManagerInstance;

	public bool InitManagerOnStart => m_InitManagerOnStart;

	private void Awake()
	{
		Debug.Log((object)"XRGeneral Settings awakening...");
		s_RuntimeSettingsInstance = this;
		Application.quitting += Quit;
		Object.DontDestroyOnLoad((Object)(object)s_RuntimeSettingsInstance);
	}

	private static void Quit()
	{
		XRGeneralSettings instance = Instance;
		if (!((Object)(object)instance == (Object)null))
		{
			instance.DeInitXRSDK();
		}
	}

	private void Start()
	{
		StartXRSDK();
	}

	private void OnDestroy()
	{
		DeInitXRSDK();
	}

	[RuntimeInitializeOnLoadMethod(/*Could not decode attribute arguments.*/)]
	internal static void AttemptInitializeXRSDKOnLoad()
	{
		XRGeneralSettings instance = Instance;
		if (!((Object)(object)instance == (Object)null) && instance.InitManagerOnStart)
		{
			instance.InitXRSDK();
		}
	}

	[RuntimeInitializeOnLoadMethod(/*Could not decode attribute arguments.*/)]
	internal static void AttemptStartXRSDKOnBeforeSplashScreen()
	{
		XRGeneralSettings instance = Instance;
		if (!((Object)(object)instance == (Object)null) && instance.InitManagerOnStart)
		{
			instance.StartXRSDK();
		}
	}

	private void InitXRSDK()
	{
		if (!((Object)(object)Instance == (Object)null) && !((Object)(object)Instance.m_LoaderManagerInstance == (Object)null) && Instance.m_InitManagerOnStart)
		{
			m_XRManager = Instance.m_LoaderManagerInstance;
			if ((Object)(object)m_XRManager == (Object)null)
			{
				Debug.LogError((object)"Assigned GameObject for XR Management loading is invalid. No XR Providers will be automatically loaded.");
				return;
			}
			m_XRManager.automaticLoading = false;
			m_XRManager.automaticRunning = false;
			m_XRManager.InitializeLoaderSync();
			m_ProviderIntialized = true;
		}
	}

	private void StartXRSDK()
	{
		if ((Object)(object)m_XRManager != (Object)null && (Object)(object)m_XRManager.activeLoader != (Object)null)
		{
			m_XRManager.StartSubsystems();
			m_ProviderStarted = true;
		}
	}

	private void StopXRSDK()
	{
		if ((Object)(object)m_XRManager != (Object)null && (Object)(object)m_XRManager.activeLoader != (Object)null)
		{
			m_XRManager.StopSubsystems();
			m_ProviderStarted = false;
		}
	}

	private void DeInitXRSDK()
	{
		if ((Object)(object)m_XRManager != (Object)null && (Object)(object)m_XRManager.activeLoader != (Object)null)
		{
			m_XRManager.DeinitializeLoader();
			m_XRManager = null;
			m_ProviderIntialized = false;
		}
	}
}
public abstract class XRLoader : ScriptableObject
{
	public virtual bool Initialize()
	{
		return true;
	}

	public virtual bool Start()
	{
		return true;
	}

	public virtual bool Stop()
	{
		return true;
	}

	public virtual bool Deinitialize()
	{
		return true;
	}

	public abstract T GetLoadedSubsystem<T>() where T : class, ISubsystem;

	public virtual List<GraphicsDeviceType> GetSupportedGraphicsDeviceTypes(bool buildingPlayer)
	{
		return new List<GraphicsDeviceType>();
	}
}
public abstract class XRLoaderHelper : XRLoader
{
	protected Dictionary<Type, ISubsystem> m_SubsystemInstanceMap = new Dictionary<Type, ISubsystem>();

	public override T GetLoadedSubsystem<T>()
	{
		Type typeFromHandle = typeof(T);
		m_SubsystemInstanceMap.TryGetValue(typeFromHandle, out var value);
		return value as T;
	}

	protected void StartSubsystem<T>() where T : class, ISubsystem
	{
		T loadedSubsystem = GetLoadedSubsystem<T>();
		if (loadedSubsystem != null)
		{
			((ISubsystem)loadedSubsystem).Start();
		}
	}

	protected void StopSubsystem<T>() where T : class, ISubsystem
	{
		T loadedSubsystem = GetLoadedSubsystem<T>();
		if (loadedSubsystem != null)
		{
			((ISubsystem)loadedSubsystem).Stop();
		}
	}

	protected void DestroySubsystem<T>() where T : class, ISubsystem
	{
		T loadedSubsystem = GetLoadedSubsystem<T>();
		if (loadedSubsystem != null)
		{
			Type typeFromHandle = typeof(T);
			if (m_SubsystemInstanceMap.ContainsKey(typeFromHandle))
			{
				m_SubsystemInstanceMap.Remove(typeFromHandle);
			}
			((ISubsystem)loadedSubsystem).Destroy();
		}
	}

	protected void CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : ISubsystemDescriptor where TSubsystem : ISubsystem
	{
		if (descriptors == null)
		{
			throw new ArgumentNullException("descriptors");
		}
		SubsystemManager.GetSubsystemDescriptors<TDescriptor>(descriptors);
		if (descriptors.Count <= 0)
		{
			return;
		}
		foreach (TDescriptor descriptor in descriptors)
		{
			ISubsystem val = null;
			if (string.Compare(((ISubsystemDescriptor)descriptor).id, id, ignoreCase: true) == 0)
			{
				val = ((ISubsystemDescriptor)descriptor).Create();
			}
			if (val != null)
			{
				m_SubsystemInstanceMap[typeof(TSubsystem)] = val;
				break;
			}
		}
	}

	[Obsolete("This method is obsolete. Please use the geenric CreateSubsystem method.", false)]
	protected void CreateIntegratedSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : IntegratedSubsystemDescriptor where TSubsystem : IntegratedSubsystem
	{
		CreateSubsystem<TDescriptor, TSubsystem>(descriptors, id);
	}

	[Obsolete("This method is obsolete. Please use the generic CreateSubsystem method.", false)]
	protected void CreateStandaloneSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : SubsystemDescriptor where TSubsystem : Subsystem
	{
		CreateSubsystem<TDescriptor, TSubsystem>(descriptors, id);
	}

	public override bool Deinitialize()
	{
		m_SubsystemInstanceMap.Clear();
		return base.Deinitialize();
	}
}
internal static class XRManagementAnalytics
{
	[Serializable]
	private struct BuildEvent
	{
		public string buildGuid;

		public string buildTarget;

		public string buildTargetGroup;

		public string[] assigned_loaders;
	}

	private const int kMaxEventsPerHour = 1000;

	private const int kMaxNumberOfElements = 1000;

	private const string kVendorKey = "unity.xrmanagement";

	private const string kEventBuild = "xrmanagment_build";

	private static bool s_Initialized;

	private static bool Initialize()
	{
		return s_Initialized;
	}
}
public sealed class XRManagerSettings : ScriptableObject
{
	[HideInInspector]
	private bool m_InitializationComplete;

	[HideInInspector]
	[SerializeField]
	private bool m_RequiresSettingsUpdate;

	[SerializeField]
	[Tooltip("Determines if the XR Manager instance is responsible for creating and destroying the appropriate loader instance.")]
	[FormerlySerializedAs("AutomaticLoading")]
	private bool m_AutomaticLoading;

	[SerializeField]
	[Tooltip("Determines if the XR Manager instance is responsible for starting and stopping subsystems for the active loader instance.")]
	[FormerlySerializedAs("AutomaticRunning")]
	private bool m_AutomaticRunning;

	[SerializeField]
	[Tooltip("List of XR Loader instances arranged in desired load order.")]
	[FormerlySerializedAs("Loaders")]
	private List<XRLoader> m_Loaders = new List<XRLoader>();

	[SerializeField]
	[HideInInspector]
	private HashSet<XRLoader> m_RegisteredLoaders = new HashSet<XRLoader>();

	public bool automaticLoading
	{
		get
		{
			return m_AutomaticLoading;
		}
		set
		{
			m_AutomaticLoading = value;
		}
	}

	public bool automaticRunning
	{
		get
		{
			return m_AutomaticRunning;
		}
		set
		{
			m_AutomaticRunning = value;
		}
	}

	[Obsolete("'XRManagerSettings.loaders' property is obsolete. Use 'XRManagerSettings.activeLoaders' instead to get a list of the current loaders.")]
	public List<XRLoader> loaders => m_Loaders;

	public IReadOnlyList<XRLoader> activeLoaders => m_Loaders;

	public bool isInitializationComplete => m_InitializationComplete;

	[HideInInspector]
	public XRLoader activeLoader { get; private set; }

	internal List<XRLoader> currentLoaders
	{
		get
		{
			return m_Loaders;
		}
		set
		{
			m_Loaders = value;
		}
	}

	internal HashSet<XRLoader> registeredLoaders => m_RegisteredLoaders;

	public T ActiveLoaderAs<T>() where T : XRLoader
	{
		return activeLoader as T;
	}

	public void InitializeLoaderSync()
	{
		if ((Object)(object)activeLoader != (Object)null)
		{
			Debug.LogWarning((object)"XR Management has already initialized an active loader in this scene. Please make sure to stop all subsystems and deinitialize the active loader before initializing a new one.");
			return;
		}
		foreach (XRLoader currentLoader in currentLoaders)
		{
			if ((Object)(object)currentLoader != (Object)null && CheckGraphicsAPICompatibility(currentLoader) && currentLoader.Initialize())
			{
				activeLoader = currentLoader;
				m_InitializationComplete = true;
				return;
			}
		}
		activeLoader = null;
	}

	public IEnumerator InitializeLoader()
	{
		if ((Object)(object)activeLoader != (Object)null)
		{
			Debug.LogWarning((object)"XR Management has already initialized an active loader in this scene. Please make sure to stop all subsystems and deinitialize the active loader before initializing a new one.");
			yield break;
		}
		foreach (XRLoader currentLoader in currentLoaders)
		{
			if ((Object)(object)currentLoader != (Object)null && CheckGraphicsAPICompatibility(currentLoader) && currentLoader.Initialize())
			{
				activeLoader = currentLoader;
				m_InitializationComplete = true;
				yield break;
			}
			yield return null;
		}
		activeLoader = null;
	}

	public bool TryAddLoader(XRLoader loader, int index = -1)
	{
		if ((Object)(object)loader == (Object)null || currentLoaders.Contains(loader))
		{
			return false;
		}
		if (!m_RegisteredLoaders.Contains(loader))
		{
			return false;
		}
		if (index < 0 || index >= currentLoaders.Count)
		{
			currentLoaders.Add(loader);
		}
		else
		{
			currentLoaders.Insert(index, loader);
		}
		return true;
	}

	public bool TryRemoveLoader(XRLoader loader)
	{
		bool result = true;
		if (currentLoaders.Contains(loader))
		{
			result = currentLoaders.Remove(loader);
		}
		return result;
	}

	public bool TrySetLoaders(List<XRLoader> reorderedLoaders)
	{
		List<XRLoader> list = new List<XRLoader>(activeLoaders);
		currentLoaders.Clear();
		foreach (XRLoader reorderedLoader in reorderedLoaders)
		{
			if (!TryAddLoader(reorderedLoader))
			{
				currentLoaders = list;
				return false;
			}
		}
		return true;
	}

	private void Awake()
	{
		foreach (XRLoader currentLoader in currentLoaders)
		{
			if (!m_RegisteredLoaders.Contains(currentLoader))
			{
				m_RegisteredLoaders.Add(currentLoader);
			}
		}
	}

	private bool CheckGraphicsAPICompatibility(XRLoader loader)
	{
		//IL_0000: Unknown result type (might be due to invalid IL or missing references)
		//IL_0005: Unknown result type (might be due to invalid IL or missing references)
		//IL_0018: Unknown result type (might be due to invalid IL or missing references)
		GraphicsDeviceType graphicsDeviceType = SystemInfo.graphicsDeviceType;
		List<GraphicsDeviceType> supportedGraphicsDeviceTypes = loader.GetSupportedGraphicsDeviceTypes(buildingPlayer: false);
		if (supportedGraphicsDeviceTypes.Count > 0 && !supportedGraphicsDeviceTypes.Contains(graphicsDeviceType))
		{
			Debug.LogWarning((object)$"The {((Object)loader).name} does not support the initialized graphics device, {((object)(GraphicsDeviceType)(ref graphicsDeviceType)).ToString()}. Please change the preffered Graphics API in PlayerSettings. Attempting to start the next XR loader.");
			return false;
		}
		return true;
	}

	public void StartSubsystems()
	{
		if (!m_InitializationComplete)
		{
			Debug.LogWarning((object)"Call to StartSubsystems without an initialized manager.Please make sure wait for initialization to complete before calling this API.");
		}
		else if ((Object)(object)activeLoader != (Object)null)
		{
			activeLoader.Start();
		}
	}

	public void StopSubsystems()
	{
		if (!m_InitializationComplete)
		{
			Debug.LogWarning((object)"Call to StopSubsystems without an initialized manager.Please make sure wait for initialization to complete before calling this API.");
		}
		else if ((Object)(object)activeLoader != (Object)null)
		{
			activeLoader.Stop();
		}
	}

	public void DeinitializeLoader()
	{
		if (!m_InitializationComplete)
		{
			Debug.LogWarning((object)"Call to DeinitializeLoader without an initialized manager.Please make sure wait for initialization to complete before calling this API.");
			return;
		}
		StopSubsystems();
		if ((Object)(object)activeLoader != (Object)null)
		{
			activeLoader.Deinitialize();
			activeLoader = null;
		}
		m_InitializationComplete = false;
	}

	private void Start()
	{
		if (automaticLoading && automaticRunning)
		{
			StartSubsystems();
		}
	}

	private void OnDisable()
	{
		if (automaticLoading && automaticRunning)
		{
			StopSubsystems();
		}
	}

	private void OnDestroy()
	{
		if (automaticLoading)
		{
			DeinitializeLoader();
		}
	}
}

BepInEx/plugins/CWVR/RuntimeDeps/Unity.XR.OpenXR.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using System.Security.Cryptography;
using System.Security.Permissions;
using System.Text;
using AOT;
using UnityEngine.Analytics;
using UnityEngine.Events;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;
using UnityEngine.InputSystem.Layouts;
using UnityEngine.InputSystem.LowLevel;
using UnityEngine.InputSystem.Utilities;
using UnityEngine.InputSystem.XR;
using UnityEngine.Scripting;
using UnityEngine.Serialization;
using UnityEngine.XR.Management;
using UnityEngine.XR.OpenXR.Features;
using UnityEngine.XR.OpenXR.Features.Interactions;
using UnityEngine.XR.OpenXR.Input;
using UnityEngine.XR.OpenXR.NativeTypes;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: InternalsVisibleTo("Unity.XR.OpenXR.Editor")]
[assembly: InternalsVisibleTo("UnityEditor.XR.OpenXR.Tests")]
[assembly: Preserve]
[assembly: InternalsVisibleTo("Unity.XR.OpenXR.TestHelpers")]
[assembly: InternalsVisibleTo("Unity.XR.OpenXR.Tests")]
[assembly: InternalsVisibleTo("Unity.XR.OpenXR.Tests.Editor")]
[assembly: InternalsVisibleTo("Unity.XR.OpenXR.Features.MockRuntime")]
[assembly: InternalsVisibleTo("Unity.XR.OpenXR.Features.ConformanceAutomation")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[CompilerGenerated]
[EditorBrowsable(EditorBrowsableState.Never)]
[GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)]
internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1
{
	private struct MonoScriptData
	{
		public byte[] FilePathsData;

		public byte[] TypesData;

		public int TotalTypes;

		public int TotalFiles;

		public bool IsEditorOnly;
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private static MonoScriptData Get()
	{
		MonoScriptData result = default(MonoScriptData);
		result.FilePathsData = new byte[3291]
		{
			0, 0, 0, 2, 0, 0, 0, 96, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 111, 112, 101, 110, 120, 114, 64,
			49, 46, 56, 46, 50, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 70, 101, 97, 116, 117, 114,
			101, 115, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 115, 92, 68, 80, 97, 100,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 46, 99, 115, 0, 0, 0, 3, 0, 0,
			0, 99, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 111, 112, 101,
			110, 120, 114, 64, 49, 46, 56, 46, 50, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 70, 101,
			97, 116, 117, 114, 101, 115, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 92,
			69, 121, 101, 71, 97, 122, 101, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 46, 99,
			115, 0, 0, 0, 2, 0, 0, 0, 108, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 111, 112, 101, 110, 120, 114,
			64, 49, 46, 56, 46, 50, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 70, 101, 97, 116, 117,
			114, 101, 115, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 115, 92, 72, 80, 82,
			101, 118, 101, 114, 98, 71, 50, 67, 111, 110,
			116, 114, 111, 108, 108, 101, 114, 80, 114, 111,
			102, 105, 108, 101, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 105, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			111, 112, 101, 110, 120, 114, 64, 49, 46, 56,
			46, 50, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 70, 101, 97, 116, 117, 114, 101, 115, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 115, 92, 72, 84, 67, 86, 105, 118, 101,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			80, 114, 111, 102, 105, 108, 101, 46, 99, 115,
			0, 0, 0, 2, 0, 0, 0, 107, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 111, 112, 101, 110, 120, 114, 64,
			49, 46, 56, 46, 50, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 70, 101, 97, 116, 117, 114,
			101, 115, 92, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 115, 92, 72, 97, 110, 100,
			67, 111, 109, 109, 111, 110, 80, 111, 115, 101,
			115, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 103, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 111, 112,
			101, 110, 120, 114, 64, 49, 46, 56, 46, 50,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 70,
			101, 97, 116, 117, 114, 101, 115, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 115,
			92, 72, 97, 110, 100, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 80, 114, 111, 102,
			105, 108, 101, 46, 99, 115, 0, 0, 0, 2,
			0, 0, 0, 107, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 111,
			112, 101, 110, 120, 114, 64, 49, 46, 56, 46,
			50, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			70, 101, 97, 116, 117, 114, 101, 115, 92, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			115, 92, 75, 72, 82, 83, 105, 109, 112, 108,
			101, 67, 111, 110, 116, 114, 111, 108, 108, 101,
			114, 80, 114, 111, 102, 105, 108, 101, 46, 99,
			115, 0, 0, 0, 2, 0, 0, 0, 115, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 111, 112, 101, 110, 120, 114,
			64, 49, 46, 56, 46, 50, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 70, 101, 97, 116, 117,
			114, 101, 115, 92, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 115, 92, 77, 101, 116,
			97, 81, 117, 101, 115, 116, 84, 111, 117, 99,
			104, 80, 114, 111, 67, 111, 110, 116, 114, 111,
			108, 108, 101, 114, 80, 114, 111, 102, 105, 108,
			101, 46, 99, 115, 0, 0, 0, 2, 0, 0,
			0, 105, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 111, 112, 101,
			110, 120, 114, 64, 49, 46, 56, 46, 50, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 70, 101,
			97, 116, 117, 114, 101, 115, 92, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 92,
			77, 105, 99, 114, 111, 115, 111, 102, 116, 72,
			97, 110, 100, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 113, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			111, 112, 101, 110, 120, 114, 64, 49, 46, 56,
			46, 50, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 70, 101, 97, 116, 117, 114, 101, 115, 92,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 115, 92, 77, 105, 99, 114, 111, 115, 111,
			102, 116, 77, 111, 116, 105, 111, 110, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 80, 114,
			111, 102, 105, 108, 101, 46, 99, 115, 0, 0,
			0, 2, 0, 0, 0, 109, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 111, 112, 101, 110, 120, 114, 64, 49, 46,
			56, 46, 50, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 70, 101, 97, 116, 117, 114, 101, 115,
			92, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 115, 92, 79, 99, 117, 108, 117, 115,
			84, 111, 117, 99, 104, 67, 111, 110, 116, 114,
			111, 108, 108, 101, 114, 80, 114, 111, 102, 105,
			108, 101, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 100, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 111, 112,
			101, 110, 120, 114, 64, 49, 46, 56, 46, 50,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 70,
			101, 97, 116, 117, 114, 101, 115, 92, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 115,
			92, 80, 97, 108, 109, 80, 111, 115, 101, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			46, 99, 115, 0, 0, 0, 2, 0, 0, 0,
			108, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 111, 112, 101, 110,
			120, 114, 64, 49, 46, 56, 46, 50, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 70, 101, 97,
			116, 117, 114, 101, 115, 92, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 115, 92, 86,
			97, 108, 118, 101, 73, 110, 100, 101, 120, 67,
			111, 110, 116, 114, 111, 108, 108, 101, 114, 80,
			114, 111, 102, 105, 108, 101, 46, 99, 115, 0,
			0, 0, 1, 0, 0, 0, 81, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 111, 112, 101, 110, 120, 114, 64, 49,
			46, 56, 46, 50, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 70, 101, 97, 116, 117, 114, 101,
			115, 92, 79, 112, 101, 110, 88, 82, 70, 101,
			97, 116, 117, 114, 101, 46, 99, 115, 0, 0,
			0, 1, 0, 0, 0, 89, 92, 76, 105, 98,
			114, 97, 114, 121, 92, 80, 97, 99, 107, 97,
			103, 101, 67, 97, 99, 104, 101, 92, 99, 111,
			109, 46, 117, 110, 105, 116, 121, 46, 120, 114,
			46, 111, 112, 101, 110, 120, 114, 64, 49, 46,
			56, 46, 50, 92, 82, 117, 110, 116, 105, 109,
			101, 92, 70, 101, 97, 116, 117, 114, 101, 115,
			92, 79, 112, 101, 110, 88, 82, 70, 101, 97,
			116, 117, 114, 101, 73, 110, 116, 101, 114, 110,
			97, 108, 46, 99, 115, 0, 0, 0, 1, 0,
			0, 0, 89, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 111, 112,
			101, 110, 120, 114, 64, 49, 46, 56, 46, 50,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 70,
			101, 97, 116, 117, 114, 101, 115, 92, 79, 112,
			101, 110, 88, 82, 70, 101, 97, 116, 117, 114,
			101, 83, 101, 116, 116, 105, 110, 103, 115, 46,
			99, 115, 0, 0, 0, 6, 0, 0, 0, 92,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 111, 112, 101, 110, 120,
			114, 64, 49, 46, 56, 46, 50, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 70, 101, 97, 116,
			117, 114, 101, 115, 92, 79, 112, 101, 110, 88,
			82, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 70, 101, 97, 116, 117, 114, 101, 46,
			99, 115, 0, 0, 0, 2, 0, 0, 0, 74,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 111, 112, 101, 110, 120,
			114, 64, 49, 46, 56, 46, 50, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 79, 112, 101, 110,
			88, 82, 65, 110, 97, 108, 121, 116, 105, 99,
			115, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 74, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 111, 112, 101,
			110, 120, 114, 64, 49, 46, 56, 46, 50, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 79, 112,
			101, 110, 88, 82, 67, 111, 110, 115, 116, 97,
			110, 116, 115, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 81, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 111,
			112, 101, 110, 120, 114, 64, 49, 46, 56, 46,
			50, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			79, 112, 101, 110, 88, 82, 68, 105, 97, 103,
			110, 111, 115, 116, 105, 99, 82, 101, 112, 111,
			114, 116, 46, 99, 115, 0, 0, 0, 2, 0,
			0, 0, 71, 92, 76, 105, 98, 114, 97, 114,
			121, 92, 80, 97, 99, 107, 97, 103, 101, 67,
			97, 99, 104, 101, 92, 99, 111, 109, 46, 117,
			110, 105, 116, 121, 46, 120, 114, 46, 111, 112,
			101, 110, 120, 114, 64, 49, 46, 56, 46, 50,
			92, 82, 117, 110, 116, 105, 109, 101, 92, 79,
			112, 101, 110, 88, 82, 76, 111, 97, 100, 101,
			114, 46, 99, 115, 0, 0, 0, 1, 0, 0,
			0, 79, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 111, 112, 101,
			110, 120, 114, 64, 49, 46, 56, 46, 50, 92,
			82, 117, 110, 116, 105, 109, 101, 92, 79, 112,
			101, 110, 88, 82, 76, 111, 97, 100, 101, 114,
			73, 110, 116, 101, 114, 110, 97, 108, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 80, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 111, 112, 101, 110, 120, 114,
			64, 49, 46, 56, 46, 50, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 79, 112, 101, 110, 88,
			82, 76, 111, 97, 100, 101, 114, 78, 111, 80,
			114, 101, 73, 110, 105, 116, 46, 99, 115, 0,
			0, 0, 4, 0, 0, 0, 76, 92, 76, 105,
			98, 114, 97, 114, 121, 92, 80, 97, 99, 107,
			97, 103, 101, 67, 97, 99, 104, 101, 92, 99,
			111, 109, 46, 117, 110, 105, 116, 121, 46, 120,
			114, 46, 111, 112, 101, 110, 120, 114, 64, 49,
			46, 56, 46, 50, 92, 82, 117, 110, 116, 105,
			109, 101, 92, 79, 112, 101, 110, 88, 82, 78,
			97, 116, 105, 118, 101, 84, 121, 112, 101, 115,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			79, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 111, 112, 101, 110,
			120, 114, 64, 49, 46, 56, 46, 50, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 79, 112, 101,
			110, 88, 82, 82, 101, 110, 100, 101, 114, 83,
			101, 116, 116, 105, 110, 103, 115, 46, 99, 115,
			0, 0, 0, 1, 0, 0, 0, 74, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 111, 112, 101, 110, 120, 114, 64,
			49, 46, 56, 46, 50, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 79, 112, 101, 110, 88, 82,
			82, 101, 115, 116, 97, 114, 116, 101, 114, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 72,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 111, 112, 101, 110, 120,
			114, 64, 49, 46, 56, 46, 50, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 79, 112, 101, 110,
			88, 82, 82, 117, 110, 116, 105, 109, 101, 46,
			99, 115, 0, 0, 0, 1, 0, 0, 0, 73,
			92, 76, 105, 98, 114, 97, 114, 121, 92, 80,
			97, 99, 107, 97, 103, 101, 67, 97, 99, 104,
			101, 92, 99, 111, 109, 46, 117, 110, 105, 116,
			121, 46, 120, 114, 46, 111, 112, 101, 110, 120,
			114, 64, 49, 46, 56, 46, 50, 92, 82, 117,
			110, 116, 105, 109, 101, 92, 79, 112, 101, 110,
			88, 82, 83, 101, 116, 116, 105, 110, 103, 115,
			46, 99, 115, 0, 0, 0, 1, 0, 0, 0,
			79, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 111, 112, 101, 110,
			120, 114, 64, 49, 46, 56, 46, 50, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 87, 97, 105,
			116, 70, 111, 114, 82, 101, 115, 116, 97, 114,
			116, 70, 105, 110, 105, 115, 104, 46, 99, 115,
			0, 0, 0, 2, 0, 0, 0, 78, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 111, 112, 101, 110, 120, 114, 64,
			49, 46, 56, 46, 50, 92, 82, 117, 110, 116,
			105, 109, 101, 92, 105, 110, 112, 117, 116, 92,
			72, 97, 112, 116, 105, 99, 67, 111, 110, 116,
			114, 111, 108, 46, 99, 115, 0, 0, 0, 1,
			0, 0, 0, 77, 92, 76, 105, 98, 114, 97,
			114, 121, 92, 80, 97, 99, 107, 97, 103, 101,
			67, 97, 99, 104, 101, 92, 99, 111, 109, 46,
			117, 110, 105, 116, 121, 46, 120, 114, 46, 111,
			112, 101, 110, 120, 114, 64, 49, 46, 56, 46,
			50, 92, 82, 117, 110, 116, 105, 109, 101, 92,
			105, 110, 112, 117, 116, 92, 79, 112, 101, 110,
			88, 82, 68, 101, 118, 105, 99, 101, 46, 99,
			115, 0, 0, 0, 1, 0, 0, 0, 74, 92,
			76, 105, 98, 114, 97, 114, 121, 92, 80, 97,
			99, 107, 97, 103, 101, 67, 97, 99, 104, 101,
			92, 99, 111, 109, 46, 117, 110, 105, 116, 121,
			46, 120, 114, 46, 111, 112, 101, 110, 120, 114,
			64, 49, 46, 56, 46, 50, 92, 82, 117, 110,
			116, 105, 109, 101, 92, 105, 110, 112, 117, 116,
			92, 79, 112, 101, 110, 88, 82, 72, 109, 100,
			46, 99, 115, 0, 0, 0, 4, 0, 0, 0,
			76, 92, 76, 105, 98, 114, 97, 114, 121, 92,
			80, 97, 99, 107, 97, 103, 101, 67, 97, 99,
			104, 101, 92, 99, 111, 109, 46, 117, 110, 105,
			116, 121, 46, 120, 114, 46, 111, 112, 101, 110,
			120, 114, 64, 49, 46, 56, 46, 50, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 105, 110, 112,
			117, 116, 92, 79, 112, 101, 110, 88, 82, 73,
			110, 112, 117, 116, 46, 99, 115, 0, 0, 0,
			2, 0, 0, 0, 76, 92, 76, 105, 98, 114,
			97, 114, 121, 92, 80, 97, 99, 107, 97, 103,
			101, 67, 97, 99, 104, 101, 92, 99, 111, 109,
			46, 117, 110, 105, 116, 121, 46, 120, 114, 46,
			111, 112, 101, 110, 120, 114, 64, 49, 46, 56,
			46, 50, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 105, 110, 112, 117, 116, 92, 80, 111, 115,
			101, 67, 111, 110, 116, 114, 111, 108, 46, 99,
			115
		};
		result.TypesData = new byte[4017]
		{
			0, 0, 0, 0, 59, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 46, 70, 101, 97,
			116, 117, 114, 101, 115, 46, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 115, 124, 68,
			80, 97, 100, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 0, 0, 0, 0, 64, 85,
			110, 105, 116, 121, 69, 110, 103, 105, 110, 101,
			46, 88, 82, 46, 79, 112, 101, 110, 88, 82,
			46, 70, 101, 97, 116, 117, 114, 101, 115, 46,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 115, 46, 68, 80, 97, 100, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 124, 68,
			80, 97, 100, 0, 0, 0, 0, 62, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			70, 101, 97, 116, 117, 114, 101, 115, 46, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			115, 124, 69, 121, 101, 71, 97, 122, 101, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			0, 0, 0, 0, 76, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 46, 70, 101, 97,
			116, 117, 114, 101, 115, 46, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 115, 46, 69,
			121, 101, 71, 97, 122, 101, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 124, 69, 121,
			101, 71, 97, 122, 101, 68, 101, 118, 105, 99,
			101, 0, 0, 0, 0, 61, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 70, 101,
			97, 116, 117, 114, 101, 115, 46, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 124,
			69, 121, 101, 84, 114, 97, 99, 107, 105, 110,
			103, 85, 115, 97, 103, 101, 115, 0, 0, 0,
			0, 71, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 46, 70, 101, 97, 116, 117, 114,
			101, 115, 46, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 115, 124, 72, 80, 82, 101,
			118, 101, 114, 98, 71, 50, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 80, 114, 111, 102,
			105, 108, 101, 0, 0, 0, 0, 90, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			70, 101, 97, 116, 117, 114, 101, 115, 46, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			115, 46, 72, 80, 82, 101, 118, 101, 114, 98,
			71, 50, 67, 111, 110, 116, 114, 111, 108, 108,
			101, 114, 80, 114, 111, 102, 105, 108, 101, 124,
			82, 101, 118, 101, 114, 98, 71, 50, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 0, 0,
			0, 0, 68, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 46, 70, 101, 97, 116, 117,
			114, 101, 115, 46, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 115, 124, 72, 84, 67,
			86, 105, 118, 101, 67, 111, 110, 116, 114, 111,
			108, 108, 101, 114, 80, 114, 111, 102, 105, 108,
			101, 0, 0, 0, 0, 83, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 70, 101,
			97, 116, 117, 114, 101, 115, 46, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 46,
			72, 84, 67, 86, 105, 118, 101, 67, 111, 110,
			116, 114, 111, 108, 108, 101, 114, 80, 114, 111,
			102, 105, 108, 101, 124, 86, 105, 118, 101, 67,
			111, 110, 116, 114, 111, 108, 108, 101, 114, 0,
			0, 0, 0, 70, 85, 110, 105, 116, 121, 69,
			110, 103, 105, 110, 101, 46, 88, 82, 46, 79,
			112, 101, 110, 88, 82, 46, 70, 101, 97, 116,
			117, 114, 101, 115, 46, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 115, 124, 72, 97,
			110, 100, 67, 111, 109, 109, 111, 110, 80, 111,
			115, 101, 115, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 0, 0, 0, 0, 91, 85,
			110, 105, 116, 121, 69, 110, 103, 105, 110, 101,
			46, 88, 82, 46, 79, 112, 101, 110, 88, 82,
			46, 70, 101, 97, 116, 117, 114, 101, 115, 46,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 115, 46, 72, 97, 110, 100, 67, 111, 109,
			109, 111, 110, 80, 111, 115, 101, 115, 73, 110,
			116, 101, 114, 97, 99, 116, 105, 111, 110, 124,
			72, 97, 110, 100, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 80, 111, 115, 101, 115,
			0, 0, 0, 0, 66, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 46, 70, 101, 97,
			116, 117, 114, 101, 115, 46, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 115, 124, 72,
			97, 110, 100, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 80, 114, 111, 102, 105, 108,
			101, 0, 0, 0, 0, 82, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 70, 101,
			97, 116, 117, 114, 101, 115, 46, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 46,
			72, 97, 110, 100, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 80, 114, 111, 102, 105,
			108, 101, 124, 72, 97, 110, 100, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 0, 0,
			0, 0, 70, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 46, 70, 101, 97, 116, 117,
			114, 101, 115, 46, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 115, 124, 75, 72, 82,
			83, 105, 109, 112, 108, 101, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 80, 114, 111, 102,
			105, 108, 101, 0, 0, 0, 0, 90, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			70, 101, 97, 116, 117, 114, 101, 115, 46, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			115, 46, 75, 72, 82, 83, 105, 109, 112, 108,
			101, 67, 111, 110, 116, 114, 111, 108, 108, 101,
			114, 80, 114, 111, 102, 105, 108, 101, 124, 75,
			72, 82, 83, 105, 109, 112, 108, 101, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 0, 0,
			0, 0, 78, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 46, 70, 101, 97, 116, 117,
			114, 101, 115, 46, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 115, 124, 77, 101, 116,
			97, 81, 117, 101, 115, 116, 84, 111, 117, 99,
			104, 80, 114, 111, 67, 111, 110, 116, 114, 111,
			108, 108, 101, 114, 80, 114, 111, 102, 105, 108,
			101, 0, 0, 0, 0, 102, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 70, 101,
			97, 116, 117, 114, 101, 115, 46, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 46,
			77, 101, 116, 97, 81, 117, 101, 115, 116, 84,
			111, 117, 99, 104, 80, 114, 111, 67, 111, 110,
			116, 114, 111, 108, 108, 101, 114, 80, 114, 111,
			102, 105, 108, 101, 124, 81, 117, 101, 115, 116,
			80, 114, 111, 84, 111, 117, 99, 104, 67, 111,
			110, 116, 114, 111, 108, 108, 101, 114, 0, 0,
			0, 0, 68, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 46, 70, 101, 97, 116, 117,
			114, 101, 115, 46, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 115, 124, 77, 105, 99,
			114, 111, 115, 111, 102, 116, 72, 97, 110, 100,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 0, 0, 0, 0, 81, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 70, 101,
			97, 116, 117, 114, 101, 115, 46, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 46,
			77, 105, 99, 114, 111, 115, 111, 102, 116, 72,
			97, 110, 100, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 124, 72, 111, 108, 111, 76,
			101, 110, 115, 72, 97, 110, 100, 0, 0, 0,
			0, 76, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 46, 70, 101, 97, 116, 117, 114,
			101, 115, 46, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 115, 124, 77, 105, 99, 114,
			111, 115, 111, 102, 116, 77, 111, 116, 105, 111,
			110, 67, 111, 110, 116, 114, 111, 108, 108, 101,
			114, 80, 114, 111, 102, 105, 108, 101, 0, 0,
			0, 0, 97, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 46, 70, 101, 97, 116, 117,
			114, 101, 115, 46, 73, 110, 116, 101, 114, 97,
			99, 116, 105, 111, 110, 115, 46, 77, 105, 99,
			114, 111, 115, 111, 102, 116, 77, 111, 116, 105,
			111, 110, 67, 111, 110, 116, 114, 111, 108, 108,
			101, 114, 80, 114, 111, 102, 105, 108, 101, 124,
			87, 77, 82, 83, 112, 97, 116, 105, 97, 108,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			0, 0, 0, 0, 72, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 46, 70, 101, 97,
			116, 117, 114, 101, 115, 46, 73, 110, 116, 101,
			114, 97, 99, 116, 105, 111, 110, 115, 124, 79,
			99, 117, 108, 117, 115, 84, 111, 117, 99, 104,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			80, 114, 111, 102, 105, 108, 101, 0, 0, 0,
			0, 94, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 46, 70, 101, 97, 116, 117, 114,
			101, 115, 46, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 115, 46, 79, 99, 117, 108,
			117, 115, 84, 111, 117, 99, 104, 67, 111, 110,
			116, 114, 111, 108, 108, 101, 114, 80, 114, 111,
			102, 105, 108, 101, 124, 79, 99, 117, 108, 117,
			115, 84, 111, 117, 99, 104, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 0, 0, 0, 0,
			63, 85, 110, 105, 116, 121, 69, 110, 103, 105,
			110, 101, 46, 88, 82, 46, 79, 112, 101, 110,
			88, 82, 46, 70, 101, 97, 116, 117, 114, 101,
			115, 46, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 115, 124, 80, 97, 108, 109, 80,
			111, 115, 101, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 0, 0, 0, 0, 72, 85,
			110, 105, 116, 121, 69, 110, 103, 105, 110, 101,
			46, 88, 82, 46, 79, 112, 101, 110, 88, 82,
			46, 70, 101, 97, 116, 117, 114, 101, 115, 46,
			73, 110, 116, 101, 114, 97, 99, 116, 105, 111,
			110, 115, 46, 80, 97, 108, 109, 80, 111, 115,
			101, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 124, 80, 97, 108, 109, 80, 111, 115,
			101, 0, 0, 0, 0, 71, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 70, 101,
			97, 116, 117, 114, 101, 115, 46, 73, 110, 116,
			101, 114, 97, 99, 116, 105, 111, 110, 115, 124,
			86, 97, 108, 118, 101, 73, 110, 100, 101, 120,
			67, 111, 110, 116, 114, 111, 108, 108, 101, 114,
			80, 114, 111, 102, 105, 108, 101, 0, 0, 0,
			0, 92, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 46, 70, 101, 97, 116, 117, 114,
			101, 115, 46, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 115, 46, 86, 97, 108, 118,
			101, 73, 110, 100, 101, 120, 67, 111, 110, 116,
			114, 111, 108, 108, 101, 114, 80, 114, 111, 102,
			105, 108, 101, 124, 86, 97, 108, 118, 101, 73,
			110, 100, 101, 120, 67, 111, 110, 116, 114, 111,
			108, 108, 101, 114, 1, 0, 0, 0, 44, 85,
			110, 105, 116, 121, 69, 110, 103, 105, 110, 101,
			46, 88, 82, 46, 79, 112, 101, 110, 88, 82,
			46, 70, 101, 97, 116, 117, 114, 101, 115, 124,
			79, 112, 101, 110, 88, 82, 70, 101, 97, 116,
			117, 114, 101, 1, 0, 0, 0, 44, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			70, 101, 97, 116, 117, 114, 101, 115, 124, 79,
			112, 101, 110, 88, 82, 70, 101, 97, 116, 117,
			114, 101, 1, 0, 0, 0, 36, 85, 110, 105,
			116, 121, 69, 110, 103, 105, 110, 101, 46, 88,
			82, 46, 79, 112, 101, 110, 88, 82, 124, 79,
			112, 101, 110, 88, 82, 83, 101, 116, 116, 105,
			110, 103, 115, 0, 0, 0, 0, 55, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			70, 101, 97, 116, 117, 114, 101, 115, 124, 79,
			112, 101, 110, 88, 82, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 70, 101, 97, 116,
			117, 114, 101, 0, 0, 0, 0, 69, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			70, 101, 97, 116, 117, 114, 101, 115, 46, 79,
			112, 101, 110, 88, 82, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 70, 101, 97, 116,
			117, 114, 101, 124, 65, 99, 116, 105, 111, 110,
			66, 105, 110, 100, 105, 110, 103, 0, 0, 0,
			0, 68, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 46, 70, 101, 97, 116, 117, 114,
			101, 115, 46, 79, 112, 101, 110, 88, 82, 73,
			110, 116, 101, 114, 97, 99, 116, 105, 111, 110,
			70, 101, 97, 116, 117, 114, 101, 124, 65, 99,
			116, 105, 111, 110, 67, 111, 110, 102, 105, 103,
			0, 0, 0, 0, 68, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 46, 70, 101, 97,
			116, 117, 114, 101, 115, 46, 79, 112, 101, 110,
			88, 82, 73, 110, 116, 101, 114, 97, 99, 116,
			105, 111, 110, 70, 101, 97, 116, 117, 114, 101,
			124, 68, 101, 118, 105, 99, 101, 67, 111, 110,
			102, 105, 103, 0, 0, 0, 0, 71, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			70, 101, 97, 116, 117, 114, 101, 115, 46, 79,
			112, 101, 110, 88, 82, 73, 110, 116, 101, 114,
			97, 99, 116, 105, 111, 110, 70, 101, 97, 116,
			117, 114, 101, 124, 65, 99, 116, 105, 111, 110,
			77, 97, 112, 67, 111, 110, 102, 105, 103, 0,
			0, 0, 0, 65, 85, 110, 105, 116, 121, 69,
			110, 103, 105, 110, 101, 46, 88, 82, 46, 79,
			112, 101, 110, 88, 82, 46, 70, 101, 97, 116,
			117, 114, 101, 115, 46, 79, 112, 101, 110, 88,
			82, 73, 110, 116, 101, 114, 97, 99, 116, 105,
			111, 110, 70, 101, 97, 116, 117, 114, 101, 124,
			85, 115, 101, 114, 80, 97, 116, 104, 115, 0,
			0, 0, 0, 37, 85, 110, 105, 116, 121, 69,
			110, 103, 105, 110, 101, 46, 88, 82, 46, 79,
			112, 101, 110, 88, 82, 124, 79, 112, 101, 110,
			88, 82, 65, 110, 97, 108, 121, 116, 105, 99,
			115, 0, 0, 0, 0, 53, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 65, 110, 97, 108, 121, 116,
			105, 99, 115, 124, 73, 110, 105, 116, 105, 97,
			108, 105, 122, 101, 69, 118, 101, 110, 116, 0,
			0, 0, 0, 31, 85, 110, 105, 116, 121, 69,
			110, 103, 105, 110, 101, 46, 88, 82, 46, 79,
			112, 101, 110, 88, 82, 124, 67, 111, 110, 115,
			116, 97, 110, 116, 115, 0, 0, 0, 0, 38,
			85, 110, 105, 116, 121, 69, 110, 103, 105, 110,
			101, 46, 88, 82, 46, 79, 112, 101, 110, 88,
			82, 124, 68, 105, 97, 103, 110, 111, 115, 116,
			105, 99, 82, 101, 112, 111, 114, 116, 0, 0,
			0, 0, 34, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 124, 79, 112, 101, 110, 88,
			82, 76, 111, 97, 100, 101, 114, 1, 0, 0,
			0, 38, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 124, 79, 112, 101, 110, 88, 82,
			76, 111, 97, 100, 101, 114, 66, 97, 115, 101,
			1, 0, 0, 0, 38, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 124, 79, 112, 101,
			110, 88, 82, 76, 111, 97, 100, 101, 114, 66,
			97, 115, 101, 0, 0, 0, 0, 43, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 124,
			79, 112, 101, 110, 88, 82, 76, 111, 97, 100,
			101, 114, 78, 111, 80, 114, 101, 73, 110, 105,
			116, 0, 0, 0, 0, 44, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 78, 97,
			116, 105, 118, 101, 84, 121, 112, 101, 115, 124,
			88, 114, 86, 101, 99, 116, 111, 114, 50, 102,
			0, 0, 0, 0, 44, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 46, 78, 97, 116,
			105, 118, 101, 84, 121, 112, 101, 115, 124, 88,
			114, 86, 101, 99, 116, 111, 114, 51, 102, 0,
			0, 0, 0, 47, 85, 110, 105, 116, 121, 69,
			110, 103, 105, 110, 101, 46, 88, 82, 46, 79,
			112, 101, 110, 88, 82, 46, 78, 97, 116, 105,
			118, 101, 84, 121, 112, 101, 115, 124, 88, 114,
			81, 117, 97, 116, 101, 114, 110, 105, 111, 110,
			102, 0, 0, 0, 0, 41, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 46, 78, 97,
			116, 105, 118, 101, 84, 121, 112, 101, 115, 124,
			88, 114, 80, 111, 115, 101, 102, 1, 0, 0,
			0, 36, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 124, 79, 112, 101, 110, 88, 82,
			83, 101, 116, 116, 105, 110, 103, 115, 0, 0,
			0, 0, 37, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 124, 79, 112, 101, 110, 88,
			82, 82, 101, 115, 116, 97, 114, 116, 101, 114,
			0, 0, 0, 0, 35, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 124, 79, 112, 101,
			110, 88, 82, 82, 117, 110, 116, 105, 109, 101,
			1, 0, 0, 0, 36, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 124, 79, 112, 101,
			110, 88, 82, 83, 101, 116, 116, 105, 110, 103,
			115, 0, 0, 0, 0, 42, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 88, 82,
			46, 79, 112, 101, 110, 88, 82, 124, 87, 97,
			105, 116, 70, 111, 114, 82, 101, 115, 116, 97,
			114, 116, 70, 105, 110, 105, 115, 104, 0, 0,
			0, 0, 34, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 46, 73, 110, 112, 117, 116,
			124, 72, 97, 112, 116, 105, 99, 0, 0, 0,
			0, 41, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 88, 82, 46, 79, 112, 101,
			110, 88, 82, 46, 73, 110, 112, 117, 116, 124,
			72, 97, 112, 116, 105, 99, 67, 111, 110, 116,
			114, 111, 108, 0, 0, 0, 0, 40, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			73, 110, 112, 117, 116, 124, 79, 112, 101, 110,
			88, 82, 68, 101, 118, 105, 99, 101, 0, 0,
			0, 0, 37, 85, 110, 105, 116, 121, 69, 110,
			103, 105, 110, 101, 46, 88, 82, 46, 79, 112,
			101, 110, 88, 82, 46, 73, 110, 112, 117, 116,
			124, 79, 112, 101, 110, 88, 82, 72, 109, 100,
			0, 0, 0, 0, 39, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 88, 82, 46,
			79, 112, 101, 110, 88, 82, 46, 73, 110, 112,
			117, 116, 124, 79, 112, 101, 110, 88, 82, 73,
			110, 112, 117, 116, 0, 0, 0, 0, 54, 85,
			110, 105, 116, 121, 69, 110, 103, 105, 110, 101,
			46, 88, 82, 46, 79, 112, 101, 110, 88, 82,
			46, 73, 110, 112, 117, 116, 46, 79, 112, 101,
			110, 88, 82, 73, 110, 112, 117, 116, 124, 83,
			101, 114, 105, 97, 108, 105, 122, 101, 100, 71,
			117, 105, 100, 0, 0, 0, 0, 57, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			73, 110, 112, 117, 116, 46, 79, 112, 101, 110,
			88, 82, 73, 110, 112, 117, 116, 124, 83, 101,
			114, 105, 97, 108, 105, 122, 101, 100, 66, 105,
			110, 100, 105, 110, 103, 0, 0, 0, 0, 66,
			85, 110, 105, 116, 121, 69, 110, 103, 105, 110,
			101, 46, 88, 82, 46, 79, 112, 101, 110, 88,
			82, 46, 73, 110, 112, 117, 116, 46, 79, 112,
			101, 110, 88, 82, 73, 110, 112, 117, 116, 124,
			71, 101, 116, 73, 110, 116, 101, 114, 110, 97,
			108, 68, 101, 118, 105, 99, 101, 73, 100, 67,
			111, 109, 109, 97, 110, 100, 0, 0, 0, 0,
			32, 85, 110, 105, 116, 121, 69, 110, 103, 105,
			110, 101, 46, 88, 82, 46, 79, 112, 101, 110,
			88, 82, 46, 73, 110, 112, 117, 116, 124, 80,
			111, 115, 101, 0, 0, 0, 0, 39, 85, 110,
			105, 116, 121, 69, 110, 103, 105, 110, 101, 46,
			88, 82, 46, 79, 112, 101, 110, 88, 82, 46,
			73, 110, 112, 117, 116, 124, 80, 111, 115, 101,
			67, 111, 110, 116, 114, 111, 108
		};
		result.TotalFiles = 34;
		result.TotalTypes = 63;
		result.IsEditorOnly = false;
		return result;
	}
}
namespace UnityEngine.XR.OpenXR
{
	[Serializable]
	public class OpenXRSettings : ScriptableObject
	{
		public enum RenderMode
		{
			MultiPass,
			SinglePassInstanced
		}

		public enum DepthSubmissionMode
		{
			None,
			Depth16Bit,
			Depth24Bit
		}

		[FormerlySerializedAs("extensions")]
		[HideInInspector]
		[SerializeField]
		internal OpenXRFeature[] features = new OpenXRFeature[0];

		[SerializeField]
		private RenderMode m_renderMode = RenderMode.SinglePassInstanced;

		[SerializeField]
		private DepthSubmissionMode m_depthSubmissionMode;

		private const string LibraryName = "UnityOpenXR";

		private static OpenXRSettings s_RuntimeInstance;

		public int featureCount => features.Length;

		public RenderMode renderMode
		{
			get
			{
				if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null)
				{
					return Internal_GetRenderMode();
				}
				return m_renderMode;
			}
			set
			{
				if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null)
				{
					Internal_SetRenderMode(value);
				}
				else
				{
					m_renderMode = value;
				}
			}
		}

		public DepthSubmissionMode depthSubmissionMode
		{
			get
			{
				if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null)
				{
					return Internal_GetDepthSubmissionMode();
				}
				return m_depthSubmissionMode;
			}
			set
			{
				if ((Object)(object)OpenXRLoaderBase.Instance != (Object)null)
				{
					Internal_SetDepthSubmissionMode(value);
				}
				else
				{
					m_depthSubmissionMode = value;
				}
			}
		}

		public static OpenXRSettings ActiveBuildTargetInstance => GetInstance(useActiveBuildTarget: true);

		public static OpenXRSettings Instance => GetInstance(useActiveBuildTarget: false);

		public TFeature GetFeature<TFeature>() where TFeature : OpenXRFeature
		{
			return (TFeature)GetFeature(typeof(TFeature));
		}

		public OpenXRFeature GetFeature(Type featureType)
		{
			OpenXRFeature[] array = features;
			foreach (OpenXRFeature openXRFeature in array)
			{
				if (featureType.IsInstanceOfType(openXRFeature))
				{
					return openXRFeature;
				}
			}
			return null;
		}

		public OpenXRFeature[] GetFeatures<TFeature>()
		{
			return GetFeatures(typeof(TFeature));
		}

		public OpenXRFeature[] GetFeatures(Type featureType)
		{
			List<OpenXRFeature> list = new List<OpenXRFeature>();
			OpenXRFeature[] array = features;
			foreach (OpenXRFeature openXRFeature in array)
			{
				if (featureType.IsInstanceOfType(openXRFeature))
				{
					list.Add(openXRFeature);
				}
			}
			return list.ToArray();
		}

		public int GetFeatures<TFeature>(List<TFeature> featuresOut) where TFeature : OpenXRFeature
		{
			featuresOut.Clear();
			OpenXRFeature[] array = features;
			for (int i = 0; i < array.Length; i++)
			{
				if (array[i] is TFeature item)
				{
					featuresOut.Add(item);
				}
			}
			return featuresOut.Count;
		}

		public int GetFeatures(Type featureType, List<OpenXRFeature> featuresOut)
		{
			featuresOut.Clear();
			OpenXRFeature[] array = features;
			foreach (OpenXRFeature openXRFeature in array)
			{
				if (featureType.IsInstanceOfType(openXRFeature))
				{
					featuresOut.Add(openXRFeature);
				}
			}
			return featuresOut.Count;
		}

		public OpenXRFeature[] GetFeatures()
		{
			return ((OpenXRFeature[])features?.Clone()) ?? new OpenXRFeature[0];
		}

		public int GetFeatures(List<OpenXRFeature> featuresOut)
		{
			featuresOut.Clear();
			featuresOut.AddRange(features);
			return featuresOut.Count;
		}

		private void ApplyRenderSettings()
		{
			Internal_SetRenderMode(m_renderMode);
			Internal_SetDepthSubmissionMode(m_depthSubmissionMode);
		}

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetRenderMode")]
		private static extern void Internal_SetRenderMode(RenderMode renderMode);

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRenderMode")]
		private static extern RenderMode Internal_GetRenderMode();

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetDepthSubmissionMode")]
		private static extern void Internal_SetDepthSubmissionMode(DepthSubmissionMode depthSubmissionMode);

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetDepthSubmissionMode")]
		private static extern DepthSubmissionMode Internal_GetDepthSubmissionMode();

		private void Awake()
		{
			s_RuntimeInstance = this;
		}

		internal void ApplySettings()
		{
			ApplyRenderSettings();
		}

		private static OpenXRSettings GetInstance(bool useActiveBuildTarget)
		{
			OpenXRSettings openXRSettings = null;
			openXRSettings = s_RuntimeInstance;
			if ((Object)(object)openXRSettings == (Object)null)
			{
				openXRSettings = ScriptableObject.CreateInstance<OpenXRSettings>();
			}
			return openXRSettings;
		}
	}
	internal static class OpenXRAnalytics
	{
		[Serializable]
		private struct InitializeEvent
		{
			public bool success;

			public string runtime;

			public string runtime_version;

			public string plugin_version;

			public string api_version;

			public string[] available_extensions;

			public string[] enabled_extensions;

			public string[] enabled_features;

			public string[] failed_features;
		}

		private const int kMaxEventsPerHour = 1000;

		private const int kMaxNumberOfElements = 1000;

		private const string kVendorKey = "unity.openxr";

		private const string kEventInitialize = "openxr_initialize";

		private static bool s_Initialized;

		private static bool Initialize()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			if (s_Initialized)
			{
				return true;
			}
			if ((int)Analytics.RegisterEvent("openxr_initialize", 1000, 1000, "unity.openxr", "") != 0)
			{
				return false;
			}
			s_Initialized = true;
			return true;
		}

		public static void SendInitializeEvent(bool success)
		{
			if (s_Initialized || Initialize())
			{
				SendPlayerAnalytics(CreateInitializeEvent(success));
			}
		}

		private static InitializeEvent CreateInitializeEvent(bool success)
		{
			InitializeEvent result = default(InitializeEvent);
			result.success = success;
			result.runtime = OpenXRRuntime.name;
			result.runtime_version = OpenXRRuntime.version;
			result.plugin_version = OpenXRRuntime.pluginVersion;
			result.api_version = OpenXRRuntime.apiVersion;
			result.enabled_extensions = (from ext in OpenXRRuntime.GetEnabledExtensions()
				select $"{ext}_{OpenXRRuntime.GetExtensionVersion(ext)}").ToArray();
			result.available_extensions = (from ext in OpenXRRuntime.GetAvailableExtensions()
				select $"{ext}_{OpenXRRuntime.GetExtensionVersion(ext)}").ToArray();
			result.enabled_features = (from f in OpenXRSettings.Instance.features
				where (Object)(object)f != (Object)null && f.enabled
				select ((object)f).GetType().FullName + "_" + f.version).ToArray();
			result.failed_features = (from f in OpenXRSettings.Instance.features
				where (Object)(object)f != (Object)null && f.failedInitialization
				select ((object)f).GetType().FullName + "_" + f.version).ToArray();
			return result;
		}

		private static void SendPlayerAnalytics(InitializeEvent data)
		{
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			Analytics.SendEvent("openxr_initialize", (object)data, 1, "");
		}
	}
	public static class Constants
	{
		public const string k_SettingsKey = "com.unity.xr.openxr.settings4";
	}
	internal class DiagnosticReport
	{
		private const string LibraryName = "UnityOpenXR";

		public static readonly ulong k_NullSection;

		[DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_StartReport")]
		public static extern void StartReport();

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_GetSection")]
		public static extern ulong GetSection(string sectionName);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_AddSectionEntry")]
		public static extern void AddSectionEntry(ulong sectionHandle, string sectionEntry, string sectionBody);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_AddSectionBreak")]
		public static extern void AddSectionBreak(ulong sectionHandle);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "DiagnosticReport_AddEventEntry")]
		public static extern void AddEventEntry(string eventName, string eventData);

		[DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_DumpReport")]
		private static extern void Internal_DumpReport();

		[DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_DumpReportWithReason")]
		private static extern void Internal_DumpReport(string reason);

		[DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_GenerateReport")]
		private static extern IntPtr Internal_GenerateReport();

		[DllImport("UnityOpenXR", EntryPoint = "DiagnosticReport_ReleaseReport")]
		private static extern void Internal_ReleaseReport(IntPtr report);

		internal static string GenerateReport()
		{
			string result = "";
			IntPtr intPtr = Internal_GenerateReport();
			if (intPtr != IntPtr.Zero)
			{
				result = Marshal.PtrToStringAnsi(intPtr);
				Internal_ReleaseReport(intPtr);
				intPtr = IntPtr.Zero;
			}
			return result;
		}

		public static void DumpReport(string reason)
		{
			Internal_DumpReport(reason);
		}
	}
	public class OpenXRLoader : OpenXRLoaderBase
	{
	}
	public class OpenXRLoaderBase : XRLoaderHelper
	{
		internal enum LoaderState
		{
			Uninitialized,
			InitializeAttempted,
			Initialized,
			StartAttempted,
			Started,
			StopAttempted,
			Stopped,
			DeinitializeAttempted
		}

		internal delegate void ReceiveNativeEventDelegate(OpenXRFeature.NativeEvent e, ulong payload);

		private const double k_IdlePollingWaitTimeInSeconds = 0.1;

		private static List<XRDisplaySubsystemDescriptor> s_DisplaySubsystemDescriptors = new List<XRDisplaySubsystemDescriptor>();

		private static List<XRInputSubsystemDescriptor> s_InputSubsystemDescriptors = new List<XRInputSubsystemDescriptor>();

		private List<LoaderState> validLoaderInitStates = new List<LoaderState>
		{
			LoaderState.Uninitialized,
			LoaderState.InitializeAttempted
		};

		private List<LoaderState> validLoaderStartStates = new List<LoaderState>
		{
			LoaderState.Initialized,
			LoaderState.StartAttempted,
			LoaderState.Stopped
		};

		private List<LoaderState> validLoaderStopStates = new List<LoaderState>
		{
			LoaderState.StartAttempted,
			LoaderState.Started,
			LoaderState.StopAttempted
		};

		private List<LoaderState> validLoaderDeinitStates = new List<LoaderState>
		{
			LoaderState.InitializeAttempted,
			LoaderState.Initialized,
			LoaderState.Stopped,
			LoaderState.DeinitializeAttempted
		};

		private List<LoaderState> runningStates = new List<LoaderState>
		{
			LoaderState.Initialized,
			LoaderState.StartAttempted,
			LoaderState.Started
		};

		private OpenXRFeature.NativeEvent currentOpenXRState;

		private bool actionSetsAttached;

		private UnhandledExceptionEventHandler unhandledExceptionHandler;

		internal bool DisableValidationChecksOnEnteringPlaymode;

		private double lastPollCheckTime;

		private const string LibraryName = "UnityOpenXR";

		internal static OpenXRLoaderBase Instance { get; private set; }

		internal LoaderState currentLoaderState { get; private set; }

		internal XRDisplaySubsystem displaySubsystem => ((XRLoaderHelper)this).GetLoadedSubsystem<XRDisplaySubsystem>();

		internal XRInputSubsystem inputSubsystem
		{
			get
			{
				OpenXRLoaderBase instance = Instance;
				if (instance == null)
				{
					return null;
				}
				return ((XRLoaderHelper)instance).GetLoadedSubsystem<XRInputSubsystem>();
			}
		}

		private bool isInitialized
		{
			get
			{
				if (currentLoaderState != 0)
				{
					return currentLoaderState != LoaderState.DeinitializeAttempted;
				}
				return false;
			}
		}

		private bool isStarted => runningStates.Contains(currentLoaderState);

		private static void ExceptionHandler(object sender, UnhandledExceptionEventArgs args)
		{
			ulong section = DiagnosticReport.GetSection("Unhandled Exception Report");
			DiagnosticReport.AddSectionEntry(section, "Is Terminating", $"{args.IsTerminating}");
			Exception ex = (Exception)args.ExceptionObject;
			DiagnosticReport.AddSectionEntry(section, "Message", ex.Message ?? "");
			DiagnosticReport.AddSectionEntry(section, "Source", ex.Source ?? "");
			DiagnosticReport.AddSectionEntry(section, "Stack Trace", "\n" + ex.StackTrace);
			DiagnosticReport.DumpReport("Uncaught Exception");
		}

		public override bool Initialize()
		{
			if (currentLoaderState == LoaderState.Initialized)
			{
				return true;
			}
			if (!validLoaderInitStates.Contains(currentLoaderState))
			{
				return false;
			}
			if ((Object)(object)Instance != (Object)null)
			{
				Debug.LogError((object)"Only one OpenXRLoader can be initialized at any given time");
				return false;
			}
			DiagnosticReport.StartReport();
			try
			{
				if (InitializeInternal())
				{
					return true;
				}
			}
			catch (Exception ex)
			{
				Debug.LogException(ex);
			}
			((XRLoader)this).Deinitialize();
			Instance = null;
			OpenXRAnalytics.SendInitializeEvent(success: false);
			return false;
		}

		private bool InitializeInternal()
		{
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_0123: Expected O, but got Unknown
			Instance = this;
			currentLoaderState = LoaderState.InitializeAttempted;
			Internal_SetSuccessfullyInitialized(value: false);
			OpenXRInput.RegisterLayouts();
			OpenXRFeature.Initialize();
			if (!LoadOpenXRSymbols())
			{
				Debug.LogError((object)"Failed to load openxr runtime loader.");
				return false;
			}
			OpenXRSettings.Instance.features = (from f in OpenXRSettings.Instance.features
				where (Object)(object)f != (Object)null
				orderby f.priority descending, f.nameUi
				select f).ToArray();
			OpenXRFeature.HookGetInstanceProcAddr();
			if (!Internal_InitializeSession())
			{
				return false;
			}
			SetApplicationInfo();
			RequestOpenXRFeatures();
			RegisterOpenXRCallbacks();
			if ((Object)null != (Object)(object)OpenXRSettings.Instance)
			{
				OpenXRSettings.Instance.ApplySettings();
			}
			if (!CreateSubsystems())
			{
				return false;
			}
			if (OpenXRFeature.requiredFeatureFailed)
			{
				return false;
			}
			OpenXRAnalytics.SendInitializeEvent(success: true);
			OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemCreate);
			DebugLogEnabledSpecExtensions();
			Application.onBeforeRender += new UnityAction(ProcessOpenXRMessageLoop);
			currentLoaderState = LoaderState.Initialized;
			return true;
		}

		private bool CreateSubsystems()
		{
			if (displaySubsystem == null)
			{
				this.CreateSubsystem<XRDisplaySubsystemDescriptor, XRDisplaySubsystem>(s_DisplaySubsystemDescriptors, "OpenXR Display");
				if (displaySubsystem == null)
				{
					return false;
				}
			}
			if (inputSubsystem == null)
			{
				this.CreateSubsystem<XRInputSubsystemDescriptor, XRInputSubsystem>(s_InputSubsystemDescriptors, "OpenXR Input");
				if (inputSubsystem == null)
				{
					return false;
				}
			}
			return true;
		}

		internal void ProcessOpenXRMessageLoop()
		{
			if (currentOpenXRState == OpenXRFeature.NativeEvent.XrIdle || currentOpenXRState == OpenXRFeature.NativeEvent.XrStopping || currentOpenXRState == OpenXRFeature.NativeEvent.XrExiting || currentOpenXRState == OpenXRFeature.NativeEvent.XrLossPending || currentOpenXRState == OpenXRFeature.NativeEvent.XrInstanceLossPending)
			{
				float realtimeSinceStartup = Time.realtimeSinceStartup;
				if ((double)realtimeSinceStartup - lastPollCheckTime < 0.1)
				{
					return;
				}
				lastPollCheckTime = realtimeSinceStartup;
			}
			Internal_PumpMessageLoop();
		}

		public override bool Start()
		{
			if (currentLoaderState == LoaderState.Started)
			{
				return true;
			}
			if (!validLoaderStartStates.Contains(currentLoaderState))
			{
				return false;
			}
			currentLoaderState = LoaderState.StartAttempted;
			if (!StartInternal())
			{
				((XRLoader)this).Stop();
				return false;
			}
			currentLoaderState = LoaderState.Started;
			return true;
		}

		private bool StartInternal()
		{
			if (!Internal_CreateSessionIfNeeded())
			{
				return false;
			}
			if (currentOpenXRState != OpenXRFeature.NativeEvent.XrReady || (currentLoaderState != LoaderState.StartAttempted && currentLoaderState != LoaderState.Started))
			{
				return true;
			}
			this.StartSubsystem<XRDisplaySubsystem>();
			XRDisplaySubsystem obj = displaySubsystem;
			if (obj != null && !((IntegratedSubsystem)obj).running)
			{
				return false;
			}
			Internal_BeginSession();
			if (!actionSetsAttached)
			{
				OpenXRInput.AttachActionSets();
				actionSetsAttached = true;
			}
			XRDisplaySubsystem obj2 = displaySubsystem;
			if (obj2 != null && !((IntegratedSubsystem)obj2).running)
			{
				this.StartSubsystem<XRDisplaySubsystem>();
			}
			XRInputSubsystem obj3 = inputSubsystem;
			if (obj3 != null && !((IntegratedSubsystem)obj3).running)
			{
				this.StartSubsystem<XRInputSubsystem>();
			}
			XRInputSubsystem obj4 = inputSubsystem;
			bool num = obj4 != null && ((IntegratedSubsystem)obj4).running;
			XRDisplaySubsystem obj5 = displaySubsystem;
			bool flag = obj5 != null && ((IntegratedSubsystem)obj5).running;
			if (num && flag)
			{
				OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemStart);
				return true;
			}
			return false;
		}

		public override bool Stop()
		{
			if (currentLoaderState == LoaderState.Stopped)
			{
				return true;
			}
			if (!validLoaderStopStates.Contains(currentLoaderState))
			{
				return false;
			}
			currentLoaderState = LoaderState.StopAttempted;
			XRInputSubsystem obj = inputSubsystem;
			bool num = obj != null && ((IntegratedSubsystem)obj).running;
			XRDisplaySubsystem obj2 = displaySubsystem;
			bool flag = obj2 != null && ((IntegratedSubsystem)obj2).running;
			if (num || flag)
			{
				OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemStop);
			}
			if (num)
			{
				this.StopSubsystem<XRInputSubsystem>();
			}
			if (flag)
			{
				this.StopSubsystem<XRDisplaySubsystem>();
			}
			StopInternal();
			currentLoaderState = LoaderState.Stopped;
			return true;
		}

		private void StopInternal()
		{
			Internal_EndSession();
			ProcessOpenXRMessageLoop();
		}

		public override bool Deinitialize()
		{
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Expected O, but got Unknown
			if (currentLoaderState == LoaderState.Uninitialized)
			{
				return true;
			}
			if (!validLoaderDeinitStates.Contains(currentLoaderState))
			{
				return false;
			}
			currentLoaderState = LoaderState.DeinitializeAttempted;
			try
			{
				Internal_RequestExitSession();
				Application.onBeforeRender -= new UnityAction(ProcessOpenXRMessageLoop);
				ProcessOpenXRMessageLoop();
				OpenXRFeature.ReceiveLoaderEvent(this, OpenXRFeature.LoaderEvent.SubsystemDestroy);
				this.DestroySubsystem<XRInputSubsystem>();
				this.DestroySubsystem<XRDisplaySubsystem>();
				DiagnosticReport.DumpReport("System Shutdown");
				Internal_DestroySession();
				ProcessOpenXRMessageLoop();
				Internal_UnloadOpenXRLibrary();
				currentLoaderState = LoaderState.Uninitialized;
				actionSetsAttached = false;
				if (unhandledExceptionHandler != null)
				{
					AppDomain.CurrentDomain.UnhandledException -= unhandledExceptionHandler;
					unhandledExceptionHandler = null;
				}
				return ((XRLoaderHelper)this).Deinitialize();
			}
			finally
			{
				Instance = null;
			}
		}

		internal void CreateSubsystem<TDescriptor, TSubsystem>(List<TDescriptor> descriptors, string id) where TDescriptor : ISubsystemDescriptor where TSubsystem : ISubsystem
		{
			((XRLoaderHelper)this).CreateSubsystem<TDescriptor, TSubsystem>(descriptors, id);
		}

		internal void StartSubsystem<T>() where T : class, ISubsystem
		{
			((XRLoaderHelper)this).StartSubsystem<T>();
		}

		internal void StopSubsystem<T>() where T : class, ISubsystem
		{
			((XRLoaderHelper)this).StopSubsystem<T>();
		}

		internal void DestroySubsystem<T>() where T : class, ISubsystem
		{
			((XRLoaderHelper)this).DestroySubsystem<T>();
		}

		private void SetApplicationInfo()
		{
			byte[] array = MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(Application.version));
			if (BitConverter.IsLittleEndian)
			{
				Array.Reverse(array);
			}
			uint applicationVersionHash = BitConverter.ToUInt32(array, 0);
			Internal_SetApplicationInfo(Application.productName, Application.version, applicationVersionHash, Application.unityVersion);
		}

		internal static byte[] StringToWCHAR_T(string s)
		{
			return ((Environment.OSVersion.Platform == PlatformID.Unix) ? Encoding.UTF32 : Encoding.Unicode).GetBytes(s + "\0");
		}

		private bool LoadOpenXRSymbols()
		{
			if (!Internal_LoadOpenXRLibrary(StringToWCHAR_T("openxr_loader")))
			{
				return false;
			}
			return true;
		}

		private void RequestOpenXRFeatures()
		{
			OpenXRSettings instance = OpenXRSettings.Instance;
			if ((Object)(object)instance == (Object)null || instance.features == null)
			{
				return;
			}
			StringBuilder stringBuilder = new StringBuilder("");
			StringBuilder stringBuilder2 = new StringBuilder("");
			uint num = 0u;
			uint num2 = 0u;
			OpenXRFeature[] features = instance.features;
			foreach (OpenXRFeature openXRFeature in features)
			{
				if ((Object)(object)openXRFeature == (Object)null || !openXRFeature.enabled)
				{
					continue;
				}
				num++;
				stringBuilder.Append("  " + openXRFeature.nameUi + ": Version=" + openXRFeature.version + ", Company=\"" + openXRFeature.company + "\"");
				if (!string.IsNullOrEmpty(openXRFeature.openxrExtensionStrings))
				{
					stringBuilder.Append(", Extensions=\"" + openXRFeature.openxrExtensionStrings + "\"");
					string[] array = openXRFeature.openxrExtensionStrings.Split(' ');
					foreach (string text in array)
					{
						if (!string.IsNullOrWhiteSpace(text) && !Internal_RequestEnableExtensionString(text))
						{
							num2++;
							stringBuilder2.Append("  " + text + ": Feature=\"" + openXRFeature.nameUi + "\": Version=" + openXRFeature.version + ", Company=\"" + openXRFeature.company + "\"\n");
						}
					}
				}
				stringBuilder.Append("\n");
			}
			ulong section = DiagnosticReport.GetSection("OpenXR Runtime Info");
			DiagnosticReport.AddSectionBreak(section);
			DiagnosticReport.AddSectionEntry(section, "Features requested to be enabled", $"({num})\n{stringBuilder.ToString()}");
			DiagnosticReport.AddSectionBreak(section);
			DiagnosticReport.AddSectionEntry(section, "Requested feature extensions not supported by runtime", $"({num2})\n{stringBuilder2.ToString()}");
		}

		private static void DebugLogEnabledSpecExtensions()
		{
			ulong section = DiagnosticReport.GetSection("OpenXR Runtime Info");
			DiagnosticReport.AddSectionBreak(section);
			string[] enabledExtensions = OpenXRRuntime.GetEnabledExtensions();
			StringBuilder stringBuilder = new StringBuilder($"({enabledExtensions.Length})\n");
			string[] array = enabledExtensions;
			foreach (string text in array)
			{
				stringBuilder.Append($"  {text}: Version={OpenXRRuntime.GetExtensionVersion(text)}\n");
			}
			DiagnosticReport.AddSectionEntry(section, "Runtime extensions enabled", stringBuilder.ToString());
		}

		[MonoPInvokeCallback(typeof(ReceiveNativeEventDelegate))]
		private static void ReceiveNativeEvent(OpenXRFeature.NativeEvent e, ulong payload)
		{
			OpenXRLoaderBase instance = Instance;
			if ((Object)(object)instance != (Object)null)
			{
				instance.currentOpenXRState = e;
			}
			switch (e)
			{
			case OpenXRFeature.NativeEvent.XrRestartRequested:
				OpenXRRestarter.Instance.ShutdownAndRestart();
				break;
			case OpenXRFeature.NativeEvent.XrReady:
				instance.StartInternal();
				break;
			case OpenXRFeature.NativeEvent.XrFocused:
				DiagnosticReport.DumpReport("System Startup Completed");
				break;
			case OpenXRFeature.NativeEvent.XrRequestRestartLoop:
				Debug.Log((object)"XR Initialization failed, will try to restart xr periodically.");
				OpenXRRestarter.Instance.PauseAndShutdownAndRestart();
				break;
			case OpenXRFeature.NativeEvent.XrRequestGetSystemLoop:
				OpenXRRestarter.Instance.PauseAndRetryInitialization();
				break;
			case OpenXRFeature.NativeEvent.XrStopping:
				instance.StopInternal();
				break;
			}
			OpenXRFeature.ReceiveNativeEvent(e, payload);
			if ((!((Object)(object)instance == (Object)null) && instance.isStarted) || e == OpenXRFeature.NativeEvent.XrInstanceChanged)
			{
				switch (e)
				{
				case OpenXRFeature.NativeEvent.XrExiting:
					OpenXRRestarter.Instance.Shutdown();
					break;
				case OpenXRFeature.NativeEvent.XrLossPending:
					OpenXRRestarter.Instance.ShutdownAndRestart();
					break;
				case OpenXRFeature.NativeEvent.XrInstanceLossPending:
					OpenXRRestarter.Instance.Shutdown();
					break;
				}
			}
		}

		internal static void RegisterOpenXRCallbacks()
		{
			Internal_SetCallbacks(ReceiveNativeEvent);
		}

		[DllImport("UnityOpenXR", EntryPoint = "main_LoadOpenXRLibrary")]
		[return: MarshalAs(UnmanagedType.U1)]
		internal static extern bool Internal_LoadOpenXRLibrary(byte[] loaderPath);

		[DllImport("UnityOpenXR", EntryPoint = "main_UnloadOpenXRLibrary")]
		internal static extern void Internal_UnloadOpenXRLibrary();

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_SetCallbacks")]
		private static extern void Internal_SetCallbacks(ReceiveNativeEventDelegate callback);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "NativeConfig_SetApplicationInfo")]
		private static extern void Internal_SetApplicationInfo(string applicationName, string applicationVersion, uint applicationVersionHash, string engineVersion);

		[DllImport("UnityOpenXR", EntryPoint = "session_RequestExitSession")]
		internal static extern void Internal_RequestExitSession();

		[DllImport("UnityOpenXR", EntryPoint = "session_InitializeSession")]
		[return: MarshalAs(UnmanagedType.U1)]
		internal static extern bool Internal_InitializeSession();

		[DllImport("UnityOpenXR", EntryPoint = "session_CreateSessionIfNeeded")]
		[return: MarshalAs(UnmanagedType.U1)]
		internal static extern bool Internal_CreateSessionIfNeeded();

		[DllImport("UnityOpenXR", EntryPoint = "session_BeginSession")]
		internal static extern void Internal_BeginSession();

		[DllImport("UnityOpenXR", EntryPoint = "session_EndSession")]
		internal static extern void Internal_EndSession();

		[DllImport("UnityOpenXR", EntryPoint = "session_DestroySession")]
		internal static extern void Internal_DestroySession();

		[DllImport("UnityOpenXR", EntryPoint = "messagepump_PumpMessageLoop")]
		private static extern void Internal_PumpMessageLoop();

		[DllImport("UnityOpenXR", EntryPoint = "session_SetSuccessfullyInitialized")]
		internal static extern void Internal_SetSuccessfullyInitialized(bool value);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "unity_ext_RequestEnableExtensionString")]
		[return: MarshalAs(UnmanagedType.U1)]
		internal static extern bool Internal_RequestEnableExtensionString(string extensionString);
	}
	public class OpenXRLoaderNoPreInit : OpenXRLoaderBase
	{
	}
	internal class OpenXRRestarter : MonoBehaviour
	{
		internal Action onAfterRestart;

		internal Action onAfterShutdown;

		internal Action onQuit;

		internal Action onAfterCoroutine;

		internal Action onAfterSuccessfulRestart;

		private static OpenXRRestarter s_Instance;

		private Coroutine m_Coroutine;

		private static int m_pauseAndRestartAttempts;

		public bool isRunning => m_Coroutine != null;

		public static float TimeBetweenRestartAttempts { get; set; }

		public static int PauseAndRestartAttempts => m_pauseAndRestartAttempts;

		public static OpenXRRestarter Instance
		{
			get
			{
				//IL_0026: Unknown result type (might be due to invalid IL or missing references)
				//IL_002c: Expected O, but got Unknown
				if ((Object)(object)s_Instance == (Object)null)
				{
					GameObject val = GameObject.Find("~oxrestarter");
					if ((Object)(object)val == (Object)null)
					{
						val = new GameObject("~oxrestarter");
						((Object)val).hideFlags = (HideFlags)61;
						val.AddComponent<OpenXRRestarter>();
					}
					s_Instance = val.GetComponent<OpenXRRestarter>();
				}
				return s_Instance;
			}
		}

		static OpenXRRestarter()
		{
			TimeBetweenRestartAttempts = 5f;
		}

		public void ResetCallbacks()
		{
			onAfterRestart = null;
			onAfterSuccessfulRestart = null;
			onAfterShutdown = null;
			onAfterCoroutine = null;
			onQuit = null;
			m_pauseAndRestartAttempts = 0;
		}

		public void Shutdown()
		{
			if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null))
			{
				if (m_Coroutine != null)
				{
					Debug.LogError((object)"Only one shutdown or restart can be executed at a time");
				}
				else
				{
					m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: false, shouldShutdown: true));
				}
			}
		}

		public void ShutdownAndRestart()
		{
			if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null))
			{
				if (m_Coroutine != null)
				{
					Debug.LogError((object)"Only one shutdown or restart can be executed at a time");
				}
				else
				{
					m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: true, shouldShutdown: true));
				}
			}
		}

		public void PauseAndShutdownAndRestart()
		{
			if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null))
			{
				((MonoBehaviour)this).StartCoroutine(PauseAndShutdownAndRestartCoroutine(TimeBetweenRestartAttempts));
			}
		}

		public void PauseAndRetryInitialization()
		{
			if (!((Object)(object)OpenXRLoaderBase.Instance == (Object)null))
			{
				((MonoBehaviour)this).StartCoroutine(PauseAndRetryInitializationCoroutine(TimeBetweenRestartAttempts));
			}
		}

		public IEnumerator PauseAndShutdownAndRestartCoroutine(float pauseTimeInSeconds)
		{
			try
			{
				yield return (object)new WaitForSeconds(pauseTimeInSeconds);
				yield return new WaitForRestartFinish();
				m_pauseAndRestartAttempts++;
				m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: true, shouldShutdown: true));
			}
			finally
			{
				onAfterCoroutine?.Invoke();
			}
		}

		public IEnumerator PauseAndRetryInitializationCoroutine(float pauseTimeInSeconds)
		{
			try
			{
				yield return (object)new WaitForSeconds(pauseTimeInSeconds);
				yield return new WaitForRestartFinish();
				if (!((Object)(object)XRGeneralSettings.Instance.Manager.activeLoader != (Object)null))
				{
					m_pauseAndRestartAttempts++;
					m_Coroutine = ((MonoBehaviour)this).StartCoroutine(RestartCoroutine(shouldRestart: true, shouldShutdown: false));
				}
			}
			finally
			{
				onAfterCoroutine?.Invoke();
			}
		}

		private IEnumerator RestartCoroutine(bool shouldRestart, bool shouldShutdown)
		{
			try
			{
				if (shouldShutdown)
				{
					Debug.Log((object)"Shutting down OpenXR.");
					yield return null;
					XRGeneralSettings.Instance.Manager.DeinitializeLoader();
					yield return null;
					onAfterShutdown?.Invoke();
				}
				if (shouldRestart && OpenXRRuntime.ShouldRestart())
				{
					Debug.Log((object)"Initializing OpenXR.");
					yield return XRGeneralSettings.Instance.Manager.InitializeLoader();
					XRGeneralSettings.Instance.Manager.StartSubsystems();
					if ((Object)(object)XRGeneralSettings.Instance.Manager.activeLoader != (Object)null)
					{
						m_pauseAndRestartAttempts = 0;
						onAfterSuccessfulRestart?.Invoke();
					}
					onAfterRestart?.Invoke();
				}
				else if (OpenXRRuntime.ShouldQuit())
				{
					onQuit?.Invoke();
					Application.Quit();
				}
			}
			finally
			{
				OpenXRRestarter openXRRestarter = this;
				openXRRestarter.m_Coroutine = null;
				openXRRestarter.onAfterCoroutine?.Invoke();
			}
		}
	}
	public static class OpenXRRuntime
	{
		private const string LibraryName = "UnityOpenXR";

		public static string name
		{
			get
			{
				if (!Internal_GetRuntimeName(out var runtimeNamePtr))
				{
					return "";
				}
				return Marshal.PtrToStringAnsi(runtimeNamePtr);
			}
		}

		public static string version
		{
			get
			{
				if (!Internal_GetRuntimeVersion(out var major, out var minor, out var patch))
				{
					return "";
				}
				return $"{major}.{minor}.{patch}";
			}
		}

		public static string apiVersion
		{
			get
			{
				if (!Internal_GetAPIVersion(out var major, out var minor, out var patch))
				{
					return "";
				}
				return $"{major}.{minor}.{patch}";
			}
		}

		public static string pluginVersion
		{
			get
			{
				if (!Internal_GetPluginVersion(out var pluginVersionPtr))
				{
					return "";
				}
				return Marshal.PtrToStringAnsi(pluginVersionPtr);
			}
		}

		public static bool retryInitializationOnFormFactorErrors
		{
			get
			{
				return Internal_GetSoftRestartLoopAtInitialization();
			}
			set
			{
				Internal_SetSoftRestartLoopAtInitialization(value);
			}
		}

		public static event Func<bool> wantsToQuit;

		public static event Func<bool> wantsToRestart;

		public static bool IsExtensionEnabled(string extensionName)
		{
			return Internal_IsExtensionEnabled(extensionName);
		}

		public static uint GetExtensionVersion(string extensionName)
		{
			return Internal_GetExtensionVersion(extensionName);
		}

		public static string[] GetEnabledExtensions()
		{
			string[] array = new string[Internal_GetEnabledExtensionCount()];
			for (int i = 0; i < array.Length; i++)
			{
				Internal_GetEnabledExtensionName((uint)i, out var extensionName);
				array[i] = extensionName ?? "";
			}
			return array;
		}

		public static string[] GetAvailableExtensions()
		{
			string[] array = new string[Internal_GetAvailableExtensionCount()];
			for (int i = 0; i < array.Length; i++)
			{
				Internal_GetAvailableExtensionName((uint)i, out var extensionName);
				array[i] = extensionName ?? "";
			}
			return array;
		}

		private static bool InvokeEvent(Func<bool> func)
		{
			if (func == null)
			{
				return true;
			}
			Delegate[] invocationList = func.GetInvocationList();
			for (int i = 0; i < invocationList.Length; i++)
			{
				Func<bool> func2 = (Func<bool>)invocationList[i];
				try
				{
					if (!func2())
					{
						return false;
					}
				}
				catch (Exception ex)
				{
					Debug.LogException(ex);
				}
			}
			return true;
		}

		internal static bool ShouldQuit()
		{
			return InvokeEvent(OpenXRRuntime.wantsToQuit);
		}

		internal static bool ShouldRestart()
		{
			return InvokeEvent(OpenXRRuntime.wantsToRestart);
		}

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeName")]
		private static extern bool Internal_GetRuntimeName(out IntPtr runtimeNamePtr);

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetRuntimeVersion")]
		private static extern bool Internal_GetRuntimeVersion(out ushort major, out ushort minor, out uint patch);

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetAPIVersion")]
		private static extern bool Internal_GetAPIVersion(out ushort major, out ushort minor, out uint patch);

		[DllImport("UnityOpenXR", EntryPoint = "NativeConfig_GetPluginVersion")]
		private static extern bool Internal_GetPluginVersion(out IntPtr pluginVersionPtr);

		[DllImport("UnityOpenXR", EntryPoint = "unity_ext_IsExtensionEnabled")]
		private static extern bool Internal_IsExtensionEnabled(string extensionName);

		[DllImport("UnityOpenXR", EntryPoint = "unity_ext_GetExtensionVersion")]
		private static extern uint Internal_GetExtensionVersion(string extensionName);

		[DllImport("UnityOpenXR", EntryPoint = "unity_ext_GetEnabledExtensionCount")]
		private static extern uint Internal_GetEnabledExtensionCount();

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "unity_ext_GetEnabledExtensionName")]
		private static extern bool Internal_GetEnabledExtensionNamePtr(uint index, out IntPtr outName);

		[DllImport("UnityOpenXR", EntryPoint = "session_SetSoftRestartLoopAtInitialization")]
		private static extern void Internal_SetSoftRestartLoopAtInitialization(bool value);

		[DllImport("UnityOpenXR", EntryPoint = "session_GetSoftRestartLoopAtInitialization")]
		private static extern bool Internal_GetSoftRestartLoopAtInitialization();

		private static bool Internal_GetEnabledExtensionName(uint index, out string extensionName)
		{
			if (!Internal_GetEnabledExtensionNamePtr(index, out var outName))
			{
				extensionName = "";
				return false;
			}
			extensionName = Marshal.PtrToStringAnsi(outName);
			return true;
		}

		[DllImport("UnityOpenXR", EntryPoint = "unity_ext_GetAvailableExtensionCount")]
		private static extern uint Internal_GetAvailableExtensionCount();

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "unity_ext_GetAvailableExtensionName")]
		private static extern bool Internal_GetAvailableExtensionNamePtr(uint index, out IntPtr extensionName);

		private static bool Internal_GetAvailableExtensionName(uint index, out string extensionName)
		{
			if (!Internal_GetAvailableExtensionNamePtr(index, out var extensionName2))
			{
				extensionName = "";
				return false;
			}
			extensionName = Marshal.PtrToStringAnsi(extensionName2);
			return true;
		}

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "session_GetLastError")]
		private static extern bool Internal_GetLastError(out IntPtr error);

		internal static bool GetLastError(out string error)
		{
			if (!Internal_GetLastError(out var error2))
			{
				error = "";
				return false;
			}
			error = Marshal.PtrToStringAnsi(error2);
			return true;
		}

		internal static void LogLastError()
		{
			if (GetLastError(out var error))
			{
				Debug.LogError((object)error);
			}
		}
	}
	internal sealed class WaitForRestartFinish : CustomYieldInstruction
	{
		private float m_Timeout;

		public override bool keepWaiting
		{
			get
			{
				if (!OpenXRRestarter.Instance.isRunning)
				{
					return false;
				}
				if (Time.realtimeSinceStartup > m_Timeout)
				{
					Debug.LogError((object)"WaitForRestartFinish: Timeout");
					return false;
				}
				return true;
			}
		}

		public WaitForRestartFinish(float timeout = 5f)
		{
			m_Timeout = Time.realtimeSinceStartup + timeout;
		}
	}
}
namespace UnityEngine.XR.OpenXR.Input
{
	[StructLayout(LayoutKind.Sequential, Size = 1)]
	public struct Haptic
	{
	}
	[Preserve]
	public class HapticControl : InputControl<Haptic>
	{
		public HapticControl()
		{
			((InputStateBlock)(ref ((InputControl)this).m_StateBlock)).sizeInBits = 1u;
			((InputStateBlock)(ref ((InputControl)this).m_StateBlock)).bitOffset = 0u;
			((InputStateBlock)(ref ((InputControl)this).m_StateBlock)).byteOffset = 0u;
		}

		public unsafe override Haptic ReadUnprocessedValueFromState(void* statePtr)
		{
			return default(Haptic);
		}
	}
	[Preserve]
	[InputControlLayout(displayName = "OpenXR Action Map")]
	public abstract class OpenXRDevice : InputDevice
	{
		protected override void FinishSetup()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Unknown result type (might be due to invalid IL or missing references)
			//IL_0042: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Unknown result type (might be due to invalid IL or missing references)
			((InputControl)this).FinishSetup();
			InputDeviceDescription description = ((InputDevice)this).description;
			XRDeviceDescriptor val = XRDeviceDescriptor.FromJson(((InputDeviceDescription)(ref description)).capabilities);
			if (val != null)
			{
				if ((val.characteristics & 0x100) != 0)
				{
					InputSystem.SetDeviceUsage((InputDevice)(object)this, CommonUsages.LeftHand);
				}
				else if ((val.characteristics & 0x200) != 0)
				{
					InputSystem.SetDeviceUsage((InputDevice)(object)this, CommonUsages.RightHand);
				}
			}
		}
	}
	[Preserve]
	[InputControlLayout(displayName = "OpenXR HMD")]
	internal class OpenXRHmd : XRHMD
	{
		[Preserve]
		[InputControl]
		private ButtonControl userPresence { get; set; }

		protected override void FinishSetup()
		{
			((XRHMD)this).FinishSetup();
			userPresence = ((InputControl)this).GetChildControl<ButtonControl>("UserPresence");
		}
	}
	public static class OpenXRInput
	{
		[StructLayout(LayoutKind.Explicit)]
		private struct SerializedGuid
		{
			[FieldOffset(0)]
			public Guid guid;

			[FieldOffset(0)]
			public ulong ulong1;

			[FieldOffset(8)]
			public ulong ulong2;
		}

		internal struct SerializedBinding
		{
			public ulong actionId;

			public string path;
		}

		[Flags]
		public enum InputSourceNameFlags
		{
			UserPath = 1,
			InteractionProfile = 2,
			Component = 4,
			All = 7
		}

		[StructLayout(LayoutKind.Explicit, Size = 12)]
		private struct GetInternalDeviceIdCommand : IInputDeviceCommandInfo
		{
			private const int k_BaseCommandSizeSize = 8;

			private const int k_Size = 12;

			[FieldOffset(0)]
			private InputDeviceCommand baseCommand;

			[FieldOffset(8)]
			public readonly uint deviceId;

			private static FourCC Type => new FourCC('X', 'R', 'D', 'I');

			public FourCC typeStatic => Type;

			public static GetInternalDeviceIdCommand Create()
			{
				//IL_000a: Unknown result type (might be due to invalid IL or missing references)
				//IL_0011: Unknown result type (might be due to invalid IL or missing references)
				//IL_0016: Unknown result type (might be due to invalid IL or missing references)
				GetInternalDeviceIdCommand result = default(GetInternalDeviceIdCommand);
				result.baseCommand = new InputDeviceCommand(Type, 12);
				return result;
			}
		}

		private static readonly Dictionary<string, OpenXRInteractionFeature.ActionType> ExpectedControlTypeToActionType = new Dictionary<string, OpenXRInteractionFeature.ActionType>
		{
			["Digital"] = OpenXRInteractionFeature.ActionType.Binary,
			["Button"] = OpenXRInteractionFeature.ActionType.Binary,
			["Axis"] = OpenXRInteractionFeature.ActionType.Axis1D,
			["Integer"] = OpenXRInteractionFeature.ActionType.Axis1D,
			["Analog"] = OpenXRInteractionFeature.ActionType.Axis1D,
			["Vector2"] = OpenXRInteractionFeature.ActionType.Axis2D,
			["Dpad"] = OpenXRInteractionFeature.ActionType.Axis2D,
			["Stick"] = OpenXRInteractionFeature.ActionType.Axis2D,
			["Pose"] = OpenXRInteractionFeature.ActionType.Pose,
			["Vector3"] = OpenXRInteractionFeature.ActionType.Pose,
			["Quaternion"] = OpenXRInteractionFeature.ActionType.Pose,
			["Haptic"] = OpenXRInteractionFeature.ActionType.Vibrate
		};

		private const string s_devicePoseActionName = "devicepose";

		private const string s_pointerActionName = "pointer";

		private static readonly Dictionary<string, string> kVirtualControlMap = new Dictionary<string, string>
		{
			["deviceposition"] = "devicepose",
			["devicerotation"] = "devicepose",
			["trackingstate"] = "devicepose",
			["istracked"] = "devicepose",
			["pointerposition"] = "pointer",
			["pointerrotation"] = "pointer"
		};

		private const string Library = "UnityOpenXR";

		internal static void RegisterLayouts()
		{
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_0032: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			InputSystem.RegisterLayout<HapticControl>("Haptic", (InputDeviceMatcher?)null);
			InputSystem.RegisterLayout<OpenXRDevice>((string)null, (InputDeviceMatcher?)null);
			InputDeviceMatcher val = default(InputDeviceMatcher);
			val = ((InputDeviceMatcher)(ref val)).WithInterface("^(XRInput)", true);
			val = ((InputDeviceMatcher)(ref val)).WithProduct("Head Tracking - OpenXR", true);
			InputSystem.RegisterLayout<OpenXRHmd>((string)null, (InputDeviceMatcher?)((InputDeviceMatcher)(ref val)).WithManufacturer("OpenXR", true));
			OpenXRInteractionFeature.RegisterLayouts();
		}

		private static bool ValidateActionMapConfig(OpenXRInteractionFeature interactionFeature, OpenXRInteractionFeature.ActionMapConfig actionMapConfig)
		{
			bool result = true;
			if (actionMapConfig.deviceInfos == null || actionMapConfig.deviceInfos.Count == 0)
			{
				Debug.LogError((object)$"ActionMapConfig contains no `deviceInfos` in InteractionFeature '{((object)interactionFeature).GetType()}'");
				result = false;
			}
			if (actionMapConfig.actions == null || actionMapConfig.actions.Count == 0)
			{
				Debug.LogError((object)$"ActionMapConfig contains no `actions` in InteractionFeature '{((object)interactionFeature).GetType()}'");
				result = false;
			}
			return result;
		}

		internal static void AttachActionSets()
		{
			List<OpenXRInteractionFeature.ActionMapConfig> list = new List<OpenXRInteractionFeature.ActionMapConfig>();
			List<OpenXRInteractionFeature.ActionMapConfig> list2 = new List<OpenXRInteractionFeature.ActionMapConfig>();
			foreach (OpenXRInteractionFeature item in from f in OpenXRSettings.Instance.features.OfType<OpenXRInteractionFeature>()
				where f.enabled && !f.IsAdditive
				select f)
			{
				int count = list.Count;
				item.CreateActionMaps(list);
				for (int num = list.Count - 1; num >= count; num--)
				{
					if (!ValidateActionMapConfig(item, list[num]))
					{
						list.RemoveAt(num);
					}
				}
			}
			if (!RegisterDevices(list, isAdditive: false))
			{
				return;
			}
			foreach (OpenXRInteractionFeature item2 in from f in OpenXRSettings.Instance.features.OfType<OpenXRInteractionFeature>()
				where f.enabled && f.IsAdditive
				select f)
			{
				item2.CreateActionMaps(list2);
				item2.AddAdditiveActions(list, list2[list2.Count - 1]);
			}
			Dictionary<string, List<SerializedBinding>> dictionary = new Dictionary<string, List<SerializedBinding>>();
			if (!CreateActions(list, dictionary))
			{
				return;
			}
			if (list2.Count > 0)
			{
				RegisterDevices(list2, isAdditive: true);
				CreateActions(list2, dictionary);
			}
			SetDpadBindingCustomValues();
			foreach (KeyValuePair<string, List<SerializedBinding>> item3 in dictionary)
			{
				if (!Internal_SuggestBindings(item3.Key, item3.Value.ToArray(), (uint)item3.Value.Count))
				{
					OpenXRRuntime.LogLastError();
				}
			}
			if (!Internal_AttachActionSets())
			{
				OpenXRRuntime.LogLastError();
			}
		}

		private static bool RegisterDevices(List<OpenXRInteractionFeature.ActionMapConfig> actionMaps, bool isAdditive)
		{
			//IL_0055: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Expected I4, but got Unknown
			foreach (OpenXRInteractionFeature.ActionMapConfig actionMap in actionMaps)
			{
				foreach (OpenXRInteractionFeature.DeviceConfig deviceInfo in actionMap.deviceInfos)
				{
					string name = ((actionMap.desiredInteractionProfile == null) ? UserPathToDeviceName(deviceInfo.userPath) : actionMap.localizedName);
					if (Internal_RegisterDeviceDefinition(deviceInfo.userPath, actionMap.desiredInteractionProfile, isAdditive, (uint)(int)deviceInfo.characteristics, name, actionMap.manufacturer, actionMap.serialNumber) == 0L)
					{
						OpenXRRuntime.LogLastError();
						return false;
					}
				}
			}
			return true;
		}

		private static bool CreateActions(List<OpenXRInteractionFeature.ActionMapConfig> actionMaps, Dictionary<string, List<SerializedBinding>> interactionProfiles)
		{
			foreach (OpenXRInteractionFeature.ActionMapConfig actionMap in actionMaps)
			{
				string localizedName = SanitizeStringForOpenXRPath(actionMap.localizedName);
				ulong num = Internal_CreateActionSet(SanitizeStringForOpenXRPath(actionMap.name), localizedName, default(SerializedGuid));
				if (num == 0L)
				{
					OpenXRRuntime.LogLastError();
					return false;
				}
				List<string> list = actionMap.deviceInfos.Select((OpenXRInteractionFeature.DeviceConfig d) => d.userPath).ToList();
				foreach (OpenXRInteractionFeature.ActionConfig action in actionMap.actions)
				{
					string[] array = action.bindings.Where((OpenXRInteractionFeature.ActionBinding b) => b.userPaths != null).SelectMany((OpenXRInteractionFeature.ActionBinding b) => b.userPaths).Distinct()
						.ToList()
						.Union(list)
						.ToArray();
					ulong num2 = Internal_CreateAction(num, SanitizeStringForOpenXRPath(action.name), action.localizedName, (uint)action.type, default(SerializedGuid), array, (uint)array.Length, action.isAdditive, action.usages?.ToArray(), (uint)(action.usages?.Count ?? 0));
					if (num2 == 0L)
					{
						OpenXRRuntime.LogLastError();
						return false;
					}
					foreach (OpenXRInteractionFeature.ActionBinding binding in action.bindings)
					{
						foreach (string item in binding.userPaths ?? list)
						{
							string key = (action.isAdditive ? actionMap.desiredInteractionProfile : (binding.interactionProfileName ?? actionMap.desiredInteractionProfile));
							if (!interactionProfiles.TryGetValue(key, out var value))
							{
								value = (interactionProfiles[key] = new List<SerializedBinding>());
							}
							value.Add(new SerializedBinding
							{
								actionId = num2,
								path = item + binding.interactionPath
							});
						}
					}
				}
			}
			return true;
		}

		private static void SetDpadBindingCustomValues()
		{
			DPadInteraction feature = OpenXRSettings.Instance.GetFeature<DPadInteraction>();
			if ((Object)(object)feature != (Object)null && feature.enabled)
			{
				Internal_SetDpadBindingCustomValues(isLeft: true, feature.forceThresholdLeft, feature.forceThresholdReleaseLeft, feature.centerRegionLeft, feature.wedgeAngleLeft, feature.isStickyLeft);
				Internal_SetDpadBindingCustomValues(isLeft: false, feature.forceThresholdRight, feature.forceThresholdReleaseRight, feature.centerRegionRight, feature.wedgeAngleRight, feature.isStickyRight);
			}
		}

		private static char SanitizeCharForOpenXRPath(char c)
		{
			if (char.IsLower(c) || char.IsDigit(c))
			{
				return c;
			}
			if (char.IsUpper(c))
			{
				return char.ToLower(c);
			}
			if (c == '-' || c == '.' || c == '_' || c == '/')
			{
				return c;
			}
			return '\0';
		}

		private static string SanitizeStringForOpenXRPath(string input)
		{
			if (string.IsNullOrEmpty(input))
			{
				return "";
			}
			int i;
			for (i = 0; i < input.Length && SanitizeCharForOpenXRPath(input[i]) == input[i]; i++)
			{
			}
			if (i == input.Length)
			{
				return input;
			}
			StringBuilder stringBuilder = new StringBuilder(input, 0, i, input.Length);
			for (; i < input.Length; i++)
			{
				char c = SanitizeCharForOpenXRPath(input[i]);
				if (c != 0)
				{
					stringBuilder.Append(c);
				}
			}
			return stringBuilder.ToString();
		}

		private static string GetActionHandleName(InputControl control)
		{
			InputControl val = control;
			while (val.parent != null && val.parent.parent != null)
			{
				val = val.parent;
			}
			string text = SanitizeStringForOpenXRPath(val.name);
			if (kVirtualControlMap.TryGetValue(text, out var value))
			{
				return value;
			}
			return text;
		}

		public static void SendHapticImpulse(InputActionReference actionRef, float amplitude, float duration, InputDevice inputDevice = null)
		{
			SendHapticImpulse(actionRef, amplitude, 0f, duration, inputDevice);
		}

		public static void SendHapticImpulse(InputActionReference actionRef, float amplitude, float frequency, float duration, InputDevice inputDevice = null)
		{
			SendHapticImpulse(actionRef.action, amplitude, frequency, duration, inputDevice);
		}

		public static void SendHapticImpulse(InputAction action, float amplitude, float duration, InputDevice inputDevice = null)
		{
			SendHapticImpulse(action, amplitude, 0f, duration, inputDevice);
		}

		public static void SendHapticImpulse(InputAction action, float amplitude, float frequency, float duration, InputDevice inputDevice = null)
		{
			if (action != null)
			{
				ulong actionHandle = GetActionHandle(action, inputDevice);
				if (actionHandle != 0L)
				{
					amplitude = Mathf.Clamp(amplitude, 0f, 1f);
					duration = Mathf.Max(duration, 0f);
					Internal_SendHapticImpulse(GetDeviceId(inputDevice), actionHandle, amplitude, frequency, duration);
				}
			}
		}

		public static void StopHaptics(InputActionReference actionRef, InputDevice inputDevice = null)
		{
			if (!((Object)(object)actionRef == (Object)null))
			{
				StopHaptics(actionRef.action, inputDevice);
			}
		}

		public static void StopHaptics(InputAction inputAction, InputDevice inputDevice = null)
		{
			if (inputAction != null)
			{
				ulong actionHandle = GetActionHandle(inputAction, inputDevice);
				if (actionHandle != 0L)
				{
					Internal_StopHaptics(GetDeviceId(inputDevice), actionHandle);
				}
			}
		}

		public static bool TryGetInputSourceName(InputAction inputAction, int index, out string name, InputSourceNameFlags flags = InputSourceNameFlags.All, InputDevice inputDevice = null)
		{
			name = "";
			if (index < 0)
			{
				return false;
			}
			ulong actionHandle = GetActionHandle(inputAction, inputDevice);
			if (actionHandle == 0L)
			{
				return false;
			}
			return Internal_TryGetInputSourceName(GetDeviceId(inputDevice), actionHandle, (uint)index, (uint)flags, out name);
		}

		public static bool GetActionIsActive(InputAction inputAction)
		{
			//IL_0004: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Unknown result type (might be due to invalid IL or missing references)
			//IL_002f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_004c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			if (inputAction != null && inputAction.controls.Count > 0 && inputAction.controls[0].device != null)
			{
				for (int i = 0; i < inputAction.controls.Count; i++)
				{
					uint deviceId = GetDeviceId(inputAction.controls[i].device);
					if (deviceId != 0)
					{
						string actionHandleName = GetActionHandleName(inputAction.controls[i]);
						if (Internal_GetActionIsActive(deviceId, actionHandleName))
						{
							return true;
						}
					}
				}
			}
			return false;
		}

		public static ulong GetActionHandle(InputAction inputAction, InputDevice inputDevice = null)
		{
			//IL_0004: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_0017: Unknown result type (might be due to invalid IL or missing references)
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_001f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0024: Unknown result type (might be due to invalid IL or missing references)
			if (inputAction == null || inputAction.controls.Count == 0)
			{
				return 0uL;
			}
			Enumerator<InputControl> enumerator = inputAction.controls.GetEnumerator();
			try
			{
				while (enumerator.MoveNext())
				{
					InputControl current = enumerator.Current;
					if ((inputDevice != null && current.device != inputDevice) || current.device == null)
					{
						continue;
					}
					uint deviceId = GetDeviceId(current.device);
					if (deviceId != 0)
					{
						string actionHandleName = GetActionHandleName(current);
						ulong num = Internal_GetActionId(deviceId, actionHandleName);
						if (num != 0L)
						{
							return num;
						}
					}
				}
			}
			finally
			{
				((IDisposable)enumerator).Dispose();
			}
			return 0uL;
		}

		private static uint GetDeviceId(InputDevice inputDevice)
		{
			if (inputDevice == null)
			{
				return 0u;
			}
			GetInternalDeviceIdCommand getInternalDeviceIdCommand = GetInternalDeviceIdCommand.Create();
			if (inputDevice.ExecuteCommand<GetInternalDeviceIdCommand>(ref getInternalDeviceIdCommand) != 0L)
			{
				return getInternalDeviceIdCommand.deviceId;
			}
			return 0u;
		}

		private static string UserPathToDeviceName(string userPath)
		{
			string[] array = userPath.Split('/', '_');
			StringBuilder stringBuilder = new StringBuilder("OXR");
			string[] array2 = array;
			foreach (string text in array2)
			{
				if (text.Length != 0)
				{
					string text2 = SanitizeStringForOpenXRPath(text);
					stringBuilder.Append(char.ToUpper(text2[0]));
					stringBuilder.Append(text2.Substring(1));
				}
			}
			return stringBuilder.ToString();
		}

		[DllImport("UnityOpenXR", CallingConvention = CallingConvention.Cdecl, EntryPoint = "OpenXRInputProvider_SetDpadBindingCustomValues")]
		private static extern void Internal_SetDpadBindingCustomValues(bool isLeft, float forceThreshold, float forceThresholdReleased, float centerRegion, float wedgeAngle, bool isSticky);

		[DllImport("UnityOpenXR", CallingConvention = CallingConvention.Cdecl, EntryPoint = "OpenXRInputProvider_SendHapticImpulse")]
		private static extern void Internal_SendHapticImpulse(uint deviceId, ulong actionId, float amplitude, float frequency, float duration);

		[DllImport("UnityOpenXR", CallingConvention = CallingConvention.Cdecl, EntryPoint = "OpenXRInputProvider_StopHaptics")]
		private static extern void Internal_StopHaptics(uint deviceId, ulong actionId);

		[DllImport("UnityOpenXR", EntryPoint = "OpenXRInputProvider_GetActionIdByControl")]
		private static extern ulong Internal_GetActionId(uint deviceId, string name);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "OpenXRInputProvider_TryGetInputSourceName")]
		[return: MarshalAs(UnmanagedType.U1)]
		private static extern bool Internal_TryGetInputSourceNamePtr(uint deviceId, ulong actionId, uint index, uint flags, out IntPtr outName);

		internal static bool Internal_TryGetInputSourceName(uint deviceId, ulong actionId, uint index, uint flags, out string outName)
		{
			if (!Internal_TryGetInputSourceNamePtr(deviceId, actionId, index, flags, out var outName2))
			{
				outName = "";
				return false;
			}
			outName = Marshal.PtrToStringAnsi(outName2);
			return true;
		}

		[DllImport("UnityOpenXR", EntryPoint = "OpenXRInputProvider_GetActionIsActive")]
		private static extern bool Internal_GetActionIsActive(uint deviceId, string name);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "OpenXRInputProvider_RegisterDeviceDefinition")]
		private static extern ulong Internal_RegisterDeviceDefinition(string userPath, string interactionProfile, bool isAdditive, uint characteristics, string name, string manufacturer, string serialNumber);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "OpenXRInputProvider_CreateActionSet")]
		private static extern ulong Internal_CreateActionSet(string name, string localizedName, SerializedGuid guid);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "OpenXRInputProvider_CreateAction")]
		private static extern ulong Internal_CreateAction(ulong actionSetId, string name, string localizedName, uint actionType, SerializedGuid guid, string[] userPaths, uint userPathCount, bool isAdditive, string[] usages, uint usageCount);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "OpenXRInputProvider_SuggestBindings")]
		[return: MarshalAs(UnmanagedType.U1)]
		internal static extern bool Internal_SuggestBindings(string interactionProfile, SerializedBinding[] serializedBindings, uint serializedBindingCount);

		[DllImport("UnityOpenXR", CharSet = CharSet.Ansi, EntryPoint = "OpenXRInputProvider_AttachActionSets")]
		[return: MarshalAs(UnmanagedType.U1)]
		internal static extern bool Internal_AttachActionSets();
	}
	[Obsolete("OpenXR.Input.Pose is deprecated, Please use UnityEngine.InputSystem.XR.PoseState instead", false)]
	public struct Pose
	{
		public bool isTracked { get; set; }

		public InputTrackingState trackingState { get; set; }

		public Vector3 position { get; set; }

		public Quaternion rotation { get; set; }

		public Vector3 velocity { get; set; }

		public Vector3 angularVelocity { get; set; }
	}
	[Obsolete("OpenXR.Input.PoseControl is deprecated. Please use UnityEngine.InputSystem.XR.PoseControl instead.", false)]
	public class PoseControl : InputControl<Pose>
	{
		[Preserve]
		[InputControl(offset = 0u)]
		public ButtonControl isTracked { get; private set; }

		[Preserve]
		[InputControl(offset = 4u)]
		public IntegerControl trackingState { get; private set; }

		[Preserve]
		[InputControl(offset = 8u, noisy = true)]
		public Vector3Control position { get; private set; }

		[Preserve]
		[InputControl(offset = 20u, noisy = true)]
		public QuaternionControl rotation { get; private set; }

		[Preserve]
		[InputControl(offset = 36u, noisy = true)]
		public Vector3Control velocity { get; private set; }

		[Preserve]
		[InputControl(offset = 48u, noisy = true)]
		public Vector3Control angularVelocity { get; private set; }

		protected override void FinishSetup()
		{
			isTracked = ((InputControl)this).GetChildControl<ButtonControl>("isTracked");
			trackingState = ((InputControl)this).GetChildControl<IntegerControl>("trackingState");
			position = ((InputControl)this).GetChildControl<Vector3Control>("position");
			rotation = ((InputControl)this).GetChildControl<QuaternionControl>("rotation");
			velocity = ((InputControl)this).GetChildControl<Vector3Control>("velocity");
			angularVelocity = ((InputControl)this).GetChildControl<Vector3Control>("angularVelocity");
			base.FinishSetup();
		}

		public unsafe override Pose ReadUnprocessedValueFromState(void* statePtr)
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0051: Unknown result type (might be due to invalid IL or missing references)
			//IL_0064: Unknown result type (might be due to invalid IL or missing references)
			//IL_0077: Unknown result type (might be due to invalid IL or missing references)
			Pose result = default(Pose);
			result.isTracked = ((InputControl<float>)(object)isTracked).ReadUnprocessedValueFromState(statePtr) > 0.5f;
			result.trackingState = (InputTrackingState)((InputControl<int>)(object)trackingState).ReadUnprocessedValueFromState(statePtr);
			result.position = ((InputControl<Vector3>)(object)position).ReadUnprocessedValueFromState(statePtr);
			result.rotation = ((InputControl<Quaternion>)(object)rotation).ReadUnprocessedValueFromState(statePtr);
			result.velocity = ((InputControl<Vector3>)(object)velocity).ReadUnprocessedValueFromState(statePtr);
			result.angularVelocity = ((InputControl<Vector3>)(object)angularVelocity).ReadUnprocessedValueFromState(statePtr);
			return result;
		}

		public unsafe override void WriteValueIntoState(Pose value, void* statePtr)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Expected I4, but got Unknown
			//IL_002e: 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_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			InputControlExtensions.WriteValueIntoState<bool>((InputControl)(object)isTracked, value.isTracked, statePtr);
			InputControlExtensions.WriteValueIntoState<uint>((InputControl)(object)trackingState, (uint)(int)value.trackingState, statePtr);
			((InputControl<Vector3>)(object)position).WriteValueIntoState(value.position, statePtr);
			((InputControl<Quaternion>)(object)rotation).WriteValueIntoState(value.rotation, statePtr);
			((InputControl<Vector3>)(object)velocity).WriteValueIntoState(value.velocity, statePtr);
			((InputControl<Vector3>)(object)angularVelocity).WriteValueIntoState(value.angularVelocity, statePtr);
		}
	}
}
namespace UnityEngine.XR.OpenXR.NativeTypes
{
	public enum XrEnvironmentBlendMode
	{
		Opaque = 1,
		Additive,
		AlphaBlend
	}
	internal enum XrResult
	{
		Succ

BepInEx/plugins/CWVR/RuntimeDeps/UnityEngine.SpatialTracking.dll

Decompiled 4 months ago
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;
using UnityEngine.Events;
using UnityEngine.Experimental.XR.Interaction;
using UnityEngine.SpatialTracking;
using UnityEngine.XR;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: InternalsVisibleTo("UnityEditor.XR.SpatialTracking")]
[assembly: InternalsVisibleTo("UnityEditor.SpatialTracking")]
[assembly: AssemblyVersion("0.0.0.0")]
[CompilerGenerated]
[EditorBrowsable(EditorBrowsableState.Never)]
[GeneratedCode("Unity.MonoScriptGenerator.MonoScriptInfoGenerator", null)]
internal class UnitySourceGeneratedAssemblyMonoScriptTypes_v1
{
	private struct MonoScriptData
	{
		public byte[] FilePathsData;

		public byte[] TypesData;

		public int TotalTypes;

		public int TotalFiles;

		public bool IsEditorOnly;
	}

	[MethodImpl(MethodImplOptions.AggressiveInlining)]
	private static MonoScriptData Get()
	{
		MonoScriptData result = default(MonoScriptData);
		result.FilePathsData = new byte[229]
		{
			0, 0, 0, 1, 0, 0, 0, 106, 92, 76,
			105, 98, 114, 97, 114, 121, 92, 80, 97, 99,
			107, 97, 103, 101, 67, 97, 99, 104, 101, 92,
			99, 111, 109, 46, 117, 110, 105, 116, 121, 46,
			120, 114, 46, 108, 101, 103, 97, 99, 121, 105,
			110, 112, 117, 116, 104, 101, 108, 112, 101, 114,
			115, 64, 50, 46, 49, 46, 49, 48, 92, 82,
			117, 110, 116, 105, 109, 101, 92, 84, 114, 97,
			99, 107, 101, 100, 80, 111, 115, 101, 68, 114,
			105, 118, 101, 114, 92, 66, 97, 115, 101, 80,
			111, 115, 101, 80, 114, 111, 118, 105, 100, 101,
			114, 46, 99, 115, 0, 0, 0, 4, 0, 0,
			0, 107, 92, 76, 105, 98, 114, 97, 114, 121,
			92, 80, 97, 99, 107, 97, 103, 101, 67, 97,
			99, 104, 101, 92, 99, 111, 109, 46, 117, 110,
			105, 116, 121, 46, 120, 114, 46, 108, 101, 103,
			97, 99, 121, 105, 110, 112, 117, 116, 104, 101,
			108, 112, 101, 114, 115, 64, 50, 46, 49, 46,
			49, 48, 92, 82, 117, 110, 116, 105, 109, 101,
			92, 84, 114, 97, 99, 107, 101, 100, 80, 111,
			115, 101, 68, 114, 105, 118, 101, 114, 92, 84,
			114, 97, 99, 107, 101, 100, 80, 111, 115, 101,
			68, 114, 105, 118, 101, 114, 46, 99, 115
		};
		result.TypesData = new byte[297]
		{
			0, 0, 0, 0, 56, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 69, 120, 112,
			101, 114, 105, 109, 101, 110, 116, 97, 108, 46,
			88, 82, 46, 73, 110, 116, 101, 114, 97, 99,
			116, 105, 111, 110, 124, 66, 97, 115, 101, 80,
			111, 115, 101, 80, 114, 111, 118, 105, 100, 101,
			114, 0, 0, 0, 0, 60, 85, 110, 105, 116,
			121, 69, 110, 103, 105, 110, 101, 46, 83, 112,
			97, 116, 105, 97, 108, 84, 114, 97, 99, 107,
			105, 110, 103, 124, 84, 114, 97, 99, 107, 101,
			100, 80, 111, 115, 101, 68, 114, 105, 118, 101,
			114, 68, 97, 116, 97, 68, 101, 115, 99, 114,
			105, 112, 116, 105, 111, 110, 0, 0, 0, 0,
			69, 85, 110, 105, 116, 121, 69, 110, 103, 105,
			110, 101, 46, 83, 112, 97, 116, 105, 97, 108,
			84, 114, 97, 99, 107, 105, 110, 103, 46, 84,
			114, 97, 99, 107, 101, 100, 80, 111, 115, 101,
			68, 114, 105, 118, 101, 114, 68, 97, 116, 97,
			68, 101, 115, 99, 114, 105, 112, 116, 105, 111,
			110, 124, 80, 111, 115, 101, 68, 97, 116, 97,
			0, 0, 0, 0, 42, 85, 110, 105, 116, 121,
			69, 110, 103, 105, 110, 101, 46, 83, 112, 97,
			116, 105, 97, 108, 84, 114, 97, 99, 107, 105,
			110, 103, 124, 80, 111, 115, 101, 68, 97, 116,
			97, 83, 111, 117, 114, 99, 101, 0, 0, 0,
			0, 45, 85, 110, 105, 116, 121, 69, 110, 103,
			105, 110, 101, 46, 83, 112, 97, 116, 105, 97,
			108, 84, 114, 97, 99, 107, 105, 110, 103, 124,
			84, 114, 97, 99, 107, 101, 100, 80, 111, 115,
			101, 68, 114, 105, 118, 101, 114
		};
		result.TotalFiles = 2;
		result.TotalTypes = 5;
		result.IsEditorOnly = false;
		return result;
	}
}
namespace UnityEngine.SpatialTracking
{
	internal class TrackedPoseDriverDataDescription
	{
		internal struct PoseData
		{
			public List<string> PoseNames;

			public List<TrackedPoseDriver.TrackedPose> Poses;
		}

		internal static List<PoseData> DeviceData = new List<PoseData>
		{
			new PoseData
			{
				PoseNames = new List<string> { "Left Eye", "Right Eye", "Center Eye - HMD Reference", "Head", "Color Camera" },
				Poses = new List<TrackedPoseDriver.TrackedPose>
				{
					TrackedPoseDriver.TrackedPose.LeftEye,
					TrackedPoseDriver.TrackedPose.RightEye,
					TrackedPoseDriver.TrackedPose.Center,
					TrackedPoseDriver.TrackedPose.Head,
					TrackedPoseDriver.TrackedPose.ColorCamera
				}
			},
			new PoseData
			{
				PoseNames = new List<string> { "Left Controller", "Right Controller" },
				Poses = new List<TrackedPoseDriver.TrackedPose>
				{
					TrackedPoseDriver.TrackedPose.LeftPose,
					TrackedPoseDriver.TrackedPose.RightPose
				}
			},
			new PoseData
			{
				PoseNames = new List<string> { "Device Pose" },
				Poses = new List<TrackedPoseDriver.TrackedPose> { TrackedPoseDriver.TrackedPose.RemotePose }
			}
		};
	}
	[Flags]
	public enum PoseDataFlags
	{
		NoData = 0,
		Position = 1,
		Rotation = 2
	}
	public static class PoseDataSource
	{
		internal static List<XRNodeState> nodeStates = new List<XRNodeState>();

		internal static PoseDataFlags GetNodePoseData(XRNode node, out Pose resultPose)
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0020: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_006f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0074: Unknown result type (might be due to invalid IL or missing references)
			PoseDataFlags poseDataFlags = PoseDataFlags.NoData;
			InputTracking.GetNodeStates(nodeStates);
			foreach (XRNodeState nodeState in nodeStates)
			{
				XRNodeState current = nodeState;
				if (((XRNodeState)(ref current)).nodeType == node)
				{
					if (((XRNodeState)(ref current)).TryGetPosition(ref resultPose.position))
					{
						poseDataFlags |= PoseDataFlags.Position;
					}
					if (((XRNodeState)(ref current)).TryGetRotation(ref resultPose.rotation))
					{
						poseDataFlags |= PoseDataFlags.Rotation;
					}
					return poseDataFlags;
				}
			}
			resultPose = Pose.identity;
			return poseDataFlags;
		}

		public static bool TryGetDataFromSource(TrackedPoseDriver.TrackedPose poseSource, out Pose resultPose)
		{
			return GetDataFromSource(poseSource, out resultPose) == (PoseDataFlags.Position | PoseDataFlags.Rotation);
		}

		public static PoseDataFlags GetDataFromSource(TrackedPoseDriver.TrackedPose poseSource, out Pose resultPose)
		{
			//IL_00a2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a7: Unknown result type (might be due to invalid IL or missing references)
			switch (poseSource)
			{
			case TrackedPoseDriver.TrackedPose.RemotePose:
			{
				PoseDataFlags nodePoseData = GetNodePoseData((XRNode)5, out resultPose);
				if (nodePoseData == PoseDataFlags.NoData)
				{
					return GetNodePoseData((XRNode)4, out resultPose);
				}
				return nodePoseData;
			}
			case TrackedPoseDriver.TrackedPose.LeftEye:
				return GetNodePoseData((XRNode)0, out resultPose);
			case TrackedPoseDriver.TrackedPose.RightEye:
				return GetNodePoseData((XRNode)1, out resultPose);
			case TrackedPoseDriver.TrackedPose.Head:
				return GetNodePoseData((XRNode)3, out resultPose);
			case TrackedPoseDriver.TrackedPose.Center:
				return GetNodePoseData((XRNode)2, out resultPose);
			case TrackedPoseDriver.TrackedPose.LeftPose:
				return GetNodePoseData((XRNode)4, out resultPose);
			case TrackedPoseDriver.TrackedPose.RightPose:
				return GetNodePoseData((XRNode)5, out resultPose);
			case TrackedPoseDriver.TrackedPose.ColorCamera:
				return GetNodePoseData((XRNode)2, out resultPose);
			default:
				Debug.LogWarningFormat("Unable to retrieve pose data for poseSource: {0}", new object[1] { poseSource.ToString() });
				resultPose = Pose.identity;
				return PoseDataFlags.NoData;
			}
		}
	}
	[Serializable]
	[DefaultExecutionOrder(-30000)]
	[AddComponentMenu("XR/Tracked Pose Driver")]
	[HelpURL("https://docs.unity3d.com/Packages/[email protected]/manual/index.html")]
	public class TrackedPoseDriver : MonoBehaviour
	{
		public enum DeviceType
		{
			GenericXRDevice,
			GenericXRController,
			GenericXRRemote
		}

		public enum TrackedPose
		{
			LeftEye,
			RightEye,
			Center,
			Head,
			LeftPose,
			RightPose,
			ColorCamera,
			DepthCameraDeprecated,
			FisheyeCameraDeprected,
			DeviceDeprecated,
			RemotePose
		}

		public enum TrackingType
		{
			RotationAndPosition,
			RotationOnly,
			PositionOnly
		}

		public enum UpdateType
		{
			UpdateAndBeforeRender,
			Update,
			BeforeRender
		}

		[SerializeField]
		private DeviceType m_Device;

		[SerializeField]
		private TrackedPose m_PoseSource = TrackedPose.Center;

		[SerializeField]
		private BasePoseProvider m_PoseProviderComponent;

		[SerializeField]
		private TrackingType m_TrackingType;

		[SerializeField]
		private UpdateType m_UpdateType;

		[SerializeField]
		private bool m_UseRelativeTransform;

		protected Pose m_OriginPose;

		public DeviceType deviceType
		{
			get
			{
				return m_Device;
			}
			internal set
			{
				m_Device = value;
			}
		}

		public TrackedPose poseSource
		{
			get
			{
				return m_PoseSource;
			}
			internal set
			{
				m_PoseSource = value;
			}
		}

		public BasePoseProvider poseProviderComponent
		{
			get
			{
				return m_PoseProviderComponent;
			}
			set
			{
				m_PoseProviderComponent = value;
			}
		}

		public TrackingType trackingType
		{
			get
			{
				return m_TrackingType;
			}
			set
			{
				m_TrackingType = value;
			}
		}

		public UpdateType updateType
		{
			get
			{
				return m_UpdateType;
			}
			set
			{
				m_UpdateType = value;
			}
		}

		public bool UseRelativeTransform
		{
			get
			{
				return m_UseRelativeTransform;
			}
			set
			{
				m_UseRelativeTransform = value;
			}
		}

		public Pose originPose
		{
			get
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				return m_OriginPose;
			}
			set
			{
				//IL_0001: Unknown result type (might be due to invalid IL or missing references)
				//IL_0002: Unknown result type (might be due to invalid IL or missing references)
				m_OriginPose = value;
			}
		}

		public bool SetPoseSource(DeviceType deviceType, TrackedPose pose)
		{
			if ((int)deviceType < TrackedPoseDriverDataDescription.DeviceData.Count)
			{
				TrackedPoseDriverDataDescription.PoseData poseData = TrackedPoseDriverDataDescription.DeviceData[(int)deviceType];
				for (int i = 0; i < poseData.Poses.Count; i++)
				{
					if (poseData.Poses[i] == pose)
					{
						this.deviceType = deviceType;
						poseSource = pose;
						return true;
					}
				}
			}
			return false;
		}

		private PoseDataFlags GetPoseData(DeviceType device, TrackedPose poseSource, out Pose resultPose)
		{
			if (!((Object)(object)m_PoseProviderComponent != (Object)null))
			{
				return PoseDataSource.GetDataFromSource(poseSource, out resultPose);
			}
			return m_PoseProviderComponent.GetPoseFromProvider(out resultPose);
		}

		private void CacheLocalPosition()
		{
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0011: Unknown result type (might be due to invalid IL or missing references)
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Unknown result type (might be due to invalid IL or missing references)
			m_OriginPose.position = ((Component)this).transform.localPosition;
			m_OriginPose.rotation = ((Component)this).transform.localRotation;
		}

		private void ResetToCachedLocalPosition()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Unknown result type (might be due to invalid IL or missing references)
			SetLocalTransform(m_OriginPose.position, m_OriginPose.rotation, PoseDataFlags.Position | PoseDataFlags.Rotation);
		}

		protected virtual void Awake()
		{
			CacheLocalPosition();
		}

		protected virtual void OnDestroy()
		{
		}

		protected virtual void OnEnable()
		{
			//IL_0008: Unknown result type (might be due to invalid IL or missing references)
			//IL_0012: Expected O, but got Unknown
			Application.onBeforeRender += new UnityAction(OnBeforeRender);
		}

		protected virtual void OnDisable()
		{
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0018: Expected O, but got Unknown
			ResetToCachedLocalPosition();
			Application.onBeforeRender -= new UnityAction(OnBeforeRender);
		}

		protected virtual void FixedUpdate()
		{
			if (m_UpdateType == UpdateType.Update || m_UpdateType == UpdateType.UpdateAndBeforeRender)
			{
				PerformUpdate();
			}
		}

		protected virtual void Update()
		{
			if (m_UpdateType == UpdateType.Update || m_UpdateType == UpdateType.UpdateAndBeforeRender)
			{
				PerformUpdate();
			}
		}

		[BeforeRenderOrder(-30000)]
		protected virtual void OnBeforeRender()
		{
			if (m_UpdateType == UpdateType.BeforeRender || m_UpdateType == UpdateType.UpdateAndBeforeRender)
			{
				PerformUpdate();
			}
		}

		protected virtual void SetLocalTransform(Vector3 newPosition, Quaternion newRotation, PoseDataFlags poseFlags)
		{
			//IL_001d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0040: Unknown result type (might be due to invalid IL or missing references)
			if ((m_TrackingType == TrackingType.RotationAndPosition || m_TrackingType == TrackingType.RotationOnly) && (poseFlags & PoseDataFlags.Rotation) > PoseDataFlags.NoData)
			{
				((Component)this).transform.localRotation = newRotation;
			}
			if ((m_TrackingType == TrackingType.RotationAndPosition || m_TrackingType == TrackingType.PositionOnly) && (poseFlags & PoseDataFlags.Position) > PoseDataFlags.NoData)
			{
				((Component)this).transform.localPosition = newPosition;
			}
		}

		protected Pose TransformPoseByOriginIfNeeded(Pose pose)
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			if (m_UseRelativeTransform)
			{
				return ((Pose)(ref pose)).GetTransformedBy(m_OriginPose);
			}
			return pose;
		}

		private bool HasStereoCamera()
		{
			Camera component = ((Component)this).GetComponent<Camera>();
			if ((Object)(object)component != (Object)null)
			{
				return component.stereoEnabled;
			}
			return false;
		}

		protected virtual void PerformUpdate()
		{
			//IL_0022: Unknown result type (might be due to invalid IL or missing references)
			//IL_0023: Unknown result type (might be due to invalid IL or missing references)
			//IL_0028: Unknown result type (might be due to invalid IL or missing references)
			//IL_002a: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			if (((Behaviour)this).enabled)
			{
				Pose resultPose;
				PoseDataFlags poseData = GetPoseData(m_Device, m_PoseSource, out resultPose);
				if (poseData != 0)
				{
					Pose val = TransformPoseByOriginIfNeeded(resultPose);
					SetLocalTransform(val.position, val.rotation, poseData);
				}
			}
		}
	}
}
namespace UnityEngine.Experimental.XR.Interaction
{
	[Serializable]
	public abstract class BasePoseProvider : MonoBehaviour
	{
		public virtual PoseDataFlags GetPoseFromProvider(out Pose output)
		{
			if (TryGetPoseFromProvider(out output))
			{
				return PoseDataFlags.Position | PoseDataFlags.Rotation;
			}
			return PoseDataFlags.NoData;
		}

		[Obsolete("This function is provided for backwards compatibility with the BasePoseProvider found in com.unity.xr.legacyinputhelpers v1.3.X. Please do not implement this function, instead use the new API via GetPoseFromProvider", false)]
		public virtual bool TryGetPoseFromProvider(out Pose output)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			//IL_0006: Unknown result type (might be due to invalid IL or missing references)
			output = Pose.identity;
			return false;
		}
	}
}