//This file was automatically generated by gen_ser.pl
//See serializer.h for details and comments

#define DECLARE_SERIALIZEABLE_STRUC1(strucname, t1, n1) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
	\
	            strucname(t1 n1 ## _) : \
                n1(n1 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC2(strucname, t1, n1, t2, n2) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC3(strucname, t1, n1, t2, n2, t3, n3) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC4(strucname, t1, n1, t2, n2, t3, n3, t4, n4) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>()), \
			n4(__SERIALIZER_DEFAULT<t4>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC5(strucname, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>()), \
			n4(__SERIALIZER_DEFAULT<t4>()), \
			n5(__SERIALIZER_DEFAULT<t5>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC6(strucname, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>()), \
			n4(__SERIALIZER_DEFAULT<t4>()), \
			n5(__SERIALIZER_DEFAULT<t5>()), \
			n6(__SERIALIZER_DEFAULT<t6>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC7(strucname, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>()), \
			n4(__SERIALIZER_DEFAULT<t4>()), \
			n5(__SERIALIZER_DEFAULT<t5>()), \
			n6(__SERIALIZER_DEFAULT<t6>()), \
			n7(__SERIALIZER_DEFAULT<t7>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC8(strucname, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
            t8 n8; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _, t8 n8 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _), \
                n8(n8 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>()), \
			n4(__SERIALIZER_DEFAULT<t4>()), \
			n5(__SERIALIZER_DEFAULT<t5>()), \
			n6(__SERIALIZER_DEFAULT<t6>()), \
			n7(__SERIALIZER_DEFAULT<t7>()), \
			n8(__SERIALIZER_DEFAULT<t8>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n8), &n8, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC9(strucname, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8, t9, n9) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
            t8 n8; \
            t9 n9; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _, t8 n8 ## _, t9 n9 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _), \
                n8(n8 ## _), \
                n9(n9 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>()), \
			n4(__SERIALIZER_DEFAULT<t4>()), \
			n5(__SERIALIZER_DEFAULT<t5>()), \
			n6(__SERIALIZER_DEFAULT<t6>()), \
			n7(__SERIALIZER_DEFAULT<t7>()), \
			n8(__SERIALIZER_DEFAULT<t8>()), \
			n9(__SERIALIZER_DEFAULT<t9>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n8), &n8, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n9), &n9, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC10(strucname, t1, n1, t2, n2, t3, n3, t4, n4, t5, n5, t6, n6, t7, n7, t8, n8, t9, n9, t10, n10) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
            t8 n8; \
            t9 n9; \
            t10 n10; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _, t8 n8 ## _, t9 n9 ## _, t10 n10 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _), \
                n8(n8 ## _), \
                n9(n9 ## _), \
                n10(n10 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(__SERIALIZER_DEFAULT<t1>()), \
			n2(__SERIALIZER_DEFAULT<t2>()), \
			n3(__SERIALIZER_DEFAULT<t3>()), \
			n4(__SERIALIZER_DEFAULT<t4>()), \
			n5(__SERIALIZER_DEFAULT<t5>()), \
			n6(__SERIALIZER_DEFAULT<t6>()), \
			n7(__SERIALIZER_DEFAULT<t7>()), \
			n8(__SERIALIZER_DEFAULT<t8>()), \
			n9(__SERIALIZER_DEFAULT<t9>()), \
			n10(__SERIALIZER_DEFAULT<t10>())\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n8), &n8, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n9), &n9, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n10), &n10, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC1_I(strucname, t1, n1, i1) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
	\
	            strucname(t1 n1 ## _) : \
                n1(n1 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC2_I(strucname, t1, n1, i1, t2, n2, i2) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC3_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC4_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3, t4, n4, i4) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3), \
			n4(i4)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC5_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3, t4, n4, i4, t5, n5, i5) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3), \
			n4(i4), \
			n5(i5)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC6_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3, t4, n4, i4, t5, n5, i5, t6, n6, i6) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3), \
			n4(i4), \
			n5(i5), \
			n6(i6)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC7_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3, t4, n4, i4, t5, n5, i5, t6, n6, i6, t7, n7, i7) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3), \
			n4(i4), \
			n5(i5), \
			n6(i6), \
			n7(i7)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC8_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3, t4, n4, i4, t5, n5, i5, t6, n6, i6, t7, n7, i7, t8, n8, i8) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
            t8 n8; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _, t8 n8 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _), \
                n8(n8 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3), \
			n4(i4), \
			n5(i5), \
			n6(i6), \
			n7(i7), \
			n8(i8)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n8), &n8, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC9_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3, t4, n4, i4, t5, n5, i5, t6, n6, i6, t7, n7, i7, t8, n8, i8, t9, n9, i9) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
            t8 n8; \
            t9 n9; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _, t8 n8 ## _, t9 n9 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _), \
                n8(n8 ## _), \
                n9(n9 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3), \
			n4(i4), \
			n5(i5), \
			n6(i6), \
			n7(i7), \
			n8(i8), \
			n9(i9)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n8), &n8, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n9), &n9, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

#define DECLARE_SERIALIZEABLE_STRUC10_I(strucname, t1, n1, i1, t2, n2, i2, t3, n3, i3, t4, n4, i4, t5, n5, i5, t6, n6, i6, t7, n7, i7, t8, n8, i8, t9, n9, i9, t10, n10, i10) \
		struct strucname : public _SerializableStructBase \
		{ \
            t1 n1; \
            t2 n2; \
            t3 n3; \
            t4 n4; \
            t5 n5; \
            t6 n6; \
            t7 n7; \
            t8 n8; \
            t9 n9; \
            t10 n10; \
	\
	            strucname(t1 n1 ## _, t2 n2 ## _, t3 n3 ## _, t4 n4 ## _, t5 n5 ## _, t6 n6 ## _, t7 n7 ## _, t8 n8 ## _, t9 n9 ## _, t10 n10 ## _) : \
                n1(n1 ## _), \
                n2(n2 ## _), \
                n3(n3 ## _), \
                n4(n4 ## _), \
                n5(n5 ## _), \
                n6(n6 ## _), \
                n7(n7 ## _), \
                n8(n8 ## _), \
                n9(n9 ## _), \
                n10(n10 ## _)\
	    {\
	            } \
	        \
	            strucname() : \
			n1(i1), \
			n2(i2), \
			n3(i3), \
			n4(i4), \
			n5(i5), \
			n6(i6), \
			n7(i7), \
			n8(i8), \
			n9(i9), \
			n10(i10)\
		{ \
			} \
	\
		template <class _Ty>  inline BazisLib::ActionStatus __SERIALIZER_ITERATE_MEMBERS(_Ty &ref, bool Save) \
		{ \
			BazisLib::ActionStatus result;\
		if (!(result = ref._SerializerEntry(_T(#n1), &n1, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n2), &n2, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n3), &n3, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n4), &n4, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n5), &n5, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n6), &n6, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n7), &n7, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n8), &n8, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n9), &n9, Save)).Successful()) return result; \
		if (!(result = ref._SerializerEntry(_T(#n10), &n10, Save)).Successful()) return result; \
		return MAKE_STATUS(BazisLib::Success); \
		}\
};\
static inline const TCHAR * __SERIALIZER_GET_TYPE_NAME(strucname *ptr) {return _T(# strucname);}

