//-----------------------------------------------------------------------------
//
//	ValueIDIndexes.h
//
//	List of all Possible ValueID Indexes in OZW
//
//	Copyright (c) 2010 Mal Lansell <openzwave@lansell.org>
//
//	SOFTWARE NOTICE AND LICENSE
//
//	This file is part of OpenZWave.
//
//	OpenZWave is free software: you can redistribute it and/or modify
//	it under the terms of the GNU Lesser General Public License as published
//	by the Free Software Foundation, either version 3 of the License,
//	or (at your option) any later version.
//
//	OpenZWave is distributed in the hope that it will be useful,
//	but WITHOUT ANY WARRANTY; without even the implied warranty of
//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//	GNU Lesser General Public License for more details.
//
//	You should have received a copy of the GNU Lesser General Public License
//	along with OpenZWave.  If not, see <http://www.gnu.org/licenses/>.
//
//-----------------------------------------------------------------------------



/* This file is run through the preprocessor and output to ValueIDIndexesDefines.h to avoid problems
 * with MSVC not supporting enough arguments with Macro's.
 * If you are adding a ValueID, you should add its index ENUM to ValuIDIndexDefines.def and the run
 * 'make updateIndexDefines' to regenerate the the ValueIDIndexDefines.h file
 * Obviously the regeneration will not work on MSVC, so you need clang or gnugcc to do the preprocessing
 * how to do that is left to the reader to figure out on Windows. On Unix and Mac, as long as the compiler 
 * supports more than 512 Macro arguements, all should be good. 
 *
 * This also has the nice side benefit in that we only have to do the pre-processing once, and the output is 
 * included into all the files that include ValueIDIndexes.h without having to process it again
 */



#ifndef _ValueIDIndexesDefines_H
#define _ValueIDIndexesDefines_H



/* this is good for upto 768 entries per ENUM. I shall predict that 768 entries shall be enough for any CommandClass :) */

#define MAP(macro, ...) \
    IDENTITY( \
        APPLY(CHOOSE_MAP_START, COUNT(__VA_ARGS__)) \
            (macro, __VA_ARGS__))

#define CHOOSE_MAP_START(count) MAP ## count

#define APPLY(macro, ...) IDENTITY(macro(__VA_ARGS__))

// Needed to expand __VA_ARGS__ "eagerly" on the MSVC preprocessor.
#define IDENTITY(x) x

