using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion
{
	// Token: 0x020003A0 RID: 928
	[Token(Token = "0x20003A0")]
	public abstract class Singleton<T> : MonoBehaviour where T : Singleton<T>
	{
		// Token: 0x170001F3 RID: 499
		// (get) Token: 0x060022D2 RID: 8914 RVA: 0x00050218 File Offset: 0x0004E418
		[Token(Token = "0x170001F3")]
		public static T instance
		{
			[Token(Token = "0x60022D2")]
			[Address(RVA = "0xFE8630", Offset = "0xFE7430", VA = "0x180FE8630")]
			get
			{
				return Singleton.sInstance;
			}
		}

		// Token: 0x060022D3 RID: 8915 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60022D3")]
		[Address(RVA = "0xFE8390", Offset = "0xFE7190", VA = "0x180FE8390", Slot = "4")]
		protected virtual void Awake()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060022D4 RID: 8916 RVA: 0x0005022C File Offset: 0x0004E42C
		[Token(Token = "0x60022D4")]
		[Address(RVA = "0xFE8610", Offset = "0xFE7410", VA = "0x180FE8610")]
		protected Singleton()
		{
		}

		// Token: 0x060022D5 RID: 8917 RVA: 0x000020D3 File Offset: 0x000002D3
		// Note: this type is marked as 'beforefieldinit'.
		[Token(Token = "0x60022D5")]
		[Address(RVA = "0x297F00", Offset = "0x296D00", VA = "0x180297F00")]
		static Singleton()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04002C0B RID: 11275
		[Token(Token = "0x4002C0B")]
		private static T sInstance;
	}
}
