# /* **************************************************************************
#  *                                                                          *
#  *     (C) Copyright Paul Mensonides 2002.
#  *     Distributed under the Boost Software License, Version 1.0. (See
#  *     accompanying file LICENSE_1_0.txt or copy at
#  *     http://www.boost.org/LICENSE_1_0.txt)
#  *                                                                          *
#  ************************************************************************** */
#
# /* Revised by Edward Diener (2020) */
#
# /* See http://www.boost.org for most recent version. */
#
# ifndef BOOST_PREPROCESSOR_DETAIL_DMC_AUTO_REC_512_HPP
# define BOOST_PREPROCESSOR_DETAIL_DMC_AUTO_REC_512_HPP
#
# include <boost/preprocessor/control/iif.hpp>
#
# /* BOOST_PP_AUTO_REC */
#
# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)
#
# define BOOST_PP_NODE_ENTRY_512(p) BOOST_PP_NODE_256(p)(p)(p)(p)(p)(p)(p)(p)(p)
# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)
# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)
# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)
# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)
# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)
#
# define BOOST_PP_NODE_256(p) BOOST_PP_IIF(p##(256), BOOST_PP_NODE_128, BOOST_PP_NODE_384)
# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p##(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)
#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p##(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)
#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p##(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)
#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p##(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)
#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p##(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)
#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p##(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)
#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p##(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)
#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p##(1), 1, 2)
#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p##(3), 3, 4)
#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p##(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)
#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p##(5), 5, 6)
#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p##(7), 7, 8)
#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p##(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)
#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p##(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)
#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p##(9), 9, 10)
#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p##(11), 11, 12)
#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p##(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)
#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p##(13), 13, 14)
#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p##(15), 15, 16)
#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p##(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)
#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p##(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)
#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p##(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)
#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p##(17), 17, 18)
#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p##(19), 19, 20)
#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p##(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)
#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p##(21), 21, 22)
#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p##(23), 23, 24)
#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p##(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)
#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p##(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)
#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p##(25), 25, 26)
#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p##(27), 27, 28)
#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p##(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)
#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p##(29), 29, 30)
#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p##(31), 31, 32)
#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p##(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)
#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p##(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)
#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p##(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)
#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p##(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)
#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p##(33), 33, 34)
#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p##(35), 35, 36)
#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p##(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)
#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p##(37), 37, 38)
#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p##(39), 39, 40)
#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p##(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)
#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p##(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)
#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p##(41), 41, 42)
#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p##(43), 43, 44)
#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p##(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)
#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p##(45), 45, 46)
#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p##(47), 47, 48)
#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p##(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)
#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p##(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)
#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p##(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)
#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p##(49), 49, 50)
#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p##(51), 51, 52)
#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p##(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)
#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p##(53), 53, 54)
#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p##(55), 55, 56)
#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p##(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)
#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p##(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)
#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p##(57), 57, 58)
#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p##(59), 59, 60)
#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p##(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)
#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p##(61), 61, 62)
#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p##(63), 63, 64)
#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p##(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)
#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p##(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)
#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p##(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)
#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p##(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)
#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p##(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)
#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p##(65), 65, 66)
#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p##(67), 67, 68)
#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p##(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)
#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p##(69), 69, 70)
#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p##(71), 71, 72)
#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p##(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)
#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p##(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)
#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p##(73), 73, 74)
#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p##(75), 75, 76)
#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p##(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)
#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p##(77), 77, 78)
#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p##(79), 79, 80)
#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p##(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)
#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p##(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)
#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p##(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)
#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p##(81), 81, 82)
#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p##(83), 83, 84)
#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p##(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)
#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p##(85), 85, 86)
#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p##(87), 87, 88)
#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p##(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)
#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p##(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)
#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p##(89), 89, 90)
#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p##(91), 91, 92)
#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p##(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)
#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p##(93), 93, 94)
#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p##(95), 95, 96)
#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p##(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)
#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p##(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)
#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p##(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)
#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p##(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)
#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p##(97), 97, 98)
#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p##(99), 99, 100)
#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p##(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)
#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p##(101), 101, 102)
#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p##(103), 103, 104)
#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p##(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)
#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p##(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)
#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p##(105), 105, 106)
#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p##(107), 107, 108)
#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p##(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)
#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p##(109), 109, 110)
#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p##(111), 111, 112)
#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p##(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)
#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p##(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)
#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p##(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)
#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p##(113), 113, 114)
#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p##(115), 115, 116)
#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p##(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)
#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p##(117), 117, 118)
#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p##(119), 119, 120)
#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p##(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)
#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p##(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)
#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p##(121), 121, 122)
#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p##(123), 123, 124)
#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p##(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)
#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p##(125), 125, 126)
#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p##(127), 127, 128)
#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p##(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)
#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p##(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)
#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p##(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)
#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p##(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)
#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p##(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)
#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p##(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)
#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p##(129), 129, 130)
#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p##(131), 131, 132)
#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p##(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)
#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p##(133), 133, 134)
#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p##(135), 135, 136)
#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p##(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)
#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p##(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)
#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p##(137), 137, 138)
#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p##(139), 139, 140)
#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p##(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)
#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p##(141), 141, 142)
#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p##(143), 143, 144)
#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p##(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)
#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p##(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)
#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p##(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)
#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p##(145), 145, 146)
#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p##(147), 147, 148)
#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p##(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)
#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p##(149), 149, 150)
#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p##(151), 151, 152)
#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p##(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)
#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p##(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)
#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p##(153), 153, 154)
#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p##(155), 155, 156)
#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p##(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)
#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p##(157), 157, 158)
#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p##(159), 159, 160)
#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p##(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)
#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p##(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)
#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p##(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)
#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p##(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)
#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p##(161), 161, 162)
#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p##(163), 163, 164)
#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p##(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)
#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p##(165), 165, 166)
#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p##(167), 167, 168)
#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p##(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)
#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p##(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)
#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p##(169), 169, 170)
#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p##(171), 171, 172)
#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p##(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)
#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p##(173), 173, 174)
#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p##(175), 175, 176)
#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p##(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)
#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p##(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)
#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p##(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)
#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p##(177), 177, 178)
#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p##(179), 179, 180)
#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p##(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)
#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p##(181), 181, 182)
#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p##(183), 183, 184)
#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p##(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)
#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p##(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)
#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p##(185), 185, 186)
#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p##(187), 187, 188)
#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p##(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)
#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p##(189), 189, 190)
#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p##(191), 191, 192)
#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p##(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)
#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p##(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)
#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p##(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)
#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p##(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)
#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p##(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)
#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p##(193), 193, 194)
#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p##(195), 195, 196)
#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p##(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)
#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p##(197), 197, 198)
#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p##(199), 199, 200)
#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p##(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)
#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p##(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)
#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p##(201), 201, 202)
#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p##(203), 203, 204)
#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p##(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)
#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p##(205), 205, 206)
#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p##(207), 207, 208)
#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p##(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)
#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p##(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)
#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p##(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)
#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p##(209), 209, 210)
#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p##(211), 211, 212)
#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p##(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)
#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p##(213), 213, 214)
#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p##(215), 215, 216)
#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p##(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)
#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p##(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)
#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p##(217), 217, 218)
#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p##(219), 219, 220)
#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p##(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)
#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p##(221), 221, 222)
#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p##(223), 223, 224)
#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p##(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)
#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p##(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)
#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p##(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)
#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p##(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)
#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p##(225), 225, 226)
#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p##(227), 227, 228)
#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p##(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)
#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p##(229), 229, 230)
#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p##(231), 231, 232)
#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p##(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)
#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p##(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)
#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p##(233), 233, 234)
#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p##(235), 235, 236)
#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p##(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)
#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p##(237), 237, 238)
#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p##(239), 239, 240)
#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p##(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)
#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p##(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)
#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p##(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)
#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p##(241), 241, 242)
#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p##(243), 243, 244)
#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p##(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)
#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p##(245), 245, 246)
#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p##(247), 247, 248)
#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p##(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)
#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p##(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)
#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p##(249), 249, 250)
#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p##(251), 251, 252)
#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p##(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)
#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p##(253), 253, 254)
#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p##(255), 255, 256)
# define BOOST_PP_NODE_384(p) BOOST_PP_IIF(p##(384), BOOST_PP_NODE_320, BOOST_PP_NODE_448)
#    define BOOST_PP_NODE_320(p) BOOST_PP_IIF(p##(320), BOOST_PP_NODE_288, BOOST_PP_NODE_352)
#        define BOOST_PP_NODE_288(p) BOOST_PP_IIF(p##(288), BOOST_PP_NODE_272, BOOST_PP_NODE_304)
#            define BOOST_PP_NODE_272(p) BOOST_PP_IIF(p##(272), BOOST_PP_NODE_264, BOOST_PP_NODE_280)
#                define BOOST_PP_NODE_264(p) BOOST_PP_IIF(p##(264), BOOST_PP_NODE_260, BOOST_PP_NODE_268)
#                    define BOOST_PP_NODE_260(p) BOOST_PP_IIF(p##(260), BOOST_PP_NODE_258, BOOST_PP_NODE_262)
#                        define BOOST_PP_NODE_258(p) BOOST_PP_IIF(p##(258), BOOST_PP_NODE_257, BOOST_PP_NODE_259)
#                            define BOOST_PP_NODE_257(p) BOOST_PP_IIF(p##(257), 257, 258)
#                            define BOOST_PP_NODE_259(p) BOOST_PP_IIF(p##(259), 259, 260)
#                        define BOOST_PP_NODE_262(p) BOOST_PP_IIF(p##(262), BOOST_PP_NODE_261, BOOST_PP_NODE_263)
#                            define BOOST_PP_NODE_261(p) BOOST_PP_IIF(p##(261), 261, 262)
#                            define BOOST_PP_NODE_263(p) BOOST_PP_IIF(p##(263), 263, 264)
#                    define BOOST_PP_NODE_268(p) BOOST_PP_IIF(p##(268), BOOST_PP_NODE_266, BOOST_PP_NODE_270)
#                        define BOOST_PP_NODE_266(p) BOOST_PP_IIF(p##(266), BOOST_PP_NODE_265, BOOST_PP_NODE_267)
#                            define BOOST_PP_NODE_265(p) BOOST_PP_IIF(p##(265), 265, 266)
#                            define BOOST_PP_NODE_267(p) BOOST_PP_IIF(p##(267), 267, 268)
#                        define BOOST_PP_NODE_270(p) BOOST_PP_IIF(p##(270), BOOST_PP_NODE_269, BOOST_PP_NODE_271)
#                            define BOOST_PP_NODE_269(p) BOOST_PP_IIF(p##(269), 269, 270)
#                            define BOOST_PP_NODE_271(p) BOOST_PP_IIF(p##(271), 271, 272)
#                define BOOST_PP_NODE_280(p) BOOST_PP_IIF(p##(280), BOOST_PP_NODE_276, BOOST_PP_NODE_284)
#                    define BOOST_PP_NODE_276(p) BOOST_PP_IIF(p##(276), BOOST_PP_NODE_274, BOOST_PP_NODE_278)
#                        define BOOST_PP_NODE_274(p) BOOST_PP_IIF(p##(274), BOOST_PP_NODE_273, BOOST_PP_NODE_275)
#                            define BOOST_PP_NODE_273(p) BOOST_PP_IIF(p##(273), 273, 274)
#                            define BOOST_PP_NODE_275(p) BOOST_PP_IIF(p##(275), 275, 276)
#                        define BOOST_PP_NODE_278(p) BOOST_PP_IIF(p##(278), BOOST_PP_NODE_277, BOOST_PP_NODE_279)
#                            define BOOST_PP_NODE_277(p) BOOST_PP_IIF(p##(277), 277, 278)
#                            define BOOST_PP_NODE_279(p) BOOST_PP_IIF(p##(279), 279, 280)
#                    define BOOST_PP_NODE_284(p) BOOST_PP_IIF(p##(284), BOOST_PP_NODE_282, BOOST_PP_NODE_286)
#                        define BOOST_PP_NODE_282(p) BOOST_PP_IIF(p##(282), BOOST_PP_NODE_281, BOOST_PP_NODE_283)
#                            define BOOST_PP_NODE_281(p) BOOST_PP_IIF(p##(281), 281, 282)
#                            define BOOST_PP_NODE_283(p) BOOST_PP_IIF(p##(283), 283, 284)
#                        define BOOST_PP_NODE_286(p) BOOST_PP_IIF(p##(286), BOOST_PP_NODE_285, BOOST_PP_NODE_287)
#                            define BOOST_PP_NODE_285(p) BOOST_PP_IIF(p##(285), 285, 286)
#                            define BOOST_PP_NODE_287(p) BOOST_PP_IIF(p##(287), 287, 288)
#            define BOOST_PP_NODE_304(p) BOOST_PP_IIF(p##(304), BOOST_PP_NODE_296, BOOST_PP_NODE_312)
#                define BOOST_PP_NODE_296(p) BOOST_PP_IIF(p##(296), BOOST_PP_NODE_292, BOOST_PP_NODE_300)
#                    define BOOST_PP_NODE_292(p) BOOST_PP_IIF(p##(292), BOOST_PP_NODE_290, BOOST_PP_NODE_294)
#                        define BOOST_PP_NODE_290(p) BOOST_PP_IIF(p##(290), BOOST_PP_NODE_289, BOOST_PP_NODE_291)
#                            define BOOST_PP_NODE_289(p) BOOST_PP_IIF(p##(289), 289, 290)
#                            define BOOST_PP_NODE_291(p) BOOST_PP_IIF(p##(291), 291, 292)
#                        define BOOST_PP_NODE_294(p) BOOST_PP_IIF(p##(294), BOOST_PP_NODE_293, BOOST_PP_NODE_295)
#                            define BOOST_PP_NODE_293(p) BOOST_PP_IIF(p##(293), 293, 294)
#                            define BOOST_PP_NODE_295(p) BOOST_PP_IIF(p##(295), 295, 296)
#                    define BOOST_PP_NODE_300(p) BOOST_PP_IIF(p##(300), BOOST_PP_NODE_298, BOOST_PP_NODE_302)
#                        define BOOST_PP_NODE_298(p) BOOST_PP_IIF(p##(298), BOOST_PP_NODE_297, BOOST_PP_NODE_299)
#                            define BOOST_PP_NODE_297(p) BOOST_PP_IIF(p##(297), 297, 298)
#                            define BOOST_PP_NODE_299(p) BOOST_PP_IIF(p##(299), 299, 300)
#                        define BOOST_PP_NODE_302(p) BOOST_PP_IIF(p##(302), BOOST_PP_NODE_301, BOOST_PP_NODE_303)
#                            define BOOST_PP_NODE_301(p) BOOST_PP_IIF(p##(301), 301, 302)
#                            define BOOST_PP_NODE_303(p) BOOST_PP_IIF(p##(303), 303, 304)
#                define BOOST_PP_NODE_312(p) BOOST_PP_IIF(p##(312), BOOST_PP_NODE_308, BOOST_PP_NODE_316)
#                    define BOOST_PP_NODE_308(p) BOOST_PP_IIF(p##(308), BOOST_PP_NODE_306, BOOST_PP_NODE_310)
#                        define BOOST_PP_NODE_306(p) BOOST_PP_IIF(p##(306), BOOST_PP_NODE_305, BOOST_PP_NODE_307)
#                            define BOOST_PP_NODE_305(p) BOOST_PP_IIF(p##(305), 305, 306)
#                            define BOOST_PP_NODE_307(p) BOOST_PP_IIF(p##(307), 307, 308)
#                        define BOOST_PP_NODE_310(p) BOOST_PP_IIF(p##(310), BOOST_PP_NODE_309, BOOST_PP_NODE_311)
#                            define BOOST_PP_NODE_309(p) BOOST_PP_IIF(p##(309), 309, 310)
#                            define BOOST_PP_NODE_311(p) BOOST_PP_IIF(p##(311), 311, 312)
#                    define BOOST_PP_NODE_316(p) BOOST_PP_IIF(p##(316), BOOST_PP_NODE_314, BOOST_PP_NODE_318)
#                        define BOOST_PP_NODE_314(p) BOOST_PP_IIF(p##(314), BOOST_PP_NODE_313, BOOST_PP_NODE_315)
#                            define BOOST_PP_NODE_313(p) BOOST_PP_IIF(p##(313), 313, 314)
#                            define BOOST_PP_NODE_315(p) BOOST_PP_IIF(p##(315), 315, 316)
#                        define BOOST_PP_NODE_318(p) BOOST_PP_IIF(p##(318), BOOST_PP_NODE_317, BOOST_PP_NODE_319)
#                            define BOOST_PP_NODE_317(p) BOOST_PP_IIF(p##(317), 317, 318)
#                            define BOOST_PP_NODE_319(p) BOOST_PP_IIF(p##(319), 319, 320)
#        define BOOST_PP_NODE_352(p) BOOST_PP_IIF(p##(352), BOOST_PP_NODE_336, BOOST_PP_NODE_368)
#            define BOOST_PP_NODE_336(p) BOOST_PP_IIF(p##(336), BOOST_PP_NODE_328, BOOST_PP_NODE_344)
#                define BOOST_PP_NODE_328(p) BOOST_PP_IIF(p##(328), BOOST_PP_NODE_324, BOOST_PP_NODE_332)
#                    define BOOST_PP_NODE_324(p) BOOST_PP_IIF(p##(324), BOOST_PP_NODE_322, BOOST_PP_NODE_326)
#                        define BOOST_PP_NODE_322(p) BOOST_PP_IIF(p##(322), BOOST_PP_NODE_321, BOOST_PP_NODE_323)
#                            define BOOST_PP_NODE_321(p) BOOST_PP_IIF(p##(321), 321, 322)
#                            define BOOST_PP_NODE_323(p) BOOST_PP_IIF(p##(323), 323, 324)
#                        define BOOST_PP_NODE_326(p) BOOST_PP_IIF(p##(326), BOOST_PP_NODE_325, BOOST_PP_NODE_327)
#                            define BOOST_PP_NODE_325(p) BOOST_PP_IIF(p##(325), 325, 326)
#                            define BOOST_PP_NODE_327(p) BOOST_PP_IIF(p##(327), 327, 328)
#                    define BOOST_PP_NODE_332(p) BOOST_PP_IIF(p##(332), BOOST_PP_NODE_330, BOOST_PP_NODE_334)
#                        define BOOST_PP_NODE_330(p) BOOST_PP_IIF(p##(330), BOOST_PP_NODE_329, BOOST_PP_NODE_331)
#                            define BOOST_PP_NODE_329(p) BOOST_PP_IIF(p##(329), 329, 330)
#                            define BOOST_PP_NODE_331(p) BOOST_PP_IIF(p##(331), 331, 332)
#                        define BOOST_PP_NODE_334(p) BOOST_PP_IIF(p##(334), BOOST_PP_NODE_333, BOOST_PP_NODE_335)
#                            define BOOST_PP_NODE_333(p) BOOST_PP_IIF(p##(333), 333, 334)
#                            define BOOST_PP_NODE_335(p) BOOST_PP_IIF(p##(335), 335, 336)
#                define BOOST_PP_NODE_344(p) BOOST_PP_IIF(p##(344), BOOST_PP_NODE_340, BOOST_PP_NODE_348)
#                    define BOOST_PP_NODE_340(p) BOOST_PP_IIF(p##(340), BOOST_PP_NODE_338, BOOST_PP_NODE_342)
#                        define BOOST_PP_NODE_338(p) BOOST_PP_IIF(p##(338), BOOST_PP_NODE_337, BOOST_PP_NODE_339)
#                            define BOOST_PP_NODE_337(p) BOOST_PP_IIF(p##(337), 337, 338)
#                            define BOOST_PP_NODE_339(p) BOOST_PP_IIF(p##(339), 339, 340)
#                        define BOOST_PP_NODE_342(p) BOOST_PP_IIF(p##(342), BOOST_PP_NODE_341, BOOST_PP_NODE_343)
#                            define BOOST_PP_NODE_341(p) BOOST_PP_IIF(p##(341), 341, 342)
#                            define BOOST_PP_NODE_343(p) BOOST_PP_IIF(p##(343), 343, 344)
#                    define BOOST_PP_NODE_348(p) BOOST_PP_IIF(p##(348), BOOST_PP_NODE_346, BOOST_PP_NODE_350)
#                        define BOOST_PP_NODE_346(p) BOOST_PP_IIF(p##(346), BOOST_PP_NODE_345, BOOST_PP_NODE_347)
#                            define BOOST_PP_NODE_345(p) BOOST_PP_IIF(p##(345), 345, 346)
#                            define BOOST_PP_NODE_347(p) BOOST_PP_IIF(p##(347), 347, 348)
#                        define BOOST_PP_NODE_350(p) BOOST_PP_IIF(p##(350), BOOST_PP_NODE_349, BOOST_PP_NODE_351)
#                            define BOOST_PP_NODE_349(p) BOOST_PP_IIF(p##(349), 349, 350)
#                            define BOOST_PP_NODE_351(p) BOOST_PP_IIF(p##(351), 351, 352)
#            define BOOST_PP_NODE_368(p) BOOST_PP_IIF(p##(368), BOOST_PP_NODE_360, BOOST_PP_NODE_376)
#                define BOOST_PP_NODE_360(p) BOOST_PP_IIF(p##(360), BOOST_PP_NODE_356, BOOST_PP_NODE_364)
#                    define BOOST_PP_NODE_356(p) BOOST_PP_IIF(p##(356), BOOST_PP_NODE_354, BOOST_PP_NODE_358)
#                        define BOOST_PP_NODE_354(p) BOOST_PP_IIF(p##(354), BOOST_PP_NODE_353, BOOST_PP_NODE_355)
#                            define BOOST_PP_NODE_353(p) BOOST_PP_IIF(p##(353), 353, 354)
#                            define BOOST_PP_NODE_355(p) BOOST_PP_IIF(p##(355), 355, 356)
#                        define BOOST_PP_NODE_358(p) BOOST_PP_IIF(p##(358), BOOST_PP_NODE_357, BOOST_PP_NODE_359)
#                            define BOOST_PP_NODE_357(p) BOOST_PP_IIF(p##(357), 357, 358)
#                            define BOOST_PP_NODE_359(p) BOOST_PP_IIF(p##(359), 359, 360)
#                    define BOOST_PP_NODE_364(p) BOOST_PP_IIF(p##(364), BOOST_PP_NODE_362, BOOST_PP_NODE_366)
#                        define BOOST_PP_NODE_362(p) BOOST_PP_IIF(p##(362), BOOST_PP_NODE_361, BOOST_PP_NODE_363)
#                            define BOOST_PP_NODE_361(p) BOOST_PP_IIF(p##(361), 361, 362)
#                            define BOOST_PP_NODE_363(p) BOOST_PP_IIF(p##(363), 363, 364)
#                        define BOOST_PP_NODE_366(p) BOOST_PP_IIF(p##(366), BOOST_PP_NODE_365, BOOST_PP_NODE_367)
#                            define BOOST_PP_NODE_365(p) BOOST_PP_IIF(p##(365), 365, 366)
#                            define BOOST_PP_NODE_367(p) BOOST_PP_IIF(p##(367), 367, 368)
#                define BOOST_PP_NODE_376(p) BOOST_PP_IIF(p##(376), BOOST_PP_NODE_372, BOOST_PP_NODE_380)
#                    define BOOST_PP_NODE_372(p) BOOST_PP_IIF(p##(372), BOOST_PP_NODE_370, BOOST_PP_NODE_374)
#                        define BOOST_PP_NODE_370(p) BOOST_PP_IIF(p##(370), BOOST_PP_NODE_369, BOOST_PP_NODE_371)
#                            define BOOST_PP_NODE_369(p) BOOST_PP_IIF(p##(369), 369, 370)
#                            define BOOST_PP_NODE_371(p) BOOST_PP_IIF(p##(371), 371, 372)
#                        define BOOST_PP_NODE_374(p) BOOST_PP_IIF(p##(374), BOOST_PP_NODE_373, BOOST_PP_NODE_375)
#                            define BOOST_PP_NODE_373(p) BOOST_PP_IIF(p##(373), 373, 374)
#                            define BOOST_PP_NODE_375(p) BOOST_PP_IIF(p##(375), 375, 376)
#                    define BOOST_PP_NODE_380(p) BOOST_PP_IIF(p##(380), BOOST_PP_NODE_378, BOOST_PP_NODE_382)
#                        define BOOST_PP_NODE_378(p) BOOST_PP_IIF(p##(378), BOOST_PP_NODE_377, BOOST_PP_NODE_379)
#                            define BOOST_PP_NODE_377(p) BOOST_PP_IIF(p##(377), 377, 378)
#                            define BOOST_PP_NODE_379(p) BOOST_PP_IIF(p##(379), 379, 380)
#                        define BOOST_PP_NODE_382(p) BOOST_PP_IIF(p##(382), BOOST_PP_NODE_381, BOOST_PP_NODE_383)
#                            define BOOST_PP_NODE_381(p) BOOST_PP_IIF(p##(381), 381, 382)
#                            define BOOST_PP_NODE_383(p) BOOST_PP_IIF(p##(383), 383, 384)
#    define BOOST_PP_NODE_448(p) BOOST_PP_IIF(p##(448), BOOST_PP_NODE_416, BOOST_PP_NODE_480)
#        define BOOST_PP_NODE_416(p) BOOST_PP_IIF(p##(416), BOOST_PP_NODE_400, BOOST_PP_NODE_432)
#            define BOOST_PP_NODE_400(p) BOOST_PP_IIF(p##(400), BOOST_PP_NODE_392, BOOST_PP_NODE_408)
#                define BOOST_PP_NODE_392(p) BOOST_PP_IIF(p##(392), BOOST_PP_NODE_388, BOOST_PP_NODE_396)
#                    define BOOST_PP_NODE_388(p) BOOST_PP_IIF(p##(388), BOOST_PP_NODE_386, BOOST_PP_NODE_390)
#                        define BOOST_PP_NODE_386(p) BOOST_PP_IIF(p##(386), BOOST_PP_NODE_385, BOOST_PP_NODE_387)
#                            define BOOST_PP_NODE_385(p) BOOST_PP_IIF(p##(385), 385, 386)
#                            define BOOST_PP_NODE_387(p) BOOST_PP_IIF(p##(387), 387, 388)
#                        define BOOST_PP_NODE_390(p) BOOST_PP_IIF(p##(390), BOOST_PP_NODE_389, BOOST_PP_NODE_391)
#                            define BOOST_PP_NODE_389(p) BOOST_PP_IIF(p##(389), 389, 390)
#                            define BOOST_PP_NODE_391(p) BOOST_PP_IIF(p##(391), 391, 392)
#                    define BOOST_PP_NODE_396(p) BOOST_PP_IIF(p##(396), BOOST_PP_NODE_394, BOOST_PP_NODE_398)
#                        define BOOST_PP_NODE_394(p) BOOST_PP_IIF(p##(394), BOOST_PP_NODE_393, BOOST_PP_NODE_395)
#                            define BOOST_PP_NODE_393(p) BOOST_PP_IIF(p##(393), 393, 394)
#                            define BOOST_PP_NODE_395(p) BOOST_PP_IIF(p##(395), 395, 396)
#                        define BOOST_PP_NODE_398(p) BOOST_PP_IIF(p##(398), BOOST_PP_NODE_397, BOOST_PP_NODE_399)
#                            define BOOST_PP_NODE_397(p) BOOST_PP_IIF(p##(397), 397, 398)
#                            define BOOST_PP_NODE_399(p) BOOST_PP_IIF(p##(399), 399, 400)
#                define BOOST_PP_NODE_408(p) BOOST_PP_IIF(p##(408), BOOST_PP_NODE_404, BOOST_PP_NODE_412)
#                    define BOOST_PP_NODE_404(p) BOOST_PP_IIF(p##(404), BOOST_PP_NODE_402, BOOST_PP_NODE_406)
#                        define BOOST_PP_NODE_402(p) BOOST_PP_IIF(p##(402), BOOST_PP_NODE_401, BOOST_PP_NODE_403)
#                            define BOOST_PP_NODE_401(p) BOOST_PP_IIF(p##(401), 401, 402)
#                            define BOOST_PP_NODE_403(p) BOOST_PP_IIF(p##(403), 403, 404)
#                        define BOOST_PP_NODE_406(p) BOOST_PP_IIF(p##(406), BOOST_PP_NODE_405, BOOST_PP_NODE_407)
#                            define BOOST_PP_NODE_405(p) BOOST_PP_IIF(p##(405), 405, 406)
#                            define BOOST_PP_NODE_407(p) BOOST_PP_IIF(p##(407), 407, 408)
#                    define BOOST_PP_NODE_412(p) BOOST_PP_IIF(p##(412), BOOST_PP_NODE_410, BOOST_PP_NODE_414)
#                        define BOOST_PP_NODE_410(p) BOOST_PP_IIF(p##(410), BOOST_PP_NODE_409, BOOST_PP_NODE_411)
#                            define BOOST_PP_NODE_409(p) BOOST_PP_IIF(p##(409), 409, 410)
#                            define BOOST_PP_NODE_411(p) BOOST_PP_IIF(p##(411), 411, 412)
#                        define BOOST_PP_NODE_414(p) BOOST_PP_IIF(p##(414), BOOST_PP_NODE_413, BOOST_PP_NODE_415)
#                            define BOOST_PP_NODE_413(p) BOOST_PP_IIF(p##(413), 413, 414)
#                            define BOOST_PP_NODE_415(p) BOOST_PP_IIF(p##(415), 415, 416)
#            define BOOST_PP_NODE_432(p) BOOST_PP_IIF(p##(432), BOOST_PP_NODE_424, BOOST_PP_NODE_440)
#                define BOOST_PP_NODE_424(p) BOOST_PP_IIF(p##(424), BOOST_PP_NODE_420, BOOST_PP_NODE_428)
#                    define BOOST_PP_NODE_420(p) BOOST_PP_IIF(p##(420), BOOST_PP_NODE_418, BOOST_PP_NODE_422)
#                        define BOOST_PP_NODE_418(p) BOOST_PP_IIF(p##(418), BOOST_PP_NODE_417, BOOST_PP_NODE_419)
#                            define BOOST_PP_NODE_417(p) BOOST_PP_IIF(p##(417), 417, 418)
#                            define BOOST_PP_NODE_419(p) BOOST_PP_IIF(p##(419), 419, 420)
#                        define BOOST_PP_NODE_422(p) BOOST_PP_IIF(p##(422), BOOST_PP_NODE_421, BOOST_PP_NODE_423)
#                            define BOOST_PP_NODE_421(p) BOOST_PP_IIF(p##(421), 421, 422)
#                            define BOOST_PP_NODE_423(p) BOOST_PP_IIF(p##(423), 423, 424)
#                    define BOOST_PP_NODE_428(p) BOOST_PP_IIF(p##(428), BOOST_PP_NODE_426, BOOST_PP_NODE_430)
#                        define BOOST_PP_NODE_426(p) BOOST_PP_IIF(p##(426), BOOST_PP_NODE_425, BOOST_PP_NODE_427)
#                            define BOOST_PP_NODE_425(p) BOOST_PP_IIF(p##(425), 425, 426)
#                            define BOOST_PP_NODE_427(p) BOOST_PP_IIF(p##(427), 427, 428)
#                        define BOOST_PP_NODE_430(p) BOOST_PP_IIF(p##(430), BOOST_PP_NODE_429, BOOST_PP_NODE_431)
#                            define BOOST_PP_NODE_429(p) BOOST_PP_IIF(p##(429), 429, 430)
#                            define BOOST_PP_NODE_431(p) BOOST_PP_IIF(p##(431), 431, 432)
#                define BOOST_PP_NODE_440(p) BOOST_PP_IIF(p##(440), BOOST_PP_NODE_436, BOOST_PP_NODE_444)
#                    define BOOST_PP_NODE_436(p) BOOST_PP_IIF(p##(436), BOOST_PP_NODE_434, BOOST_PP_NODE_438)
#                        define BOOST_PP_NODE_434(p) BOOST_PP_IIF(p##(434), BOOST_PP_NODE_433, BOOST_PP_NODE_435)
#                            define BOOST_PP_NODE_433(p) BOOST_PP_IIF(p##(433), 433, 434)
#                            define BOOST_PP_NODE_435(p) BOOST_PP_IIF(p##(435), 435, 436)
#                        define BOOST_PP_NODE_438(p) BOOST_PP_IIF(p##(438), BOOST_PP_NODE_437, BOOST_PP_NODE_439)
#                            define BOOST_PP_NODE_437(p) BOOST_PP_IIF(p##(437), 437, 438)
#                            define BOOST_PP_NODE_439(p) BOOST_PP_IIF(p##(439), 439, 440)
#                    define BOOST_PP_NODE_444(p) BOOST_PP_IIF(p##(444), BOOST_PP_NODE_442, BOOST_PP_NODE_446)
#                        define BOOST_PP_NODE_442(p) BOOST_PP_IIF(p##(442), BOOST_PP_NODE_441, BOOST_PP_NODE_443)
#                            define BOOST_PP_NODE_441(p) BOOST_PP_IIF(p##(441), 441, 442)
#                            define BOOST_PP_NODE_443(p) BOOST_PP_IIF(p##(443), 443, 444)
#                        define BOOST_PP_NODE_446(p) BOOST_PP_IIF(p##(446), BOOST_PP_NODE_445, BOOST_PP_NODE_447)
#                            define BOOST_PP_NODE_445(p) BOOST_PP_IIF(p##(445), 445, 446)
#                            define BOOST_PP_NODE_447(p) BOOST_PP_IIF(p##(447), 447, 448)
#        define BOOST_PP_NODE_480(p) BOOST_PP_IIF(p##(480), BOOST_PP_NODE_464, BOOST_PP_NODE_496)
#            define BOOST_PP_NODE_464(p) BOOST_PP_IIF(p##(464), BOOST_PP_NODE_456, BOOST_PP_NODE_472)
#                define BOOST_PP_NODE_456(p) BOOST_PP_IIF(p##(456), BOOST_PP_NODE_452, BOOST_PP_NODE_460)
#                    define BOOST_PP_NODE_452(p) BOOST_PP_IIF(p##(452), BOOST_PP_NODE_450, BOOST_PP_NODE_454)
#                        define BOOST_PP_NODE_450(p) BOOST_PP_IIF(p##(450), BOOST_PP_NODE_449, BOOST_PP_NODE_451)
#                            define BOOST_PP_NODE_449(p) BOOST_PP_IIF(p##(449), 449, 450)
#                            define BOOST_PP_NODE_451(p) BOOST_PP_IIF(p##(451), 451, 452)
#                        define BOOST_PP_NODE_454(p) BOOST_PP_IIF(p##(454), BOOST_PP_NODE_453, BOOST_PP_NODE_455)
#                            define BOOST_PP_NODE_453(p) BOOST_PP_IIF(p##(453), 453, 454)
#                            define BOOST_PP_NODE_455(p) BOOST_PP_IIF(p##(455), 455, 456)
#                    define BOOST_PP_NODE_460(p) BOOST_PP_IIF(p##(460), BOOST_PP_NODE_458, BOOST_PP_NODE_462)
#                        define BOOST_PP_NODE_458(p) BOOST_PP_IIF(p##(458), BOOST_PP_NODE_457, BOOST_PP_NODE_459)
#                            define BOOST_PP_NODE_457(p) BOOST_PP_IIF(p##(457), 457, 458)
#                            define BOOST_PP_NODE_459(p) BOOST_PP_IIF(p##(459), 459, 460)
#                        define BOOST_PP_NODE_462(p) BOOST_PP_IIF(p##(462), BOOST_PP_NODE_461, BOOST_PP_NODE_463)
#                            define BOOST_PP_NODE_461(p) BOOST_PP_IIF(p##(461), 461, 462)
#                            define BOOST_PP_NODE_463(p) BOOST_PP_IIF(p##(463), 463, 464)
#                define BOOST_PP_NODE_472(p) BOOST_PP_IIF(p##(472), BOOST_PP_NODE_468, BOOST_PP_NODE_476)
#                    define BOOST_PP_NODE_468(p) BOOST_PP_IIF(p##(468), BOOST_PP_NODE_466, BOOST_PP_NODE_470)
#                        define BOOST_PP_NODE_466(p) BOOST_PP_IIF(p##(466), BOOST_PP_NODE_465, BOOST_PP_NODE_467)
#                            define BOOST_PP_NODE_465(p) BOOST_PP_IIF(p##(465), 465, 466)
#                            define BOOST_PP_NODE_467(p) BOOST_PP_IIF(p##(467), 467, 468)
#                        define BOOST_PP_NODE_470(p) BOOST_PP_IIF(p##(470), BOOST_PP_NODE_469, BOOST_PP_NODE_471)
#                            define BOOST_PP_NODE_469(p) BOOST_PP_IIF(p##(469), 469, 470)
#                            define BOOST_PP_NODE_471(p) BOOST_PP_IIF(p##(471), 471, 472)
#                    define BOOST_PP_NODE_476(p) BOOST_PP_IIF(p##(476), BOOST_PP_NODE_474, BOOST_PP_NODE_478)
#                        define BOOST_PP_NODE_474(p) BOOST_PP_IIF(p##(474), BOOST_PP_NODE_473, BOOST_PP_NODE_475)
#                            define BOOST_PP_NODE_473(p) BOOST_PP_IIF(p##(473), 473, 474)
#                            define BOOST_PP_NODE_475(p) BOOST_PP_IIF(p##(475), 475, 476)
#                        define BOOST_PP_NODE_478(p) BOOST_PP_IIF(p##(478), BOOST_PP_NODE_477, BOOST_PP_NODE_479)
#                            define BOOST_PP_NODE_477(p) BOOST_PP_IIF(p##(477), 477, 478)
#                            define BOOST_PP_NODE_479(p) BOOST_PP_IIF(p##(479), 479, 480)
#            define BOOST_PP_NODE_496(p) BOOST_PP_IIF(p##(496), BOOST_PP_NODE_488, BOOST_PP_NODE_504)
#                define BOOST_PP_NODE_488(p) BOOST_PP_IIF(p##(488), BOOST_PP_NODE_484, BOOST_PP_NODE_492)
#                    define BOOST_PP_NODE_484(p) BOOST_PP_IIF(p##(484), BOOST_PP_NODE_482, BOOST_PP_NODE_486)
#                        define BOOST_PP_NODE_482(p) BOOST_PP_IIF(p##(482), BOOST_PP_NODE_481, BOOST_PP_NODE_483)
#                            define BOOST_PP_NODE_481(p) BOOST_PP_IIF(p##(481), 481, 482)
#                            define BOOST_PP_NODE_483(p) BOOST_PP_IIF(p##(483), 483, 484)
#                        define BOOST_PP_NODE_486(p) BOOST_PP_IIF(p##(486), BOOST_PP_NODE_485, BOOST_PP_NODE_487)
#                            define BOOST_PP_NODE_485(p) BOOST_PP_IIF(p##(485), 485, 486)
#                            define BOOST_PP_NODE_487(p) BOOST_PP_IIF(p##(487), 487, 488)
#                    define BOOST_PP_NODE_492(p) BOOST_PP_IIF(p##(492), BOOST_PP_NODE_490, BOOST_PP_NODE_494)
#                        define BOOST_PP_NODE_490(p) BOOST_PP_IIF(p##(490), BOOST_PP_NODE_489, BOOST_PP_NODE_491)
#                            define BOOST_PP_NODE_489(p) BOOST_PP_IIF(p##(489), 489, 490)
#                            define BOOST_PP_NODE_491(p) BOOST_PP_IIF(p##(491), 491, 492)
#                        define BOOST_PP_NODE_494(p) BOOST_PP_IIF(p##(494), BOOST_PP_NODE_493, BOOST_PP_NODE_495)
#                            define BOOST_PP_NODE_493(p) BOOST_PP_IIF(p##(493), 493, 494)
#                            define BOOST_PP_NODE_495(p) BOOST_PP_IIF(p##(495), 495, 496)
#                define BOOST_PP_NODE_504(p) BOOST_PP_IIF(p##(504), BOOST_PP_NODE_500, BOOST_PP_NODE_508)
#                    define BOOST_PP_NODE_500(p) BOOST_PP_IIF(p##(500), BOOST_PP_NODE_498, BOOST_PP_NODE_502)
#                        define BOOST_PP_NODE_498(p) BOOST_PP_IIF(p##(498), BOOST_PP_NODE_497, BOOST_PP_NODE_499)
#                            define BOOST_PP_NODE_497(p) BOOST_PP_IIF(p##(497), 497, 498)
#                            define BOOST_PP_NODE_499(p) BOOST_PP_IIF(p##(499), 499, 500)
#                        define BOOST_PP_NODE_502(p) BOOST_PP_IIF(p##(502), BOOST_PP_NODE_501, BOOST_PP_NODE_503)
#                            define BOOST_PP_NODE_501(p) BOOST_PP_IIF(p##(501), 501, 502)
#                            define BOOST_PP_NODE_503(p) BOOST_PP_IIF(p##(503), 503, 504)
#                    define BOOST_PP_NODE_508(p) BOOST_PP_IIF(p##(508), BOOST_PP_NODE_506, BOOST_PP_NODE_510)
#                        define BOOST_PP_NODE_506(p) BOOST_PP_IIF(p##(506), BOOST_PP_NODE_505, BOOST_PP_NODE_507)
#                            define BOOST_PP_NODE_505(p) BOOST_PP_IIF(p##(505), 505, 506)
#                            define BOOST_PP_NODE_507(p) BOOST_PP_IIF(p##(507), 507, 508)
#                        define BOOST_PP_NODE_510(p) BOOST_PP_IIF(p##(510), BOOST_PP_NODE_509, BOOST_PP_NODE_511)
#                            define BOOST_PP_NODE_509(p) BOOST_PP_IIF(p##(509), 509, 510)
#                            define BOOST_PP_NODE_511(p) BOOST_PP_IIF(p##(511), 511, 512)
#
# endif