#define MAP1(m, x)      m(x)
#define MAP2(m, x, ...) m(x) IDENTITY(MAP1(m, __VA_ARGS__))
#define MAP3(m, x, ...) m(x) IDENTITY(MAP2(m, __VA_ARGS__))
#define MAP4(m, x, ...) m(x) IDENTITY(MAP3(m, __VA_ARGS__))
#define MAP5(m, x, ...) m(x) IDENTITY(MAP4(m, __VA_ARGS__))
#define MAP6(m, x, ...) m(x) IDENTITY(MAP5(m, __VA_ARGS__))
#define MAP7(m, x, ...) m(x) IDENTITY(MAP6(m, __VA_ARGS__))
#define MAP8(m, x, ...) m(x) IDENTITY(MAP7(m, __VA_ARGS__))
#define MAP9(m, x, ...) m(x) IDENTITY(MAP8(m, __VA_ARGS__))
#define MAP10(m, x, ...) m(x) IDENTITY(MAP9(m, __VA_ARGS__))
#define MAP11(m, x, ...) m(x) IDENTITY(MAP10(m, __VA_ARGS__))
#define MAP12(m, x, ...) m(x) IDENTITY(MAP11(m, __VA_ARGS__))
#define MAP13(m, x, ...) m(x) IDENTITY(MAP12(m, __VA_ARGS__))
#define MAP14(m, x, ...) m(x) IDENTITY(MAP13(m, __VA_ARGS__))
#define MAP15(m, x, ...) m(x) IDENTITY(MAP14(m, __VA_ARGS__))
#define MAP16(m, x, ...) m(x) IDENTITY(MAP15(m, __VA_ARGS__))
#define MAP17(m, x, ...) m(x) IDENTITY(MAP16(m, __VA_ARGS__))
#define MAP18(m, x, ...) m(x) IDENTITY(MAP17(m, __VA_ARGS__))
#define MAP19(m, x, ...) m(x) IDENTITY(MAP18(m, __VA_ARGS__))
#define MAP20(m, x, ...) m(x) IDENTITY(MAP19(m, __VA_ARGS__))
#define MAP21(m, x, ...) m(x) IDENTITY(MAP20(m, __VA_ARGS__))
#define MAP22(m, x, ...) m(x) IDENTITY(MAP21(m, __VA_ARGS__))
#define MAP23(m, x, ...) m(x) IDENTITY(MAP22(m, __VA_ARGS__))
#define MAP24(m, x, ...) m(x) IDENTITY(MAP23(m, __VA_ARGS__))
#define MAP25(m, x, ...) m(x) IDENTITY(MAP24(m, __VA_ARGS__))
#define MAP26(m, x, ...) m(x) IDENTITY(MAP25(m, __VA_ARGS__))
#define MAP27(m, x, ...) m(x) IDENTITY(MAP26(m, __VA_ARGS__))
#define MAP28(m, x, ...) m(x) IDENTITY(MAP27(m, __VA_ARGS__))
#define MAP29(m, x, ...) m(x) IDENTITY(MAP28(m, __VA_ARGS__))
#define MAP30(m, x, ...) m(x) IDENTITY(MAP29(m, __VA_ARGS__))
#define MAP31(m, x, ...) m(x) IDENTITY(MAP30(m, __VA_ARGS__))
#define MAP32(m, x, ...) m(x) IDENTITY(MAP31(m, __VA_ARGS__))
#define MAP33(m, x, ...) m(x) IDENTITY(MAP32(m, __VA_ARGS__))
#define MAP34(m, x, ...) m(x) IDENTITY(MAP33(m, __VA_ARGS__))
#define MAP35(m, x, ...) m(x) IDENTITY(MAP34(m, __VA_ARGS__))
#define MAP36(m, x, ...) m(x) IDENTITY(MAP35(m, __VA_ARGS__))
#define MAP37(m, x, ...) m(x) IDENTITY(MAP36(m, __VA_ARGS__))
#define MAP38(m, x, ...) m(x) IDENTITY(MAP37(m, __VA_ARGS__))
#define MAP39(m, x, ...) m(x) IDENTITY(MAP38(m, __VA_ARGS__))
#define MAP40(m, x, ...) m(x) IDENTITY(MAP39(m, __VA_ARGS__))
#define MAP41(m, x, ...) m(x) IDENTITY(MAP40(m, __VA_ARGS__))
#define MAP42(m, x, ...) m(x) IDENTITY(MAP41(m, __VA_ARGS__))
#define MAP43(m, x, ...) m(x) IDENTITY(MAP42(m, __VA_ARGS__))
#define MAP44(m, x, ...) m(x) IDENTITY(MAP43(m, __VA_ARGS__))
#define MAP45(m, x, ...) m(x) IDENTITY(MAP44(m, __VA_ARGS__))
#define MAP46(m, x, ...) m(x) IDENTITY(MAP45(m, __VA_ARGS__))
#define MAP47(m, x, ...) m(x) IDENTITY(MAP46(m, __VA_ARGS__))
#define MAP48(m, x, ...) m(x) IDENTITY(MAP47(m, __VA_ARGS__))
#define MAP49(m, x, ...) m(x) IDENTITY(MAP48(m, __VA_ARGS__))
#define MAP50(m, x, ...) m(x) IDENTITY(MAP49(m, __VA_ARGS__))
#define MAP51(m, x, ...) m(x) IDENTITY(MAP50(m, __VA_ARGS__))
#define MAP52(m, x, ...) m(x) IDENTITY(MAP51(m, __VA_ARGS__))
#define MAP53(m, x, ...) m(x) IDENTITY(MAP52(m, __VA_ARGS__))
#define MAP54(m, x, ...) m(x) IDENTITY(MAP53(m, __VA_ARGS__))
#define MAP55(m, x, ...) m(x) IDENTITY(MAP54(m, __VA_ARGS__))
#define MAP56(m, x, ...) m(x) IDENTITY(MAP55(m, __VA_ARGS__))
#define MAP57(m, x, ...) m(x) IDENTITY(MAP56(m, __VA_ARGS__))
#define MAP58(m, x, ...) m(x) IDENTITY(MAP57(m, __VA_ARGS__))
#define MAP59(m, x, ...) m(x) IDENTITY(MAP58(m, __VA_ARGS__))
#define MAP60(m, x, ...) m(x) IDENTITY(MAP59(m, __VA_ARGS__))
#define MAP61(m, x, ...) m(x) IDENTITY(MAP60(m, __VA_ARGS__))
#define MAP62(m, x, ...) m(x) IDENTITY(MAP61(m, __VA_ARGS__))
#define MAP63(m, x, ...) m(x) IDENTITY(MAP62(m, __VA_ARGS__))
#define MAP64(m, x, ...) m(x) IDENTITY(MAP63(m, __VA_ARGS__))
#define MAP65(m, x, ...) m(x) IDENTITY(MAP64(m, __VA_ARGS__))
#define MAP66(m, x, ...) m(x) IDENTITY(MAP65(m, __VA_ARGS__))
#define MAP67(m, x, ...) m(x) IDENTITY(MAP66(m, __VA_ARGS__))
#define MAP68(m, x, ...) m(x) IDENTITY(MAP67(m, __VA_ARGS__))
#define MAP69(m, x, ...) m(x) IDENTITY(MAP68(m, __VA_ARGS__))
#define MAP70(m, x, ...) m(x) IDENTITY(MAP69(m, __VA_ARGS__))
#define MAP71(m, x, ...) m(x) IDENTITY(MAP70(m, __VA_ARGS__))
#define MAP72(m, x, ...) m(x) IDENTITY(MAP71(m, __VA_ARGS__))
#define MAP73(m, x, ...) m(x) IDENTITY(MAP72(m, __VA_ARGS__))
#define MAP74(m, x, ...) m(x) IDENTITY(MAP73(m, __VA_ARGS__))
#define MAP75(m, x, ...) m(x) IDENTITY(MAP74(m, __VA_ARGS__))
#define MAP76(m, x, ...) m(x) IDENTITY(MAP75(m, __VA_ARGS__))
#define MAP77(m, x, ...) m(x) IDENTITY(MAP76(m, __VA_ARGS__))
#define MAP78(m, x, ...) m(x) IDENTITY(MAP77(m, __VA_ARGS__))
#define MAP79(m, x, ...) m(x) IDENTITY(MAP78(m, __VA_ARGS__))
#define MAP80(m, x, ...) m(x) IDENTITY(MAP79(m, __VA_ARGS__))
#define MAP81(m, x, ...) m(x) IDENTITY(MAP80(m, __VA_ARGS__))
#define MAP82(m, x, ...) m(x) IDENTITY(MAP81(m, __VA_ARGS__))
#define MAP83(m, x, ...) m(x) IDENTITY(MAP82(m, __VA_ARGS__))
#define MAP84(m, x, ...) m(x) IDENTITY(MAP83(m, __VA_ARGS__))
#define MAP85(m, x, ...) m(x) IDENTITY(MAP84(m, __VA_ARGS__))
#define MAP86(m, x, ...) m(x) IDENTITY(MAP85(m, __VA_ARGS__))
#define MAP87(m, x, ...) m(x) IDENTITY(MAP86(m, __VA_ARGS__))
#define MAP88(m, x, ...) m(x) IDENTITY(MAP87(m, __VA_ARGS__))
#define MAP89(m, x, ...) m(x) IDENTITY(MAP88(m, __VA_ARGS__))
#define MAP90(m, x, ...) m(x) IDENTITY(MAP89(m, __VA_ARGS__))
#define MAP91(m, x, ...) m(x) IDENTITY(MAP90(m, __VA_ARGS__))
#define MAP92(m, x, ...) m(x) IDENTITY(MAP91(m, __VA_ARGS__))
#define MAP93(m, x, ...) m(x) IDENTITY(MAP92(m, __VA_ARGS__))
#define MAP94(m, x, ...) m(x) IDENTITY(MAP93(m, __VA_ARGS__))
#define MAP95(m, x, ...) m(x) IDENTITY(MAP94(m, __VA_ARGS__))
#define MAP96(m, x, ...) m(x) IDENTITY(MAP95(m, __VA_ARGS__))
#define MAP97(m, x, ...) m(x) IDENTITY(MAP96(m, __VA_ARGS__))
#define MAP98(m, x, ...) m(x) IDENTITY(MAP97(m, __VA_ARGS__))
#define MAP99(m, x, ...) m(x) IDENTITY(MAP98(m, __VA_ARGS__))
#define MAP100(m, x, ...) m(x) IDENTITY(MAP99(m, __VA_ARGS__))
#define MAP101(m, x, ...) m(x) IDENTITY(MAP100(m, __VA_ARGS__))
#define MAP102(m, x, ...) m(x) IDENTITY(MAP101(m, __VA_ARGS__))
#define MAP103(m, x, ...) m(x) IDENTITY(MAP102(m, __VA_ARGS__))
#define MAP104(m, x, ...) m(x) IDENTITY(MAP103(m, __VA_ARGS__))
#define MAP105(m, x, ...) m(x) IDENTITY(MAP104(m, __VA_ARGS__))
#define MAP106(m, x, ...) m(x) IDENTITY(MAP105(m, __VA_ARGS__))
#define MAP107(m, x, ...) m(x) IDENTITY(MAP106(m, __VA_ARGS__))
#define MAP108(m, x, ...) m(x) IDENTITY(MAP107(m, __VA_ARGS__))
#define MAP109(m, x, ...) m(x) IDENTITY(MAP108(m, __VA_ARGS__))
#define MAP110(m, x, ...) m(x) IDENTITY(MAP109(m, __VA_ARGS__))
#define MAP111(m, x, ...) m(x) IDENTITY(MAP110(m, __VA_ARGS__))
#define MAP112(m, x, ...) m(x) IDENTITY(MAP111(m, __VA_ARGS__))
#define MAP113(m, x, ...) m(x) IDENTITY(MAP112(m, __VA_ARGS__))
#define MAP114(m, x, ...) m(x) IDENTITY(MAP113(m, __VA_ARGS__))
#define MAP115(m, x, ...) m(x) IDENTITY(MAP114(m, __VA_ARGS__))
#define MAP116(m, x, ...) m(x) IDENTITY(MAP115(m, __VA_ARGS__))
#define MAP117(m, x, ...) m(x) IDENTITY(MAP116(m, __VA_ARGS__))
#define MAP118(m, x, ...) m(x) IDENTITY(MAP117(m, __VA_ARGS__))
#define MAP119(m, x, ...) m(x) IDENTITY(MAP118(m, __VA_ARGS__))
#define MAP120(m, x, ...) m(x) IDENTITY(MAP119(m, __VA_ARGS__))
#define MAP121(m, x, ...) m(x) IDENTITY(MAP120(m, __VA_ARGS__))
#define MAP122(m, x, ...) m(x) IDENTITY(MAP121(m, __VA_ARGS__))
#define MAP123(m, x, ...) m(x) IDENTITY(MAP122(m, __VA_ARGS__))
#define MAP124(m, x, ...) m(x) IDENTITY(MAP123(m, __VA_ARGS__))
#define MAP125(m, x, ...) m(x) IDENTITY(MAP124(m, __VA_ARGS__))
#define MAP126(m, x, ...) m(x) IDENTITY(MAP125(m, __VA_ARGS__))
#define MAP127(m, x, ...) m(x) IDENTITY(MAP126(m, __VA_ARGS__))
#define MAP128(m, x, ...) m(x) IDENTITY(MAP127(m, __VA_ARGS__))
#define MAP129(m, x, ...) m(x) IDENTITY(MAP128(m, __VA_ARGS__))
#define MAP130(m, x, ...) m(x) IDENTITY(MAP129(m, __VA_ARGS__))
#define MAP131(m, x, ...) m(x) IDENTITY(MAP130(m, __VA_ARGS__))
#define MAP132(m, x, ...) m(x) IDENTITY(MAP131(m, __VA_ARGS__))
#define MAP133(m, x, ...) m(x) IDENTITY(MAP132(m, __VA_ARGS__))
#define MAP134(m, x, ...) m(x) IDENTITY(MAP133(m, __VA_ARGS__))
#define MAP135(m, x, ...) m(x) IDENTITY(MAP134(m, __VA_ARGS__))
#define MAP136(m, x, ...) m(x) IDENTITY(MAP135(m, __VA_ARGS__))
#define MAP137(m, x, ...) m(x) IDENTITY(MAP136(m, __VA_ARGS__))
#define MAP138(m, x, ...) m(x) IDENTITY(MAP137(m, __VA_ARGS__))
#define MAP139(m, x, ...) m(x) IDENTITY(MAP138(m, __VA_ARGS__))
#define MAP140(m, x, ...) m(x) IDENTITY(MAP139(m, __VA_ARGS__))
#define MAP141(m, x, ...) m(x) IDENTITY(MAP140(m, __VA_ARGS__))
#define MAP142(m, x, ...) m(x) IDENTITY(MAP141(m, __VA_ARGS__))
#define MAP143(m, x, ...) m(x) IDENTITY(MAP142(m, __VA_ARGS__))
#define MAP144(m, x, ...) m(x) IDENTITY(MAP143(m, __VA_ARGS__))
#define MAP145(m, x, ...) m(x) IDENTITY(MAP144(m, __VA_ARGS__))
#define MAP146(m, x, ...) m(x) IDENTITY(MAP145(m, __VA_ARGS__))
#define MAP147(m, x, ...) m(x) IDENTITY(MAP146(m, __VA_ARGS__))
#define MAP148(m, x, ...) m(x) IDENTITY(MAP147(m, __VA_ARGS__))
#define MAP149(m, x, ...) m(x) IDENTITY(MAP148(m, __VA_ARGS__))
#define MAP150(m, x, ...) m(x) IDENTITY(MAP149(m, __VA_ARGS__))
#define MAP151(m, x, ...) m(x) IDENTITY(MAP150(m, __VA_ARGS__))
#define MAP152(m, x, ...) m(x) IDENTITY(MAP151(m, __VA_ARGS__))
#define MAP153(m, x, ...) m(x) IDENTITY(MAP152(m, __VA_ARGS__))
#define MAP154(m, x, ...) m(x) IDENTITY(MAP153(m, __VA_ARGS__))
#define MAP155(m, x, ...) m(x) IDENTITY(MAP154(m, __VA_ARGS__))
#define MAP156(m, x, ...) m(x) IDENTITY(MAP155(m, __VA_ARGS__))
#define MAP157(m, x, ...) m(x) IDENTITY(MAP156(m, __VA_ARGS__))
#define MAP158(m, x, ...) m(x) IDENTITY(MAP157(m, __VA_ARGS__))
#define MAP159(m, x, ...) m(x) IDENTITY(MAP158(m, __VA_ARGS__))
#define MAP160(m, x, ...) m(x) IDENTITY(MAP159(m, __VA_ARGS__))
#define MAP161(m, x, ...) m(x) IDENTITY(MAP160(m, __VA_ARGS__))
#define MAP162(m, x, ...) m(x) IDENTITY(MAP161(m, __VA_ARGS__))
#define MAP163(m, x, ...) m(x) IDENTITY(MAP162(m, __VA_ARGS__))
#define MAP164(m, x, ...) m(x) IDENTITY(MAP163(m, __VA_ARGS__))
#define MAP165(m, x, ...) m(x) IDENTITY(MAP164(m, __VA_ARGS__))
#define MAP166(m, x, ...) m(x) IDENTITY(MAP165(m, __VA_ARGS__))
#define MAP167(m, x, ...) m(x) IDENTITY(MAP166(m, __VA_ARGS__))
#define MAP168(m, x, ...) m(x) IDENTITY(MAP167(m, __VA_ARGS__))
#define MAP169(m, x, ...) m(x) IDENTITY(MAP168(m, __VA_ARGS__))
#define MAP170(m, x, ...) m(x) IDENTITY(MAP169(m, __VA_ARGS__))
#define MAP171(m, x, ...) m(x) IDENTITY(MAP170(m, __VA_ARGS__))
#define MAP172(m, x, ...) m(x) IDENTITY(MAP171(m, __VA_ARGS__))
#define MAP173(m, x, ...) m(x) IDENTITY(MAP172(m, __VA_ARGS__))
#define MAP174(m, x, ...) m(x) IDENTITY(MAP173(m, __VA_ARGS__))
#define MAP175(m, x, ...) m(x) IDENTITY(MAP174(m, __VA_ARGS__))
#define MAP176(m, x, ...) m(x) IDENTITY(MAP175(m, __VA_ARGS__))
#define MAP177(m, x, ...) m(x) IDENTITY(MAP176(m, __VA_ARGS__))
#define MAP178(m, x, ...) m(x) IDENTITY(MAP177(m, __VA_ARGS__))
#define MAP179(m, x, ...) m(x) IDENTITY(MAP178(m, __VA_ARGS__))
#define MAP180(m, x, ...) m(x) IDENTITY(MAP179(m, __VA_ARGS__))
#define MAP181(m, x, ...) m(x) IDENTITY(MAP180(m, __VA_ARGS__))
#define MAP182(m, x, ...) m(x) IDENTITY(MAP181(m, __VA_ARGS__))
#define MAP183(m, x, ...) m(x) IDENTITY(MAP182(m, __VA_ARGS__))
#define MAP184(m, x, ...) m(x) IDENTITY(MAP183(m, __VA_ARGS__))
#define MAP185(m, x, ...) m(x) IDENTITY(MAP184(m, __VA_ARGS__))
#define MAP186(m, x, ...) m(x) IDENTITY(MAP185(m, __VA_ARGS__))
#define MAP187(m, x, ...) m(x) IDENTITY(MAP186(m, __VA_ARGS__))
#define MAP188(m, x, ...) m(x) IDENTITY(MAP187(m, __VA_ARGS__))
#define MAP189(m, x, ...) m(x) IDENTITY(MAP188(m, __VA_ARGS__))
#define MAP190(m, x, ...) m(x) IDENTITY(MAP189(m, __VA_ARGS__))
#define MAP191(m, x, ...) m(x) IDENTITY(MAP190(m, __VA_ARGS__))
#define MAP192(m, x, ...) m(x) IDENTITY(MAP191(m, __VA_ARGS__))
#define MAP193(m, x, ...) m(x) IDENTITY(MAP192(m, __VA_ARGS__))
#define MAP194(m, x, ...) m(x) IDENTITY(MAP193(m, __VA_ARGS__))
#define MAP195(m, x, ...) m(x) IDENTITY(MAP194(m, __VA_ARGS__))
#define MAP196(m, x, ...) m(x) IDENTITY(MAP195(m, __VA_ARGS__))
#define MAP197(m, x, ...) m(x) IDENTITY(MAP196(m, __VA_ARGS__))
#define MAP198(m, x, ...) m(x) IDENTITY(MAP197(m, __VA_ARGS__))
#define MAP199(m, x, ...) m(x) IDENTITY(MAP198(m, __VA_ARGS__))
#define MAP200(m, x, ...) m(x) IDENTITY(MAP199(m, __VA_ARGS__))
#define MAP201(m, x, ...) m(x) IDENTITY(MAP200(m, __VA_ARGS__))
#define MAP202(m, x, ...) m(x) IDENTITY(MAP201(m, __VA_ARGS__))
#define MAP203(m, x, ...) m(x) IDENTITY(MAP202(m, __VA_ARGS__))
#define MAP204(m, x, ...) m(x) IDENTITY(MAP203(m, __VA_ARGS__))
#define MAP205(m, x, ...) m(x) IDENTITY(MAP204(m, __VA_ARGS__))
#define MAP206(m, x, ...) m(x) IDENTITY(MAP205(m, __VA_ARGS__))
#define MAP207(m, x, ...) m(x) IDENTITY(MAP206(m, __VA_ARGS__))
#define MAP208(m, x, ...) m(x) IDENTITY(MAP207(m, __VA_ARGS__))
#define MAP209(m, x, ...) m(x) IDENTITY(MAP208(m, __VA_ARGS__))
#define MAP210(m, x, ...) m(x) IDENTITY(MAP209(m, __VA_ARGS__))
#define MAP211(m, x, ...) m(x) IDENTITY(MAP210(m, __VA_ARGS__))
#define MAP212(m, x, ...) m(x) IDENTITY(MAP211(m, __VA_ARGS__))
#define MAP213(m, x, ...) m(x) IDENTITY(MAP212(m, __VA_ARGS__))
#define MAP214(m, x, ...) m(x) IDENTITY(MAP213(m, __VA_ARGS__))
#define MAP215(m, x, ...) m(x) IDENTITY(MAP214(m, __VA_ARGS__))
#define MAP216(m, x, ...) m(x) IDENTITY(MAP215(m, __VA_ARGS__))
#define MAP217(m, x, ...) m(x) IDENTITY(MAP216(m, __VA_ARGS__))
#define MAP218(m, x, ...) m(x) IDENTITY(MAP217(m, __VA_ARGS__))
#define MAP219(m, x, ...) m(x) IDENTITY(MAP218(m, __VA_ARGS__))
#define MAP220(m, x, ...) m(x) IDENTITY(MAP219(m, __VA_ARGS__))
#define MAP221(m, x, ...) m(x) IDENTITY(MAP220(m, __VA_ARGS__))
#define MAP222(m, x, ...) m(x) IDENTITY(MAP221(m, __VA_ARGS__))
#define MAP223(m, x, ...) m(x) IDENTITY(MAP222(m, __VA_ARGS__))
#define MAP224(m, x, ...) m(x) IDENTITY(MAP223(m, __VA_ARGS__))
#define MAP225(m, x, ...) m(x) IDENTITY(MAP224(m, __VA_ARGS__))
#define MAP226(m, x, ...) m(x) IDENTITY(MAP225(m, __VA_ARGS__))
#define MAP227(m, x, ...) m(x) IDENTITY(MAP226(m, __VA_ARGS__))
#define MAP228(m, x, ...) m(x) IDENTITY(MAP227(m, __VA_ARGS__))
#define MAP229(m, x, ...) m(x) IDENTITY(MAP228(m, __VA_ARGS__))
#define MAP230(m, x, ...) m(x) IDENTITY(MAP229(m, __VA_ARGS__))
#define MAP231(m, x, ...) m(x) IDENTITY(MAP230(m, __VA_ARGS__))
#define MAP232(m, x, ...) m(x) IDENTITY(MAP231(m, __VA_ARGS__))
#define MAP233(m, x, ...) m(x) IDENTITY(MAP232(m, __VA_ARGS__))
#define MAP234(m, x, ...) m(x) IDENTITY(MAP233(m, __VA_ARGS__))
#define MAP235(m, x, ...) m(x) IDENTITY(MAP234(m, __VA_ARGS__))
#define MAP236(m, x, ...) m(x) IDENTITY(MAP235(m, __VA_ARGS__))
#define MAP237(m, x, ...) m(x) IDENTITY(MAP236(m, __VA_ARGS__))
#define MAP238(m, x, ...) m(x) IDENTITY(MAP237(m, __VA_ARGS__))
#define MAP239(m, x, ...) m(x) IDENTITY(MAP238(m, __VA_ARGS__))
#define MAP240(m, x, ...) m(x) IDENTITY(MAP239(m, __VA_ARGS__))
#define MAP241(m, x, ...) m(x) IDENTITY(MAP240(m, __VA_ARGS__))
#define MAP242(m, x, ...) m(x) IDENTITY(MAP241(m, __VA_ARGS__))
#define MAP243(m, x, ...) m(x) IDENTITY(MAP242(m, __VA_ARGS__))
#define MAP244(m, x, ...) m(x) IDENTITY(MAP243(m, __VA_ARGS__))
#define MAP245(m, x, ...) m(x) IDENTITY(MAP244(m, __VA_ARGS__))
#define MAP246(m, x, ...) m(x) IDENTITY(MAP245(m, __VA_ARGS__))
#define MAP247(m, x, ...) m(x) IDENTITY(MAP246(m, __VA_ARGS__))
#define MAP248(m, x, ...) m(x) IDENTITY(MAP247(m, __VA_ARGS__))
#define MAP249(m, x, ...) m(x) IDENTITY(MAP248(m, __VA_ARGS__))
#define MAP250(m, x, ...) m(x) IDENTITY(MAP249(m, __VA_ARGS__))
#define MAP251(m, x, ...) m(x) IDENTITY(MAP250(m, __VA_ARGS__))
#define MAP252(m, x, ...) m(x) IDENTITY(MAP251(m, __VA_ARGS__))
#define MAP253(m, x, ...) m(x) IDENTITY(MAP252(m, __VA_ARGS__))
#define MAP254(m, x, ...) m(x) IDENTITY(MAP253(m, __VA_ARGS__))
#define MAP255(m, x, ...) m(x) IDENTITY(MAP254(m, __VA_ARGS__))
#define MAP256(m, x, ...) m(x) IDENTITY(MAP255(m, __VA_ARGS__))
#define MAP257(m, x, ...) m(x) IDENTITY(MAP256(m, __VA_ARGS__))
#define MAP258(m, x, ...) m(x) IDENTITY(MAP257(m, __VA_ARGS__))
#define MAP259(m, x, ...) m(x) IDENTITY(MAP258(m, __VA_ARGS__))
#define MAP260(m, x, ...) m(x) IDENTITY(MAP259(m, __VA_ARGS__))
#define MAP261(m, x, ...) m(x) IDENTITY(MAP260(m, __VA_ARGS__))
#define MAP262(m, x, ...) m(x) IDENTITY(MAP261(m, __VA_ARGS__))
#define MAP263(m, x, ...) m(x) IDENTITY(MAP262(m, __VA_ARGS__))
#define MAP264(m, x, ...) m(x) IDENTITY(MAP263(m, __VA_ARGS__))
#define MAP265(m, x, ...) m(x) IDENTITY(MAP264(m, __VA_ARGS__))
#define MAP266(m, x, ...) m(x) IDENTITY(MAP265(m, __VA_ARGS__))
#define MAP267(m, x, ...) m(x) IDENTITY(MAP266(m, __VA_ARGS__))
#define MAP268(m, x, ...) m(x) IDENTITY(MAP267(m, __VA_ARGS__))
#define MAP269(m, x, ...) m(x) IDENTITY(MAP268(m, __VA_ARGS__))
#define MAP270(m, x, ...) m(x) IDENTITY(MAP269(m, __VA_ARGS__))
#define MAP271(m, x, ...) m(x) IDENTITY(MAP270(m, __VA_ARGS__))
#define MAP272(m, x, ...) m(x) IDENTITY(MAP271(m, __VA_ARGS__))
#define MAP273(m, x, ...) m(x) IDENTITY(MAP272(m, __VA_ARGS__))
#define MAP274(m, x, ...) m(x) IDENTITY(MAP273(m, __VA_ARGS__))
#define MAP275(m, x, ...) m(x) IDENTITY(MAP274(m, __VA_ARGS__))
#define MAP276(m, x, ...) m(x) IDENTITY(MAP275(m, __VA_ARGS__))
#define MAP277(m, x, ...) m(x) IDENTITY(MAP276(m, __VA_ARGS__))
#define MAP278(m, x, ...) m(x) IDENTITY(MAP277(m, __VA_ARGS__))
#define MAP279(m, x, ...) m(x) IDENTITY(MAP278(m, __VA_ARGS__))
#define MAP280(m, x, ...) m(x) IDENTITY(MAP279(m, __VA_ARGS__))
#define MAP281(m, x, ...) m(x) IDENTITY(MAP280(m, __VA_ARGS__))
#define MAP282(m, x, ...) m(x) IDENTITY(MAP281(m, __VA_ARGS__))
#define MAP283(m, x, ...) m(x) IDENTITY(MAP282(m, __VA_ARGS__))
#define MAP284(m, x, ...) m(x) IDENTITY(MAP283(m, __VA_ARGS__))
#define MAP285(m, x, ...) m(x) IDENTITY(MAP284(m, __VA_ARGS__))
#define MAP286(m, x, ...) m(x) IDENTITY(MAP285(m, __VA_ARGS__))
#define MAP287(m, x, ...) m(x) IDENTITY(MAP286(m, __VA_ARGS__))
#define MAP288(m, x, ...) m(x) IDENTITY(MAP287(m, __VA_ARGS__))
#define MAP289(m, x, ...) m(x) IDENTITY(MAP288(m, __VA_ARGS__))
#define MAP290(m, x, ...) m(x) IDENTITY(MAP289(m, __VA_ARGS__))
#define MAP291(m, x, ...) m(x) IDENTITY(MAP290(m, __VA_ARGS__))
#define MAP292(m, x, ...) m(x) IDENTITY(MAP291(m, __VA_ARGS__))
#define MAP293(m, x, ...) m(x) IDENTITY(MAP292(m, __VA_ARGS__))
#define MAP294(m, x, ...) m(x) IDENTITY(MAP293(m, __VA_ARGS__))
#define MAP295(m, x, ...) m(x) IDENTITY(MAP294(m, __VA_ARGS__))
#define MAP296(m, x, ...) m(x) IDENTITY(MAP295(m, __VA_ARGS__))
#define MAP297(m, x, ...) m(x) IDENTITY(MAP296(m, __VA_ARGS__))
#define MAP298(m, x, ...) m(x) IDENTITY(MAP297(m, __VA_ARGS__))
#define MAP299(m, x, ...) m(x) IDENTITY(MAP298(m, __VA_ARGS__))
#define MAP300(m, x, ...) m(x) IDENTITY(MAP299(m, __VA_ARGS__))
#define MAP301(m, x, ...) m(x) IDENTITY(MAP300(m, __VA_ARGS__))
#define MAP302(m, x, ...) m(x) IDENTITY(MAP301(m, __VA_ARGS__))
#define MAP303(m, x, ...) m(x) IDENTITY(MAP302(m, __VA_ARGS__))
#define MAP304(m, x, ...) m(x) IDENTITY(MAP303(m, __VA_ARGS__))
#define MAP305(m, x, ...) m(x) IDENTITY(MAP304(m, __VA_ARGS__))
#define MAP306(m, x, ...) m(x) IDENTITY(MAP305(m, __VA_ARGS__))
#define MAP307(m, x, ...) m(x) IDENTITY(MAP306(m, __VA_ARGS__))
#define MAP308(m, x, ...) m(x) IDENTITY(MAP307(m, __VA_ARGS__))
#define MAP309(m, x, ...) m(x) IDENTITY(MAP308(m, __VA_ARGS__))
#define MAP310(m, x, ...) m(x) IDENTITY(MAP309(m, __VA_ARGS__))
#define MAP311(m, x, ...) m(x) IDENTITY(MAP310(m, __VA_ARGS__))
#define MAP312(m, x, ...) m(x) IDENTITY(MAP311(m, __VA_ARGS__))
#define MAP313(m, x, ...) m(x) IDENTITY(MAP312(m, __VA_ARGS__))
#define MAP314(m, x, ...) m(x) IDENTITY(MAP313(m, __VA_ARGS__))
#define MAP315(m, x, ...) m(x) IDENTITY(MAP314(m, __VA_ARGS__))
#define MAP316(m, x, ...) m(x) IDENTITY(MAP315(m, __VA_ARGS__))
#define MAP317(m, x, ...) m(x) IDENTITY(MAP316(m, __VA_ARGS__))
#define MAP318(m, x, ...) m(x) IDENTITY(MAP317(m, __VA_ARGS__))
#define MAP319(m, x, ...) m(x) IDENTITY(MAP318(m, __VA_ARGS__))
#define MAP320(m, x, ...) m(x) IDENTITY(MAP319(m, __VA_ARGS__))
#define MAP321(m, x, ...) m(x) IDENTITY(MAP320(m, __VA_ARGS__))
#define MAP322(m, x, ...) m(x) IDENTITY(MAP321(m, __VA_ARGS__))
#define MAP323(m, x, ...) m(x) IDENTITY(MAP322(m, __VA_ARGS__))
#define MAP324(m, x, ...) m(x) IDENTITY(MAP323(m, __VA_ARGS__))
#define MAP325(m, x, ...) m(x) IDENTITY(MAP324(m, __VA_ARGS__))
#define MAP326(m, x, ...) m(x) IDENTITY(MAP325(m, __VA_ARGS__))
#define MAP327(m, x, ...) m(x) IDENTITY(MAP326(m, __VA_ARGS__))
#define MAP328(m, x, ...) m(x) IDENTITY(MAP327(m, __VA_ARGS__))
#define MAP329(m, x, ...) m(x) IDENTITY(MAP328(m, __VA_ARGS__))
#define MAP330(m, x, ...) m(x) IDENTITY(MAP329(m, __VA_ARGS__))
#define MAP331(m, x, ...) m(x) IDENTITY(MAP330(m, __VA_ARGS__))
#define MAP332(m, x, ...) m(x) IDENTITY(MAP331(m, __VA_ARGS__))
#define MAP333(m, x, ...) m(x) IDENTITY(MAP332(m, __VA_ARGS__))
#define MAP334(m, x, ...) m(x) IDENTITY(MAP333(m, __VA_ARGS__))
#define MAP335(m, x, ...) m(x) IDENTITY(MAP334(m, __VA_ARGS__))
#define MAP336(m, x, ...) m(x) IDENTITY(MAP335(m, __VA_ARGS__))
#define MAP337(m, x, ...) m(x) IDENTITY(MAP336(m, __VA_ARGS__))
#define MAP338(m, x, ...) m(x) IDENTITY(MAP337(m, __VA_ARGS__))
#define MAP339(m, x, ...) m(x) IDENTITY(MAP338(m, __VA_ARGS__))
#define MAP340(m, x, ...) m(x) IDENTITY(MAP339(m, __VA_ARGS__))
#define MAP341(m, x, ...) m(x) IDENTITY(MAP340(m, __VA_ARGS__))
#define MAP342(m, x, ...) m(x) IDENTITY(MAP341(m, __VA_ARGS__))
#define MAP343(m, x, ...) m(x) IDENTITY(MAP342(m, __VA_ARGS__))
#define MAP344(m, x, ...) m(x) IDENTITY(MAP343(m, __VA_ARGS__))
#define MAP345(m, x, ...) m(x) IDENTITY(MAP344(m, __VA_ARGS__))
#define MAP346(m, x, ...) m(x) IDENTITY(MAP345(m, __VA_ARGS__))
#define MAP347(m, x, ...) m(x) IDENTITY(MAP346(m, __VA_ARGS__))
#define MAP348(m, x, ...) m(x) IDENTITY(MAP347(m, __VA_ARGS__))
#define MAP349(m, x, ...) m(x) IDENTITY(MAP348(m, __VA_ARGS__))
#define MAP350(m, x, ...) m(x) IDENTITY(MAP349(m, __VA_ARGS__))
#define MAP351(m, x, ...) m(x) IDENTITY(MAP350(m, __VA_ARGS__))
#define MAP352(m, x, ...) m(x) IDENTITY(MAP351(m, __VA_ARGS__))
#define MAP353(m, x, ...) m(x) IDENTITY(MAP352(m, __VA_ARGS__))
#define MAP354(m, x, ...) m(x) IDENTITY(MAP353(m, __VA_ARGS__))
#define MAP355(m, x, ...) m(x) IDENTITY(MAP354(m, __VA_ARGS__))
#define MAP356(m, x, ...) m(x) IDENTITY(MAP355(m, __VA_ARGS__))
#define MAP357(m, x, ...) m(x) IDENTITY(MAP356(m, __VA_ARGS__))
#define MAP358(m, x, ...) m(x) IDENTITY(MAP357(m, __VA_ARGS__))
#define MAP359(m, x, ...) m(x) IDENTITY(MAP358(m, __VA_ARGS__))
#define MAP360(m, x, ...) m(x) IDENTITY(MAP359(m, __VA_ARGS__))
#define MAP361(m, x, ...) m(x) IDENTITY(MAP360(m, __VA_ARGS__))
#define MAP362(m, x, ...) m(x) IDENTITY(MAP361(m, __VA_ARGS__))
#define MAP363(m, x, ...) m(x) IDENTITY(MAP362(m, __VA_ARGS__))
#define MAP364(m, x, ...) m(x) IDENTITY(MAP363(m, __VA_ARGS__))
#define MAP365(m, x, ...) m(x) IDENTITY(MAP364(m, __VA_ARGS__))
#define MAP366(m, x, ...) m(x) IDENTITY(MAP365(m, __VA_ARGS__))
#define MAP367(m, x, ...) m(x) IDENTITY(MAP366(m, __VA_ARGS__))
#define MAP368(m, x, ...) m(x) IDENTITY(MAP367(m, __VA_ARGS__))
#define MAP369(m, x, ...) m(x) IDENTITY(MAP368(m, __VA_ARGS__))
#define MAP370(m, x, ...) m(x) IDENTITY(MAP369(m, __VA_ARGS__))
#define MAP371(m, x, ...) m(x) IDENTITY(MAP370(m, __VA_ARGS__))
#define MAP372(m, x, ...) m(x) IDENTITY(MAP371(m, __VA_ARGS__))
#define MAP373(m, x, ...) m(x) IDENTITY(MAP372(m, __VA_ARGS__))
#define MAP374(m, x, ...) m(x) IDENTITY(MAP373(m, __VA_ARGS__))
#define MAP375(m, x, ...) m(x) IDENTITY(MAP374(m, __VA_ARGS__))
#define MAP376(m, x, ...) m(x) IDENTITY(MAP375(m, __VA_ARGS__))
#define MAP377(m, x, ...) m(x) IDENTITY(MAP376(m, __VA_ARGS__))
#define MAP378(m, x, ...) m(x) IDENTITY(MAP377(m, __VA_ARGS__))
#define MAP379(m, x, ...) m(x) IDENTITY(MAP378(m, __VA_ARGS__))
#define MAP380(m, x, ...) m(x) IDENTITY(MAP379(m, __VA_ARGS__))
#define MAP381(m, x, ...) m(x) IDENTITY(MAP380(m, __VA_ARGS__))
#define MAP382(m, x, ...) m(x) IDENTITY(MAP381(m, __VA_ARGS__))
#define MAP383(m, x, ...) m(x) IDENTITY(MAP382(m, __VA_ARGS__))
#define MAP384(m, x, ...) m(x) IDENTITY(MAP383(m, __VA_ARGS__))
#define MAP385(m, x, ...) m(x) IDENTITY(MAP384(m, __VA_ARGS__))
#define MAP386(m, x, ...) m(x) IDENTITY(MAP385(m, __VA_ARGS__))
#define MAP387(m, x, ...) m(x) IDENTITY(MAP386(m, __VA_ARGS__))
#define MAP388(m, x, ...) m(x) IDENTITY(MAP387(m, __VA_ARGS__))
#define MAP389(m, x, ...) m(x) IDENTITY(MAP388(m, __VA_ARGS__))
#define MAP390(m, x, ...) m(x) IDENTITY(MAP389(m, __VA_ARGS__))
#define MAP391(m, x, ...) m(x) IDENTITY(MAP390(m, __VA_ARGS__))
#define MAP392(m, x, ...) m(x) IDENTITY(MAP391(m, __VA_ARGS__))
#define MAP393(m, x, ...) m(x) IDENTITY(MAP392(m, __VA_ARGS__))
#define MAP394(m, x, ...) m(x) IDENTITY(MAP393(m, __VA_ARGS__))
#define MAP395(m, x, ...) m(x) IDENTITY(MAP394(m, __VA_ARGS__))
#define MAP396(m, x, ...) m(x) IDENTITY(MAP395(m, __VA_ARGS__))
#define MAP397(m, x, ...) m(x) IDENTITY(MAP396(m, __VA_ARGS__))
#define MAP398(m, x, ...) m(x) IDENTITY(MAP397(m, __VA_ARGS__))
#define MAP399(m, x, ...) m(x) IDENTITY(MAP398(m, __VA_ARGS__))
#define MAP400(m, x, ...) m(x) IDENTITY(MAP399(m, __VA_ARGS__))
#define MAP401(m, x, ...) m(x) IDENTITY(MAP400(m, __VA_ARGS__))
#define MAP402(m, x, ...) m(x) IDENTITY(MAP401(m, __VA_ARGS__))
#define MAP403(m, x, ...) m(x) IDENTITY(MAP402(m, __VA_ARGS__))
#define MAP404(m, x, ...) m(x) IDENTITY(MAP403(m, __VA_ARGS__))
#define MAP405(m, x, ...) m(x) IDENTITY(MAP404(m, __VA_ARGS__))
#define MAP406(m, x, ...) m(x) IDENTITY(MAP405(m, __VA_ARGS__))
#define MAP407(m, x, ...) m(x) IDENTITY(MAP406(m, __VA_ARGS__))
#define MAP408(m, x, ...) m(x) IDENTITY(MAP407(m, __VA_ARGS__))
#define MAP409(m, x, ...) m(x) IDENTITY(MAP408(m, __VA_ARGS__))
#define MAP410(m, x, ...) m(x) IDENTITY(MAP409(m, __VA_ARGS__))
#define MAP411(m, x, ...) m(x) IDENTITY(MAP410(m, __VA_ARGS__))
#define MAP412(m, x, ...) m(x) IDENTITY(MAP411(m, __VA_ARGS__))
#define MAP413(m, x, ...) m(x) IDENTITY(MAP412(m, __VA_ARGS__))
#define MAP414(m, x, ...) m(x) IDENTITY(MAP413(m, __VA_ARGS__))
#define MAP415(m, x, ...) m(x) IDENTITY(MAP414(m, __VA_ARGS__))
#define MAP416(m, x, ...) m(x) IDENTITY(MAP415(m, __VA_ARGS__))
#define MAP417(m, x, ...) m(x) IDENTITY(MAP416(m, __VA_ARGS__))
#define MAP418(m, x, ...) m(x) IDENTITY(MAP417(m, __VA_ARGS__))
#define MAP419(m, x, ...) m(x) IDENTITY(MAP418(m, __VA_ARGS__))
#define MAP420(m, x, ...) m(x) IDENTITY(MAP419(m, __VA_ARGS__))
#define MAP421(m, x, ...) m(x) IDENTITY(MAP420(m, __VA_ARGS__))
#define MAP422(m, x, ...) m(x) IDENTITY(MAP421(m, __VA_ARGS__))
#define MAP423(m, x, ...) m(x) IDENTITY(MAP422(m, __VA_ARGS__))
#define MAP424(m, x, ...) m(x) IDENTITY(MAP423(m, __VA_ARGS__))
#define MAP425(m, x, ...) m(x) IDENTITY(MAP424(m, __VA_ARGS__))
#define MAP426(m, x, ...) m(x) IDENTITY(MAP425(m, __VA_ARGS__))
#define MAP427(m, x, ...) m(x) IDENTITY(MAP426(m, __VA_ARGS__))
#define MAP428(m, x, ...) m(x) IDENTITY(MAP427(m, __VA_ARGS__))
#define MAP429(m, x, ...) m(x) IDENTITY(MAP428(m, __VA_ARGS__))
#define MAP430(m, x, ...) m(x) IDENTITY(MAP429(m, __VA_ARGS__))
#define MAP431(m, x, ...) m(x) IDENTITY(MAP430(m, __VA_ARGS__))
#define MAP432(m, x, ...) m(x) IDENTITY(MAP431(m, __VA_ARGS__))
#define MAP433(m, x, ...) m(x) IDENTITY(MAP432(m, __VA_ARGS__))
#define MAP434(m, x, ...) m(x) IDENTITY(MAP433(m, __VA_ARGS__))
#define MAP435(m, x, ...) m(x) IDENTITY(MAP434(m, __VA_ARGS__))
#define MAP436(m, x, ...) m(x) IDENTITY(MAP435(m, __VA_ARGS__))
#define MAP437(m, x, ...) m(x) IDENTITY(MAP436(m, __VA_ARGS__))
#define MAP438(m, x, ...) m(x) IDENTITY(MAP437(m, __VA_ARGS__))
#define MAP439(m, x, ...) m(x) IDENTITY(MAP438(m, __VA_ARGS__))
#define MAP440(m, x, ...) m(x) IDENTITY(MAP439(m, __VA_ARGS__))
#define MAP441(m, x, ...) m(x) IDENTITY(MAP440(m, __VA_ARGS__))
#define MAP442(m, x, ...) m(x) IDENTITY(MAP441(m, __VA_ARGS__))
#define MAP443(m, x, ...) m(x) IDENTITY(MAP442(m, __VA_ARGS__))
#define MAP444(m, x, ...) m(x) IDENTITY(MAP443(m, __VA_ARGS__))
#define MAP445(m, x, ...) m(x) IDENTITY(MAP444(m, __VA_ARGS__))
#define MAP446(m, x, ...) m(x) IDENTITY(MAP445(m, __VA_ARGS__))
#define MAP447(m, x, ...) m(x) IDENTITY(MAP446(m, __VA_ARGS__))
#define MAP448(m, x, ...) m(x) IDENTITY(MAP447(m, __VA_ARGS__))
#define MAP449(m, x, ...) m(x) IDENTITY(MAP448(m, __VA_ARGS__))
#define MAP450(m, x, ...) m(x) IDENTITY(MAP449(m, __VA_ARGS__))
#define MAP451(m, x, ...) m(x) IDENTITY(MAP450(m, __VA_ARGS__))
#define MAP452(m, x, ...) m(x) IDENTITY(MAP451(m, __VA_ARGS__))
#define MAP453(m, x, ...) m(x) IDENTITY(MAP452(m, __VA_ARGS__))
#define MAP454(m, x, ...) m(x) IDENTITY(MAP453(m, __VA_ARGS__))
#define MAP455(m, x, ...) m(x) IDENTITY(MAP454(m, __VA_ARGS__))
#define MAP456(m, x, ...) m(x) IDENTITY(MAP455(m, __VA_ARGS__))
#define MAP457(m, x, ...) m(x) IDENTITY(MAP456(m, __VA_ARGS__))
#define MAP458(m, x, ...) m(x) IDENTITY(MAP457(m, __VA_ARGS__))
#define MAP459(m, x, ...) m(x) IDENTITY(MAP458(m, __VA_ARGS__))
#define MAP460(m, x, ...) m(x) IDENTITY(MAP459(m, __VA_ARGS__))
#define MAP461(m, x, ...) m(x) IDENTITY(MAP460(m, __VA_ARGS__))
#define MAP462(m, x, ...) m(x) IDENTITY(MAP461(m, __VA_ARGS__))
#define MAP463(m, x, ...) m(x) IDENTITY(MAP462(m, __VA_ARGS__))
#define MAP464(m, x, ...) m(x) IDENTITY(MAP463(m, __VA_ARGS__))
#define MAP465(m, x, ...) m(x) IDENTITY(MAP464(m, __VA_ARGS__))
#define MAP466(m, x, ...) m(x) IDENTITY(MAP465(m, __VA_ARGS__))
#define MAP467(m, x, ...) m(x) IDENTITY(MAP466(m, __VA_ARGS__))
#define MAP468(m, x, ...) m(x) IDENTITY(MAP467(m, __VA_ARGS__))
#define MAP469(m, x, ...) m(x) IDENTITY(MAP468(m, __VA_ARGS__))
#define MAP470(m, x, ...) m(x) IDENTITY(MAP469(m, __VA_ARGS__))
#define MAP471(m, x, ...) m(x) IDENTITY(MAP470(m, __VA_ARGS__))
#define MAP472(m, x, ...) m(x) IDENTITY(MAP471(m, __VA_ARGS__))
#define MAP473(m, x, ...) m(x) IDENTITY(MAP472(m, __VA_ARGS__))
#define MAP474(m, x, ...) m(x) IDENTITY(MAP473(m, __VA_ARGS__))
#define MAP475(m, x, ...) m(x) IDENTITY(MAP474(m, __VA_ARGS__))
#define MAP476(m, x, ...) m(x) IDENTITY(MAP475(m, __VA_ARGS__))
#define MAP477(m, x, ...) m(x) IDENTITY(MAP476(m, __VA_ARGS__))
#define MAP478(m, x, ...) m(x) IDENTITY(MAP477(m, __VA_ARGS__))
#define MAP479(m, x, ...) m(x) IDENTITY(MAP478(m, __VA_ARGS__))
#define MAP480(m, x, ...) m(x) IDENTITY(MAP479(m, __VA_ARGS__))
#define MAP481(m, x, ...) m(x) IDENTITY(MAP480(m, __VA_ARGS__))
#define MAP482(m, x, ...) m(x) IDENTITY(MAP481(m, __VA_ARGS__))
#define MAP483(m, x, ...) m(x) IDENTITY(MAP482(m, __VA_ARGS__))
#define MAP484(m, x, ...) m(x) IDENTITY(MAP483(m, __VA_ARGS__))
#define MAP485(m, x, ...) m(x) IDENTITY(MAP484(m, __VA_ARGS__))
#define MAP486(m, x, ...) m(x) IDENTITY(MAP485(m, __VA_ARGS__))
#define MAP487(m, x, ...) m(x) IDENTITY(MAP486(m, __VA_ARGS__))
#define MAP488(m, x, ...) m(x) IDENTITY(MAP487(m, __VA_ARGS__))
#define MAP489(m, x, ...) m(x) IDENTITY(MAP488(m, __VA_ARGS__))
#define MAP490(m, x, ...) m(x) IDENTITY(MAP489(m, __VA_ARGS__))
#define MAP491(m, x, ...) m(x) IDENTITY(MAP490(m, __VA_ARGS__))
#define MAP492(m, x, ...) m(x) IDENTITY(MAP491(m, __VA_ARGS__))
#define MAP493(m, x, ...) m(x) IDENTITY(MAP492(m, __VA_ARGS__))
#define MAP494(m, x, ...) m(x) IDENTITY(MAP493(m, __VA_ARGS__))
#define MAP495(m, x, ...) m(x) IDENTITY(MAP494(m, __VA_ARGS__))
#define MAP496(m, x, ...) m(x) IDENTITY(MAP495(m, __VA_ARGS__))
#define MAP497(m, x, ...) m(x) IDENTITY(MAP496(m, __VA_ARGS__))
#define MAP498(m, x, ...) m(x) IDENTITY(MAP497(m, __VA_ARGS__))
#define MAP499(m, x, ...) m(x) IDENTITY(MAP498(m, __VA_ARGS__))
#define MAP500(m, x, ...) m(x) IDENTITY(MAP499(m, __VA_ARGS__))
#define MAP501(m, x, ...) m(x) IDENTITY(MAP500(m, __VA_ARGS__))
#define MAP502(m, x, ...) m(x) IDENTITY(MAP501(m, __VA_ARGS__))
#define MAP503(m, x, ...) m(x) IDENTITY(MAP502(m, __VA_ARGS__))
#define MAP504(m, x, ...) m(x) IDENTITY(MAP503(m, __VA_ARGS__))
#define MAP505(m, x, ...) m(x) IDENTITY(MAP504(m, __VA_ARGS__))
#define MAP506(m, x, ...) m(x) IDENTITY(MAP505(m, __VA_ARGS__))
#define MAP507(m, x, ...) m(x) IDENTITY(MAP506(m, __VA_ARGS__))
#define MAP508(m, x, ...) m(x) IDENTITY(MAP507(m, __VA_ARGS__))
#define MAP509(m, x, ...) m(x) IDENTITY(MAP508(m, __VA_ARGS__))
#define MAP510(m, x, ...) m(x) IDENTITY(MAP509(m, __VA_ARGS__))
#define MAP511(m, x, ...) m(x) IDENTITY(MAP510(m, __VA_ARGS__))
#define MAP512(m, x, ...) m(x) IDENTITY(MAP511(m, __VA_ARGS__))
#define MAP513(m, x, ...) m(x) IDENTITY(MAP512(m, __VA_ARGS__))
#define MAP514(m, x, ...) m(x) IDENTITY(MAP513(m, __VA_ARGS__))
#define MAP515(m, x, ...) m(x) IDENTITY(MAP514(m, __VA_ARGS__))
#define MAP516(m, x, ...) m(x) IDENTITY(MAP515(m, __VA_ARGS__))
#define MAP517(m, x, ...) m(x) IDENTITY(MAP516(m, __VA_ARGS__))
#define MAP518(m, x, ...) m(x) IDENTITY(MAP517(m, __VA_ARGS__))
#define MAP519(m, x, ...) m(x) IDENTITY(MAP518(m, __VA_ARGS__))
#define MAP520(m, x, ...) m(x) IDENTITY(MAP519(m, __VA_ARGS__))
#define MAP521(m, x, ...) m(x) IDENTITY(MAP520(m, __VA_ARGS__))
#define MAP522(m, x, ...) m(x) IDENTITY(MAP521(m, __VA_ARGS__))
#define MAP523(m, x, ...) m(x) IDENTITY(MAP522(m, __VA_ARGS__))
#define MAP524(m, x, ...) m(x) IDENTITY(MAP523(m, __VA_ARGS__))
#define MAP525(m, x, ...) m(x) IDENTITY(MAP524(m, __VA_ARGS__))
#define MAP526(m, x, ...) m(x) IDENTITY(MAP525(m, __VA_ARGS__))
#define MAP527(m, x, ...) m(x) IDENTITY(MAP526(m, __VA_ARGS__))
#define MAP528(m, x, ...) m(x) IDENTITY(MAP527(m, __VA_ARGS__))
#define MAP529(m, x, ...) m(x) IDENTITY(MAP528(m, __VA_ARGS__))
#define MAP530(m, x, ...) m(x) IDENTITY(MAP529(m, __VA_ARGS__))
#define MAP531(m, x, ...) m(x) IDENTITY(MAP530(m, __VA_ARGS__))
#define MAP532(m, x, ...) m(x) IDENTITY(MAP531(m, __VA_ARGS__))
#define MAP533(m, x, ...) m(x) IDENTITY(MAP532(m, __VA_ARGS__))
#define MAP534(m, x, ...) m(x) IDENTITY(MAP533(m, __VA_ARGS__))
#define MAP535(m, x, ...) m(x) IDENTITY(MAP534(m, __VA_ARGS__))
#define MAP536(m, x, ...) m(x) IDENTITY(MAP535(m, __VA_ARGS__))
#define MAP537(m, x, ...) m(x) IDENTITY(MAP536(m, __VA_ARGS__))
#define MAP538(m, x, ...) m(x) IDENTITY(MAP537(m, __VA_ARGS__))
#define MAP539(m, x, ...) m(x) IDENTITY(MAP538(m, __VA_ARGS__))
#define MAP540(m, x, ...) m(x) IDENTITY(MAP539(m, __VA_ARGS__))
#define MAP541(m, x, ...) m(x) IDENTITY(MAP540(m, __VA_ARGS__))
#define MAP542(m, x, ...) m(x) IDENTITY(MAP541(m, __VA_ARGS__))
#define MAP543(m, x, ...) m(x) IDENTITY(MAP542(m, __VA_ARGS__))
#define MAP544(m, x, ...) m(x) IDENTITY(MAP543(m, __VA_ARGS__))
#define MAP545(m, x, ...) m(x) IDENTITY(MAP544(m, __VA_ARGS__))
#define MAP546(m, x, ...) m(x) IDENTITY(MAP545(m, __VA_ARGS__))
#define MAP547(m, x, ...) m(x) IDENTITY(MAP546(m, __VA_ARGS__))
#define MAP548(m, x, ...) m(x) IDENTITY(MAP547(m, __VA_ARGS__))
#define MAP549(m, x, ...) m(x) IDENTITY(MAP548(m, __VA_ARGS__))
#define MAP550(m, x, ...) m(x) IDENTITY(MAP549(m, __VA_ARGS__))
#define MAP551(m, x, ...) m(x) IDENTITY(MAP550(m, __VA_ARGS__))
#define MAP552(m, x, ...) m(x) IDENTITY(MAP551(m, __VA_ARGS__))
#define MAP553(m, x, ...) m(x) IDENTITY(MAP552(m, __VA_ARGS__))
#define MAP554(m, x, ...) m(x) IDENTITY(MAP553(m, __VA_ARGS__))
#define MAP555(m, x, ...) m(x) IDENTITY(MAP554(m, __VA_ARGS__))
#define MAP556(m, x, ...) m(x) IDENTITY(MAP555(m, __VA_ARGS__))
#define MAP557(m, x, ...) m(x) IDENTITY(MAP556(m, __VA_ARGS__))
#define MAP558(m, x, ...) m(x) IDENTITY(MAP557(m, __VA_ARGS__))
#define MAP559(m, x, ...) m(x) IDENTITY(MAP558(m, __VA_ARGS__))
#define MAP560(m, x, ...) m(x) IDENTITY(MAP559(m, __VA_ARGS__))
#define MAP561(m, x, ...) m(x) IDENTITY(MAP560(m, __VA_ARGS__))
#define MAP562(m, x, ...) m(x) IDENTITY(MAP561(m, __VA_ARGS__))
#define MAP563(m, x, ...) m(x) IDENTITY(MAP562(m, __VA_ARGS__))
#define MAP564(m, x, ...) m(x) IDENTITY(MAP563(m, __VA_ARGS__))
#define MAP565(m, x, ...) m(x) IDENTITY(MAP564(m, __VA_ARGS__))
#define MAP566(m, x, ...) m(x) IDENTITY(MAP565(m, __VA_ARGS__))
#define MAP567(m, x, ...) m(x) IDENTITY(MAP566(m, __VA_ARGS__))
#define MAP568(m, x, ...) m(x) IDENTITY(MAP567(m, __VA_ARGS__))
#define MAP569(m, x, ...) m(x) IDENTITY(MAP568(m, __VA_ARGS__))
#define MAP570(m, x, ...) m(x) IDENTITY(MAP569(m, __VA_ARGS__))
#define MAP571(m, x, ...) m(x) IDENTITY(MAP570(m, __VA_ARGS__))
#define MAP572(m, x, ...) m(x) IDENTITY(MAP571(m, __VA_ARGS__))
#define MAP573(m, x, ...) m(x) IDENTITY(MAP572(m, __VA_ARGS__))
#define MAP574(m, x, ...) m(x) IDENTITY(MAP573(m, __VA_ARGS__))
#define MAP575(m, x, ...) m(x) IDENTITY(MAP574(m, __VA_ARGS__))
#define MAP576(m, x, ...) m(x) IDENTITY(MAP575(m, __VA_ARGS__))
#define MAP577(m, x, ...) m(x) IDENTITY(MAP576(m, __VA_ARGS__))
#define MAP578(m, x, ...) m(x) IDENTITY(MAP577(m, __VA_ARGS__))
#define MAP579(m, x, ...) m(x) IDENTITY(MAP578(m, __VA_ARGS__))
#define MAP580(m, x, ...) m(x) IDENTITY(MAP579(m, __VA_ARGS__))
#define MAP581(m, x, ...) m(x) IDENTITY(MAP580(m, __VA_ARGS__))
#define MAP582(m, x, ...) m(x) IDENTITY(MAP581(m, __VA_ARGS__))
#define MAP583(m, x, ...) m(x) IDENTITY(MAP582(m, __VA_ARGS__))
#define MAP584(m, x, ...) m(x) IDENTITY(MAP583(m, __VA_ARGS__))
#define MAP585(m, x, ...) m(x) IDENTITY(MAP584(m, __VA_ARGS__))
#define MAP586(m, x, ...) m(x) IDENTITY(MAP585(m, __VA_ARGS__))
#define MAP587(m, x, ...) m(x) IDENTITY(MAP586(m, __VA_ARGS__))
#define MAP588(m, x, ...) m(x) IDENTITY(MAP587(m, __VA_ARGS__))
#define MAP589(m, x, ...) m(x) IDENTITY(MAP588(m, __VA_ARGS__))
#define MAP590(m, x, ...) m(x) IDENTITY(MAP589(m, __VA_ARGS__))
#define MAP591(m, x, ...) m(x) IDENTITY(MAP590(m, __VA_ARGS__))
#define MAP592(m, x, ...) m(x) IDENTITY(MAP591(m, __VA_ARGS__))
#define MAP593(m, x, ...) m(x) IDENTITY(MAP592(m, __VA_ARGS__))
#define MAP594(m, x, ...) m(x) IDENTITY(MAP593(m, __VA_ARGS__))
#define MAP595(m, x, ...) m(x) IDENTITY(MAP594(m, __VA_ARGS__))
#define MAP596(m, x, ...) m(x) IDENTITY(MAP595(m, __VA_ARGS__))
#define MAP597(m, x, ...) m(x) IDENTITY(MAP596(m, __VA_ARGS__))
#define MAP598(m, x, ...) m(x) IDENTITY(MAP597(m, __VA_ARGS__))
#define MAP599(m, x, ...) m(x) IDENTITY(MAP598(m, __VA_ARGS__))
#define MAP600(m, x, ...) m(x) IDENTITY(MAP499(m, __VA_ARGS__))
#define MAP601(m, x, ...) m(x) IDENTITY(MAP600(m, __VA_ARGS__))
#define MAP602(m, x, ...) m(x) IDENTITY(MAP601(m, __VA_ARGS__))
#define MAP603(m, x, ...) m(x) IDENTITY(MAP602(m, __VA_ARGS__))
#define MAP604(m, x, ...) m(x) IDENTITY(MAP603(m, __VA_ARGS__))
#define MAP605(m, x, ...) m(x) IDENTITY(MAP604(m, __VA_ARGS__))
#define MAP606(m, x, ...) m(x) IDENTITY(MAP605(m, __VA_ARGS__))
#define MAP607(m, x, ...) m(x) IDENTITY(MAP606(m, __VA_ARGS__))
#define MAP608(m, x, ...) m(x) IDENTITY(MAP607(m, __VA_ARGS__))
#define MAP609(m, x, ...) m(x) IDENTITY(MAP608(m, __VA_ARGS__))
#define MAP610(m, x, ...) m(x) IDENTITY(MAP609(m, __VA_ARGS__))
#define MAP611(m, x, ...) m(x) IDENTITY(MAP610(m, __VA_ARGS__))
#define MAP612(m, x, ...) m(x) IDENTITY(MAP611(m, __VA_ARGS__))
#define MAP613(m, x, ...) m(x) IDENTITY(MAP612(m, __VA_ARGS__))
#define MAP614(m, x, ...) m(x) IDENTITY(MAP613(m, __VA_ARGS__))
#define MAP615(m, x, ...) m(x) IDENTITY(MAP614(m, __VA_ARGS__))
#define MAP616(m, x, ...) m(x) IDENTITY(MAP615(m, __VA_ARGS__))
#define MAP617(m, x, ...) m(x) IDENTITY(MAP616(m, __VA_ARGS__))
#define MAP618(m, x, ...) m(x) IDENTITY(MAP617(m, __VA_ARGS__))
#define MAP619(m, x, ...) m(x) IDENTITY(MAP618(m, __VA_ARGS__))
#define MAP620(m, x, ...) m(x) IDENTITY(MAP619(m, __VA_ARGS__))
#define MAP621(m, x, ...) m(x) IDENTITY(MAP620(m, __VA_ARGS__))
#define MAP622(m, x, ...) m(x) IDENTITY(MAP621(m, __VA_ARGS__))
#define MAP623(m, x, ...) m(x) IDENTITY(MAP622(m, __VA_ARGS__))
#define MAP624(m, x, ...) m(x) IDENTITY(MAP623(m, __VA_ARGS__))
#define MAP625(m, x, ...) m(x) IDENTITY(MAP624(m, __VA_ARGS__))
#define MAP626(m, x, ...) m(x) IDENTITY(MAP625(m, __VA_ARGS__))
#define MAP627(m, x, ...) m(x) IDENTITY(MAP626(m, __VA_ARGS__))
#define MAP628(m, x, ...) m(x) IDENTITY(MAP627(m, __VA_ARGS__))
#define MAP629(m, x, ...) m(x) IDENTITY(MAP628(m, __VA_ARGS__))
#define MAP630(m, x, ...) m(x) IDENTITY(MAP629(m, __VA_ARGS__))
#define MAP631(m, x, ...) m(x) IDENTITY(MAP630(m, __VA_ARGS__))
#define MAP632(m, x, ...) m(x) IDENTITY(MAP631(m, __VA_ARGS__))
#define MAP633(m, x, ...) m(x) IDENTITY(MAP632(m, __VA_ARGS__))
#define MAP634(m, x, ...) m(x) IDENTITY(MAP633(m, __VA_ARGS__))
#define MAP635(m, x, ...) m(x) IDENTITY(MAP634(m, __VA_ARGS__))
#define MAP636(m, x, ...) m(x) IDENTITY(MAP635(m, __VA_ARGS__))
#define MAP637(m, x, ...) m(x) IDENTITY(MAP636(m, __VA_ARGS__))
#define MAP638(m, x, ...) m(x) IDENTITY(MAP637(m, __VA_ARGS__))
#define MAP639(m, x, ...) m(x) IDENTITY(MAP638(m, __VA_ARGS__))
#define MAP640(m, x, ...) m(x) IDENTITY(MAP639(m, __VA_ARGS__))
#define MAP641(m, x, ...) m(x) IDENTITY(MAP640(m, __VA_ARGS__))
#define MAP642(m, x, ...) m(x) IDENTITY(MAP641(m, __VA_ARGS__))
#define MAP643(m, x, ...) m(x) IDENTITY(MAP642(m, __VA_ARGS__))
#define MAP644(m, x, ...) m(x) IDENTITY(MAP643(m, __VA_ARGS__))
#define MAP645(m, x, ...) m(x) IDENTITY(MAP644(m, __VA_ARGS__))
#define MAP646(m, x, ...) m(x) IDENTITY(MAP645(m, __VA_ARGS__))
#define MAP647(m, x, ...) m(x) IDENTITY(MAP646(m, __VA_ARGS__))
#define MAP648(m, x, ...) m(x) IDENTITY(MAP647(m, __VA_ARGS__))
#define MAP649(m, x, ...) m(x) IDENTITY(MAP648(m, __VA_ARGS__))
#define MAP650(m, x, ...) m(x) IDENTITY(MAP649(m, __VA_ARGS__))
#define MAP651(m, x, ...) m(x) IDENTITY(MAP650(m, __VA_ARGS__))
#define MAP652(m, x, ...) m(x) IDENTITY(MAP651(m, __VA_ARGS__))
#define MAP653(m, x, ...) m(x) IDENTITY(MAP652(m, __VA_ARGS__))
#define MAP654(m, x, ...) m(x) IDENTITY(MAP653(m, __VA_ARGS__))
#define MAP655(m, x, ...) m(x) IDENTITY(MAP654(m, __VA_ARGS__))
#define MAP656(m, x, ...) m(x) IDENTITY(MAP655(m, __VA_ARGS__))
#define MAP657(m, x, ...) m(x) IDENTITY(MAP656(m, __VA_ARGS__))
#define MAP658(m, x, ...) m(x) IDENTITY(MAP657(m, __VA_ARGS__))
#define MAP659(m, x, ...) m(x) IDENTITY(MAP658(m, __VA_ARGS__))
#define MAP660(m, x, ...) m(x) IDENTITY(MAP659(m, __VA_ARGS__))
#define MAP661(m, x, ...) m(x) IDENTITY(MAP660(m, __VA_ARGS__))
#define MAP662(m, x, ...) m(x) IDENTITY(MAP661(m, __VA_ARGS__))
#define MAP663(m, x, ...) m(x) IDENTITY(MAP662(m, __VA_ARGS__))
#define MAP664(m, x, ...) m(x) IDENTITY(MAP663(m, __VA_ARGS__))
#define MAP665(m, x, ...) m(x) IDENTITY(MAP664(m, __VA_ARGS__))
#define MAP666(m, x, ...) m(x) IDENTITY(MAP665(m, __VA_ARGS__))
#define MAP667(m, x, ...) m(x) IDENTITY(MAP666(m, __VA_ARGS__))
#define MAP668(m, x, ...) m(x) IDENTITY(MAP667(m, __VA_ARGS__))
#define MAP669(m, x, ...) m(x) IDENTITY(MAP668(m, __VA_ARGS__))
#define MAP670(m, x, ...) m(x) IDENTITY(MAP669(m, __VA_ARGS__))
#define MAP671(m, x, ...) m(x) IDENTITY(MAP670(m, __VA_ARGS__))
#define MAP672(m, x, ...) m(x) IDENTITY(MAP671(m, __VA_ARGS__))
#define MAP673(m, x, ...) m(x) IDENTITY(MAP672(m, __VA_ARGS__))
#define MAP674(m, x, ...) m(x) IDENTITY(MAP673(m, __VA_ARGS__))
#define MAP675(m, x, ...) m(x) IDENTITY(MAP674(m, __VA_ARGS__))
#define MAP676(m, x, ...) m(x) IDENTITY(MAP675(m, __VA_ARGS__))
#define MAP677(m, x, ...) m(x) IDENTITY(MAP676(m, __VA_ARGS__))
#define MAP678(m, x, ...) m(x) IDENTITY(MAP677(m, __VA_ARGS__))
#define MAP679(m, x, ...) m(x) IDENTITY(MAP678(m, __VA_ARGS__))
#define MAP680(m, x, ...) m(x) IDENTITY(MAP679(m, __VA_ARGS__))
#define MAP681(m, x, ...) m(x) IDENTITY(MAP680(m, __VA_ARGS__))
#define MAP682(m, x, ...) m(x) IDENTITY(MAP681(m, __VA_ARGS__))
#define MAP683(m, x, ...) m(x) IDENTITY(MAP682(m, __VA_ARGS__))
#define MAP684(m, x, ...) m(x) IDENTITY(MAP683(m, __VA_ARGS__))
#define MAP685(m, x, ...) m(x) IDENTITY(MAP684(m, __VA_ARGS__))
#define MAP686(m, x, ...) m(x) IDENTITY(MAP685(m, __VA_ARGS__))
#define MAP687(m, x, ...) m(x) IDENTITY(MAP686(m, __VA_ARGS__))
#define MAP688(m, x, ...) m(x) IDENTITY(MAP687(m, __VA_ARGS__))
#define MAP689(m, x, ...) m(x) IDENTITY(MAP688(m, __VA_ARGS__))
#define MAP690(m, x, ...) m(x) IDENTITY(MAP689(m, __VA_ARGS__))
#define MAP691(m, x, ...) m(x) IDENTITY(MAP690(m, __VA_ARGS__))
#define MAP692(m, x, ...) m(x) IDENTITY(MAP691(m, __VA_ARGS__))
#define MAP693(m, x, ...) m(x) IDENTITY(MAP692(m, __VA_ARGS__))
#define MAP694(m, x, ...) m(x) IDENTITY(MAP693(m, __VA_ARGS__))
#define MAP695(m, x, ...) m(x) IDENTITY(MAP694(m, __VA_ARGS__))
#define MAP696(m, x, ...) m(x) IDENTITY(MAP695(m, __VA_ARGS__))
#define MAP697(m, x, ...) m(x) IDENTITY(MAP696(m, __VA_ARGS__))
#define MAP698(m, x, ...) m(x) IDENTITY(MAP697(m, __VA_ARGS__))
#define MAP699(m, x, ...) m(x) IDENTITY(MAP698(m, __VA_ARGS__))
#define MAP700(m, x, ...) m(x) IDENTITY(MAP499(m, __VA_ARGS__))
#define MAP701(m, x, ...) m(x) IDENTITY(MAP700(m, __VA_ARGS__))
#define MAP702(m, x, ...) m(x) IDENTITY(MAP701(m, __VA_ARGS__))
#define MAP703(m, x, ...) m(x) IDENTITY(MAP702(m, __VA_ARGS__))
#define MAP704(m, x, ...) m(x) IDENTITY(MAP703(m, __VA_ARGS__))
#define MAP705(m, x, ...) m(x) IDENTITY(MAP704(m, __VA_ARGS__))
#define MAP706(m, x, ...) m(x) IDENTITY(MAP705(m, __VA_ARGS__))
#define MAP707(m, x, ...) m(x) IDENTITY(MAP706(m, __VA_ARGS__))
#define MAP708(m, x, ...) m(x) IDENTITY(MAP707(m, __VA_ARGS__))
#define MAP709(m, x, ...) m(x) IDENTITY(MAP708(m, __VA_ARGS__))
#define MAP710(m, x, ...) m(x) IDENTITY(MAP709(m, __VA_ARGS__))
#define MAP711(m, x, ...) m(x) IDENTITY(MAP710(m, __VA_ARGS__))
#define MAP712(m, x, ...) m(x) IDENTITY(MAP711(m, __VA_ARGS__))
#define MAP713(m, x, ...) m(x) IDENTITY(MAP712(m, __VA_ARGS__))
#define MAP714(m, x, ...) m(x) IDENTITY(MAP713(m, __VA_ARGS__))
#define MAP715(m, x, ...) m(x) IDENTITY(MAP714(m, __VA_ARGS__))
#define MAP716(m, x, ...) m(x) IDENTITY(MAP715(m, __VA_ARGS__))
#define MAP717(m, x, ...) m(x) IDENTITY(MAP716(m, __VA_ARGS__))
#define MAP718(m, x, ...) m(x) IDENTITY(MAP717(m, __VA_ARGS__))
#define MAP719(m, x, ...) m(x) IDENTITY(MAP718(m, __VA_ARGS__))
#define MAP720(m, x, ...) m(x) IDENTITY(MAP719(m, __VA_ARGS__))
#define MAP721(m, x, ...) m(x) IDENTITY(MAP720(m, __VA_ARGS__))
#define MAP722(m, x, ...) m(x) IDENTITY(MAP721(m, __VA_ARGS__))
#define MAP723(m, x, ...) m(x) IDENTITY(MAP722(m, __VA_ARGS__))
#define MAP724(m, x, ...) m(x) IDENTITY(MAP723(m, __VA_ARGS__))
#define MAP725(m, x, ...) m(x) IDENTITY(MAP724(m, __VA_ARGS__))
#define MAP726(m, x, ...) m(x) IDENTITY(MAP725(m, __VA_ARGS__))
#define MAP727(m, x, ...) m(x) IDENTITY(MAP726(m, __VA_ARGS__))
#define MAP728(m, x, ...) m(x) IDENTITY(MAP727(m, __VA_ARGS__))
#define MAP729(m, x, ...) m(x) IDENTITY(MAP728(m, __VA_ARGS__))
#define MAP730(m, x, ...) m(x) IDENTITY(MAP729(m, __VA_ARGS__))
#define MAP731(m, x, ...) m(x) IDENTITY(MAP730(m, __VA_ARGS__))
#define MAP732(m, x, ...) m(x) IDENTITY(MAP731(m, __VA_ARGS__))
#define MAP733(m, x, ...) m(x) IDENTITY(MAP732(m, __VA_ARGS__))
#define MAP734(m, x, ...) m(x) IDENTITY(MAP733(m, __VA_ARGS__))
#define MAP735(m, x, ...) m(x) IDENTITY(MAP734(m, __VA_ARGS__))
#define MAP736(m, x, ...) m(x) IDENTITY(MAP735(m, __VA_ARGS__))
#define MAP737(m, x, ...) m(x) IDENTITY(MAP736(m, __VA_ARGS__))
#define MAP738(m, x, ...) m(x) IDENTITY(MAP737(m, __VA_ARGS__))
#define MAP739(m, x, ...) m(x) IDENTITY(MAP738(m, __VA_ARGS__))
#define MAP740(m, x, ...) m(x) IDENTITY(MAP739(m, __VA_ARGS__))
#define MAP741(m, x, ...) m(x) IDENTITY(MAP740(m, __VA_ARGS__))
#define MAP742(m, x, ...) m(x) IDENTITY(MAP741(m, __VA_ARGS__))
#define MAP743(m, x, ...) m(x) IDENTITY(MAP742(m, __VA_ARGS__))
#define MAP744(m, x, ...) m(x) IDENTITY(MAP743(m, __VA_ARGS__))
#define MAP745(m, x, ...) m(x) IDENTITY(MAP744(m, __VA_ARGS__))
#define MAP746(m, x, ...) m(x) IDENTITY(MAP745(m, __VA_ARGS__))
#define MAP747(m, x, ...) m(x) IDENTITY(MAP746(m, __VA_ARGS__))
#define MAP748(m, x, ...) m(x) IDENTITY(MAP747(m, __VA_ARGS__))
#define MAP749(m, x, ...) m(x) IDENTITY(MAP748(m, __VA_ARGS__))
#define MAP750(m, x, ...) m(x) IDENTITY(MAP749(m, __VA_ARGS__))
#define MAP751(m, x, ...) m(x) IDENTITY(MAP750(m, __VA_ARGS__))
#define MAP752(m, x, ...) m(x) IDENTITY(MAP751(m, __VA_ARGS__))
#define MAP753(m, x, ...) m(x) IDENTITY(MAP752(m, __VA_ARGS__))
#define MAP754(m, x, ...) m(x) IDENTITY(MAP753(m, __VA_ARGS__))
#define MAP755(m, x, ...) m(x) IDENTITY(MAP754(m, __VA_ARGS__))
#define MAP756(m, x, ...) m(x) IDENTITY(MAP755(m, __VA_ARGS__))
#define MAP757(m, x, ...) m(x) IDENTITY(MAP756(m, __VA_ARGS__))
#define MAP758(m, x, ...) m(x) IDENTITY(MAP757(m, __VA_ARGS__))
#define MAP759(m, x, ...) m(x) IDENTITY(MAP758(m, __VA_ARGS__))
#define MAP760(m, x, ...) m(x) IDENTITY(MAP759(m, __VA_ARGS__))
#define MAP761(m, x, ...) m(x) IDENTITY(MAP760(m, __VA_ARGS__))
#define MAP762(m, x, ...) m(x) IDENTITY(MAP761(m, __VA_ARGS__))
#define MAP763(m, x, ...) m(x) IDENTITY(MAP762(m, __VA_ARGS__))
#define MAP764(m, x, ...) m(x) IDENTITY(MAP763(m, __VA_ARGS__))
#define MAP765(m, x, ...) m(x) IDENTITY(MAP764(m, __VA_ARGS__))
#define MAP766(m, x, ...) m(x) IDENTITY(MAP765(m, __VA_ARGS__))
#define MAP767(m, x, ...) m(x) IDENTITY(MAP766(m, __VA_ARGS__))
#define MAP768(m, x, ...) m(x) IDENTITY(MAP767(m, __VA_ARGS__))


