#pragma once

#include "il2cpp-config.h"

#ifndef _MSC_VER
# include <alloca.h>
#else
# include <malloc.h>
#endif

#include <stdint.h>
#include <assert.h>
#include <exception>

// System.Enum
struct Enum_t2459695545;
// System.IFormatProvider
struct IFormatProvider_t2849799027;
// System.Object
struct Il2CppObject;
// System.Type
struct Type_t;
// System.Array
struct Il2CppArray;
// System.String
struct String_t;
// System.Collections.Hashtable
struct Hashtable_t909839986;
// System.String[]
struct StringU5BU5D_t1642385972;
struct Enum_t2459695545_marshaled_pinvoke;
struct Enum_t2459695545_marshaled_com;

#include "codegen/il2cpp-codegen.h"
#include "mscorlib_System_DateTime693205669.h"
#include "mscorlib_System_Decimal724701077.h"
#include "mscorlib_System_Type1303803226.h"
#include "mscorlib_System_TypeCode2536926201.h"
#include "mscorlib_System_Object2689449295.h"
#include "mscorlib_System_Array3829468939.h"
#include "mscorlib_System_Collections_Hashtable909839986.h"
#include "mscorlib_System_String2029220233.h"

// System.Void System.Enum::.ctor()
extern "C"  void Enum__ctor_m4107488614 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Void System.Enum::.cctor()
extern "C"  void Enum__cctor_m3214832791 (Il2CppObject * __this /* static, unused */, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Boolean System.Enum::System.IConvertible.ToBoolean(System.IFormatProvider)
extern "C"  bool Enum_System_IConvertible_ToBoolean_m1514431386 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Byte System.Enum::System.IConvertible.ToByte(System.IFormatProvider)
extern "C"  uint8_t Enum_System_IConvertible_ToByte_m38374586 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Char System.Enum::System.IConvertible.ToChar(System.IFormatProvider)
extern "C"  Il2CppChar Enum_System_IConvertible_ToChar_m1838232954 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.DateTime System.Enum::System.IConvertible.ToDateTime(System.IFormatProvider)
extern "C"  DateTime_t693205669  Enum_System_IConvertible_ToDateTime_m2924690746 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Decimal System.Enum::System.IConvertible.ToDecimal(System.IFormatProvider)
extern "C"  Decimal_t724701077  Enum_System_IConvertible_ToDecimal_m3295004384 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Double System.Enum::System.IConvertible.ToDouble(System.IFormatProvider)
extern "C"  double Enum_System_IConvertible_ToDouble_m2570712410 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int16 System.Enum::System.IConvertible.ToInt16(System.IFormatProvider)
extern "C"  int16_t Enum_System_IConvertible_ToInt16_m3801781082 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::System.IConvertible.ToInt32(System.IFormatProvider)
extern "C"  int32_t Enum_System_IConvertible_ToInt32_m2459904362 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int64 System.Enum::System.IConvertible.ToInt64(System.IFormatProvider)
extern "C"  int64_t Enum_System_IConvertible_ToInt64_m3674510904 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.SByte System.Enum::System.IConvertible.ToSByte(System.IFormatProvider)
extern "C"  int8_t Enum_System_IConvertible_ToSByte_m3488526280 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Single System.Enum::System.IConvertible.ToSingle(System.IFormatProvider)
extern "C"  float Enum_System_IConvertible_ToSingle_m780777210 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::System.IConvertible.ToType(System.Type,System.IFormatProvider)
extern "C"  Il2CppObject * Enum_System_IConvertible_ToType_m2669300536 (Il2CppObject * __this, Type_t * ___targetType0, Il2CppObject * ___provider1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt16 System.Enum::System.IConvertible.ToUInt16(System.IFormatProvider)
extern "C"  uint16_t Enum_System_IConvertible_ToUInt16_m1001858842 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt32 System.Enum::System.IConvertible.ToUInt32(System.IFormatProvider)
extern "C"  uint32_t Enum_System_IConvertible_ToUInt32_m3575456858 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt64 System.Enum::System.IConvertible.ToUInt64(System.IFormatProvider)
extern "C"  uint64_t Enum_System_IConvertible_ToUInt64_m337748154 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.TypeCode System.Enum::GetTypeCode()
extern "C"  int32_t Enum_GetTypeCode_m149067422 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::get_value()
extern "C"  Il2CppObject * Enum_get_value_m1179303235 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::get_Value()
extern "C"  Il2CppObject * Enum_get_Value_m1180385699 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::FindPosition(System.Object,System.Array)
extern "C"  int32_t Enum_FindPosition_m988648412 (Il2CppObject * __this /* static, unused */, Il2CppObject * ___value0, Il2CppArray * ___values1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::GetName(System.Type,System.Object)
extern "C"  String_t* Enum_GetName_m1226611481 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Boolean System.Enum::IsDefined(System.Type,System.Object)
extern "C"  bool Enum_IsDefined_m92789062 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Type System.Enum::get_underlying_type(System.Type)
extern "C"  Type_t * Enum_get_underlying_type_m2195909400 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Type System.Enum::GetUnderlyingType(System.Type)
extern "C"  Type_t * Enum_GetUnderlyingType_m3513899012 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::FindName(System.Collections.Hashtable,System.String[],System.String,System.Boolean)
extern "C"  int32_t Enum_FindName_m482077153 (Il2CppObject * __this /* static, unused */, Hashtable_t909839986 * ___name_hash0, StringU5BU5D_t1642385972* ___names1, String_t* ___name2, bool ___ignoreCase3, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.UInt64 System.Enum::GetValue(System.Object,System.TypeCode)
extern "C"  uint64_t Enum_GetValue_m2448824149 (Il2CppObject * __this /* static, unused */, Il2CppObject * ___value0, int32_t ___typeCode1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::Parse(System.Type,System.String,System.Boolean)
extern "C"  Il2CppObject * Enum_Parse_m982704874 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, String_t* ___value1, bool ___ignoreCase2, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::compare_value_to(System.Object)
extern "C"  int32_t Enum_compare_value_to_m1687780407 (Il2CppObject * __this, Il2CppObject * ___other0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::CompareTo(System.Object)
extern "C"  int32_t Enum_CompareTo_m4082875812 (Il2CppObject * __this, Il2CppObject * ___target0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString()
extern "C"  String_t* Enum_ToString_m2112979707 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString(System.IFormatProvider)
extern "C"  String_t* Enum_ToString_m3754726711 (Il2CppObject * __this, Il2CppObject * ___provider0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString(System.String)
extern "C"  String_t* Enum_ToString_m947578005 (Il2CppObject * __this, String_t* ___format0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::ToString(System.String,System.IFormatProvider)
extern "C"  String_t* Enum_ToString_m662345249 (Il2CppObject * __this, String_t* ___format0, Il2CppObject * ___provider1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Byte)
extern "C"  Il2CppObject * Enum_ToObject_m1688724857 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint8_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Int16)
extern "C"  Il2CppObject * Enum_ToObject_m604645223 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int16_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Int32)
extern "C"  Il2CppObject * Enum_ToObject_m322320225 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int32_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Int64)
extern "C"  Il2CppObject * Enum_ToObject_m745807726 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int64_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.Object)
extern "C"  Il2CppObject * Enum_ToObject_m2460371738 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.SByte)
extern "C"  Il2CppObject * Enum_ToObject_m2216605710 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, int8_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.UInt16)
extern "C"  Il2CppObject * Enum_ToObject_m275924358 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint16_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.UInt32)
extern "C"  Il2CppObject * Enum_ToObject_m2601523252 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint32_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Object System.Enum::ToObject(System.Type,System.UInt64)
extern "C"  Il2CppObject * Enum_ToObject_m1438724003 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, uint64_t ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Boolean System.Enum::Equals(System.Object)
extern "C"  bool Enum_Equals_m3783516389 (Il2CppObject * __this, Il2CppObject * ___obj0, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::get_hashcode()
extern "C"  int32_t Enum_get_hashcode_m1795278772 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.Int32 System.Enum::GetHashCode()
extern "C"  int32_t Enum_GetHashCode_m1822821507 (Il2CppObject * __this, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::FormatSpecifier_X(System.Type,System.Object,System.Boolean)
extern "C"  String_t* Enum_FormatSpecifier_X_m1025568603 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, bool ___upper2, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::FormatFlags(System.Type,System.Object)
extern "C"  String_t* Enum_FormatFlags_m2752609772 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, const MethodInfo* method) IL2CPP_METHOD_ATTR;
// System.String System.Enum::Format(System.Type,System.Object,System.String)
extern "C"  String_t* Enum_Format_m2294492821 (Il2CppObject * __this /* static, unused */, Type_t * ___enumType0, Il2CppObject * ___value1, String_t* ___format2, const MethodInfo* method) IL2CPP_METHOD_ATTR;

// Methods for marshaling
struct Enum_t2459695545;
struct Enum_t2459695545_marshaled_pinvoke;

extern "C" void Enum_t2459695545_marshal_pinvoke(const Enum_t2459695545& unmarshaled, Enum_t2459695545_marshaled_pinvoke& marshaled);
extern "C" void Enum_t2459695545_marshal_pinvoke_back(const Enum_t2459695545_marshaled_pinvoke& marshaled, Enum_t2459695545& unmarshaled);
extern "C" void Enum_t2459695545_marshal_pinvoke_cleanup(Enum_t2459695545_marshaled_pinvoke& marshaled);

// Methods for marshaling
struct Enum_t2459695545;
struct Enum_t2459695545_marshaled_com;

extern "C" void Enum_t2459695545_marshal_com(const Enum_t2459695545& unmarshaled, Enum_t2459695545_marshaled_com& marshaled);
extern "C" void Enum_t2459695545_marshal_com_back(const Enum_t2459695545_marshaled_com& marshaled, Enum_t2459695545& unmarshaled);
extern "C" void Enum_t2459695545_marshal_com_cleanup(Enum_t2459695545_marshaled_com& marshaled);