#define EVALUATE_COUNT(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, \
						_11, _12, _13, _14, _15, _16, _17, _18, _19, _20, \
						_21, _22, _23, _24, _25, _26, _27, _28, _29, _30, \
						_31, _32, _33, _34, _35, _36, _37, _38, _39, _40, \
						_41, _42, _43, _44, _45, _46, _47, _48, _49, _50, \
						_51, _52, _53, _54, _55, _56, _57, _58, _59, _60, \
						_61, _62, _63, _64, _65, _66, _67, _68, _69, _70, \
						_71, _72, _73, _74, _75, _76, _77, _78, _79, _80, \
						_81, _82, _83, _84, _85, _86, _87, _88, _89, _90, \
						_91, _92, _93, _94, _95, _96, _97, _98, _99, _100, \
						_101, _102, _103, _104, _105, _106, _107, _108, _109, _110, \
						_111, _112, _113, _114, _115, _116, _117, _118, _119, _120, \
						_121, _122, _123, _124, _125, _126, _127, _128, _129, _130, \
						_131, _132, _133, _134, _135, _136, _137, _138, _139, _140, \
						_141, _142, _143, _144, _145, _146, _147, _148, _149, _150, \
						_151, _152, _153, _154, _155, _156, _157, _158, _159, _160, \
						_161, _162, _163, _164, _165, _166, _167, _168, _169, _170, \
						_171, _172, _173, _174, _175, _176, _177, _178, _179, _180, \
						_181, _182, _183, _184, _185, _186, _187, _188, _189, _190, \
						_191, _192, _193, _194, _195, _196, _197, _198, _199, _200, \
						_201, _202, _203, _204, _205, _206, _207, _208, _209, _210, \
						_211, _212, _213, _214, _215, _216, _217, _218, _219, _220, \
						_221, _222, _223, _224, _225, _226, _227, _228, _229, _230, \
						_231, _232, _233, _234, _235, _236, _237, _238, _239, _240, \
						_241, _242, _243, _244, _245, _246, _247, _248, _249, _250, \
						_251, _252, _253, _254, _255, _256, _257, _258, _259, _260, \
						_261, _262, _263, _264, _265, _266, _267, _268, _269, _270, \
						_271, _272, _273, _274, _275, _276, _277, _278, _279, _280, \
						_281, _282, _283, _284, _285, _286, _287, _288, _289, _290, \
						_291, _292, _293, _294, _295, _296, _297, _298, _299, _300, \
						_301, _302, _303, _304, _305, _306, _307, _308, _309, _310, \
						_311, _312, _313, _314, _315, _316, _317, _318, _319, _320, \
						_321, _322, _323, _324, _325, _326, _327, _328, _329, _330, \
						_331, _332, _333, _334, _335, _336, _337, _338, _339, _340, \
						_341, _342, _343, _344, _345, _346, _347, _348, _349, _350, \
						_351, _352, _353, _354, _355, _356, _357, _358, _359, _360, \
						_361, _362, _363, _364, _365, _366, _367, _368, _369, _370, \
						_371, _372, _373, _374, _375, _376, _377, _378, _379, _380, \
						_381, _382, _383, _384, _385, _386, _387, _388, _389, _390, \
						_391, _392, _393, _394, _395, _396, _397, _398, _399, _400, \
						_401, _402, _403, _404, _405, _406, _407, _408, _409, _410, \
						_411, _412, _413, _414, _415, _416, _417, _418, _419, _420, \
						_421, _422, _423, _424, _425, _426, _427, _428, _429, _430, \
						_431, _432, _433, _434, _435, _436, _437, _438, _439, _440, \
						_441, _442, _443, _444, _445, _446, _447, _448, _449, _450, \
						_451, _452, _453, _454, _455, _456, _457, _458, _459, _460, \
						_461, _462, _463, _464, _465, _466, _467, _468, _469, _470, \
						_471, _472, _473, _474, _475, _476, _477, _478, _479, _480, \
						_481, _482, _483, _484, _485, _486, _487, _488, _489, _490, \
						_491, _492, _493, _494, _495, _496, _497, _498, _499, _500, \
						_501, _502, _503, _504, _505, _506, _507, _508, _509, _510, \
						_511, _512, _513, _514, _515, _516, _517, _518, _519, _520, \
						_521, _522, _523, _524, _525, _526, _527, _528, _529, _530, \
						_531, _532, _533, _534, _535, _536, _537, _538, _539, _540, \
						_541, _542, _543, _544, _545, _546, _547, _548, _549, _550, \
						_551, _552, _553, _554, _555, _556, _557, _558, _559, _560, \
						_561, _562, _563, _564, _565, _566, _567, _568, _569, _570, \
						_571, _572, _573, _574, _575, _576, _577, _578, _579, _580, \
						_581, _582, _583, _584, _585, _586, _587, _588, _589, _590, \
						_591, _592, _593, _594, _595, _596, _597, _598, _599, _600, \
						_601, _602, _603, _604, _605, _606, _607, _608, _609, _610, \
						_611, _612, _613, _614, _615, _616, _617, _618, _619, _620, \
						_621, _622, _623, _624, _625, _626, _627, _628, _629, _630, \
						_631, _632, _633, _634, _635, _636, _637, _638, _639, _640, \
						_641, _642, _643, _644, _645, _646, _647, _648, _649, _650, \
						_651, _652, _653, _654, _655, _656, _657, _658, _659, _660, \
						_661, _662, _663, _664, _665, _666, _667, _668, _669, _670, \
						_671, _672, _673, _674, _675, _676, _677, _678, _679, _680, \
						_681, _682, _683, _684, _685, _686, _687, _688, _689, _690, \
						_691, _692, _693, _694, _695, _696, _697, _698, _699, _700, \
						_701, _702, _703, _704, _705, _706, _707, _708, _709, _710, \
						_711, _712, _713, _714, _715, _716, _717, _718, _719, _720, \
						_721, _722, _723, _724, _725, _726, _727, _728, _729, _730, \
						_731, _732, _733, _734, _735, _736, _737, _738, _739, _740, \
						_741, _742, _743, _744, _745, _746, _747, _748, _749, _750, \
						_751, _752, _753, _754, _755, _756, _757, _758, _759, _760, \
						_761, _762, _763, _764, _765, _766, _767, _768, \
						count, ...) count

#define COUNT(...) \
    IDENTITY(EVALUATE_COUNT(__VA_ARGS__, 768, 767, 766, 765, 764, 763, 762, 761, \
										 760, 759, 758, 757, 756, 755, 754, 753, 752, 751, \
										 750, 749, 748, 747, 746, 745, 744, 743, 742, 741, \
										 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, \
										 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, \
										 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, \
										 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, \
										 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, \
										 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, \
										 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, \
										 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, \
										 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, \
										 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, \
										 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, \
										 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, \
										 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, \
										 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, \
										 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, \
										 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, \
										 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, \
										 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, \
										 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, \
										 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, \
										 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, \
										 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, \
										 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, \
										 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, \
										 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, \
										 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, \
										 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, \
										 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, \
										 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, \
										 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, \
										 440, 439, 438, 437, 436, 435, 434, 433, 432, 431, \
										 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, \
										 420, 419, 418, 417, 416, 415, 414, 413, 412, 411, \
										 410, 409, 408, 407, 406, 405, 404, 403, 402, 401, \
										 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, \
										 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, \
										 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, \
										 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, \
										 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, \
										 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, \
										 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, \
										 330, 329, 328, 327, 326, 325, 324, 323, 322, 321, \
										 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, \
										 310, 309, 308, 307, 306, 305, 304, 303, 302, 301, \
										 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, \
										 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, \
										 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, \
										 270, 269, 268, 267, 266, 265, 264, 263, 262, 261, \
										 260, 259, 258, 257, 256, 255, 254, 253, 252, 251, \
										 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, \
										 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, \
										 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, \
										 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, \
										 210, 209, 208, 207, 206, 205, 204, 203, 202, 201, \
										 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, \
										 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, \
										 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, \
										 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, \
										 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, \
										 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, \
										 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, \
										 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, \
										 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, \
										 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, \
										 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, \
										 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, \
										 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, \
										 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, \
										 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, \
										 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, \
										 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, \
										 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, \
										 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, \
										 10, 9, 8, 7, 6, 5, 4, 3, 2, 1))


struct ignore_assign {
    ignore_assign(int value) : _value(value) { }
    operator int() const { return _value; }

    const ignore_assign& operator =(int dummy) { (void)dummy; return *this; }

    int _value;
};

#define IGNORE_ASSIGN_SINGLE(expression) (ignore_assign)expression,
#define IGNORE_ASSIGN(...) IDENTITY(MAP(IGNORE_ASSIGN_SINGLE, __VA_ARGS__))

#define STRINGIZE_SINGLE(expression) #expression,
#define STRINGIZE(...) IDENTITY(MAP(STRINGIZE_SINGLE, __VA_ARGS__))



#define ENUM(EnumName, ...)                                            \
struct EnumName {                                                      \
    enum _enumerated { __VA_ARGS__ };                                  \
                                                                       \
    _enumerated     _value;                                            \
                                                                       \
    EnumName(_enumerated value) : _value(value) { }                    \
    operator _enumerated() const { return _value; }                    \
                                                                       \
    const char* _to_string() const                                     \
    {                                                                  \
        for (size_t index = 0; index < _count; ++index) {              \
            if (_values()[index] == _value)                            \
                return _names()[index];                                \
        }                                                              \
                                                                       \
        return NULL;                                                   \
    }                                                                  \
                                                                       \
    static const size_t _count = IDENTITY(COUNT(__VA_ARGS__));         \
                                                                       \
    static const int* _values()                                        \
    {                                                                  \
        static const int values[] =                                    \
            { IDENTITY(IGNORE_ASSIGN(__VA_ARGS__)) };                  \
        return values;                                                 \
    }                                                                  \
                                                                       \
    static const char* const* _names()                                 \
    {                                                                  \
        static const char* const    raw_names[] =                      \
            { IDENTITY(STRINGIZE(__VA_ARGS__)) };                      \
                                                                       \
        static char*                processed_names[_count];           \
        static bool                 initialized = false;               \
                                                                       \
        if (!initialized) {                                            \
            for (size_t index = 0; index < _count; ++index) {          \
                size_t length =                                        \
                    std::strcspn(raw_names[index], " =\t\n\r");        \
                                                                       \
                processed_names[index] = new char[length + 1];         \
                                                                       \
					strncpy(                                           \
                    processed_names[index], raw_names[index], length); \
                processed_names[index][length] = '\0';                 \
            }                                                          \
        }                                                              \
                                                                       \
        return processed_names;                                        \
    }                                                                  \
};


/* !!! If you are adding new Enums for Events or Params
 * Please keep the existing Type_Event_XXX definition (and assign it a value)
 * and add your new definition such like Type_NewNotification = XX
 */

ENUM(ValueID_Index_Alarm,
		Type_Start = 0,
		Type_Smoke_Alarm = 1,
		Type_Carbon_Monoxide = 2,
		Type_Carbon_Dioxide = 3,
		Type_Heat = 4,
		Type_Water = 5,
		Type_Access_Control = 6,
		Type_Home_Security = 7,
		Type_Power_Management = 8,
		Type_System = 9,
		Type_Emergency = 10,
		Type_Clock = 11,
		Type_Appliance = 12,
		Type_Home_Health = 13,
		Type_Siren = 14,
		Type_Water_Valve = 15,
		Type_Weather = 16,
		Type_Irrigation = 17,
		Type_Gas = 18,
		Type_Event_19,
		Type_Event_20,
		Type_Event_21,
		Type_Event_22,
		Type_Event_23,
		Type_Event_24,
		Type_Event_25,
		Type_Event_26,
		Type_Event_27,
		Type_Event_28,
		Type_Event_29,
		Type_Event_30,
		Type_Event_31,
		Type_Event_32,
		Type_Event_33,
		Type_Event_34,
		Type_Event_35,
		Type_Event_36,
		Type_Event_37,
		Type_Event_38,
		Type_Event_39,
		Type_Event_40,
		Type_Event_41,
		Type_Event_42,
		Type_Event_43,
		Type_Event_44,
		Type_Event_45,
		Type_Event_46,
		Type_Event_47,
		Type_Event_48,
		Type_Event_49,
		Type_Event_50,
		Type_Event_51,
		Type_Event_52,
		Type_Event_53,
		Type_Event_54,
		Type_Event_55,
		Type_Event_56,
		Type_Event_57,
		Type_Event_58,
		Type_Event_59,
		Type_Event_60,
		Type_Event_61,
		Type_Event_62,
		Type_Event_63,
		Type_Event_64,
		Type_Event_65,
		Type_Event_66,
		Type_Event_67,
		Type_Event_68,
		Type_Event_69,
		Type_Event_70,
		Type_Event_71,
		Type_Event_72,
		Type_Event_73,
		Type_Event_74,
		Type_Event_75,
		Type_Event_76,
		Type_Event_77,
		Type_Event_78,
		Type_Event_79,
		Type_Event_80,
		Type_Event_81,
		Type_Event_82,
		Type_Event_83,
		Type_Event_84,
		Type_Event_85,
		Type_Event_86,
		Type_Event_87,
		Type_Event_88,
		Type_Event_89,
		Type_Event_90,
		Type_Event_91,
		Type_Event_92,
		Type_Event_93,
		Type_Event_94,
		Type_Event_95,
		Type_Event_96,
		Type_Event_97,
		Type_Event_98,
		Type_Event_99,
		Type_Event_100,
		Type_Event_101,
		Type_Event_102,
		Type_Event_103,
		Type_Event_104,
		Type_Event_105,
		Type_Event_106,
		Type_Event_107,
		Type_Event_108,
		Type_Event_109,
		Type_Event_110,
		Type_Event_111,
		Type_Event_112,
		Type_Event_113,
		Type_Event_114,
		Type_Event_115,
		Type_Event_116,
		Type_Event_117,
		Type_Event_118,
		Type_Event_119,
		Type_Event_120,
		Type_Event_121,
		Type_Event_122,
		Type_Event_123,
		Type_Event_124,
		Type_Event_125,
		Type_Event_126,
		Type_Event_127,
		Type_Event_128,
		Type_Event_129,
		Type_Event_130,
		Type_Event_131,
		Type_Event_132,
		Type_Event_133,
		Type_Event_134,
		Type_Event_135,
		Type_Event_136,
		Type_Event_137,
		Type_Event_138,
		Type_Event_139,
		Type_Event_140,
		Type_Event_141,
		Type_Event_142,
		Type_Event_143,
		Type_Event_144,
		Type_Event_145,
		Type_Event_146,
		Type_Event_147,
		Type_Event_148,
		Type_Event_149,
		Type_Event_150,
		Type_Event_151,
		Type_Event_152,
		Type_Event_153,
		Type_Event_154,
		Type_Event_155,
		Type_Event_156,
		Type_Event_157,
		Type_Event_158,
		Type_Event_159,
		Type_Event_160,
		Type_Event_161,
		Type_Event_162,
		Type_Event_163,
		Type_Event_164,
		Type_Event_165,
		Type_Event_166,
		Type_Event_167,
		Type_Event_168,
		Type_Event_169,
		Type_Event_170,
		Type_Event_171,
		Type_Event_172,
		Type_Event_173,
		Type_Event_174,
		Type_Event_175,
		Type_Event_176,
		Type_Event_177,
		Type_Event_178,
		Type_Event_179,
		Type_Event_180,
		Type_Event_181,
		Type_Event_182,
		Type_Event_183,
		Type_Event_184,
		Type_Event_185,
		Type_Event_186,
		Type_Event_187,
		Type_Event_188,
		Type_Event_189,
		Type_Event_190,
		Type_Event_191,
		Type_Event_192,
		Type_Event_193,
		Type_Event_194,
		Type_Event_195,
		Type_Event_196,
		Type_Event_197,
		Type_Event_198,
		Type_Event_199,
		Type_Event_200,
		Type_Event_201,
		Type_Event_202,
		Type_Event_203,
		Type_Event_204,
		Type_Event_205,
		Type_Event_206,
		Type_Event_207,
		Type_Event_208,
		Type_Event_209,
		Type_Event_210,
		Type_Event_211,
		Type_Event_212,
		Type_Event_213,
		Type_Event_214,
		Type_Event_215,
		Type_Event_216,
		Type_Event_217,
		Type_Event_218,
		Type_Event_219,
		Type_Event_220,
		Type_Event_221,
		Type_Event_222,
		Type_Event_223,
		Type_Event_224,
		Type_Event_225,
		Type_Event_226,
		Type_Event_227,
		Type_Event_228,
		Type_Event_229,
		Type_Event_230,
		Type_Event_231,
		Type_Event_232,
		Type_Event_233,
		Type_Event_234,
		Type_Event_235,
		Type_Event_236,
		Type_Event_237,
		Type_Event_238,
		Type_Event_239,
		Type_Event_240,
		Type_Event_241,
		Type_Event_242,
		Type_Event_243,
		Type_Event_244,
		Type_Event_245,
		Type_Event_246,
		Type_Event_247,
		Type_Event_248,
		Type_Event_249,
		Type_Event_250,
		Type_Event_251,
		Type_Event_252,
		Type_Event_253,
		Type_Event_254,
		Type_Event_255,
		Type_Event_Param_Previous_Event = 256,
		Type_Event_Param_Location = 257,
		Type_Event_Param_Result = 258,
		Type_Event_Param_Threshold = 259,
		Type_Event_Param_UserCode = 260,
		Type_Event_Param_261 = 261,
		Type_Event_Param_Progress = 262,
		Type_Event_Param_Mode = 263,
		Type_Event_Param_Obstruction = 264,
		Type_Event_Param_Sensor_ID = 265,
		Type_Event_Param_Error_Code = 266,
		Type_Event_Param_Duration = 267,
		Type_Event_Param_Pollution_Level = 268,
		Type_Event_Param_Status = 269,
		Type_Event_Param_Schedule_ID = 270,
		Type_Event_Param_Valve_Table_ID = 271,
		Type_Event_Param_272,
		Type_Event_Param_273,
		Type_Event_Param_274,
		Type_Event_Param_275,
		Type_Event_Param_276,
		Type_Event_Param_277,
		Type_Event_Param_278,
		Type_Event_Param_279,
		Type_Event_Param_280,
		Type_Event_Param_281,
		Type_Event_Param_282,
		Type_Event_Param_283,
		Type_Event_Param_284,
		Type_Event_Param_285,
		Type_Event_Param_286,
		Type_Event_Param_287,
		Type_Event_Param_288,
		Type_Event_Param_289,
		Type_Event_Param_290,
		Type_Event_Param_291,
		Type_Event_Param_292,
		Type_Event_Param_293,
		Type_Event_Param_294,
		Type_Event_Param_295,
		Type_Event_Param_296,
		Type_Event_Param_297,
		Type_Event_Param_298,
		Type_Event_Param_299,
		Type_Event_Param_300,
		Type_Event_Param_301,
		Type_Event_Param_302,
		Type_Event_Param_303,
		Type_Event_Param_304,
		Type_Event_Param_305,
		Type_Event_Param_306,
		Type_Event_Param_307,
		Type_Event_Param_308,
		Type_Event_Param_309,
		Type_Event_Param_310,
		Type_Event_Param_311,
		Type_Event_Param_312,
		Type_Event_Param_313,
		Type_Event_Param_314,
		Type_Event_Param_315,
		Type_Event_Param_316,
		Type_Event_Param_317,
		Type_Event_Param_318,
		Type_Event_Param_319,
		Type_Event_Param_320,
		Type_Event_Param_321,
		Type_Event_Param_322,
		Type_Event_Param_323,
		Type_Event_Param_324,
		Type_Event_Param_325,
		Type_Event_Param_326,
		Type_Event_Param_327,
		Type_Event_Param_328,
		Type_Event_Param_329,
		Type_Event_Param_330,
		Type_Event_Param_331,
		Type_Event_Param_332,
		Type_Event_Param_333,
		Type_Event_Param_334,
		Type_Event_Param_335,
		Type_Event_Param_336,
		Type_Event_Param_337,
		Type_Event_Param_338,
		Type_Event_Param_339,
		Type_Event_Param_340,
		Type_Event_Param_341,
		Type_Event_Param_342,
		Type_Event_Param_343,
		Type_Event_Param_344,
		Type_Event_Param_345,
		Type_Event_Param_346,
		Type_Event_Param_347,
		Type_Event_Param_348,
		Type_Event_Param_349,
		Type_Event_Param_350,
		Type_Event_Param_351,
		Type_Event_Param_352,
		Type_Event_Param_353,
		Type_Event_Param_354,
		Type_Event_Param_355,
		Type_Event_Param_356,
		Type_Event_Param_357,
		Type_Event_Param_358,
		Type_Event_Param_359,
		Type_Event_Param_360,
		Type_Event_Param_361,
		Type_Event_Param_362,
		Type_Event_Param_363,
		Type_Event_Param_364,
		Type_Event_Param_365,
		Type_Event_Param_366,
		Type_Event_Param_367,
		Type_Event_Param_368,
		Type_Event_Param_369,
		Type_Event_Param_370,
		Type_Event_Param_371,
		Type_Event_Param_372,
		Type_Event_Param_373,
		Type_Event_Param_374,
		Type_Event_Param_375,
		Type_Event_Param_376,
		Type_Event_Param_377,
		Type_Event_Param_378,
		Type_Event_Param_379,
		Type_Event_Param_380,
		Type_Event_Param_381,
		Type_Event_Param_382,
		Type_Event_Param_383,
		Type_Event_Param_384,
		Type_Event_Param_385,
		Type_Event_Param_386,
		Type_Event_Param_387,
		Type_Event_Param_388,
		Type_Event_Param_389,
		Type_Event_Param_390,
		Type_Event_Param_391,
		Type_Event_Param_392,
		Type_Event_Param_393,
		Type_Event_Param_394,
		Type_Event_Param_395,
		Type_Event_Param_396,
		Type_Event_Param_397,
		Type_Event_Param_398,
		Type_Event_Param_399,
		Type_Event_Param_400,
		Type_Event_Param_401,
		Type_Event_Param_402,
		Type_Event_Param_403,
		Type_Event_Param_404,
		Type_Event_Param_405,
		Type_Event_Param_406,
		Type_Event_Param_407,
		Type_Event_Param_408,
		Type_Event_Param_409,
		Type_Event_Param_410,
		Type_Event_Param_411,
		Type_Event_Param_412,
		Type_Event_Param_413,
		Type_Event_Param_414,
		Type_Event_Param_415,
		Type_Event_Param_416,
		Type_Event_Param_417,
		Type_Event_Param_418,
		Type_Event_Param_419,
		Type_Event_Param_420,
		Type_Event_Param_421,
		Type_Event_Param_422,
		Type_Event_Param_423,
		Type_Event_Param_424,
		Type_Event_Param_425,
		Type_Event_Param_426,
		Type_Event_Param_427,
		Type_Event_Param_428,
		Type_Event_Param_429,
		Type_Event_Param_430,
		Type_Event_Param_431,
		Type_Event_Param_432,
		Type_Event_Param_433,
		Type_Event_Param_434,
		Type_Event_Param_435,
		Type_Event_Param_436,
		Type_Event_Param_437,
		Type_Event_Param_438,
		Type_Event_Param_439,
		Type_Event_Param_440,
		Type_Event_Param_441,
		Type_Event_Param_442,
		Type_Event_Param_443,
		Type_Event_Param_444,
		Type_Event_Param_445,
		Type_Event_Param_446,
		Type_Event_Param_447,
		Type_Event_Param_448,
		Type_Event_Param_449,
		Type_Event_Param_450,
		Type_Event_Param_451,
		Type_Event_Param_452,
		Type_Event_Param_453,
		Type_Event_Param_454,
		Type_Event_Param_455,
		Type_Event_Param_456,
		Type_Event_Param_457,
		Type_Event_Param_458,
		Type_Event_Param_459,
		Type_Event_Param_460,
		Type_Event_Param_461,
		Type_Event_Param_462,
		Type_Event_Param_463,
		Type_Event_Param_464,
		Type_Event_Param_465,
		Type_Event_Param_466,
		Type_Event_Param_467,
		Type_Event_Param_468,
		Type_Event_Param_469,
		Type_Event_Param_470,
		Type_Event_Param_471,
		Type_Event_Param_472,
		Type_Event_Param_473,
		Type_Event_Param_474,
		Type_Event_Param_475,
		Type_Event_Param_476,
		Type_Event_Param_477,
		Type_Event_Param_478,
		Type_Event_Param_479,
		Type_Event_Param_480,
		Type_Event_Param_481,
		Type_Event_Param_482,
		Type_Event_Param_483,
		Type_Event_Param_484,
		Type_Event_Param_485,
		Type_Event_Param_486,
		Type_Event_Param_487,
		Type_Event_Param_488,
		Type_Event_Param_489,
		Type_Event_Param_490,
		Type_Event_Param_491,
		Type_Event_Param_492,
		Type_Event_Param_493,
		Type_Event_Param_494,
		Type_Event_Param_495,
		Type_Event_Param_496,
		Type_Event_Param_497,
		Type_Event_Param_498,
		Type_Event_Param_499,
		Type_Event_Param_500,
		Type_Event_Param_501,
		Type_Event_Param_502,
		Type_Event_Param_503,
		Type_Event_Param_504,
		Type_Event_Param_505,
		Type_Event_Param_506,
		Type_Event_Param_507,
		Type_Event_Param_508,
		Type_Event_Param_509,
		Type_Event_Param_510,
		Type_Event_Param_511,
		Type_v1 = 512,
		Level_v1 = 513,
		AutoClearEvents = 514
	);
ENUM(ValueID_Index_AssociationCommandConfiguration,
		MaxCommandLength = 0,
		CommandsAreValues = 1,
		CommandsAreConfigurable = 2,
		NumFreeCommands = 3,
		MaxCommands = 4
	);
ENUM(ValueID_Index_BarrierOperator,
		Command = 0,
		Label = 1,
		SupportedSignals = 2,
		Audible = 3,
		Visual = 4
	);
ENUM(ValueID_Index_Basic,
		Set = 0,
		Target = 1,
		Duration = 2
	);
ENUM(ValueID_Index_BasicWindowCovering,
		Open = 0,
		Close = 1
	);
ENUM(ValueID_Index_Battery,
		Level = 0
	);
ENUM(ValueID_Index_CentralScene,
		Scene_1 = 1,
		Scene_2,
		Scene_3,
		Scene_4,
		Scene_5,
		Scene_6,
		Scene_7,
		Scene_8,
		Scene_9,
		Scene_10,
		Scene_11,
		Scene_12,
		Scene_13,
		Scene_14,
		Scene_15,
		Scene_16,
		Scene_17,
		Scene_18,
		Scene_19,
		Scene_20,
		Scene_21,
		Scene_22,
		Scene_23,
		Scene_24,
		Scene_25,
		Scene_26,
		Scene_27,
		Scene_28,
		Scene_29,
		Scene_30,
		Scene_31,
		Scene_32,
		Scene_33,
		Scene_34,
		Scene_35,
		Scene_36,
		Scene_37,
		Scene_38,
		Scene_39,
		Scene_40,
		Scene_41,
		Scene_42,
		Scene_43,
		Scene_44,
		Scene_45,
		Scene_46,
		Scene_47,
		Scene_48,
		Scene_49,
		Scene_50,
		Scene_51,
		Scene_52,
		Scene_53,
		Scene_54,
		Scene_55,
		Scene_56,
		Scene_57,
		Scene_58,
		Scene_59,
		Scene_60,
		Scene_61,
		Scene_62,
		Scene_63,
		Scene_64,
		Scene_65,
		Scene_66,
		Scene_67,
		Scene_68,
		Scene_69,
		Scene_70,
		Scene_71,
		Scene_72,
		Scene_73,
		Scene_74,
		Scene_75,
		Scene_76,
		Scene_77,
		Scene_78,
		Scene_79,
		Scene_80,
		Scene_81,
		Scene_82,
		Scene_83,
		Scene_84,
		Scene_85,
		Scene_86,
		Scene_87,
		Scene_88,
		Scene_89,
		Scene_90,
		Scene_91,
		Scene_92,
		Scene_93,
		Scene_94,
		Scene_95,
		Scene_96,
		Scene_97,
		Scene_98,
		Scene_99,
		Scene_100,
		Scene_101,
		Scene_102,
		Scene_103,
		Scene_104,
		Scene_105,
		Scene_106,
		Scene_107,
		Scene_108,
		Scene_109,
		Scene_110,
		Scene_111,
		Scene_112,
		Scene_113,
		Scene_114,
		Scene_115,
		Scene_116,
		Scene_117,
		Scene_118,
		Scene_119,
		Scene_120,
		Scene_121,
		Scene_122,
		Scene_123,
		Scene_124,
		Scene_125,
		Scene_126,
		Scene_127,
		Scene_128,
		Scene_129,
		Scene_130,
		Scene_131,
		Scene_132,
		Scene_133,
		Scene_134,
		Scene_135,
		Scene_136,
		Scene_137,
		Scene_138,
		Scene_139,
		Scene_140,
		Scene_141,
		Scene_142,
		Scene_143,
		Scene_144,
		Scene_145,
		Scene_146,
		Scene_147,
		Scene_148,
		Scene_149,
		Scene_150,
		Scene_151,
		Scene_152,
		Scene_153,
		Scene_154,
		Scene_155,
		Scene_156,
		Scene_157,
		Scene_158,
		Scene_159,
		Scene_160,
		Scene_161,
		Scene_162,
		Scene_163,
		Scene_164,
		Scene_165,
		Scene_166,
		Scene_167,
		Scene_168,
		Scene_169,
		Scene_170,
		Scene_171,
		Scene_172,
		Scene_173,
		Scene_174,
		Scene_175,
		Scene_176,
		Scene_177,
		Scene_178,
		Scene_179,
		Scene_180,
		Scene_181,
		Scene_182,
		Scene_183,
		Scene_184,
		Scene_185,
		Scene_186,
		Scene_187,
		Scene_188,
		Scene_189,
		Scene_190,
		Scene_191,
		Scene_192,
		Scene_193,
		Scene_194,
		Scene_195,
		Scene_196,
		Scene_197,
		Scene_198,
		Scene_199,
		Scene_200,
		Scene_201,
		Scene_202,
		Scene_203,
		Scene_204,
		Scene_205,
		Scene_206,
		Scene_207,
		Scene_208,
		Scene_209,
		Scene_210,
		Scene_211,
		Scene_212,
		Scene_213,
		Scene_214,
		Scene_215,
		Scene_216,
		Scene_217,
		Scene_218,
		Scene_219,
		Scene_220,
		Scene_221,
		Scene_222,
		Scene_223,
		Scene_224,
		Scene_225,
		Scene_226,
		Scene_227,
		Scene_228,
		Scene_229,
		Scene_230,
		Scene_231,
		Scene_232,
		Scene_233,
		Scene_234,
		Scene_235,
		Scene_236,
		Scene_237,
		Scene_238,
		Scene_239,
		Scene_240,
		Scene_241,
		Scene_242,
		Scene_243,
		Scene_244,
		Scene_245,
		Scene_246,
		Scene_247,
		Scene_248,
		Scene_249,
		Scene_250,
		Scene_251,
		Scene_252,
		Scene_253,
		Scene_254,
		Scene_255,
		SceneCount = 256,
		ClearSceneTimeout = 257
	);
ENUM(ValueID_Index_ClimateControlSchedule,
		DOW_Monday = 1,
		DOW_Tuesday = 2,
		DOW_Wednesday = 3,
		DOW_Thursday = 4,
		DOW_Friday = 5,
		DOW_Saturday = 6,
		DOW_Sunday = 7,
		OverrideState = 8,
		OverrideSetback = 9
	);
ENUM(ValueID_Index_Clock,
		Day = 0,
		Hour = 1,
		Minute = 2
	);
ENUM(ValueID_Index_Color,
		Color = 0,
		Index = 1,
		Channels_Capabilities = 2,
		Duration = 4,
		Target = 5
	);
ENUM(ValueID_Index_Configuration,
		Parameter_1 = 1,
		Parameter_2,
		Parameter_3,
		Parameter_4,
		Parameter_5,
		Parameter_6,
		Parameter_7,
		Parameter_8,
		Parameter_9,
		Parameter_10,
		Parameter_11,
		Parameter_12,
		Parameter_13,
		Parameter_14,
		Parameter_15,
		Parameter_16,
		Parameter_17,
		Parameter_18,
		Parameter_19,
		Parameter_20,
		Parameter_21,
		Parameter_22,
		Parameter_23,
		Parameter_24,
		Parameter_25,
		Parameter_26,
		Parameter_27,
		Parameter_28,
		Parameter_29,
		Parameter_30,
		Parameter_31,
		Parameter_32,
		Parameter_33,
		Parameter_34,
		Parameter_35,
		Parameter_36,
		Parameter_37,
		Parameter_38,
		Parameter_39,
		Parameter_40,
		Parameter_41,
		Parameter_42,
		Parameter_43,
		Parameter_44,
		Parameter_45,
		Parameter_46,
		Parameter_47,
		Parameter_48,
		Parameter_49,
		Parameter_50,
		Parameter_51,
		Parameter_52,
		Parameter_53,
		Parameter_54,
		Parameter_55,
		Parameter_56,
		Parameter_57,
		Parameter_58,
		Parameter_59,
		Parameter_60,
		Parameter_61,
		Parameter_62,
		Parameter_63,
		Parameter_64,
		Parameter_65,
		Parameter_66,
		Parameter_67,
		Parameter_68,
		Parameter_69,
		Parameter_70,
		Parameter_71,
		Parameter_72,
		Parameter_73,
		Parameter_74,
		Parameter_75,
		Parameter_76,
		Parameter_77,
		Parameter_78,
		Parameter_79,
		Parameter_80,
		Parameter_81,
		Parameter_82,
		Parameter_83,
		Parameter_84,
		Parameter_85,
		Parameter_86,
		Parameter_87,
		Parameter_88,
		Parameter_89,
		Parameter_90,
		Parameter_91,
		Parameter_92,
		Parameter_93,
		Parameter_94,
		Parameter_95,
		Parameter_96,
		Parameter_97,
		Parameter_98,
		Parameter_99,
		Parameter_100,
		Parameter_101,
		Parameter_102,
		Parameter_103,
		Parameter_104,
		Parameter_105,
		Parameter_106,
		Parameter_107,
		Parameter_108,
		Parameter_109,
		Parameter_110,
		Parameter_111,
		Parameter_112,
		Parameter_113,
		Parameter_114,
		Parameter_115,
		Parameter_116,
		Parameter_117,
		Parameter_118,
		Parameter_119,
		Parameter_120,
		Parameter_121,
		Parameter_122,
		Parameter_123,
		Parameter_124,
		Parameter_125,
		Parameter_126,
		Parameter_127,
		Parameter_128,
		Parameter_129,
		Parameter_130,
		Parameter_131,
		Parameter_132,
		Parameter_133,
		Parameter_134,
		Parameter_135,
		Parameter_136,
		Parameter_137,
		Parameter_138,
		Parameter_139,
		Parameter_140,
		Parameter_141,
		Parameter_142,
		Parameter_143,
		Parameter_144,
		Parameter_145,
		Parameter_146,
		Parameter_147,
		Parameter_148,
		Parameter_149,
		Parameter_150,
		Parameter_151,
		Parameter_152,
		Parameter_153,
		Parameter_154,
		Parameter_155,
		Parameter_156,
		Parameter_157,
		Parameter_158,
		Parameter_159,
		Parameter_160,
		Parameter_161,
		Parameter_162,
		Parameter_163,
		Parameter_164,
		Parameter_165,
		Parameter_166,
		Parameter_167,
		Parameter_168,
		Parameter_169,
		Parameter_170,
		Parameter_171,
		Parameter_172,
		Parameter_173,
		Parameter_174,
		Parameter_175,
		Parameter_176,
		Parameter_177,
		Parameter_178,
		Parameter_179,
		Parameter_180,
		Parameter_181,
		Parameter_182,
		Parameter_183,
		Parameter_184,
		Parameter_185,
		Parameter_186,
		Parameter_187,
		Parameter_188,
		Parameter_189,
		Parameter_190,
		Parameter_191,
		Parameter_192,
		Parameter_193,
		Parameter_194,
		Parameter_195,
		Parameter_196,
		Parameter_197,
		Parameter_198,
		Parameter_199,
		Parameter_200,
		Parameter_201,
		Parameter_202,
		Parameter_203,
		Parameter_204,
		Parameter_205,
		Parameter_206,
		Parameter_207,
		Parameter_208,
		Parameter_209,
		Parameter_210,
		Parameter_211,
		Parameter_212,
		Parameter_213,
		Parameter_214,
		Parameter_215,
		Parameter_216,
		Parameter_217,
		Parameter_218,
		Parameter_219,
		Parameter_220,
		Parameter_221,
		Parameter_222,
		Parameter_223,
		Parameter_224,
		Parameter_225,
		Parameter_226,
		Parameter_227,
		Parameter_228,
		Parameter_229,
		Parameter_230,
		Parameter_231,
		Parameter_232,
		Parameter_233,
		Parameter_234,
		Parameter_235,
		Parameter_236,
		Parameter_237,
		Parameter_238,
		Parameter_239,
		Parameter_240,
		Parameter_241,
		Parameter_242,
		Parameter_243,
		Parameter_244,
		Parameter_245,
		Parameter_246,
		Parameter_247,
		Parameter_248,
		Parameter_249,
		Parameter_250,
		Parameter_251,
		Parameter_252,
		Parameter_253,
		Parameter_254,
		Parameter_255
	);
ENUM(ValueID_Index_ControllerReplication,
		NodeId = 0,
		Function = 1,
		Replicate = 2
	);
ENUM(ValueID_Index_DoorLock,
		Lock = 0,
		Lock_Mode = 1,
		System_Config_Mode = 2,
		System_Config_Minutes = 3,
		System_Config_Seconds = 4,
		System_Config_OutsideHandles = 5,
		System_Config_InsideHandles = 6
	);
ENUM(ValueID_Index_DoorLockLogging,
		System_Config_MaxRecords = 0,
		GetRecordNo = 1,
		LogRecord = 2
	);
ENUM(ValueID_Index_EnergyProduction,
		Instant = 0,
		Total = 1,
		Today = 2,
		Time = 3
	);
ENUM(ValueID_Index_Indicator,
		Indicator = 0,
		Armed = 1,
		Not_Armed,
		Ready,
		Fault,
		Busy,
		Enter_ID,
		Enter_PIN,
		Code_Accepted,
		Code_Not_Accepted,
		Armed_Stay,
		Armed_Away,
		Alarming,
		Alarming_Burglar,
		Alarming_Smoke_Fire,
		Alarming_Carbon_Monoxide,
		Bypass_Challenge,
		Entry_Delay,
		Exit_Delay,
		Alarming_Medical,
		Alarming_Freeze_Warning,
		Alarming_Water_Leak,
		Alarming_Panic,
		Zone_1_Armed = 0x20,
		Zone_2_Armed,
		Zone_3_Armed,
		Zone_4_Armed,
		Zone_5_Armed,
		Zone_6_Armed,
		Zone_7_Armed,
		Zone_8_Armed,
		LCD_Backlight = 0x30,
		Button_Backlight_Letters = 0x40,
		Button_Backlight_Digits,
		Button_Backlight_Command,
		Button_1_Indication,
		Button_2_Indication,
		Button_3_Indication,
		Button_4_Indication,
		Button_5_Indication,
		Button_6_Indication,
		Button_7_Indication,
		Button_8_Indication,
		Button_9_Indication,
		Button_10_Indication,
		Button_11_Indication,
		Button_12_Indication,
		Node_Identify = 0x50,
		Generic_Event_Sound_Notification_1 = 0x60,
		Generic_Event_Sound_Notification_2,
		Generic_Event_Sound_Notification_3,
		Generic_Event_Sound_Notification_4,
		Generic_Event_Sound_Notification_5,
		Generic_Event_Sound_Notification_6,
		Generic_Event_Sound_Notification_7,
		Generic_Event_Sound_Notification_8,
		Generic_Event_Sound_Notification_9,
		Generic_Event_Sound_Notification_10,
		Generic_Event_Sound_Notification_11,
		Generic_Event_Sound_Notification_12,
		Generic_Event_Sound_Notification_13,
		Generic_Event_Sound_Notification_14,
		Generic_Event_Sound_Notification_15,
		Generic_Event_Sound_Notification_16,
		Generic_Event_Sound_Notification_17,
		Generic_Event_Sound_Notification_18,
		Generic_Event_Sound_Notification_19,
		Generic_Event_Sound_Notification_20,
		Generic_Event_Sound_Notification_21,
		Generic_Event_Sound_Notification_22,
		Generic_Event_Sound_Notification_23,
		Generic_Event_Sound_Notification_24,
		Generic_Event_Sound_Notification_25,
		Generic_Event_Sound_Notification_26,
		Generic_Event_Sound_Notification_27,
		Generic_Event_Sound_Notification_28,
		Generic_Event_Sound_Notification_29,
		Generic_Event_Sound_Notification_30,
		Generic_Event_Sound_Notification_31,
		Generic_Event_Sound_Notification_32,
		Manufacturer_Defined_Indicator_1 = 0x80,
		Manufacturer_Defined_Indicator_2,
		Manufacturer_Defined_Indicator_3,
		Manufacturer_Defined_Indicator_4,
		Manufacturer_Defined_Indicator_5,
		Manufacturer_Defined_Indicator_6,
		Manufacturer_Defined_Indicator_7,
		Manufacturer_Defined_Indicator_8,
		Manufacturer_Defined_Indicator_9,
		Manufacturer_Defined_Indicator_10,
		Manufacturer_Defined_Indicator_11,
		Manufacturer_Defined_Indicator_12,
		Manufacturer_Defined_Indicator_13,
		Manufacturer_Defined_Indicator_14,
		Manufacturer_Defined_Indicator_15,
		Manufacturer_Defined_Indicator_16,
		Manufacturer_Defined_Indicator_17,
		Manufacturer_Defined_Indicator_18,
		Manufacturer_Defined_Indicator_19,
		Manufacturer_Defined_Indicator_20,
		Manufacturer_Defined_Indicator_21,
		Manufacturer_Defined_Indicator_22,
		Manufacturer_Defined_Indicator_23,
		Manufacturer_Defined_Indicator_24,
		Manufacturer_Defined_Indicator_25,
		Manufacturer_Defined_Indicator_26,
		Manufacturer_Defined_Indicator_27,
		Manufacturer_Defined_Indicator_28,
		Manufacturer_Defined_Indicator_29,
		Manufacturer_Defined_Indicator_30,
		Manufacturer_Defined_Indicator_31,
		Manufacturer_Defined_Indicator_32,
		Buzzer = 0xF0
	);
ENUM(ValueID_Index_Language,
		Language = 0,
		Country = 1
	);
ENUM(ValueID_Index_Lock,
		Locked = 0
	);
ENUM(ValueID_Index_ManufacturerProprietary,
		FibaroVenetianBlinds_Blinds = 0,
		FibaroVenetianBlinds_Tilt = 1
	);
ENUM(ValueID_Index_ManufacturerSpecific,
		LoadedConfig = 0,
		LocalConfig = 1,
		LatestConfig = 2,
		DeviceID = 3,
		SerialNumber = 4
	);
ENUM(ValueID_Index_Meter,
		Electric_kWh = 0,
		Electric_kVah,
		Electric_W,
		Electric_Pulse,
		Electric_V,
		Electric_A,
		Electric_PowerFactor,
		Electric_Unknown_1,
		Electric_kVar,
		Electric_kVarh,
		Electric_Unknown_2,
		Electric_Unknown_3,
		Electric_Unknown_4,
		Electric_Unknown_5,
		Electric_Unknown_6,
		Electric_Unknown_7,
		Gas_Cubic_Meters,
		Gas_Cubic_Feet,
		Gas_Unknown_1,
		Gas_Pulse,
		Gas_Unknown_2,
		Gas_Unknown_3,
		Gas_Unknown_4,
		Gas_Unknown_5,
		Gas_Unknown_6,
		Gas_Unknown_7,
		Gas_Unknown_8,
		Gas_Unknown_9,
		Gas_Unknown_10,
		Gas_Unknown_11,
		Gas_Unknown_12,
		Gas_Unknown_13,
		Water_Cubic_Meters,
		Water_Cubic_Feet,
		Water_Cubic_US_Gallons,
		Water_Cubic_Pulse,
		Water_Unknown_1,
		Water_Unknown_2,
		Water_Unknown_3,
		Water_Unknown_4,
		Water_Unknown_5,
		Water_Unknown_6,
		Water_Unknown_7,
		Water_Unknown_8,
		Water_Unknown_9,
		Water_Unknown_10,
		Water_Unknown_11,
		Water_Unknown_12,
		Heating_kWh,
		Heating_Unknown_1,
		Heating_Unknown_2,
		Heating_Unknown_3,
		Heating_Unknown_4,
		Heating_Unknown_5,
		Heating_Unknown_6,
		Heating_Unknown_7,
		Heating_Unknown_8,
		Heating_Unknown_9,
		Heating_Unknown_10,
		Heating_Unknown_11,
		Heating_Unknown_12,
		Heating_Unknown_13,
		Heating_Unknown_14,
		Heating_Unknown_15,
		Cooling_kWh,
		Cooling_Unknown_1,
		Cooling_Unknown_2,
		Cooling_Unknown_3,
		Cooling_Unknown_4,
		Cooling_Unknown_5,
		Cooling_Unknown_6,
		Cooling_Unknown_7,
		Cooling_Unknown_8,
		Cooling_Unknown_9,
		Cooling_Unknown_10,
		Cooling_Unknown_11,
		Cooling_Unknown_12,
		Cooling_Unknown_13,
		Cooling_Unknown_14,
		Cooling_Unknown_15,
		Exporting = 256,
		Reset = 257
	);
ENUM(ValueID_Index_MeterPulse,
		Count = 0
	);
ENUM(ValueID_Index_PowerLevel,
		Powerlevel = 0,
		Timeout = 1,
		Set = 2,
		TestNode = 3,
		TestPowerlevel = 4,
		TestFrames = 5,
		Test = 6,
		Report = 7,
		TestStatus = 8,
		TestAckFrames = 9
	);
ENUM(ValueID_Index_Protection,
		Protection = 0
	);
ENUM(ValueID_Index_SceneActivation,
		SceneID  = 0,
		Duration = 1
	);
ENUM(ValueID_Index_Security,
		Secured = 0
	);
ENUM(ValueID_Index_SensorAlarm,
		Sensor_1,
		Sensor_2,
		Sensor_3,
		Sensor_4,
		Sensor_5,
		Sensor_6,
		Sensor_7,
		Sensor_8,
		Sensor_9,
		Sensor_10,
		Sensor_11,
		Sensor_12,
		Sensor_13,
		Sensor_14,
		Sensor_15,
		Sensor_16,
		Sensor_17,
		Sensor_18,
		Sensor_19,
		Sensor_20,
		Sensor_21,
		Sensor_22,
		Sensor_23,
		Sensor_24,
		Sensor_25,
		Sensor_26,
		Sensor_27,
		Sensor_28,
		Sensor_29,
		Sensor_30,
		Sensor_31,
		Sensor_32,
		Sensor_33,
		Sensor_34,
		Sensor_35,
		Sensor_36,
		Sensor_37,
		Sensor_38,
		Sensor_39,
		Sensor_40,
		Sensor_41,
		Sensor_42,
		Sensor_43,
		Sensor_44,
		Sensor_45,
		Sensor_46,
		Sensor_47,
		Sensor_48,
		Sensor_49,
		Sensor_50,
		Sensor_51,
		Sensor_52,
		Sensor_53,
		Sensor_54,
		Sensor_55,
		Sensor_56,
		Sensor_57,
		Sensor_58,
		Sensor_59,
		Sensor_60,
		Sensor_61,
		Sensor_62,
		Sensor_63,
		Sensor_64,
		Sensor_65,
		Sensor_66,
		Sensor_67,
		Sensor_68,
		Sensor_69,
		Sensor_70,
		Sensor_71,
		Sensor_72,
		Sensor_73,
		Sensor_74,
		Sensor_75,
		Sensor_76,
		Sensor_77,
		Sensor_78,
		Sensor_79,
		Sensor_80,
		Sensor_81,
		Sensor_82,
		Sensor_83,
		Sensor_84,
		Sensor_85,
		Sensor_86,
		Sensor_87,
		Sensor_88,
		Sensor_89,
		Sensor_90,
		Sensor_91,
		Sensor_92,
		Sensor_93,
		Sensor_94,
		Sensor_95,
		Sensor_96,
		Sensor_97,
		Sensor_98,
		Sensor_99,
		Sensor_100,
		Sensor_101,
		Sensor_102,
		Sensor_103,
		Sensor_104,
		Sensor_105,
		Sensor_106,
		Sensor_107,
		Sensor_108,
		Sensor_109,
		Sensor_110,
		Sensor_111,
		Sensor_112,
		Sensor_113,
		Sensor_114,
		Sensor_115,
		Sensor_116,
		Sensor_117,
		Sensor_118,
		Sensor_119,
		Sensor_120,
		Sensor_121,
		Sensor_122,
		Sensor_123,
		Sensor_124,
		Sensor_125,
		Sensor_126,
		Sensor_127,
		Sensor_128,
		Sensor_129,
		Sensor_130,
		Sensor_131,
		Sensor_132,
		Sensor_133,
		Sensor_134,
		Sensor_135,
		Sensor_136,
		Sensor_137,
		Sensor_138,
		Sensor_139,
		Sensor_140,
		Sensor_141,
		Sensor_142,
		Sensor_143,
		Sensor_144,
		Sensor_145,
		Sensor_146,
		Sensor_147,
		Sensor_148,
		Sensor_149,
		Sensor_150,
		Sensor_151,
		Sensor_152,
		Sensor_153,
		Sensor_154,
		Sensor_155,
		Sensor_156,
		Sensor_157,
		Sensor_158,
		Sensor_159,
		Sensor_160,
		Sensor_161,
		Sensor_162,
		Sensor_163,
		Sensor_164,
		Sensor_165,
		Sensor_166,
		Sensor_167,
		Sensor_168,
		Sensor_169,
		Sensor_170,
		Sensor_171,
		Sensor_172,
		Sensor_173,
		Sensor_174,
		Sensor_175,
		Sensor_176,
		Sensor_177,
		Sensor_178,
		Sensor_179,
		Sensor_180,
		Sensor_181,
		Sensor_182,
		Sensor_183,
		Sensor_184,
		Sensor_185,
		Sensor_186,
		Sensor_187,
		Sensor_188,
		Sensor_189,
		Sensor_190,
		Sensor_191,
		Sensor_192,
		Sensor_193,
		Sensor_194,
		Sensor_195,
		Sensor_196,
		Sensor_197,
		Sensor_198,
		Sensor_199,
		Sensor_200,
		Sensor_201,
		Sensor_202,
		Sensor_203,
		Sensor_204,
		Sensor_205,
		Sensor_206,
		Sensor_207,
		Sensor_208,
		Sensor_209,
		Sensor_210,
		Sensor_211,
		Sensor_212,
		Sensor_213,
		Sensor_214,
		Sensor_215,
		Sensor_216,
		Sensor_217,
		Sensor_218,
		Sensor_219,
		Sensor_220,
		Sensor_221,
		Sensor_222,
		Sensor_223,
		Sensor_224,
		Sensor_225,
		Sensor_226,
		Sensor_227,
		Sensor_228,
		Sensor_229,
		Sensor_230,
		Sensor_231,
		Sensor_232,
		Sensor_233,
		Sensor_234,
		Sensor_235,
		Sensor_236,
		Sensor_237,
		Sensor_238,
		Sensor_239,
		Sensor_240,
		Sensor_241,
		Sensor_242,
		Sensor_243,
		Sensor_244,
		Sensor_245,
		Sensor_246,
		Sensor_247,
		Sensor_248,
		Sensor_249,
		Sensor_250,
		Sensor_251,
		Sensor_252,
		Sensor_253,
		Sensor_254,
		Sensor_255
	);
ENUM(ValueID_Index_SensorBinary,
		Sensor_1,
		Sensor_2,
		Sensor_3,
		Sensor_4,
		Sensor_5,
		Sensor_6,
		Sensor_7,
		Sensor_8,
		Sensor_9,
		Sensor_10,
		Sensor_11,
		Sensor_12,
		Sensor_13,
		Sensor_14,
		Sensor_15,
		Sensor_16,
		Sensor_17,
		Sensor_18,
		Sensor_19,
		Sensor_20,
		Sensor_21,
		Sensor_22,
		Sensor_23,
		Sensor_24,
		Sensor_25,
		Sensor_26,
		Sensor_27,
		Sensor_28,
		Sensor_29,
		Sensor_30,
		Sensor_31,
		Sensor_32,
		Sensor_33,
		Sensor_34,
		Sensor_35,
		Sensor_36,
		Sensor_37,
		Sensor_38,
		Sensor_39,
		Sensor_40,
		Sensor_41,
		Sensor_42,
		Sensor_43,
		Sensor_44,
		Sensor_45,
		Sensor_46,
		Sensor_47,
		Sensor_48,
		Sensor_49,
		Sensor_50,
		Sensor_51,
		Sensor_52,
		Sensor_53,
		Sensor_54,
		Sensor_55,
		Sensor_56,
		Sensor_57,
		Sensor_58,
		Sensor_59,
		Sensor_60,
		Sensor_61,
		Sensor_62,
		Sensor_63,
		Sensor_64,
		Sensor_65,
		Sensor_66,
		Sensor_67,
		Sensor_68,
		Sensor_69,
		Sensor_70,
		Sensor_71,
		Sensor_72,
		Sensor_73,
		Sensor_74,
		Sensor_75,
		Sensor_76,
		Sensor_77,
		Sensor_78,
		Sensor_79,
		Sensor_80,
		Sensor_81,
		Sensor_82,
		Sensor_83,
		Sensor_84,
		Sensor_85,
		Sensor_86,
		Sensor_87,
		Sensor_88,
		Sensor_89,
		Sensor_90,
		Sensor_91,
		Sensor_92,
		Sensor_93,
		Sensor_94,
		Sensor_95,
		Sensor_96,
		Sensor_97,
		Sensor_98,
		Sensor_99,
		Sensor_100,
		Sensor_101,
		Sensor_102,
		Sensor_103,
		Sensor_104,
		Sensor_105,
		Sensor_106,
		Sensor_107,
		Sensor_108,
		Sensor_109,
		Sensor_110,
		Sensor_111,
		Sensor_112,
		Sensor_113,
		Sensor_114,
		Sensor_115,
		Sensor_116,
		Sensor_117,
		Sensor_118,
		Sensor_119,
		Sensor_120,
		Sensor_121,
		Sensor_122,
		Sensor_123,
		Sensor_124,
		Sensor_125,
		Sensor_126,
		Sensor_127,
		Sensor_128,
		Sensor_129,
		Sensor_130,
		Sensor_131,
		Sensor_132,
		Sensor_133,
		Sensor_134,
		Sensor_135,
		Sensor_136,
		Sensor_137,
		Sensor_138,
		Sensor_139,
		Sensor_140,
		Sensor_141,
		Sensor_142,
		Sensor_143,
		Sensor_144,
		Sensor_145,
		Sensor_146,
		Sensor_147,
		Sensor_148,
		Sensor_149,
		Sensor_150,
		Sensor_151,
		Sensor_152,
		Sensor_153,
		Sensor_154,
		Sensor_155,
		Sensor_156,
		Sensor_157,
		Sensor_158,
		Sensor_159,
		Sensor_160,
		Sensor_161,
		Sensor_162,
		Sensor_163,
		Sensor_164,
		Sensor_165,
		Sensor_166,
		Sensor_167,
		Sensor_168,
		Sensor_169,
		Sensor_170,
		Sensor_171,
		Sensor_172,
		Sensor_173,
		Sensor_174,
		Sensor_175,
		Sensor_176,
		Sensor_177,
		Sensor_178,
		Sensor_179,
		Sensor_180,
		Sensor_181,
		Sensor_182,
		Sensor_183,
		Sensor_184,
		Sensor_185,
		Sensor_186,
		Sensor_187,
		Sensor_188,
		Sensor_189,
		Sensor_190,
		Sensor_191,
		Sensor_192,
		Sensor_193,
		Sensor_194,
		Sensor_195,
		Sensor_196,
		Sensor_197,
		Sensor_198,
		Sensor_199,
		Sensor_200,
		Sensor_201,
		Sensor_202,
		Sensor_203,
		Sensor_204,
		Sensor_205,
		Sensor_206,
		Sensor_207,
		Sensor_208,
		Sensor_209,
		Sensor_210,
		Sensor_211,
		Sensor_212,
		Sensor_213,
		Sensor_214,
		Sensor_215,
		Sensor_216,
		Sensor_217,
		Sensor_218,
		Sensor_219,
		Sensor_220,
		Sensor_221,
		Sensor_222,
		Sensor_223,
		Sensor_224,
		Sensor_225,
		Sensor_226,
		Sensor_227,
		Sensor_228,
		Sensor_229,
		Sensor_230,
		Sensor_231,
		Sensor_232,
		Sensor_233,
		Sensor_234,
		Sensor_235,
		Sensor_236,
		Sensor_237,
		Sensor_238,
		Sensor_239,
		Sensor_240,
		Sensor_241,
		Sensor_242,
		Sensor_243,
		Sensor_244,
		Sensor_245,
		Sensor_246,
		Sensor_247,
		Sensor_248,
		Sensor_249,
		Sensor_250,
		Sensor_251,
		Sensor_252,
		Sensor_253,
		Sensor_254,
		Sensor_255
	);
ENUM(ValueID_Index_SensorMultiLevel,
		Air_Temperature = 1,
		General_Purpose, 
		Luminance,
		Power,
		Humidity,
		Velocity,
		Direction,
		Atmospheric_Pressure,
		Barometric_Pressure,
		Solar_Radiation,
		Dew_Point,
		Rain_Rate,
		Tide_Level,
		Weight,
		Voltage,
		Current,
		Carbon_Dioxide,
		Air_Flow,
		Tank_Capacity,
		Distance,
		Angle_Position,
		Rotation,
		Water_Temperature,
		Soil_Temperature,
		Seismic_Intensity,
		Seismic_Magnitude,
		Ultraviolet,
		Electrical_Resistivity,
		Electrical_Conductivity,
		Loudness,
		Moisture,
		Frequency,
		Time,
		Target_Temperature,
		Particulate_Mater_2_5,
		Formaldehyde_CH20_Level,
		Radon_Concentration,
		Methane_Density,
		Volatile_Organic_Compound,
		Carbon_Monoxide,
		Soil_Humidity,
		Soil_Reactivity,
		Soil_Salinity,
		Heart_Beat,
		Blood_Pressure,
		Muscle_Mass,
		Fat_Mass,
		Bone_Mass,
		Total_Body_Water,
		Basic_Metabolic_Rate,
		Body_Mass_Index,
		X_Axis_Acceleration,
		Y_Axis_Acceleration,
		Z_Axis_Acceleration,
		Smoke_Density,
		Water_Flow,
		Water_Pressure,
		RF_Signal_Strength,
		Particulate_Matter,
		Respiratory_Rate,
		Relative_Modulation,
		Boiler_Water_Temperature,
		Domestic_Hot_Water_Temperature,
		Outside_Temperature,
		Exhaust_Temperature,
		Water_Chlorine,
		Water_Acidity,
		Water_Oxidation_Reduction_Potential,
		Heart_Rate_LF_HF_Ratio,
		Motion_Direction,
		Applied_Force,
		Return_Air_Temperature,
		Supply_Air_Temperature,
		Condenser_Coil_Temperature,
		Evaporator_Coil_Temperature,
		Liquid_Line_Temperature,
		Discharge_Line_Temperature,
		Suction,
		Discharge,
		Defrost_Temperature,
		Ozone,
		Sulfur_Dioxide,
		Nitrogen_Dioxide,
		Ammonia,
		Lead,
		Particulate_Matter_v2,
		Air_Temperature_Units = 256,
		General_Purpose_Units, 
		Luminance_Units,
		Power_Units,
		Humidity_Units,
		Velocity_Units,
		Direction_Units,
		Atmospheric_Pressure_Units,
		Barometric_Pressure_Units,
		Solar_Radiation_Units,
		Dew_Point_Units,
		Rain_Rate_Units,
		Tide_Level_Units,
		Weight_Units,
		Voltage_Units,
		Current_Units,
		Carbon_Dioxide_Units,
		Air_Flow_Units,
		Tank_Capacity_Units,
		Distance_Units,
		Angle_Position_Units,
		Rotation_Units,
		Water_Temperature_Units,
		Soil_Temperature_Units,
		Seismic_Intensity_Units,
		Seismic_Magnitude_Units,
		Ultraviolet_Units,
		Electrical_Resistivity_Units,
		Electrical_Conductivity_Units,
		Loudness_Units,
		Moisture_Units,
		Frequency_Units,
		Time_Units,
		Target_Temperature_Units,
		Particulate_Mater_2_5_Units,
		Formaldehyde_CH20_Level_Units,
		Radon_Concentration_Units,
		Methane_Density_Units,
		Volatile_Organic_Compound_Units,
		Carbon_Monoxide_Units,
		Soil_Humidity_Units,
		Soil_Reactivity_Units,
		Soil_Salinity_Units,
		Heart_Beat_Units,
		Blood_Pressure_Units,
		Muscle_Mass_Units,
		Fat_Mass_Units,
		Bone_Mass_Units,
		Total_Body_Water_Units,
		Basic_Metabolic_Rate_Units,
		Body_Mass_Index_Units,
		X_Axis_Acceleration_Units,
		Y_Axis_Acceleration_Units,
		Z_Axis_Acceleration_Units,
		Smoke_Density_Units,
		Water_Flow_Units,
		Water_Pressure_Units,
		RF_Signal_Strength_Units,
		Particulate_Matter_Units,
		Respiratory_Rate_Units,
		Relative_Modulation_Units,
		Boiler_Water_Temperature_Units,
		Domestic_Hot_Water_Temperature_Units,
		Outside_Temperature_Units,
		Exhaust_Temperature_Units,
		Water_Chlorine_Units,
		Water_Acidity_Units,
		Water_Oxidation_Reduction_Potential_Units,
		Heart_Rate_LF_HF_Ratio_Units,
		Motion_Direction_Units,
		Applied_Force_Units,
		Return_Air_Temperature_Units,
		Supply_Air_Temperature_Units,
		Condenser_Coil_Temperature_Units,
		Evaporator_Coil_Temperature_Units,
		Liquid_Line_Temperature_Units,
		Discharge_Line_Temperature_Units,
		Suction_Units,
		Discharge_Units,
		Defrost_Temperature_Units,
		Ozone_Units,
		Sulfur_Dioxide_Units,
		Nitrogen_Dioxide_Units,
		Ammonia_Units,
		Lead_Units,
		Particulate_Matter_v2_Units
		
	);
ENUM(ValueID_Index_SimpleAV,
		Command = 0
	);
ENUM(ValueID_Index_SoundSwitch,
		Tone_Count = 0,
		Tones = 1,
		Volume = 2,
		Default_Tone = 3
	);
ENUM(ValueID_Index_SwitchAll,
		SwitchAll = 0
	);
ENUM(ValueID_Index_SwitchBinary,
		Level = 0,
		TargetState = 1,
		Duration = 2
	);
ENUM(ValueID_Index_SwitchMultiLevel,
		Level = 0,
		Bright = 1,
		Dim = 2,
		IgnoreStartLevel = 3,
		StartLevel = 4,
		Duration = 5,
		Step = 6,
		Inc = 7,
		Dec = 8,
		TargetValue = 9
	);
ENUM(ValueID_Index_SwitchToggleBinary,
		ToggleSwitch = 0
	);
ENUM(ValueID_Index_SwitchToggleMultilevel,
		Level = 0
	);
ENUM(ValueID_Index_ThermostatFanMode,
		FanMode = 0
	);
ENUM(ValueID_Index_ThermostatFanState,
		FanState = 0
	);
ENUM(ValueID_Index_ThermostatMode,
		Mode = 0
	);
ENUM(ValueID_Index_ThermostatOperatingState,
		OperatingState = 0
	);
ENUM(ValueID_Index_ThermostatSetpoint,
		Unused_0 = 0,
		Heating,
		Cooling,
		Unused_3,
		Unused_4,
		Unused_5,
		Unused_6,
		Furnace,
		DryAir,
		MoistAir,
		AutoChangeover,
		HeatingEcon,
		CoolingEcon,
		AwayHeating,
		CoolingHeating,
		Unused_0_Minimum = 100,
		Heating_Minimum,
		Cooling_Minimum,
		Unused_3_Minimum,
		Unused_4_Minimum,
		Unused_5_Minimum,
		Unused_6_Minimum,
		Furnace_Minimum,
		DryAir_Minimum,
		MoistAir_Minimum,
		AutoChangeOver_Minimum,
		Heating_Econ_Minimum,
		Cooling_Econ_Minimum,
		Away_Heating_Minimum,
		Cooling_Heating_Minimum,
		Unused_0_Maximum = 200,
		Heating_Maximum,
		Cooling_Maximum,
		Unused_3_Maximum,
		Unused_4_Maximum,
		Unused_5_Maximum,
		Unused_6_Maximum,
		Furnace_Maximum,
		DryAir_Maximum,
		MoistAir_Maximum,
		AutoChangeOver_Maximum,
		Heating_Econ_Maximum,
		Cooling_Econ_Maximum,
		Away_Heating_Maximum,
		Cooling_Heating_Maximum
	);
ENUM(ValueID_Index_TimeParameters,
		Date = 0,
		Time = 1,
		Set = 2,
		Refresh = 3
	);
ENUM(ValueID_Index_UserCode,
		Enrollment_Code = 0,
		Code_1,
		Code_2,
		Code_3,
		Code_4,
		Code_5,
		Code_6,
		Code_7,
		Code_8,
		Code_9,
		Code_10,
		Code_11,
		Code_12,
		Code_13,
		Code_14,
		Code_15,
		Code_16,
		Code_17,
		Code_18,
		Code_19,
		Code_20,
		Code_21,
		Code_22,
		Code_23,
		Code_24,
		Code_25,
		Code_26,
		Code_27,
		Code_28,
		Code_29,
		Code_30,
		Code_31,
		Code_32,
		Code_33,
		Code_34,
		Code_35,
		Code_36,
		Code_37,
		Code_38,
		Code_39,
		Code_40,
		Code_41,
		Code_42,
		Code_43,
		Code_44,
		Code_45,
		Code_46,
		Code_47,
		Code_48,
		Code_49,
		Code_50,
		Code_51,
		Code_52,
		Code_53,
		Code_54,
		Code_55,
		Code_56,
		Code_57,
		Code_58,
		Code_59,
		Code_60,
		Code_61,
		Code_62,
		Code_63,
		Code_64,
		Code_65,
		Code_66,
		Code_67,
		Code_68,
		Code_69,
		Code_70,
		Code_71,
		Code_72,
		Code_73,
		Code_74,
		Code_75,
		Code_76,
		Code_77,
		Code_78,
		Code_79,
		Code_80,
		Code_81,
		Code_82,
		Code_83,
		Code_84,
		Code_85,
		Code_86,
		Code_87,
		Code_88,
		Code_89,
		Code_90,
		Code_91,
		Code_92,
		Code_93,
		Code_94,
		Code_95,
		Code_96,
		Code_97,
		Code_98,
		Code_99,
		Code_100,
		Code_101,
		Code_102,
		Code_103,
		Code_104,
		Code_105,
		Code_106,
		Code_107,
		Code_108,
		Code_109,
		Code_110,
		Code_111,
		Code_112,
		Code_113,
		Code_114,
		Code_115,
		Code_116,
		Code_117,
		Code_118,
		Code_119,
		Code_120,
		Code_121,
		Code_122,
		Code_123,
		Code_124,
		Code_125,
		Code_126,
		Code_127,
		Code_128,
		Code_129,
		Code_130,
		Code_131,
		Code_132,
		Code_133,
		Code_134,
		Code_135,
		Code_136,
		Code_137,
		Code_138,
		Code_139,
		Code_140,
		Code_141,
		Code_142,
		Code_143,
		Code_144,
		Code_145,
		Code_146,
		Code_147,
		Code_148,
		Code_149,
		Code_150,
		Code_151,
		Code_152,
		Code_153,
		Code_154,
		Code_155,
		Code_156,
		Code_157,
		Code_158,
		Code_159,
		Code_160,
		Code_161,
		Code_162,
		Code_163,
		Code_164,
		Code_165,
		Code_166,
		Code_167,
		Code_168,
		Code_169,
		Code_170,
		Code_171,
		Code_172,
		Code_173,
		Code_174,
		Code_175,
		Code_176,
		Code_177,
		Code_178,
		Code_179,
		Code_180,
		Code_181,
		Code_182,
		Code_183,
		Code_184,
		Code_185,
		Code_186,
		Code_187,
		Code_188,
		Code_189,
		Code_190,
		Code_191,
		Code_192,
		Code_193,
		Code_194,
		Code_195,
		Code_196,
		Code_197,
		Code_198,
		Code_199,
		Code_200,
		Code_201,
		Code_202,
		Code_203,
		Code_204,
		Code_205,
		Code_206,
		Code_207,
		Code_208,
		Code_209,
		Code_210,
		Code_211,
		Code_212,
		Code_213,
		Code_214,
		Code_215,
		Code_216,
		Code_217,
		Code_218,
		Code_219,
		Code_220,
		Code_221,
		Code_222,
		Code_223,
		Code_224,
		Code_225,
		Code_226,
		Code_227,
		Code_228,
		Code_229,
		Code_230,
		Code_231,
		Code_232,
		Code_233,
		Code_234,
		Code_235,
		Code_236,
		Code_237,
		Code_238,
		Code_239,
		Code_240,
		Code_241,
		Code_242,
		Code_243,
		Code_244,
		Code_245,
		Code_246,
		Code_247,
		Code_248,
		Code_249,
		Code_250,
		Code_251,
		Code_252,
		Code_253,
		Refresh = 255,
		RemoveCode = 256,
		Count = 257,
		RawValue = 258,
		RawValueIndex = 259
	);
ENUM(ValueID_Index_Version,
		Library = 0,
		Protocol = 1,
		Application = 2
	);
ENUM(ValueID_Index_WakeUp,
		Interval = 0,
		Min_Interval = 1,
		Max_Interval = 2,
		Default_Interval = 3,
		Interval_Step = 4
	);
ENUM(ValueID_Index_ZWavePlusInfo,
		Version = 0,
		InstallerIcon = 1,
		UserIcon = 2
	);
#endif
