aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrej Rode <andrej.rode@ettus.com>2017-04-03 18:49:58 -0700
committerMartin Braun <martin.braun@ettus.com>2017-12-22 15:03:45 -0800
commit53795c74aead4e6021bc788b788f8ed5b4a0166d (patch)
tree45e4075f3d8ffdee7dff7c72dd665f5c5b0c746c
parent6a12add1560545438e1bebc05efbafd05aace4f9 (diff)
downloaduhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.tar.gz
uhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.tar.bz2
uhd-53795c74aead4e6021bc788b788f8ed5b4a0166d.zip
uhd: add cut-down rpclib source tree and import tool
-rw-r--r--host/lib/deps/0001-rpclib-replace-fmt-with-boost-format-but-leave-it-in.patch155
-rw-r--r--host/lib/deps/0002-rpclib-use-the-real-boost-asio-namespace.patch229
-rw-r--r--host/lib/deps/0003-rpclib-add-boost-system-error_code-and-include-rpc-c.patch104
-rw-r--r--host/lib/deps/CMakeLists.txt18
-rwxr-xr-xhost/lib/deps/import_rpclib.py156
-rw-r--r--host/lib/deps/rpc_CMakeLists.txt32
-rw-r--r--host/lib/deps/rpclib/CHANGELOG.md40
-rw-r--r--host/lib/deps/rpclib/CMakeLists.txt32
-rw-r--r--host/lib/deps/rpclib/LICENSE.md46
-rw-r--r--host/lib/deps/rpclib/README.md97
-rw-r--r--host/lib/deps/rpclib/include/rpc/client.h141
-rw-r--r--host/lib/deps/rpclib/include/rpc/client.inl65
-rw-r--r--host/lib/deps/rpclib/include/rpc/compatibility.h20
-rw-r--r--host/lib/deps/rpclib/include/rpc/config.h34
-rw-r--r--host/lib/deps/rpclib/include/rpc/config.h.in33
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/all.h26
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/any.h21
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/async_writer.h86
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/bool.h21
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/call.h92
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/client_error.h39
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/constant.h17
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/dev_utils.h21
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/func_tools.h26
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/func_traits.h77
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/if.h16
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/invoke.h15
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/is_specialization_of.h20
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/log.h159
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/make_unique.h31
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/not.h17
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/pimpl.h10
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/response.h119
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/server_session.h48
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/thread_group.h40
-rw-r--r--host/lib/deps/rpclib/include/rpc/detail/util.h19
-rw-r--r--host/lib/deps/rpclib/include/rpc/dispatcher.h122
-rw-r--r--host/lib/deps/rpclib/include/rpc/dispatcher.inl74
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack.hpp31
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/adaptor_base.hpp92
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/array_ref.hpp182
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/bool.hpp74
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/fusion.hpp168
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/msgpack_variant.hpp438
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/optional.hpp104
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/string_ref.hpp95
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/char_ptr.hpp165
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/check_container_size.hpp75
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array.hpp146
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_char.hpp97
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_unsigned_char.hpp97
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/forward_list.hpp102
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/shared_ptr.hpp90
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/tuple.hpp184
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unique_ptr.hpp90
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_map.hpp190
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_set.hpp180
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/define.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/deque.hpp116
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_array.hpp3498
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_map.hpp2799
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_msgpack_tuple.hpp13917
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_array.hpp201
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_map.hpp171
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp283
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/ext.hpp245
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/fixint.hpp306
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/float.hpp131
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/int.hpp436
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/list.hpp114
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/map.hpp314
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/msgpack_tuple.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/nil.hpp92
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/pair.hpp91
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/raw.hpp114
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/set.hpp196
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/string.hpp94
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_map.hpp179
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_set.hpp173
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/v4raw.hpp114
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector.hpp129
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_bool.hpp96
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_char.hpp97
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_unsigned_char.hpp97
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/cpp_config.hpp135
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp03_zone.hpp676
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp11_zone.hpp376
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.h46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp68
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/gcc_atomic.h33
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/iterator.hpp46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/meta.hpp59
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/object.h119
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/object.hpp837
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/object_fwd.hpp203
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/pack.h155
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/pack.hpp1098
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/pack_define.h26
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/pack_template.h917
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef.h19
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/alpha.h60
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/arm.h71
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/blackfin.h47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/convex.h67
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ia64.h49
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/m68k.h83
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/mips.h74
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/parisc.h65
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ppc.h73
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/pyramid.h43
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/rs6k.h56
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sparc.h55
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/superh.h68
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys370.h44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys390.h44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86.h38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/32.h87
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/64.h50
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/z.h43
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler.h41
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/borland.h64
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/clang.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/comeau.h62
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/compaq.h67
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/diab.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/digitalmars.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/dignus.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/edg.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ekopath.h58
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc.h69
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc_xml.h53
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/greenhills.h67
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/hp_acc.h62
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/iar.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ibm.h73
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/intel.h66
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/kai.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/llvm.h58
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metaware.h54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metrowerks.h78
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/microtec.h54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/mpw.h64
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/palm.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/pgi.h61
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sgi_mipspro.h67
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sunpro.h67
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/tendra.h54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/visualc.h92
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/watcom.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_cassert.h17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_exception.h15
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/comp_detected.h10
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/endian_compat.h26
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/os_detected.h10
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/platform_detected.h10
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/test.h17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/language.h15
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/language/objc.h43
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdc.h54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdcpp.h124
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library.h14
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c.h18
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/_prefix.h13
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/gnu.h62
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/uc.h48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/vms.h48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/zos.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std.h23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/_prefix.h23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/cxx.h47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/dinkumware.h53
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/libcomo.h48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/modena.h46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/msl.h54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/roguewave.h57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/sgi.h52
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stdcpp3.h54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stlport.h60
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/vacpp.h45
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/make.h89
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os.h31
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/aix.h67
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/amigaos.h47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/android.h46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/beos.h46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd.h95
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/bsdi.h48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/dragonfly.h50
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/free.h60
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/net.h84
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/open.h171
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/cygwin.h46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/haiku.h47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/hpux.h48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/ios.h51
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/irix.h47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/linux.h47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/macos.h66
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/os400.h46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/qnxnto.h60
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/solaris.h47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/unix.h76
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/vms.h53
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/os/windows.h51
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/other.h14
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h205
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/platform.h19
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/mingw.h70
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_desktop.h44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_phone.h42
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_runtime.h44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_store.h42
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/version.h15
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/predef/version_number.h54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor.hpp19
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic.hpp25
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/add.hpp51
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/dec.hpp288
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/detail/div_base.hpp61
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/div.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/inc.hpp288
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mod.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mul.hpp53
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/sub.hpp50
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array.hpp32
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/data.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/detail/get_data.hpp55
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/elem.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/enum.hpp33
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/insert.hpp55
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_back.hpp37
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_front.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_back.hpp35
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_front.hpp35
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/remove.hpp54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/replace.hpp49
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/reverse.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/size.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_list.hpp47
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_seq.hpp46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_tuple.hpp33
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/assert_msg.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/cat.hpp35
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma_if.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison.hpp24
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/equal.hpp34
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater_equal.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less.hpp46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less_equal.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/not_equal.hpp814
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/config.hpp101
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/limits.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control.hpp22
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/deduce_d.hpp22
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/dmc/while.hpp536
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/edg/while.hpp534
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/msvc/while.hpp277
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/while.hpp536
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_if.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_iif.hpp31
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/if.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/iif.hpp34
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/while.hpp312
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug.hpp18
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/assert.hpp44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/error.hpp33
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/line.hpp35
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/dec.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/auto_rec.hpp293
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/check.hpp48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/dmc/auto_rec.hpp286
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_binary.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_nullary.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_unary.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/null.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/split.hpp35
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/empty.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_a_default.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_defaults.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted_params.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expand.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expr_if.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities.hpp23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/apply.hpp34
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/detail/is_empty.hpp55
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/empty.hpp23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/expand.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/identity.hpp23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/intercept.hpp277
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_1.hpp23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty.hpp56
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_or_1.hpp31
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_variadic.hpp57
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/overload.hpp25
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/for.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/identity.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/if.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/inc.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iterate.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration.hpp19
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/finish.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward1.hpp1342
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward2.hpp1338
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward3.hpp1338
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward4.hpp1338
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward5.hpp1338
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp1296
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp1296
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp1296
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp1296
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp1296
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/local.hpp812
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/rlocal.hpp782
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/self.hpp21
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/start.hpp99
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/iterate.hpp82
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/local.hpp26
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/self.hpp19
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/library.hpp36
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/limits.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list.hpp37
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/adt.hpp73
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/append.hpp40
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/at.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/cat.hpp42
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/dmc/fold_left.hpp279
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_left.hpp536
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_right.hpp794
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_left.hpp279
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_right.hpp277
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/enum.hpp41
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/filter.hpp54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/first_n.hpp58
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_left.hpp303
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_right.hpp40
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each.hpp49
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_i.hpp65
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_product.hpp141
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/rest_n.hpp55
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/reverse.hpp40
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/size.hpp58
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_array.hpp155
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_seq.hpp32
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_tuple.hpp61
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/transform.hpp49
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/and.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitand.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitnor.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitor.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitxor.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bool.hpp288
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/compl.hpp36
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/nor.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/not.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/or.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/xor.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/max.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/min.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation.hpp22
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma.hpp21
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma_if.hpp31
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp51
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren.hpp23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren_if.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/remove_parens.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_2nd.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_3rd.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_2nd.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_3rd.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition.hpp32
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_r.hpp22
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_z.hpp22
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/dmc/for.hpp536
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/edg/for.hpp534
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/for.hpp536
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/msvc/for.hpp277
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum.hpp66
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params.hpp41
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp25
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp24
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted.hpp68
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp51
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_params.hpp44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing.hpp63
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp53
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_params.hpp38
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/for.hpp306
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat.hpp825
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp87
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection.hpp18
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/max.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/min.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq.hpp44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/cat.hpp49
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/binary_transform.hpp48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/split.hpp284
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/elem.hpp304
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/enum.hpp288
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/filter.hpp54
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/first_n.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_left.hpp1070
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_right.hpp288
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each.hpp60
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_i.hpp61
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_product.hpp126
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/insert.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_back.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_front.hpp27
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_back.hpp19
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_front.hpp19
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/remove.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/replace.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/rest_n.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/reverse.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/seq.hpp44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/size.hpp547
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/subseq.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_array.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_list.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_tuple.hpp27
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/transform.hpp48
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/counter.hpp25
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/counter.hpp269
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/def.hpp49
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/shared.hpp247
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot1.hpp267
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot2.hpp267
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot3.hpp267
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot4.hpp267
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot5.hpp267
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/slot.hpp32
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/stringize.hpp33
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple.hpp35
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/detail/is_single_return.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/eat.hpp106
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/elem.hpp201
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/enum.hpp22
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/insert.hpp37
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_back.hpp64
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_front.hpp65
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_back.hpp31
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_front.hpp32
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/rem.hpp149
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/remove.hpp64
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/replace.hpp37
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/reverse.hpp117
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/size.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_array.hpp39
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_list.hpp118
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_seq.hpp119
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic.hpp23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/detail/is_single_return.hpp28
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/elem.hpp94
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/size.hpp30
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_array.hpp32
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_list.hpp25
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_seq.hpp25
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_tuple.hpp24
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/while.hpp17
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/wstringize.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.h118
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.hpp160
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/sysdep.h195
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/type.hpp51
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/unpack.h278
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/unpack.hpp1719
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/unpack_define.h97
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/unpack_template.h482
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/util.h23
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/version.h46
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/version.hpp44
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/version_master.h3
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/versioning.hpp77
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.h149
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.hpp300
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.h208
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.hpp175
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/zone.h171
-rw-r--r--host/lib/deps/rpclib/include/rpc/msgpack/zone.hpp29
-rw-r--r--host/lib/deps/rpclib/include/rpc/rpc_error.h52
-rw-r--r--host/lib/deps/rpclib/include/rpc/server.h104
-rw-r--r--host/lib/deps/rpclib/include/rpc/this_handler.h82
-rw-r--r--host/lib/deps/rpclib/include/rpc/this_handler.inl14
-rw-r--r--host/lib/deps/rpclib/include/rpc/this_server.h37
-rw-r--r--host/lib/deps/rpclib/include/rpc/this_session.h44
-rw-r--r--host/lib/deps/rpclib/include/rpc/version.h14
-rw-r--r--host/lib/deps/rpclib/include/rpc/version.h.in14
-rw-r--r--host/lib/deps/rpclib/lib/rpc/client.cc223
-rw-r--r--host/lib/deps/rpclib/lib/rpc/detail/client_error.cc15
-rw-r--r--host/lib/deps/rpclib/lib/rpc/detail/response.cc65
-rw-r--r--host/lib/deps/rpclib/lib/rpc/detail/server_session.cc135
-rw-r--r--host/lib/deps/rpclib/lib/rpc/dispatcher.cc135
-rw-r--r--host/lib/deps/rpclib/lib/rpc/rpc_error.cc24
-rw-r--r--host/lib/deps/rpclib/lib/rpc/server.cc116
-rw-r--r--host/lib/deps/rpclib/lib/rpc/this_handler.cc27
-rw-r--r--host/lib/deps/rpclib/lib/rpc/this_server.cc19
-rw-r--r--host/lib/deps/rpclib/lib/rpc/this_session.cc20
520 files changed, 84485 insertions, 0 deletions
diff --git a/host/lib/deps/0001-rpclib-replace-fmt-with-boost-format-but-leave-it-in.patch b/host/lib/deps/0001-rpclib-replace-fmt-with-boost-format-but-leave-it-in.patch
new file mode 100644
index 000000000..0d3bddc20
--- /dev/null
+++ b/host/lib/deps/0001-rpclib-replace-fmt-with-boost-format-but-leave-it-in.patch
@@ -0,0 +1,155 @@
+From 74505c84e326f8524a374911fcfe5dc29426a274 Mon Sep 17 00:00:00 2001
+From: Andrej Rode <andrej.rode@ettus.com>
+Date: Thu, 6 Apr 2017 15:53:37 -0700
+Subject: [PATCH 1/3] rpclib: replace fmt with boost::format (but leave it in
+ logging)
+
+Signed-off-by: Andrej Rode <andrej.rode@ettus.com>
+---
+ lib/rpc/client.cc | 6 +++---
+ lib/rpc/detail/client_error.cc | 6 +++---
+ lib/rpc/dispatcher.cc | 30 +++++++++++++++---------------
+ lib/rpc/rpc_error.cc | 4 ++--
+ 4 files changed, 23 insertions(+), 23 deletions(-)
+
+diff --git a/lib/rpc/client.cc b/lib/rpc/client.cc
+index 5ab9780..e5d0117 100644
+--- a/lib/rpc/client.cc
++++ b/lib/rpc/client.cc
+@@ -11,7 +11,7 @@
+ #include <unordered_map>
+
+ #include "asio.hpp"
+-#include "format.h"
++#include <boost/format.hpp>
+
+ #include "rpc/detail/async_writer.h"
+ #include "rpc/detail/dev_utils.h"
+@@ -212,8 +212,8 @@ void client::wait_all_responses() {
+
+ RPCLIB_NORETURN void client::throw_timeout(std::string const& func_name) {
+ throw rpc::timeout(
+- RPCLIB_FMT::format("Timeout of {}ms while calling RPC function '{}'",
+- get_timeout(), func_name));
++ str(boost::format("Timeout of %dms while calling RPC function '%s'") %
++ get_timeout() % func_name));
+ }
+
+ client::~client() {
+diff --git a/lib/rpc/detail/client_error.cc b/lib/rpc/detail/client_error.cc
+index 263141f..deea2f6 100644
+--- a/lib/rpc/detail/client_error.cc
++++ b/lib/rpc/detail/client_error.cc
+@@ -1,4 +1,4 @@
+-#include "format.h"
++#include <boost/format.hpp>
+
+ #include "rpc/detail/client_error.h"
+
+@@ -6,8 +6,8 @@ namespace rpc {
+ namespace detail {
+
+ client_error::client_error(code c, const std::string &msg)
+- : what_(RPCLIB_FMT::format("client error C{0:04x}: {1}",
+- static_cast<uint16_t>(c), msg)) {}
++ : what_(str(boost::format("client error C%d: %") %
++ static_cast<uint16_t>(c) % msg)) {}
+
+ const char *client_error::what() const noexcept { return what_.c_str(); }
+ }
+diff --git a/lib/rpc/dispatcher.cc b/lib/rpc/dispatcher.cc
+index e8954b8..c502b80 100644
+--- a/lib/rpc/dispatcher.cc
++++ b/lib/rpc/dispatcher.cc
+@@ -1,5 +1,5 @@
+ #include "rpc/dispatcher.h"
+-#include "format.h"
++#include <boost/format.hpp>
+ #include "rpc/detail/client_error.h"
+ #include "rpc/this_handler.h"
+
+@@ -48,18 +48,18 @@ response dispatcher::dispatch_call(RPCLIB_MSGPACK::object const &msg,
+ return response::make_result(id, std::move(result));
+ } catch (rpc::detail::client_error &e) {
+ return response::make_error(
+- id, RPCLIB_FMT::format("rpclib: {}", e.what()));
++ id, str(boost::format("rpclib: %s") % e.what()));
+ } catch (std::exception &e) {
+ if (!suppress_exceptions) {
+ throw;
+ }
+ return response::make_error(
+ id,
+- RPCLIB_FMT::format("rpclib: function '{0}' (called with {1} "
++ str(boost::format("rpclib: function '%s' (called with %d "
+ "arg(s)) "
+ "threw an exception. The exception "
+- "contained this information: {2}.",
+- name, args.via.array.size, e.what()));
++ "contained this information: %s.") %
++ name % args.via.array.size % e.what()));
+ } catch (rpc::detail::handler_error &) {
+ // doing nothing, the exception was only thrown to
+ // return immediately
+@@ -72,17 +72,17 @@ response dispatcher::dispatch_call(RPCLIB_MSGPACK::object const &msg,
+ }
+ return response::make_error(
+ id,
+- RPCLIB_FMT::format("rpclib: function '{0}' (called with {1} "
++ str(boost::format("rpclib: function '%s' (called with %d "
+ "arg(s)) threw an exception. The exception "
+ "is not derived from std::exception. No "
+- "further information available.",
+- name, args.via.array.size));
++ "further information available.") %
++ name % args.via.array.size));
+ }
+ }
+ return response::make_error(
+- id, RPCLIB_FMT::format("rpclib: server could not find "
+- "function '{0}' with argument count {1}.",
+- name, args.via.array.size));
++ id, str(boost::format("rpclib: server could not find "
++ "function '%s' with argument count %d.") %
++ name % args.via.array.size));
+ }
+
+ response dispatcher::dispatch_notification(RPCLIB_MSGPACK::object const &msg,
+@@ -124,10 +124,10 @@ void dispatcher::enforce_arg_count(std::string const &func, std::size_t found,
+ if (found != expected) {
+ throw client_error(
+ client_error::code::wrong_arity,
+- RPCLIB_FMT::format(
+- "Function '{0}' was called with an invalid number of "
+- "arguments. Expected: {1}, got: {2}",
+- func, expected, found));
++ str(boost::format(
++ "Function '%s' was called with an invalid number of "
++ "arguments. Expected: %d, got: %d") %
++ func % expected % found));
+ }
+ }
+
+diff --git a/lib/rpc/rpc_error.cc b/lib/rpc/rpc_error.cc
+index 8af7006..dcf3c1c 100644
+--- a/lib/rpc/rpc_error.cc
++++ b/lib/rpc/rpc_error.cc
+@@ -1,5 +1,5 @@
+ #include "rpc/rpc_error.h"
+-#include "format.h"
++#include <boost/format.hpp>
+
+ namespace rpc {
+
+@@ -16,7 +16,7 @@ RPCLIB_MSGPACK::object_handle &rpc_error::get_error() { return ob_h_; }
+
+ timeout::timeout(std::string const &what_arg) : std::runtime_error(what_arg) {
+ formatted =
+- RPCLIB_FMT::format("rpc::timeout: {}", std::runtime_error::what());
++ str(boost::format("rpc::timeout: %s") % std::runtime_error::what());
+ }
+
+ const char *timeout::what() const noexcept { return formatted.data(); }
+--
+2.10.2
+
diff --git a/host/lib/deps/0002-rpclib-use-the-real-boost-asio-namespace.patch b/host/lib/deps/0002-rpclib-use-the-real-boost-asio-namespace.patch
new file mode 100644
index 000000000..01577ab99
--- /dev/null
+++ b/host/lib/deps/0002-rpclib-use-the-real-boost-asio-namespace.patch
@@ -0,0 +1,229 @@
+From d20d06421d11b824a1f250757ad9bb602fcccc35 Mon Sep 17 00:00:00 2001
+From: Andrej Rode <andrej.rode@ettus.com>
+Date: Thu, 6 Apr 2017 15:54:59 -0700
+Subject: [PATCH 2/3] rpclib: use the real boost::asio namespace
+
+Signed-off-by: Andrej Rode <andrej.rode@ettus.com>
+---
+ include/rpc/detail/async_writer.h | 16 ++++++++--------
+ include/rpc/detail/server_session.h | 10 +++++-----
+ lib/rpc/client.cc | 20 ++++++++++----------
+ lib/rpc/detail/server_session.cc | 6 +++---
+ lib/rpc/server.cc | 7 +++----
+ 5 files changed, 29 insertions(+), 30 deletions(-)
+
+diff --git a/include/rpc/detail/async_writer.h b/include/rpc/detail/async_writer.h
+index c3ecb02..a44cd29 100644
+--- a/include/rpc/detail/async_writer.h
++++ b/include/rpc/detail/async_writer.h
+@@ -3,7 +3,7 @@
+ #ifndef ASYNC_WRITER_H_HQIRH28I
+ #define ASYNC_WRITER_H_HQIRH28I
+
+-#include "asio.hpp"
++#include <boost/asio.hpp>
+ #include "rpc/msgpack.hpp"
+ #include <condition_variable>
+ #include <deque>
+@@ -19,8 +19,8 @@ namespace detail {
+ //! \brief Common logic for classes that have a write queue with async writing.
+ class async_writer : public std::enable_shared_from_this<async_writer> {
+ public:
+- async_writer(RPCLIB_ASIO::io_service *io,
+- RPCLIB_ASIO::ip::tcp::socket socket)
++ async_writer(boost::asio::io_service *io,
++ boost::asio::ip::tcp::socket socket)
+ : socket_(std::move(socket)), write_strand_(*io), exit_(false) {}
+
+ void do_write() {
+@@ -31,8 +31,8 @@ public:
+ auto &item = write_queue_.front();
+ // the data in item remains valid until the handler is called
+ // since it will still be in the queue physically until then.
+- RPCLIB_ASIO::async_write(
+- socket_, RPCLIB_ASIO::buffer(item.data(), item.size()),
++ boost::asio::async_write(
++ socket_, boost::asio::buffer(item.data(), item.size()),
+ write_strand_.wrap(
+ [this, self](std::error_code ec, std::size_t transferred) {
+ (void)transferred;
+@@ -50,7 +50,7 @@ public:
+ if (exit_) {
+ LOG_INFO("Closing socket");
+ socket_.shutdown(
+- RPCLIB_ASIO::ip::tcp::socket::shutdown_both);
++ boost::asio::ip::tcp::socket::shutdown_both);
+ socket_.close();
+ }
+ }));
+@@ -68,8 +68,8 @@ public:
+ friend class rpc::client;
+
+ protected:
+- RPCLIB_ASIO::ip::tcp::socket socket_;
+- RPCLIB_ASIO::strand write_strand_;
++ boost::asio::ip::tcp::socket socket_;
++ boost::asio::strand write_strand_;
+ std::atomic_bool exit_{false};
+ bool exited_ = false;
+ std::mutex m_exit_;
+diff --git a/include/rpc/detail/server_session.h b/include/rpc/detail/server_session.h
+index 3b96d7d..963b082 100644
+--- a/include/rpc/detail/server_session.h
++++ b/include/rpc/detail/server_session.h
+@@ -3,7 +3,7 @@
+ #ifndef SESSION_H_5KG6ZMAB
+ #define SESSION_H_5KG6ZMAB
+
+-#include "asio.hpp"
++#include <boost/asio.hpp>
+ #include <memory>
+ #include <vector>
+
+@@ -22,8 +22,8 @@ namespace detail {
+
+ class server_session : public async_writer {
+ public:
+- server_session(server *srv, RPCLIB_ASIO::io_service *io,
+- RPCLIB_ASIO::ip::tcp::socket socket,
++ server_session(server *srv, boost::asio::io_service *io,
++ boost::asio::ip::tcp::socket socket,
+ std::shared_ptr<dispatcher> disp, bool suppress_exceptions);
+ void start();
+
+@@ -34,8 +34,8 @@ private:
+
+ private:
+ server* parent_;
+- RPCLIB_ASIO::io_service *io_;
+- RPCLIB_ASIO::strand read_strand_;
++ boost::asio::io_service *io_;
++ boost::asio::strand read_strand_;
+ std::shared_ptr<dispatcher> disp_;
+ RPCLIB_MSGPACK::unpacker pac_;
+ RPCLIB_MSGPACK::sbuffer output_buf_;
+diff --git a/lib/rpc/client.cc b/lib/rpc/client.cc
+index e5d0117..ef9048b 100644
+--- a/lib/rpc/client.cc
++++ b/lib/rpc/client.cc
+@@ -10,15 +10,15 @@
+ #include <thread>
+ #include <unordered_map>
+
+-#include "asio.hpp"
++#include <boost/asio.hpp>
+ #include <boost/format.hpp>
+
+ #include "rpc/detail/async_writer.h"
+ #include "rpc/detail/dev_utils.h"
+ #include "rpc/detail/response.h"
+
+-using namespace RPCLIB_ASIO;
+-using RPCLIB_ASIO::ip::tcp;
++using namespace boost::asio;
++using boost::asio::ip::tcp;
+ using namespace rpc::detail;
+
+ namespace rpc {
+@@ -36,14 +36,14 @@ struct client::impl {
+ is_connected_(false),
+ state_(client::connection_state::initial),
+ writer_(std::make_shared<detail::async_writer>(
+- &io_, RPCLIB_ASIO::ip::tcp::socket(io_))),
++ &io_, boost::asio::ip::tcp::socket(io_))),
+ timeout_(5000) {
+ pac_.reserve_buffer(default_buffer_size);
+ }
+
+ void do_connect(tcp::resolver::iterator endpoint_iterator) {
+ LOG_INFO("Initiating connection.");
+- RPCLIB_ASIO::async_connect(
++ boost::asio::async_connect(
+ writer_->socket_, endpoint_iterator,
+ [this](std::error_code ec, tcp::resolver::iterator) {
+ if (!ec) {
+@@ -63,7 +63,7 @@ struct client::impl {
+ LOG_TRACE("do_read");
+ constexpr std::size_t max_read_bytes = default_buffer_size;
+ writer_->socket_.async_read_some(
+- RPCLIB_ASIO::buffer(pac_.buffer(), max_read_bytes),
++ boost::asio::buffer(pac_.buffer(), max_read_bytes),
+ // I don't think max_read_bytes needs to be captured explicitly
+ // (since it's constexpr), but MSVC insists.
+ [this, max_read_bytes](std::error_code ec, std::size_t length) {
+@@ -103,10 +103,10 @@ struct client::impl {
+ pac_.reserve_buffer(max_read_bytes);
+ }
+ do_read();
+- } else if (ec == RPCLIB_ASIO::error::eof) {
++ } else if (ec == boost::asio::error::eof) {
+ LOG_WARN("The server closed the connection.");
+ state_ = client::connection_state::disconnected;
+- } else if (ec == RPCLIB_ASIO::error::connection_reset) {
++ } else if (ec == boost::asio::error::connection_reset) {
+ // Yes, this should be connection_state::reset,
+ // but on windows, disconnection results in reset. May be
+ // asio bug, may be a windows socket pecularity. Should be
+@@ -132,8 +132,8 @@ struct client::impl {
+ std::pair<std::string, std::promise<RPCLIB_MSGPACK::object_handle>>;
+
+ client *parent_;
+- RPCLIB_ASIO::io_service io_;
+- RPCLIB_ASIO::strand strand_;
++ boost::asio::io_service io_;
++ boost::asio::strand strand_;
+ std::atomic<int> call_idx_; /// The index of the last call made
+ std::unordered_map<uint32_t, call_t> ongoing_calls_;
+ std::string addr_;
+diff --git a/lib/rpc/detail/server_session.cc b/lib/rpc/detail/server_session.cc
+index 15239da..79cfd09 100644
+--- a/lib/rpc/detail/server_session.cc
++++ b/lib/rpc/detail/server_session.cc
+@@ -13,8 +13,8 @@ namespace detail {
+
+ static constexpr std::size_t default_buffer_size = rpc::constants::DEFAULT_BUFFER_SIZE;
+
+-server_session::server_session(server *srv, RPCLIB_ASIO::io_service *io,
+- RPCLIB_ASIO::ip::tcp::socket socket,
++server_session::server_session(server *srv, boost::asio::io_service *io,
++ boost::asio::ip::tcp::socket socket,
+ std::shared_ptr<dispatcher> disp,
+ bool suppress_exceptions)
+ : async_writer(io, std::move(socket)),
+@@ -40,7 +40,7 @@ void server_session::do_read() {
+ auto self(shared_from_this());
+ constexpr std::size_t max_read_bytes = default_buffer_size;
+ socket_.async_read_some(
+- RPCLIB_ASIO::buffer(pac_.buffer(), default_buffer_size),
++ boost::asio::buffer(pac_.buffer(), default_buffer_size),
+ // I don't think max_read_bytes needs to be captured explicitly
+ // (since it's constexpr), but MSVC insists.
+ read_strand_.wrap([this, self, max_read_bytes](std::error_code ec,
+diff --git a/lib/rpc/server.cc b/lib/rpc/server.cc
+index f0b9b05..568da72 100644
+--- a/lib/rpc/server.cc
++++ b/lib/rpc/server.cc
+@@ -6,8 +6,7 @@
+ #include <stdint.h>
+ #include <thread>
+
+-#include "asio.hpp"
+-#include "format.h"
++#include <boost/asio.hpp>
+
+ #include "rpc/detail/dev_utils.h"
+ #include "rpc/detail/log.h"
+@@ -16,8 +15,8 @@
+ #include "rpc/detail/thread_group.h"
+
+ using namespace rpc::detail;
+-using RPCLIB_ASIO::ip::tcp;
+-using namespace RPCLIB_ASIO;
++using boost::asio::ip::tcp;
++using namespace boost::asio;
+
+ namespace rpc {
+
+--
+2.10.2
+
diff --git a/host/lib/deps/0003-rpclib-add-boost-system-error_code-and-include-rpc-c.patch b/host/lib/deps/0003-rpclib-add-boost-system-error_code-and-include-rpc-c.patch
new file mode 100644
index 000000000..f17e12452
--- /dev/null
+++ b/host/lib/deps/0003-rpclib-add-boost-system-error_code-and-include-rpc-c.patch
@@ -0,0 +1,104 @@
+From 6405741d1daab2a3e540571e1e7f9fd4b15be3d8 Mon Sep 17 00:00:00 2001
+From: Andrej Rode <andrej.rode@ettus.com>
+Date: Thu, 6 Apr 2017 15:56:22 -0700
+Subject: [PATCH 3/3] rpclib: add boost::system::error_code and include
+ rpc/config.h
+
+Signed-off-by: Andrej Rode <andrej.rode@ettus.com>
+---
+ include/rpc/detail/async_writer.h | 2 +-
+ include/rpc/detail/response.h | 1 +
+ include/rpc/rpc_error.h | 1 +
+ lib/rpc/client.cc | 4 ++--
+ lib/rpc/detail/server_session.cc | 2 +-
+ lib/rpc/server.cc | 2 +-
+ 6 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/include/rpc/detail/async_writer.h b/include/rpc/detail/async_writer.h
+index a44cd29..941bb1d 100644
+--- a/include/rpc/detail/async_writer.h
++++ b/include/rpc/detail/async_writer.h
+@@ -34,7 +34,7 @@ public:
+ boost::asio::async_write(
+ socket_, boost::asio::buffer(item.data(), item.size()),
+ write_strand_.wrap(
+- [this, self](std::error_code ec, std::size_t transferred) {
++ [this, self](boost::system::error_code ec, std::size_t transferred) {
+ (void)transferred;
+ if (!ec) {
+ write_queue_.pop_front();
+diff --git a/include/rpc/detail/response.h b/include/rpc/detail/response.h
+index 0f69bcb..96131b1 100644
+--- a/include/rpc/detail/response.h
++++ b/include/rpc/detail/response.h
+@@ -6,6 +6,7 @@
+ #include "rpc/detail/log.h"
+ #include "rpc/detail/make_unique.h"
+ #include "rpc/msgpack.hpp"
++#include "rpc/config.h"
+
+ namespace rpc {
+ namespace detail {
+diff --git a/include/rpc/rpc_error.h b/include/rpc/rpc_error.h
+index 6ca62e0..81a5b2c 100644
+--- a/include/rpc/rpc_error.h
++++ b/include/rpc/rpc_error.h
+@@ -6,6 +6,7 @@
+ #include <exception>
+
+ #include "rpc/msgpack.hpp"
++#include "rpc/config.h"
+
+ namespace rpc {
+
+diff --git a/lib/rpc/client.cc b/lib/rpc/client.cc
+index ef9048b..f4d6497 100644
+--- a/lib/rpc/client.cc
++++ b/lib/rpc/client.cc
+@@ -45,7 +45,7 @@ struct client::impl {
+ LOG_INFO("Initiating connection.");
+ boost::asio::async_connect(
+ writer_->socket_, endpoint_iterator,
+- [this](std::error_code ec, tcp::resolver::iterator) {
++ [this](boost::system::error_code ec, tcp::resolver::iterator) {
+ if (!ec) {
+ std::unique_lock<std::mutex> lock(mut_connection_finished_);
+ LOG_INFO("Client connected to {}:{}", addr_, port_);
+@@ -66,7 +66,7 @@ struct client::impl {
+ boost::asio::buffer(pac_.buffer(), max_read_bytes),
+ // I don't think max_read_bytes needs to be captured explicitly
+ // (since it's constexpr), but MSVC insists.
+- [this, max_read_bytes](std::error_code ec, std::size_t length) {
++ [this, max_read_bytes](boost::system::error_code ec, std::size_t length) {
+ if (!ec) {
+ LOG_TRACE("Read chunk of size {}", length);
+ pac_.buffer_consumed(length);
+diff --git a/lib/rpc/detail/server_session.cc b/lib/rpc/detail/server_session.cc
+index 79cfd09..3f1ed48 100644
+--- a/lib/rpc/detail/server_session.cc
++++ b/lib/rpc/detail/server_session.cc
+@@ -43,7 +43,7 @@ void server_session::do_read() {
+ boost::asio::buffer(pac_.buffer(), default_buffer_size),
+ // I don't think max_read_bytes needs to be captured explicitly
+ // (since it's constexpr), but MSVC insists.
+- read_strand_.wrap([this, self, max_read_bytes](std::error_code ec,
++ read_strand_.wrap([this, self, max_read_bytes](boost::system::error_code ec,
+ std::size_t length) {
+ if (!ec) {
+ pac_.buffer_consumed(length);
+diff --git a/lib/rpc/server.cc b/lib/rpc/server.cc
+index 568da72..4facb93 100644
+--- a/lib/rpc/server.cc
++++ b/lib/rpc/server.cc
+@@ -37,7 +37,7 @@ struct server::impl {
+ suppress_exceptions_(false) {}
+
+ void start_accept() {
+- acceptor_.async_accept(socket_, [this](std::error_code ec) {
++ acceptor_.async_accept(socket_, [this](boost::system::error_code ec) {
+ if (!ec) {
+ LOG_INFO("Accepted connection.");
+ auto s = std::make_shared<server_session>(
+--
+2.10.2
+
diff --git a/host/lib/deps/CMakeLists.txt b/host/lib/deps/CMakeLists.txt
new file mode 100644
index 000000000..106f2cd19
--- /dev/null
+++ b/host/lib/deps/CMakeLists.txt
@@ -0,0 +1,18 @@
+#
+# Copyright 2017 Ettus Research (National Instruments)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+ADD_SUBDIRECTORY(rpclib)
diff --git a/host/lib/deps/import_rpclib.py b/host/lib/deps/import_rpclib.py
new file mode 100755
index 000000000..2efd29e60
--- /dev/null
+++ b/host/lib/deps/import_rpclib.py
@@ -0,0 +1,156 @@
+#!/usr/bin/env python
+#
+# Copyright 2017 Ettus Research (National Instruments)
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+"""
+Tool to import external dependency rpclib into UHD tree
+"""
+
+import argparse
+from distutils.dir_util import copy_tree
+import os
+import re
+import shutil
+import subprocess
+import tempfile
+
+from mako.template import Template
+
+IMPORTANT_FILES = [
+ "lib",
+ "include",
+ "LICENSE.md",
+ "README.md",
+ "CHANGELOG.md"
+]
+
+REPLACE_EXPR = [
+ ("RPCLIB_ASIO", "boost::asio"),
+ ("\"asio.hpp\"", "<boost/asio.hpp>"),
+ ("std::error_code", "boost::system::error_code")
+]
+
+
+def fix_naming(workdir):
+ """
+ replace all the things
+ """
+ for root, dirs, files in os.walk(workdir):
+ for cur_file in files:
+ if re.match(".*[hc](?:c?|\.in)|inl",cur_file):
+ new_file = tempfile.NamedTemporaryFile()
+ with new_file as new:
+ with open(os.path.join(root,cur_file), "r") as old:
+ for line in old:
+ for repl in REPLACE_EXPR:
+ line = line.replace(*repl)
+ new.write(line)
+ new.truncate()
+ shutil.copyfile(new_file.name, os.path.join(root, cur_file))
+
+def extract_rpclib_version(rpclib_root):
+ """
+ match version definition in rpclib cmakelists
+ """
+ with open(os.path.join(rpclib_root, "CMakeLists.txt")) as rpclib_cmake:
+ version_dict = {}
+ for line in rpclib_cmake:
+ version_match =re.match("^.*RPCLIB_VERSION_(?P<which>MAJOR|MINOR|PATCH) (?P<number>[0-9]+).*$", line)
+ if version_match:
+ version_dict[version_match.group("which").lower()] = int(version_match.group("number"))
+ if not set(version_dict.keys()).issuperset(set(["major", "minor", "patch"])):
+ raise Exception("couldn't find right version definitions in CMakeLists.txt")
+ return (version_dict["major"], version_dict["minor"], version_dict["patch"])
+
+
+def copy_important_files(target_root, rpclib_root):
+ """
+ copy files/subdirs we consider important
+ """
+ for rpc_file in os.listdir(rpclib_root):
+ if rpc_file in IMPORTANT_FILES:
+ if os.path.isdir(os.path.join(rpclib_root, rpc_file)):
+ copy_tree(
+ os.path.join(rpclib_root, rpc_file),
+ os.path.join(target_root, rpc_file)
+ )
+ else:
+ shutil.copyfile(
+ os.path.join(rpclib_root, rpc_file),
+ os.path.join(target_root, rpc_file)
+ )
+
+
+def patch_rpclib(rpclib_root):
+ """
+ applies all *.patch files in the same directory as the script
+ """
+ curr_dir = os.path.dirname(os.path.realpath(__file__))
+ for rpc_patch in (patch for patch in sorted(os.listdir(curr_dir))
+ if patch.endswith("patch")):
+ print("patching with: {0}".format(rpc_patch))
+ patch = open(os.path.join(curr_dir, rpc_patch), "r")
+ patch_proc = subprocess.Popen(['patch', '--quiet', '-p1'], stdin=patch, cwd=rpclib_root)
+
+
+def extract_rpclib(args):
+ """
+ THE extraction function
+ """
+
+ workdir = tempfile.mkdtemp()
+ rpclib_root = args.rpclib_root
+ new_rpclib_root = tempfile.mkdtemp()
+ copy_tree(rpclib_root, new_rpclib_root)
+ patch_rpclib(new_rpclib_root)
+ copy_important_files(workdir, new_rpclib_root)
+ version = extract_rpclib_version(new_rpclib_root)
+ shutil.rmtree(new_rpclib_root)
+ cmake_template = Template(
+ filename=os.path.join(os.path.dirname(os.path.realpath(__file__)), "rpc_CMakeLists.txt"))
+ real_cmake_file = cmake_template.render(
+ rpclib_major_version=version[0],
+ rpclib_minor_version=version[1],
+ rpclib_patch_version=version[2]
+ )
+ with open(os.path.join(workdir, "CMakeLists.txt"), "w") as cmake_file:
+ cmake_file.write(real_cmake_file)
+ cmake_file.truncate()
+ fix_naming(workdir)
+ copy_tree(workdir, args.rpclib_target, update=True)
+ shutil.rmtree(workdir)
+
+
+def parse_args():
+ """
+ parse cmdline arguments
+ """
+ parser = argparse.ArgumentParser()
+ parser.add_argument("rpclib_root")
+ parser.add_argument('rpclib_target')
+ return parser.parse_args()
+
+
+def main():
+ """
+ Execute this tool
+ """
+ args = parse_args()
+ extract_rpclib(args)
+ return True
+
+if __name__ == "__main__":
+ exit(not main())
diff --git a/host/lib/deps/rpc_CMakeLists.txt b/host/lib/deps/rpc_CMakeLists.txt
new file mode 100644
index 000000000..1ebb1b69c
--- /dev/null
+++ b/host/lib/deps/rpc_CMakeLists.txt
@@ -0,0 +1,32 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
+PROJECT(UHD_RPCLIB CXX)
+
+SET(RPCLIB_DEFAULT_BUFFER_SIZE "1024 << 10" CACHE STRING "Default buffer size")
+
+SET(RPCLIB_VERISION_MAJOR ${rpclib_major_version})
+SET(RPCLIB_VERSION_MINOR ${rpclib_minor_version})
+SET(RPCLIB_VERSION_PATCH ${rpclib_patch_version})
+
+CONFIGURE_FILE(
+ ${"${CMAKE_CURRENT_SOURCE_DIR}/include/rpc/version.h.in"}
+ ${"${CMAKE_CURRENT_BINARY_DIR}/version.h"})
+
+CONFIGURE_FILE(
+ ${"${CMAKE_CURRENT_SOURCE_DIR}/include/rpc/config.h.in"}
+ ${"${CMAKE_CURRENT_BINARY_DIR}/config.h"})
+
+INCLUDE_DIRECTORIES(include)
+INCLUDE_DIRECTORIES(include/rpc)
+ADD_LIBRARY(uhd_rpclib OBJECT
+ lib/rpc/dispatcher.cc
+ lib/rpc/server.cc
+ lib/rpc/client.cc
+ lib/rpc/this_handler.cc
+ lib/rpc/this_session.cc
+ lib/rpc/this_server.cc
+ lib/rpc/rpc_error.cc
+ lib/rpc/detail/server_session.cc
+ lib/rpc/detail/response.cc
+ lib/rpc/detail/client_error.cc
+)
+SET_PROPERTY(TARGET uhd_rpclib PROPERTY POSITION_INDEPENDENT_CODE ON)
diff --git a/host/lib/deps/rpclib/CHANGELOG.md b/host/lib/deps/rpclib/CHANGELOG.md
new file mode 100644
index 000000000..58b137184
--- /dev/null
+++ b/host/lib/deps/rpclib/CHANGELOG.md
@@ -0,0 +1,40 @@
+# Changelog
+
+### 2.0.0
+
+This is an interface-breaking release (hence the major version number increase).
+
+Released on 2017-04-02.
+
+Changes since 1.0.0:
+
+ * **Added C++11 compatibility** (huge thanks to Github user mbr0wn!)
+ * Added global timeout for blocking calls in the client
+ * Replaced the internal pimpl_ptr with std::unique_ptr for better stability
+ * Fixed a build problem with newer clang versions
+ * Contains some preliminary VS2013 work (but it's very far from ready)
+
+
+### 1.0.0
+
+This is the first, complete release of rpclib.
+
+Released on 2017-03-11.
+
+Changes since 1.0.0-preview:
+
+ * A buffer overflow bug was fixed in the server
+ * New unit tests were added
+ * CMake no longer assumes libc++ when clang is used
+ * Documentation fixes
+ * Added the ability to pass extra flags to the build without changing the
+ CMakeLists.txt
+ * Fixed requiring RPCLIB\_MSGPACK macro when not using Findrpclib.cmake
+ * Created [conan](https://conan.io) package
+ * A [benchmark suite](https://github.com/rpclib/benchmarks) was implemented
+
+### 1.0.0-preview1
+
+This is the first public release of rpclib! This release is a preview which means that the actual 1.0.0 will be similar, but hopefully improved. Any feedback is welcome!
+
+Released on 2016-08-28.
diff --git a/host/lib/deps/rpclib/CMakeLists.txt b/host/lib/deps/rpclib/CMakeLists.txt
new file mode 100644
index 000000000..a1298a464
--- /dev/null
+++ b/host/lib/deps/rpclib/CMakeLists.txt
@@ -0,0 +1,32 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
+PROJECT(UHD_RPCLIB CXX)
+
+SET(RPCLIB_DEFAULT_BUFFER_SIZE "1024 << 10" CACHE STRING "Default buffer size")
+
+SET(RPCLIB_VERISION_MAJOR 1)
+SET(RPCLIB_VERSION_MINOR 0)
+SET(RPCLIB_VERSION_PATCH 0)
+
+CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/rpc/version.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/version.h)
+
+CONFIGURE_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/rpc/config.h.in
+ ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+
+INCLUDE_DIRECTORIES(include)
+INCLUDE_DIRECTORIES(include/rpc)
+ADD_LIBRARY(uhd_rpclib OBJECT
+ lib/rpc/dispatcher.cc
+ lib/rpc/server.cc
+ lib/rpc/client.cc
+ lib/rpc/this_handler.cc
+ lib/rpc/this_session.cc
+ lib/rpc/this_server.cc
+ lib/rpc/rpc_error.cc
+ lib/rpc/detail/server_session.cc
+ lib/rpc/detail/response.cc
+ lib/rpc/detail/client_error.cc
+)
+SET_PROPERTY(TARGET uhd_rpclib PROPERTY POSITION_INDEPENDENT_CODE ON)
diff --git a/host/lib/deps/rpclib/LICENSE.md b/host/lib/deps/rpclib/LICENSE.md
new file mode 100644
index 000000000..870bae90c
--- /dev/null
+++ b/host/lib/deps/rpclib/LICENSE.md
@@ -0,0 +1,46 @@
+# License terms for humans
+
+The following is a friendly explanation of the license. For legal purposes, the license below is
+what matters, not this explanation.
+
+This library is licensed under the *MIT license*. What this means for you:
+
+ * You can use it freely in any form you want
+ * You can sell software that uses it
+ * You can sell modified versions of it
+ * You **do not** need to apply the same license to software you develop with it
+ * You **do not** need to apply the same license for modified versions
+ * You **do not** have to attribute usage.
+
+## But
+
+ * There is no guarantee. None. At all. I'm also not obligated to work on a particular issue, or
+ even respond to them (though I'll do my best, I promise).
+
+## Also
+
+This is not part of the license, but if you want to be nice and give back, please let me know
+if you are using the library for anything serious. You can also let the world know that you are using it.
+
+
+# The MIT License
+
+Copyright (c) 2015-2017, Tamás Szelei
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/host/lib/deps/rpclib/README.md b/host/lib/deps/rpclib/README.md
new file mode 100644
index 000000000..2404a18f9
--- /dev/null
+++ b/host/lib/deps/rpclib/README.md
@@ -0,0 +1,97 @@
+
+# rpclib ![MIT](https://img.shields.io/badge/license-MIT-blue.svg) [![Build Status](https://travis-ci.org/rpclib/rpclib.svg?branch=master)](https://travis-ci.org/rpclib/rpclib) [![Build status](https://ci.appveyor.com/api/projects/status/9lft2tlamcox8epq?svg=true)](https://ci.appveyor.com/project/sztomi/callme) [![Coverage Status](https://coveralls.io/repos/github/rpclib/rpclib/badge.svg)](https://coveralls.io/github/rpclib/rpclib?branch=dev) ![Coverity](https://scan.coverity.com/projects/7259/badge.svg?flat=1) [![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000)](https://gitter.im/rpclib/Lobby)
+
+`rpclib` is a RPC library for C++, providing both a client and server implementation. It is built using modern C++14, and as such, requires a recent compiler. Main highlights:
+
+ * Expose functions of your program to be called via RPC (from any language
+ implementing msgpack-rpc)
+ * Call functions through RPC (of programs written in any language)
+ * No IDL to learn
+ * No code generation step to integrate in your build, just C++
+
+# Look&feel
+
+## Server
+
+```cpp
+#include <iostream>
+#include "rpc/server.h"
+
+void foo() {
+ std::cout << "foo was called!" << std::endl;
+}
+
+int main(int argc, char *argv[]) {
+ // Creating a server that listens on port 8080
+ rpc::server srv(8080);
+
+ // Binding the name "foo" to free function foo.
+ // note: the signature is automatically captured
+ srv.bind("foo", &foo);
+
+ // Binding a lambda function to the name "add".
+ srv.bind("add", [](int a, int b) {
+ return a + b;
+ });
+
+ // Run the server loop.
+ srv.run();
+
+ return 0;
+}
+```
+
+When `srv.run()` is called, `rpclib` starts the server loop which listens to incoming connections
+and tries to dispatch calls to the bound functions. The functions are called from the thread where
+`run` was called from. There is also `async_run` that spawns worker threads and returns
+immediately.
+
+## Client
+
+```cpp
+#include <iostream>
+#include "rpc/client.h"
+
+int main() {
+ // Creating a client that connects to the localhost on port 8080
+ rpc::client client("127.0.0.1", 8080);
+
+ // Calling a function with paramters and converting the result to int
+ auto result = client.call("add", 2, 3).as<int>();
+ std::cout << "The result is: " << result << std::endl;
+ return 0;
+}
+```
+
+# Status
+
+All planned 1.0.0 features are done and tested; the current state is production-ready.
+
+# Who uses rpclib?
+
+This list is updated as I learn about more people using the library; let me
+know if you don't want your project listed here.
+
+ * [Microsoft AirSim](https://github.com/Microsoft/AirSim)
+
+# Thanks
+
+`rpclib` builds on the efforts of fantastic C++ projects. In no particular order:
+
+ * [MessagePack implementation for C and C++](https://github.com/msgpack/msgpack-c) by Takatoshi Kondo ([website](http://msgpack.org/))
+ * [asio](https://github.com/chriskohlhoff/asio) by Christopher Kohlhoff ([website](http://think-async.com/Asio))
+ * [cppformat](https://github.com/fmtlib/fmt) (now renamed `fmtlib`, by Victor Zverovich ([website](http://fmtlib.net))
+ * [googletest](https://github.com/google/googletest) by Google
+ * [wheels](https://github.com/rmartinho/wheels) by Martinho Fernandes
+
+Shoutouts to
+
+ * [Appveyor](https://www.appveyor.com/)
+ * [Travis CI](https://travis-ci.org)
+ * [Coveralls.io](https://coveralls.io/)
+ * [Coverity](http://www.coverity.com)
+ * [ASan & TSan](https://github.com/google/sanitizers) helped spotting and resolving many bugs.
+
+
+
+
diff --git a/host/lib/deps/rpclib/include/rpc/client.h b/host/lib/deps/rpclib/include/rpc/client.h
new file mode 100644
index 000000000..624607641
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/client.h
@@ -0,0 +1,141 @@
+#pragma once
+
+#include <future>
+#include <memory>
+
+#include "rpc/config.h"
+#include "rpc/detail/log.h"
+#include "rpc/detail/pimpl.h"
+#include "rpc/msgpack.hpp"
+
+namespace rpc {
+
+//! \brief Implements a client that connects to a msgpack-rpc server and is
+//! able to call functions synchronously or asynchronously. This is the main
+//! interfacing point for implementing client applications.
+//!
+//! Use this class to connect to msgpack-rpc servers and call their exposed
+//! functions. This class supports calling functions synchronously and
+//! asynchronously. When the client object is created, it initiates connecting
+//! to the given server asynchronically and disconnects when it is destroyed.
+class client {
+public:
+ //! \brief Constructs a client.
+ //!
+ //! When a client is constructed, it initiates a connection
+ //! asynchronically. This means that it will not block while the connection
+ //! is established. However, when the first call is performed, it *might*
+ //! block if the connection was not already established.
+ //!
+ //! \param addr The address of the server to connect to. This might be an
+ //! IP address or a host name, too.
+ //! \param port The port on the server to connect to.
+ client(std::string const &addr, uint16_t port);
+
+ //! \cond DOXYGEN_SKIP
+ client(client const &) = delete;
+ //! \endcond
+
+ //! \brief Destructor.
+ //!
+ //! During destruction, the connection to the server is gracefully closed.
+ //! This means that any outstanding reads and writes are completed first.
+ ~client();
+
+ //! \brief Calls a function with the given name and arguments (if any).
+ //!
+ //! \param func_name The name of the function to call on the server.
+ //! \param args A variable number of arguments to pass to the called
+ //! function.
+ //!
+ //! \tparam Args The types of the arguments. Each type in this parameter
+ //! pack have to be serializable by msgpack.
+ //!
+ //! \returns A RPCLIB_MSGPACK::object containing the result of the function (if
+ //! any). To obtain a typed value, use the msgpack API.
+ //!
+ //! \throws rpc::rpc_error if the server responds with an error.
+ template <typename... Args>
+ RPCLIB_MSGPACK::object_handle call(std::string const &func_name, Args... args);
+
+ //! \brief Calls a function asynchronously with the given name and
+ //! arguments.
+ //!
+ //! A call is performed asynchronously in the context of the client, i.e.
+ //! this is not to be confused with parallel execution on the server.
+ //! This function differs from `call` in that it does not wait for the
+ //! result of the function. Instead, it returns a std::future that
+ //! can be used to retrieve the result later.
+ //!
+ //! \param func_name The name of the function to call.
+ //! \param args The arguments to pass to the function.
+ //!
+ //! \tparam Args The types of the arguments.
+ //!
+ //! \returns A std::future, possibly holding a future result
+ //! (which is a RPCLIB_MSGPACK::object).
+ template <typename... Args>
+ std::future<RPCLIB_MSGPACK::object_handle> async_call(std::string const &func_name,
+ Args... args);
+
+ //! \brief Sends a notification with the given name and arguments (if any).
+ //!
+ //! Notifications are a special kind of calls. They can be used to notify
+ //! the server, while not expecting a response. In `rpclib` terminology,
+ //! a notification is like an `async_call` without a return value.
+ //!
+ //! \param func_name The name of the notification to call.
+ //! \param args The arguments to pass to the function.
+ //! \tparam Args THe types of the arguments.
+ //!
+ //! \note This function returns immediately (possibly before the
+ //! notification is written to the socket).
+ template <typename... Args>
+ void send(std::string const &func_name, Args... args);
+
+ //! \brief Returns the timeout setting of this client in milliseconds.
+ //!
+ //! The timeout is applied to synchronous calls. If the timeout expires
+ //! without receiving a response from the server, rpc::timeout exceptio
+ //! will be thrown.
+ //!
+ //! \note The timeout has no effect on async calls. For those,
+ //! the preferred timeout mechanism remains using std::future.
+ //!
+ //! The default value for timeout is 5000ms (5 seconds).
+ uint64_t get_timeout() const;
+
+ //! \brief Sets the timeout for global calls. For more information,
+ //! see client::get_timeout().
+ void set_timeout(uint64_t value);
+
+ //! \brief Enum representing the connection states of the client.
+ enum class connection_state { initial, connected, disconnected, reset };
+
+ //! \brief Returns the current connection state.
+ connection_state get_connection_state() const;
+
+ //! \brief Waits for the completion of all ongoing calls.
+ void wait_all_responses();
+
+private:
+ //! \brief Type of a promise holding a future response.
+ using rsp_promise = std::promise<RPCLIB_MSGPACK::object_handle>;
+
+ enum class request_type { call = 0, notification = 2 };
+
+ void wait_conn();
+ void post(std::shared_ptr<RPCLIB_MSGPACK::sbuffer> buffer, int idx,
+ std::string const& func_name,
+ std::shared_ptr<rsp_promise> p);
+ void post(RPCLIB_MSGPACK::sbuffer *buffer);
+ int get_next_call_idx();
+ RPCLIB_NORETURN void throw_timeout(std::string const& func_name);
+
+private:
+ static constexpr double buffer_grow_factor = 1.8;
+ RPCLIB_DECLARE_PIMPL()
+};
+}
+
+#include "rpc/client.inl"
diff --git a/host/lib/deps/rpclib/include/rpc/client.inl b/host/lib/deps/rpclib/include/rpc/client.inl
new file mode 100644
index 000000000..4ff33294d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/client.inl
@@ -0,0 +1,65 @@
+namespace rpc {
+
+template <typename... Args>
+RPCLIB_MSGPACK::object_handle client::call(std::string const &func_name,
+ Args... args) {
+ RPCLIB_CREATE_LOG_CHANNEL(client)
+ auto future = async_call(func_name, std::forward<Args>(args)...);
+ auto wait_result = future.wait_for(std::chrono::milliseconds(get_timeout()));
+
+ if (wait_result == std::future_status::timeout) {
+ throw_timeout(func_name);
+ }
+
+ return future.get();
+}
+
+template <typename... Args>
+std::future<RPCLIB_MSGPACK::object_handle>
+client::async_call(std::string const &func_name, Args... args) {
+ RPCLIB_CREATE_LOG_CHANNEL(client)
+ wait_conn();
+ using RPCLIB_MSGPACK::object;
+ LOG_DEBUG("Calling {}", func_name);
+
+ auto args_obj = std::make_tuple(args...);
+ const int idx = get_next_call_idx();
+ auto call_obj =
+ std::make_tuple(static_cast<uint8_t>(client::request_type::call), idx,
+ func_name, args_obj);
+
+ auto buffer = std::make_shared<RPCLIB_MSGPACK::sbuffer>();
+ RPCLIB_MSGPACK::pack(*buffer, call_obj);
+
+ // TODO: Change to move semantics when asio starts supporting move-only
+ // handlers in post(). [sztomi, 2016-02-14]
+ auto p = std::make_shared<std::promise<RPCLIB_MSGPACK::object_handle>>();
+ auto ft = p->get_future();
+
+ post(buffer, idx, func_name, p);
+
+ return ft;
+}
+
+//! \brief Sends a notification with the given name and arguments (if any).
+//! \param func_name The name of the notification to call.
+//! \param args The arguments to pass to the function.
+//! \note This function returns when the notification is written to the
+//! socket.
+//! \tparam Args THe types of the arguments.
+template <typename... Args>
+void client::send(std::string const &func_name, Args... args) {
+ RPCLIB_CREATE_LOG_CHANNEL(client)
+ LOG_DEBUG("Sending notification {}", func_name);
+
+ auto args_obj = std::make_tuple(args...);
+ auto call_obj = std::make_tuple(
+ static_cast<uint8_t>(client::request_type::notification), func_name,
+ args_obj);
+
+ auto buffer = new RPCLIB_MSGPACK::sbuffer;
+ RPCLIB_MSGPACK::pack(*buffer, call_obj);
+
+ post(buffer);
+}
+}
diff --git a/host/lib/deps/rpclib/include/rpc/compatibility.h b/host/lib/deps/rpclib/include/rpc/compatibility.h
new file mode 100644
index 000000000..19baa201c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/compatibility.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#ifndef COMPATIBILITY_H_PODKJ3
+#define COMPATIBILITY_H_PODKJ3
+
+#ifndef _MSC_VER
+
+#define RPCLIB_NORETURN [[noreturn]]
+#define RPCLIB_CONSTEXPR constexpr
+#define RPCLIB_FINAL final
+
+#else
+
+#define RPCLIB_NORETURN __declspec(noreturn)
+#define RPCLIB_CONSTEXPR const // bad replacement, but gets the job done
+#define RPCLIB_FINAL
+
+#endif // !_MSC_VER
+
+#endif // COMPATIBILITY_H_PODKJ3
diff --git a/host/lib/deps/rpclib/include/rpc/config.h b/host/lib/deps/rpclib/include/rpc/config.h
new file mode 100644
index 000000000..738ab3956
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/config.h
@@ -0,0 +1,34 @@
+#pragma once
+
+#ifndef CONFIG_H_L7IVDSPZ
+#define CONFIG_H_L7IVDSPZ
+
+#include <cstddef>
+#include <cstdint>
+
+#include "rpc/compatibility.h"
+
+namespace rpc
+{
+
+//! \brief
+struct constants RPCLIB_FINAL {
+ static RPCLIB_CONSTEXPR std::size_t DEFAULT_BUFFER_SIZE = 1024 << 10;
+ static RPCLIB_CONSTEXPR std::uint16_t DEFAULT_PORT = 8080;
+};
+
+} /* rpc */
+
+// This define allows the end user to replace the msgpack dependency.
+// To do so, one has to delete the msgpack headers that are
+// in the rpclib directory. The other messagepack headers don't
+// need to be stored in place of the others. Finally, the RPCLIB_MSGPACK
+// macro has to be changed to the namespace name that this new
+// msgpack uses (usually "msgpack", unless it is changed manually)
+#ifndef RPCLIB_MSGPACK
+#define RPCLIB_MSGPACK clmdep_msgpack
+#endif /* ifndef RPCLIB_MSGPACK */
+
+#define RPCLIB_CXX_STANDARD 11
+
+#endif /* end of include guard: CONFIG_H_L7IVDSPZ */
diff --git a/host/lib/deps/rpclib/include/rpc/config.h.in b/host/lib/deps/rpclib/include/rpc/config.h.in
new file mode 100644
index 000000000..fc36dfde3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/config.h.in
@@ -0,0 +1,33 @@
+#pragma once
+
+#ifndef CONFIG_H_L7IVDSPZ
+#define CONFIG_H_L7IVDSPZ
+
+#include <cstddef>
+
+#include "rpc/compatibility.h"
+
+namespace rpc
+{
+
+//! \brief
+struct constants RPCLIB_FINAL {
+ static RPCLIB_CONSTEXPR std::size_t DEFAULT_BUFFER_SIZE = @RPCLIB_DEFAULT_BUFFER_SIZE@;
+ static RPCLIB_CONSTEXPR std::uint16_t DEFAULT_PORT = @RPCLIB_DEFAULT_PORT@;
+};
+
+} /* rpc */
+
+// This define allows the end user to replace the msgpack dependency.
+// To do so, one has to delete the msgpack headers that are
+// in the rpclib directory. The other messagepack headers don't
+// need to be stored in place of the others. Finally, the RPCLIB_MSGPACK
+// macro has to be changed to the namespace name that this new
+// msgpack uses (usually "msgpack", unless it is changed manually)
+#ifndef RPCLIB_MSGPACK
+#define RPCLIB_MSGPACK clmdep_msgpack
+#endif /* ifndef RPCLIB_MSGPACK */
+
+#define RPCLIB_CXX_STANDARD @RPCLIB_CXX_STANDARD@
+
+#endif /* end of include guard: CONFIG_H_L7IVDSPZ */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/all.h b/host/lib/deps/rpclib/include/rpc/detail/all.h
new file mode 100644
index 000000000..5a060bfb0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/all.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#ifndef ALL_H_H8MAAYCG
+#define ALL_H_H8MAAYCG
+
+#include "rpc/detail/invoke.h"
+#include "rpc/detail/if.h"
+#include "rpc/detail/bool.h"
+
+namespace rpc {
+namespace detail {
+
+//! \brief This type can be used to check multiple conditions.
+//! It will be true_type if all its arguments are true.
+template <typename... T> struct all : true_ {};
+
+template <typename H, typename... T>
+struct all<H, T...>
+ : if_<H, all<T...>, false_> {};
+
+}
+}
+
+
+
+#endif /* end of include guard: ALL_H_H8MAAYCG */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/any.h b/host/lib/deps/rpclib/include/rpc/detail/any.h
new file mode 100644
index 000000000..09ffb81cf
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/any.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#ifndef ANY_H_4G3QUOAN
+#define ANY_H_4G3QUOAN
+
+#include "rpc/detail/invoke.h"
+#include "rpc/detail/if.h"
+#include "rpc/detail/bool.h"
+
+namespace rpc {
+namespace detail {
+
+//! \brief Evaluates to true_type if any of its arguments is true_type.
+template <typename... T> struct any : false_ {};
+
+template <typename H, typename... T>
+struct any<H, T...> : if_<H, true_, any<T...>> {};
+}
+}
+
+#endif /* end of include guard: ANY_H_4G3QUOAN */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/async_writer.h b/host/lib/deps/rpclib/include/rpc/detail/async_writer.h
new file mode 100644
index 000000000..941bb1d8f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/async_writer.h
@@ -0,0 +1,86 @@
+#pragma once
+
+#ifndef ASYNC_WRITER_H_HQIRH28I
+#define ASYNC_WRITER_H_HQIRH28I
+
+#include <boost/asio.hpp>
+#include "rpc/msgpack.hpp"
+#include <condition_variable>
+#include <deque>
+#include <memory>
+#include <thread>
+
+namespace rpc {
+
+class client;
+
+namespace detail {
+
+//! \brief Common logic for classes that have a write queue with async writing.
+class async_writer : public std::enable_shared_from_this<async_writer> {
+public:
+ async_writer(boost::asio::io_service *io,
+ boost::asio::ip::tcp::socket socket)
+ : socket_(std::move(socket)), write_strand_(*io), exit_(false) {}
+
+ void do_write() {
+ if (exit_) {
+ return;
+ }
+ auto self(shared_from_this());
+ auto &item = write_queue_.front();
+ // the data in item remains valid until the handler is called
+ // since it will still be in the queue physically until then.
+ boost::asio::async_write(
+ socket_, boost::asio::buffer(item.data(), item.size()),
+ write_strand_.wrap(
+ [this, self](boost::system::error_code ec, std::size_t transferred) {
+ (void)transferred;
+ if (!ec) {
+ write_queue_.pop_front();
+ if (write_queue_.size() > 0) {
+ if (!exit_) {
+ do_write();
+ }
+ }
+ } else {
+ LOG_ERROR("Error while writing to socket: {}", ec);
+ }
+
+ if (exit_) {
+ LOG_INFO("Closing socket");
+ socket_.shutdown(
+ boost::asio::ip::tcp::socket::shutdown_both);
+ socket_.close();
+ }
+ }));
+ }
+
+ void write(RPCLIB_MSGPACK::sbuffer &&data) {
+ write_queue_.push_back(std::move(data));
+ if (write_queue_.size() > 1) {
+ return; // there is an ongoing write chain so don't start another
+ }
+
+ do_write();
+ }
+
+ friend class rpc::client;
+
+protected:
+ boost::asio::ip::tcp::socket socket_;
+ boost::asio::strand write_strand_;
+ std::atomic_bool exit_{false};
+ bool exited_ = false;
+ std::mutex m_exit_;
+ std::condition_variable cv_exit_;
+
+private:
+ std::deque<RPCLIB_MSGPACK::sbuffer> write_queue_;
+ RPCLIB_CREATE_LOG_CHANNEL(async_writer)
+};
+
+} /* detail */
+} /* rpc */
+
+#endif /* end of include guard: ASYNC_WRITER_H_HQIRH28I */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/bool.h b/host/lib/deps/rpclib/include/rpc/detail/bool.h
new file mode 100644
index 000000000..65f37d371
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/bool.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#ifndef BOOL_H_QLG6S5XZ
+#define BOOL_H_QLG6S5XZ
+
+#include "rpc/detail/constant.h"
+
+namespace rpc {
+namespace detail {
+
+template<bool B>
+using bool_ = constant<bool, B>;
+
+using true_ = bool_<true>;
+
+using false_ = bool_<false>;
+
+}
+}
+
+#endif /* end of include guard: BOOL_H_QLG6S5XZ */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/call.h b/host/lib/deps/rpclib/include/rpc/detail/call.h
new file mode 100644
index 000000000..b5c9bdce0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/call.h
@@ -0,0 +1,92 @@
+#pragma once
+
+#ifndef CALL_H_ZXFACADH
+#define CALL_H_ZXFACADH
+
+#include <tuple>
+#include "rpc/detail/func_tools.h"
+#include "rpc/detail/invoke.h"
+#include "rpc/detail/is_specialization_of.h"
+
+namespace rpc {
+namespace detail {
+
+//! \brief Calls a functor with argument provided directly
+template <typename Functor, typename Arg>
+auto call(Functor f, Arg &&arg)
+ -> decltype(f(std::forward<Arg>(arg)))
+{
+ return f(std::forward<Arg>(arg));
+}
+
+
+// Default behaviour is to assume C++11, overriding RPCLIB_CXX_STANDARD can use
+// newer standards:
+#if RPCLIB_CXX_STANDARD >= 14
+
+template <typename Functor, typename... Args, std::size_t... I>
+decltype(auto) call_helper(Functor func, std::tuple<Args...> &&params,
+ std::index_sequence<I...>) {
+ return func(std::get<I>(params)...);
+}
+
+//! \brief Calls a functor with arguments provided as a tuple
+template <typename Functor, typename... Args>
+decltype(auto) call(Functor f, std::tuple<Args...> &args) {
+ return call_helper(f, std::forward<std::tuple<Args...>>(args),
+ std::index_sequence_for<Args...>{});
+}
+
+#else
+
+// N is number of arguments left in tuple to unpack
+
+template <size_t N>
+struct call_helper
+{
+ template <typename Functor, typename... ArgsT, typename... ArgsF>
+ static auto call(
+ Functor f,
+ std::tuple<ArgsT...>& args_t,
+ ArgsF&&... args_f)
+ -> decltype(call_helper<N-1>::call(
+ f, args_t, std::get<N-1>(args_t),
+ std::forward<ArgsF>(args_f)...))
+ {
+ return call_helper<N-1>::call(
+ f,
+ args_t,
+ std::get<N-1>(args_t),
+ std::forward<ArgsF>(args_f)...
+ );
+ }
+};
+
+template <>
+struct call_helper<0>
+{
+ template <typename Functor, typename... ArgsT, typename... ArgsF>
+ static auto call(
+ Functor f,
+ std::tuple<ArgsT...>&,
+ ArgsF&&... args_f)
+ -> decltype(f(std::forward<ArgsF>(args_f)...))
+ {
+ return f(std::forward<ArgsF>(args_f)...);
+ }
+};
+
+//! \brief Calls a functor with arguments provided as a tuple
+template <typename Functor, typename... ArgsT>
+auto call(Functor f, std::tuple<ArgsT...>& args_t)
+ -> decltype(call_helper<sizeof...(ArgsT)>::call(f, args_t))
+{
+ return call_helper<sizeof...(ArgsT)>::call(f, args_t);
+}
+
+#endif
+
+}
+}
+
+#endif /* end of include guard: CALL_H_ZXFACADH */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/client_error.h b/host/lib/deps/rpclib/include/rpc/detail/client_error.h
new file mode 100644
index 000000000..73edd2ebe
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/client_error.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#ifndef RPC_CLIENT_ERROR_H
+#define RPC_CLIENT_ERROR_H
+
+#include <stdexcept>
+#include <cstdint>
+
+namespace rpc {
+namespace detail {
+
+//! \brief Describes an error that is the result of a connected client
+//! doing something unexpected (e.g. calling a function that does not exist,
+//! wrong number of arguments, etc.)
+class client_error : public std::exception {
+public:
+ //! \brief Error codes used for signaling back to clients. These are used
+ //! to produce google-able error messages (since the msgpack-rpc protocol
+ //! does not define error handling in any more detail than sending an
+ //! object).
+ //! \note Care must be taken to keep these codes stable even between major
+ //! versions.
+ enum class code : uint16_t {
+ no_such_function = 1,
+ wrong_arity = 2,
+ protocol_error = 4
+ };
+
+ client_error(code c, const std::string &msg);
+
+ const char *what() const noexcept;
+
+private:
+ std::string what_;
+};
+}
+}
+
+#endif // RPC_CLIENT_ERROR_H
diff --git a/host/lib/deps/rpclib/include/rpc/detail/constant.h b/host/lib/deps/rpclib/include/rpc/detail/constant.h
new file mode 100644
index 000000000..1c373b3a2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/constant.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#ifndef CONSTANT_H_5CXUYJEW
+#define CONSTANT_H_5CXUYJEW
+
+#include <type_traits>
+
+namespace rpc {
+namespace detail {
+
+template<typename T, T I>
+struct constant : std::integral_constant<T, I> {};
+
+}
+}
+
+#endif /* end of include guard: CONSTANT_H_5CXUYJEW */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/dev_utils.h b/host/lib/deps/rpclib/include/rpc/detail/dev_utils.h
new file mode 100644
index 000000000..325320970
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/dev_utils.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#ifndef DEV_UTILS_H_JQSWE2OS
+#define DEV_UTILS_H_JQSWE2OS
+
+#ifdef RPCLIB_LINUX
+#include "pthread.h"
+#endif
+
+namespace rpc {
+namespace detail {
+inline void name_thread(std::string const &name) {
+ (void)name;
+#ifdef RPCLIB_LINUX
+ pthread_setname_np(pthread_self(), name.c_str());
+#endif
+}
+} /* detail */
+} /* rpc */
+
+#endif /* end of include guard: DEV_UTILS_H_JQSWE2OS */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/func_tools.h b/host/lib/deps/rpclib/include/rpc/detail/func_tools.h
new file mode 100644
index 000000000..4f18e482d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/func_tools.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#ifndef FUNC_TOOLS_H_9FNRD4G2
+#define FUNC_TOOLS_H_9FNRD4G2
+
+#include "rpc/detail/invoke.h"
+#include "rpc/detail/all.h"
+#include "rpc/detail/any.h"
+
+namespace rpc {
+namespace detail {
+
+
+enum class enabled {};
+
+template <typename... C>
+using enable_if = invoke<std::enable_if<all<C...>::value, enabled>>;
+
+template <typename... C>
+using disable_if = invoke<std::enable_if<!any<C...>::value, enabled>>;
+
+
+}
+}
+
+#endif /* end of include guard: FUNC_TOOLS_H_9FNRD4G2 */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/func_traits.h b/host/lib/deps/rpclib/include/rpc/detail/func_traits.h
new file mode 100644
index 000000000..1847d99dc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/func_traits.h
@@ -0,0 +1,77 @@
+#pragma once
+
+#ifndef FUNC_TRAITS_H_HWIWA6G0
+#define FUNC_TRAITS_H_HWIWA6G0
+
+#include "rpc/detail/bool.h"
+
+namespace rpc {
+namespace detail {
+
+template <int N>
+using is_zero = invoke<std::conditional<(N == 0), true_, false_>>;
+
+template <int N, typename... Ts>
+using nth_type = invoke<std::tuple_element<N, std::tuple<Ts...>>>;
+
+namespace tags {
+
+// tags for the function traits, used for tag dispatching
+struct zero_arg {};
+struct nonzero_arg {};
+struct void_result {};
+struct nonvoid_result {};
+
+template <int N> struct arg_count_trait { typedef nonzero_arg type; };
+
+template <> struct arg_count_trait<0> { typedef zero_arg type; };
+
+template <typename T> struct result_trait { typedef nonvoid_result type; };
+
+template <> struct result_trait<void> { typedef void_result type; };
+}
+
+//! \brief Provides a small function traits implementation that
+//! works with a reasonably large set of functors.
+template <typename T>
+struct func_traits : func_traits<decltype(&T::operator())> {};
+
+template <typename C, typename R, typename... Args>
+struct func_traits<R (C::*)(Args...)> : func_traits<R (*)(Args...)> {};
+
+template <typename C, typename R, typename... Args>
+struct func_traits<R (C::*)(Args...) const> : func_traits<R (*)(Args...)> {};
+
+template <typename R, typename... Args> struct func_traits<R (*)(Args...)> {
+ using result_type = R;
+ using arg_count = std::integral_constant<std::size_t, sizeof...(Args)>;
+ using args_type = std::tuple<typename std::decay<Args>::type...>;
+};
+
+template <typename T>
+struct func_kind_info : func_kind_info<decltype(&T::operator())> {};
+
+template <typename C, typename R, typename... Args>
+struct func_kind_info<R (C::*)(Args...)> : func_kind_info<R (*)(Args...)> {};
+
+template <typename C, typename R, typename... Args>
+struct func_kind_info<R (C::*)(Args...) const>
+ : func_kind_info<R (*)(Args...)> {};
+
+template <typename R, typename... Args> struct func_kind_info<R (*)(Args...)> {
+ typedef typename tags::arg_count_trait<sizeof...(Args)>::type args_kind;
+ typedef typename tags::result_trait<R>::type result_kind;
+};
+
+template <typename F> using is_zero_arg = is_zero<func_traits<F>::arg_count>;
+
+template <typename F>
+using is_single_arg =
+ invoke<std::conditional<func_traits<F>::arg_count == 1, true_, false_>>;
+
+template <typename F>
+using is_void_result = std::is_void<typename func_traits<F>::result_type>;
+}
+}
+
+#endif /* end of include guard: FUNC_TRAITS_H_HWIWA6G0 */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/if.h b/host/lib/deps/rpclib/include/rpc/detail/if.h
new file mode 100644
index 000000000..7e4cab4f1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/if.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#ifndef IF_H_1OW9DR7G
+#define IF_H_1OW9DR7G
+
+#include "rpc/detail/invoke.h"
+
+namespace rpc {
+namespace detail {
+
+template <typename C, typename T, typename F>
+using if_ = invoke<std::conditional<C::value, T, F>>;
+}
+}
+
+#endif /* end of include guard: IF_H_1OW9DR7G */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/invoke.h b/host/lib/deps/rpclib/include/rpc/detail/invoke.h
new file mode 100644
index 000000000..4a4915829
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/invoke.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#ifndef INVOKE_H_0CWMPLUE
+#define INVOKE_H_0CWMPLUE
+
+namespace rpc {
+namespace detail {
+
+template<typename T>
+using invoke = typename T::type;
+
+}}
+
+
+#endif /* end of include guard: INVOKE_H_0CWMPLUE */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/is_specialization_of.h b/host/lib/deps/rpclib/include/rpc/detail/is_specialization_of.h
new file mode 100644
index 000000000..c4003cee9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/is_specialization_of.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#ifndef IS_SPECIALIZATION_OF_H_OPZTARVG
+#define IS_SPECIALIZATION_OF_H_OPZTARVG
+
+#include "rpc/detail/bool.h"
+
+namespace rpc {
+namespace detail {
+
+template <template <typename...> class Templ, typename T>
+struct is_specialization_of : false_ {};
+
+template <template <typename...> class Templ, typename... T>
+struct is_specialization_of<Templ, Templ<T...>> : true_ {};
+
+}
+} /* rpc */
+
+#endif /* end of include guard: IS_SPECIALIZATION_OF_H_OPZTARVG */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/log.h b/host/lib/deps/rpclib/include/rpc/detail/log.h
new file mode 100644
index 000000000..0d5e51c61
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/log.h
@@ -0,0 +1,159 @@
+#pragma once
+
+#ifndef LOG_H_SPSC31OG
+#define LOG_H_SPSC31OG
+
+#ifdef RPCLIB_ENABLE_LOGGING
+
+#include "format.h"
+#include <chrono>
+#include <cstdlib>
+#include <iomanip>
+#include <mutex>
+#include <sstream>
+
+#include <inttypes.h>
+#include <math.h>
+#include <stdio.h>
+#include <time.h>
+
+#ifdef _MSC_VER
+#include <Windows.h>
+#endif
+
+namespace rpc {
+namespace detail {
+class logger {
+public:
+ static logger &instance() {
+ static logger inst;
+ return inst;
+ }
+
+ template <typename... Args>
+ void trace(const char *channel, const char *file, const char *func,
+ std::size_t line, const char *msg, Args... args) {
+ (void)func;
+ basic_log("TRACE", channel,
+ RPCLIB_FMT::format("{} ({}:{})",
+ RPCLIB_FMT::format(msg, args...), file,
+ line));
+ }
+
+ template <typename... Args>
+ void debug(const char *channel, const char *file, const char *func,
+ std::size_t line, const char *msg, Args... args) {
+ (void)func;
+ basic_log("DEBUG", channel,
+ RPCLIB_FMT::format("{} ({}:{})",
+ RPCLIB_FMT::format(msg, args...), file,
+ line));
+ }
+
+ template <typename... Args>
+ void warn(const char *channel, const char *msg, Args... args) {
+ basic_log("WARN", channel, RPCLIB_FMT::format(msg, args...));
+ }
+
+ template <typename... Args>
+ void error(const char *channel, const char *msg, Args... args) {
+ basic_log("ERROR", channel, RPCLIB_FMT::format(msg, args...));
+ }
+
+ template <typename... Args>
+ void info(const char *channel, const char *msg, Args... args) {
+ basic_log("INFO", channel, RPCLIB_FMT::format(msg, args...));
+ }
+
+private:
+ logger() {}
+
+#ifdef _MSC_VER
+ static std::string now() {
+ std::stringstream ss;
+ SYSTEMTIME t;
+ GetSystemTime(&t);
+ ss << RPCLIB_FMT::format("{}-{}-{} {}:{}:{}.{:03}", t.wYear, t.wMonth,
+ t.wDay, t.wHour, t.wMinute, t.wSecond,
+ t.wMilliseconds);
+ return ss.str();
+ }
+#else
+ static std::string now() {
+ std::stringstream ss;
+ timespec now_t = {};
+ clock_gettime(CLOCK_REALTIME, &now_t);
+ ss << std::put_time(
+ std::localtime(reinterpret_cast<time_t *>(&now_t.tv_sec)),
+ "%F %T")
+ << RPCLIB_FMT::format(
+ ".{:03}", round(static_cast<double>(now_t.tv_nsec) / 1.0e6));
+ return ss.str();
+ }
+#endif
+
+ void basic_log(const char *severity, const char *channel,
+ std::string const &msg) {
+ using RPCLIB_FMT::arg;
+ std::lock_guard<std::mutex> lock(mut_print_);
+ RPCLIB_FMT::print("{time:16} {severity:6} {channel:12} {msg:40}\n",
+ arg("severity", severity), arg("channel", channel),
+ arg("time", now()), arg("msg", msg));
+ }
+
+private:
+ std::mutex mut_print_;
+};
+} /* detail */
+} /* rpc */
+
+#ifdef _MSC_VER
+#define RPCLIB_CREATE_LOG_CHANNEL(Name) \
+ static constexpr const char *rpc_channel_name = #Name;
+#elif defined(__GNUC__)
+#define RPCLIB_CREATE_LOG_CHANNEL(Name) \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Wunused-variable\"") \
+ static constexpr const char *rpc_channel_name = #Name; \
+ _Pragma("GCC diagnostic pop")
+#elif defined(__clang__)
+ _Pragma("clang diagnostic push") \
+ _Pragma("clang diagnostic ignored \"-Wunused-variable\"") \
+ static constexpr const char *rpc_channel_name = #Name; \
+ _Pragma("clang diagnostic pop")
+#endif
+
+RPCLIB_CREATE_LOG_CHANNEL(global)
+
+#define LOG_INFO(...) \
+ rpc::detail::logger::instance().info(rpc_channel_name, __VA_ARGS__)
+
+#define LOG_WARN(...) \
+ rpc::detail::logger::instance().warn(rpc_channel_name, __VA_ARGS__)
+
+#define LOG_ERROR(...) \
+ rpc::detail::logger::instance().error(rpc_channel_name, __VA_ARGS__)
+
+#define LOG_DEBUG(...) \
+ rpc::detail::logger::instance().debug(rpc_channel_name, __FILE__, \
+ __func__, __LINE__, __VA_ARGS__)
+
+#define LOG_TRACE(...) \
+ rpc::detail::logger::instance().trace(rpc_channel_name, __FILE__, \
+ __func__, __LINE__, __VA_ARGS__)
+
+#define LOG_EXPR(Level, Expr) LOG_##Level("`" #Expr "` = {}", Expr)
+
+#else
+
+#define LOG_INFO(...)
+#define LOG_WARN(...)
+#define LOG_ERROR(...)
+#define LOG_DEBUG(...)
+#define LOG_TRACE(...)
+#define LOG_EXPR(...)
+#define RPCLIB_CREATE_LOG_CHANNEL(...)
+
+#endif
+
+#endif /* end of include guard: LOG_H_SPSC31OG */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/make_unique.h b/host/lib/deps/rpclib/include/rpc/detail/make_unique.h
new file mode 100644
index 000000000..1297aeaab
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/make_unique.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#ifndef MAKE_UNIQUE_H_FOOBAR
+#define MAKE_UNIQUE_H_FOOBAR
+
+#include <memory>
+
+namespace rpc {
+namespace detail {
+
+// Default behaviour is to assume C++11, overriding RPCLIB_CXX_STANDARD can use
+// newer standards:
+#if RPCLIB_CXX_STANDARD >= 14
+
+using std::make_unique;
+
+#else
+
+template<typename T, typename... Ts>
+std::unique_ptr<T> make_unique(Ts&&... params)
+{
+ return std::unique_ptr<T>(new T(std::forward<Ts>(params)...));
+}
+
+#endif
+
+} /* detail */
+} /* rpc */
+
+#endif /* end of include guard: MAKE_UNIQUE_H_FOOBAR */
+
diff --git a/host/lib/deps/rpclib/include/rpc/detail/not.h b/host/lib/deps/rpclib/include/rpc/detail/not.h
new file mode 100644
index 000000000..9d78cafb3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/not.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#ifndef NOT_H_0MEGQWII
+#define NOT_H_0MEGQWII
+
+#include "rpc/detail/bool.h"
+
+namespace rpc {
+namespace detail {
+
+template<typename B>
+using not_ = bool_<!B::value>;
+
+}
+}
+
+#endif /* end of include guard: NOT_H_0MEGQWII */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/pimpl.h b/host/lib/deps/rpclib/include/rpc/detail/pimpl.h
new file mode 100644
index 000000000..526f788ac
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/pimpl.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#ifndef PIMPL_H_TV7E3C9K
+#define PIMPL_H_TV7E3C9K
+
+//! \brief Declares a pimpl pointer.
+#define RPCLIB_DECLARE_PIMPL() \
+ struct impl; std::unique_ptr<impl> pimpl;
+
+#endif /* end of include guard: PIMPL_H_TV7E3C9K */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/response.h b/host/lib/deps/rpclib/include/rpc/detail/response.h
new file mode 100644
index 000000000..96131b1a7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/response.h
@@ -0,0 +1,119 @@
+#pragma once
+
+#ifndef RESPONSE_H_MVRZEKPX
+#define RESPONSE_H_MVRZEKPX
+
+#include "rpc/detail/log.h"
+#include "rpc/detail/make_unique.h"
+#include "rpc/msgpack.hpp"
+#include "rpc/config.h"
+
+namespace rpc {
+namespace detail {
+
+//! \brief Represents a response and creates a msgpack to be sent back
+//! as per the msgpack-rpc spec.
+class response {
+public:
+ //! \brief Creates a response that represents a normal return value.
+ //! \param id The sequence id (as per protocol).
+ //! \param result The return value to store in the response.
+ //! \tparam T Any msgpack-able type.
+ //! \note If there is both an error and result in the response,
+ //! the result will be discarded while packing the data.
+ template <typename T> static response make_result(uint32_t id, T &&result);
+
+ //! \brief Creates a response that represents an error.
+ //! \param id The sequence id (as per protocol).
+ //! \param error The error value to store in the response.
+ //! \tparam T Any msgpack-able type.
+ template <typename T> static response make_error(uint32_t id, T &&error);
+
+
+ //! \brief Constructs a response from RPCLIB_MSGPACK::object (useful when
+ //! reading a response from a stream).
+ response(RPCLIB_MSGPACK::object_handle o);
+
+ //! \brief Gets the response data as a RPCLIB_MSGPACK::sbuffer.
+ RPCLIB_MSGPACK::sbuffer get_data() const;
+
+ //! \brief Moves the specified object_handle into the response
+ //! as a result.
+ //! \param r The result to capture.
+ void capture_result(RPCLIB_MSGPACK::object_handle &r);
+
+ //! \brief Moves the specified object_handle into the response as an error.
+ //! \param e The error to capture.
+ void capture_error(RPCLIB_MSGPACK::object_handle &e);
+
+ //! \brief Returns the call id/index used to identify which call
+ //! this response corresponds to.
+ uint32_t get_id() const;
+
+ //! \brief Returns the error object stored in the response. Can
+ //! be empty.
+ std::shared_ptr<RPCLIB_MSGPACK::object_handle> get_error() const;
+
+ //! \brief Returns the result stored in the response. Can be empty.
+ std::shared_ptr<RPCLIB_MSGPACK::object_handle> get_result() const;
+
+ //! \brief Gets an empty response which means "no response" (not to be
+ //! confused with void return, i.e. this means literally
+ //! "don't write the response to the socket")
+ static response empty();
+
+ //! \brief If true, this response is empty (\see empty())
+ bool is_empty() const;
+
+ //! \brief The type of a response, according to the msgpack-rpc spec
+ using response_type =
+ std::tuple<uint32_t, uint32_t, RPCLIB_MSGPACK::object, RPCLIB_MSGPACK::object>;
+
+private:
+ //! \brief Default constructor for responses.
+ response();
+
+ uint32_t id_;
+ // I really wish to avoid shared_ptr here but at this point asio does not
+ // work with move-only handlers in post() and I need to capture responses
+ // in lambdas.
+ std::shared_ptr<RPCLIB_MSGPACK::object_handle> error_;
+ std::shared_ptr<RPCLIB_MSGPACK::object_handle> result_;
+ bool empty_;
+ RPCLIB_CREATE_LOG_CHANNEL(response)
+};
+
+template <typename T>
+inline response response::make_result(uint32_t id, T &&result) {
+ auto z = rpc::detail::make_unique<RPCLIB_MSGPACK::zone>();
+ RPCLIB_MSGPACK::object o(std::forward<T>(result), *z);
+ response inst;
+ inst.id_ = id;
+ inst.result_ = std::make_shared<RPCLIB_MSGPACK::object_handle>(o, std::move(z));
+ return inst;
+}
+
+template <>
+inline response
+response::make_result(uint32_t id, std::unique_ptr<RPCLIB_MSGPACK::object_handle> &&r) {
+ response inst;
+ inst.id_ = id;
+ inst.result_ = std::move(r);
+ return inst;
+}
+
+template <typename T>
+inline response response::make_error(uint32_t id, T &&error) {
+ auto z = rpc::detail::make_unique<RPCLIB_MSGPACK::zone>();
+ RPCLIB_MSGPACK::object o(std::forward<T>(error), *z);
+ response inst;
+ inst.id_ = id;
+ inst.error_ = std::make_shared<RPCLIB_MSGPACK::object_handle>(o, std::move(z));
+ return inst;
+}
+
+} /* detail */
+
+} /* rpc */
+
+#endif /* end of include guard: RESPONSE_H_MVRZEKPX */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/server_session.h b/host/lib/deps/rpclib/include/rpc/detail/server_session.h
new file mode 100644
index 000000000..963b082ec
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/server_session.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#ifndef SESSION_H_5KG6ZMAB
+#define SESSION_H_5KG6ZMAB
+
+#include <boost/asio.hpp>
+#include <memory>
+#include <vector>
+
+#include "rpc/config.h"
+#include "rpc/msgpack.hpp"
+
+#include "rpc/dispatcher.h"
+#include "rpc/detail/async_writer.h"
+#include "rpc/detail/log.h"
+
+namespace rpc {
+
+class server;
+
+namespace detail {
+
+class server_session : public async_writer {
+public:
+ server_session(server *srv, boost::asio::io_service *io,
+ boost::asio::ip::tcp::socket socket,
+ std::shared_ptr<dispatcher> disp, bool suppress_exceptions);
+ void start();
+
+ void close();
+
+private:
+ void do_read();
+
+private:
+ server* parent_;
+ boost::asio::io_service *io_;
+ boost::asio::strand read_strand_;
+ std::shared_ptr<dispatcher> disp_;
+ RPCLIB_MSGPACK::unpacker pac_;
+ RPCLIB_MSGPACK::sbuffer output_buf_;
+ const bool suppress_exceptions_;
+ RPCLIB_CREATE_LOG_CHANNEL(session)
+};
+} /* detail */
+} /* rpc */
+
+#endif /* end of include guard: SESSION_H_5KG6ZMAB */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/thread_group.h b/host/lib/deps/rpclib/include/rpc/detail/thread_group.h
new file mode 100644
index 000000000..8905a7150
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/thread_group.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#ifndef THREAD_GROUP_H_MQSLWGKD
+#define THREAD_GROUP_H_MQSLWGKD
+
+#include <thread>
+#include <vector>
+
+namespace rpc {
+namespace detail {
+
+class thread_group {
+public:
+ thread_group() {}
+ thread_group(thread_group const &) = delete;
+
+ void create_threads(std::size_t thread_count, std::function<void()> func) {
+ for (std::size_t i = 0; i < thread_count; ++i) {
+ threads_.push_back(std::thread(func));
+ }
+ }
+
+ void join_all() {
+ for (auto &t : threads_) {
+ if (t.joinable()) {
+ t.join();
+ }
+ }
+ }
+
+ ~thread_group() { join_all(); }
+
+private:
+ std::vector<std::thread> threads_;
+};
+
+} /* detail */
+} /* rpc */
+
+#endif /* end of include guard: THREAD_GROUP_H_MQSLWGKD */
diff --git a/host/lib/deps/rpclib/include/rpc/detail/util.h b/host/lib/deps/rpclib/include/rpc/detail/util.h
new file mode 100644
index 000000000..302cb93b7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/detail/util.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#ifndef UTIL_H_YRIZ63UJ
+#define UTIL_H_YRIZ63UJ
+
+#include "rpc/msgpack.hpp"
+#include "rpc/detail/make_unique.h"
+
+namespace rpc {
+namespace detail {
+template <typename T> RPCLIB_MSGPACK::object_handle pack(T &&o) {
+ auto z = rpc::detail::make_unique<RPCLIB_MSGPACK::zone>();
+ RPCLIB_MSGPACK::object obj(std::forward<T>(o), *z);
+ return RPCLIB_MSGPACK::object_handle(obj, std::move(z));
+}
+} /* detail */
+} /* rpc */
+
+#endif /* end of include guard: UTIL_H_YRIZ63UJ */
diff --git a/host/lib/deps/rpclib/include/rpc/dispatcher.h b/host/lib/deps/rpclib/include/rpc/dispatcher.h
new file mode 100644
index 000000000..513fae686
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/dispatcher.h
@@ -0,0 +1,122 @@
+#pragma once
+
+#ifndef DISPATCHER_H_CXIVZD5L
+#define DISPATCHER_H_CXIVZD5L
+
+#include <atomic>
+#include <functional>
+#include <memory>
+#include <unordered_map>
+
+#include "rpc/config.h"
+#include "rpc/msgpack.hpp"
+
+#include "rpc/detail/call.h"
+#include "rpc/detail/func_tools.h"
+#include "rpc/detail/func_traits.h"
+#include "rpc/detail/log.h"
+#include "rpc/detail/not.h"
+#include "rpc/detail/response.h"
+#include "rpc/detail/make_unique.h"
+
+namespace rpc {
+
+namespace detail {
+
+//! \brief This class maintains a registry of functors associated with their
+//! names, and callable using a msgpack-rpc call pack.
+class dispatcher {
+public:
+ //! \brief Binds a functor to a name so it becomes callable via RPC.
+ //! \param name The name of the functor.
+ //! \param func The functor to bind.
+ //! \tparam F The type of the functor.
+ template <typename F> void bind(std::string const &name, F func);
+
+ //! \defgroup Tag-dispatched bind implementations for various functor cases.
+ //! @{
+
+ //! \brief Stores a void, zero-arg functor with a name.
+ template <typename F>
+ void bind(std::string const &name, F func,
+ detail::tags::void_result const &,
+ detail::tags::zero_arg const &);
+
+ //! \brief Stores a void, non-zero-arg functor with a name.
+ template <typename F>
+ void bind(std::string const &name, F func,
+ detail::tags::void_result const &,
+ detail::tags::nonzero_arg const &);
+
+ //! \brief Stores a non-void, zero-arg functor with a name.
+ template <typename F>
+ void bind(std::string const &name, F func,
+ detail::tags::nonvoid_result const &,
+ detail::tags::zero_arg const &);
+
+ //! \brief Stores a non-void, non-zero-arg functor with a name.
+ template <typename F>
+ void bind(std::string const &name, F func,
+ detail::tags::nonvoid_result const &,
+ detail::tags::nonzero_arg const &);
+
+ //! @}
+
+ //! \brief Processes a message that contains a call according to
+ //! the Msgpack-RPC spec.
+ //! \param msg The buffer that contains the messagepack.
+ //! \throws std::runtime_error If the messagepack does not contain a
+ //! a call or the types of the parameters are not convertible to the called
+ //! functions' parameters.
+ void dispatch(RPCLIB_MSGPACK::sbuffer const &msg);
+
+ //! \brief Processes a message that contains a call according to
+ //! the Msgpack-RPC spec.
+ //! \param msg The messagepack object that contains the call.
+ //! \param suppress_exceptions If true, exceptions will be caught and
+ //! written
+ //! as response for the client.
+ //! \throws std::runtime_error If the types of the parameters are not
+ //! convertible to the called functions' parameters.
+ detail::response dispatch(RPCLIB_MSGPACK::object const &msg,
+ bool suppress_exceptions = false);
+
+ //! \brief This functor type unifies the interfaces of functions that are
+ //! called remotely
+ using adaptor_type = std::function<std::unique_ptr<RPCLIB_MSGPACK::object_handle>(
+ RPCLIB_MSGPACK::object const &)>;
+
+ //! \brief This is the type of messages as per the msgpack-rpc spec.
+ using call_t = std::tuple<int8_t, uint32_t, std::string, RPCLIB_MSGPACK::object>;
+
+ //! \brief This is the type of notification messages.
+ using notification_t = std::tuple<int8_t, std::string, RPCLIB_MSGPACK::object>;
+
+private:
+ //! \brief Checks the argument count and throws an exception if
+ //! it is not the expected amount.
+ static void enforce_arg_count(std::string const &func, std::size_t found,
+ std::size_t expected);
+
+ //! \brief Dispatches a call (which will have a response).
+ detail::response dispatch_call(RPCLIB_MSGPACK::object const &msg,
+ bool suppress_exceptions = false);
+
+ //! \brief Dispatches a notification (which will not have a response)
+ detail::response dispatch_notification(RPCLIB_MSGPACK::object const &msg,
+ bool suppress_exceptions = false);
+
+ template <typename T> RPCLIB_MSGPACK::object pack(T &&arg);
+
+ enum class request_type { call = 0, notification = 2 };
+
+private:
+ std::unordered_map<std::string, adaptor_type> funcs_;
+ RPCLIB_CREATE_LOG_CHANNEL(dispatcher)
+};
+}
+}
+
+#include "dispatcher.inl"
+
+#endif /* end of include guard: DISPATCHER_H_CXIVZD5L */
diff --git a/host/lib/deps/rpclib/include/rpc/dispatcher.inl b/host/lib/deps/rpclib/include/rpc/dispatcher.inl
new file mode 100644
index 000000000..dc10edcf9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/dispatcher.inl
@@ -0,0 +1,74 @@
+
+namespace rpc {
+namespace detail {
+
+template <typename F> void dispatcher::bind(std::string const &name, F func) {
+ bind(name, func, typename detail::func_kind_info<F>::result_kind(),
+ typename detail::func_kind_info<F>::args_kind());
+}
+
+template <typename F>
+void dispatcher::bind(std::string const &name, F func,
+ detail::tags::void_result const &,
+ detail::tags::zero_arg const &) {
+ funcs_.insert(
+ std::make_pair(name, [func, name](RPCLIB_MSGPACK::object const &args) {
+ enforce_arg_count(name, 0, args.via.array.size);
+ func();
+ return rpc::detail::make_unique<RPCLIB_MSGPACK::object_handle>();
+ }));
+}
+
+template <typename F>
+void dispatcher::bind(std::string const &name, F func,
+ detail::tags::void_result const &,
+ detail::tags::nonzero_arg const &) {
+ using detail::func_traits;
+ using args_type = typename func_traits<F>::args_type;
+
+ funcs_.insert(
+ std::make_pair(name, [func, name](RPCLIB_MSGPACK::object const &args) {
+ constexpr int args_count = std::tuple_size<args_type>::value;
+ enforce_arg_count(name, args_count, args.via.array.size);
+ args_type args_real;
+ args.convert(&args_real);
+ detail::call(func, args_real);
+ return rpc::detail::make_unique<RPCLIB_MSGPACK::object_handle>();
+ }));
+}
+
+template <typename F>
+void dispatcher::bind(std::string const &name, F func,
+ detail::tags::nonvoid_result const &,
+ detail::tags::zero_arg const &) {
+ using detail::func_traits;
+
+ funcs_.insert(std::make_pair(name, [func,
+ name](RPCLIB_MSGPACK::object const &args) {
+ enforce_arg_count(name, 0, args.via.array.size);
+ auto z = rpc::detail::make_unique<RPCLIB_MSGPACK::zone>();
+ auto result = RPCLIB_MSGPACK::object(func(), *z);
+ return rpc::detail::make_unique<RPCLIB_MSGPACK::object_handle>(result, std::move(z));
+ }));
+}
+
+template <typename F>
+void dispatcher::bind(std::string const &name, F func,
+ detail::tags::nonvoid_result const &,
+ detail::tags::nonzero_arg const &) {
+ using detail::func_traits;
+ using args_type = typename func_traits<F>::args_type;
+
+ funcs_.insert(std::make_pair(name, [func,
+ name](RPCLIB_MSGPACK::object const &args) {
+ constexpr int args_count = std::tuple_size<args_type>::value;
+ enforce_arg_count(name, args_count, args.via.array.size);
+ args_type args_real;
+ args.convert(&args_real);
+ auto z = rpc::detail::make_unique<RPCLIB_MSGPACK::zone>();
+ auto result = RPCLIB_MSGPACK::object(detail::call(func, args_real), *z);
+ return rpc::detail::make_unique<RPCLIB_MSGPACK::object_handle>(result, std::move(z));
+ }));
+}
+}
+}
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack.hpp b/host/lib/deps/rpclib/include/rpc/msgpack.hpp
new file mode 100644
index 000000000..fbb58ca7c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack.hpp
@@ -0,0 +1,31 @@
+//
+// MessagePack for C++
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifdef __clang__
+#pragma clang system_header
+#endif
+
+#include "rpc/msgpack/object.hpp"
+#include "rpc/msgpack/iterator.hpp"
+#include "rpc/msgpack/zone.hpp"
+#include "rpc/msgpack/pack.hpp"
+#include "rpc/msgpack/unpack.hpp"
+#include "rpc/msgpack/sbuffer.hpp"
+#include "rpc/msgpack/vrefbuffer.hpp"
+#include "rpc/msgpack/version.hpp"
+#include "rpc/msgpack/type.hpp"
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/adaptor_base.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/adaptor_base.hpp
new file mode 100644
index 000000000..70f19b0c4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/adaptor_base.hpp
@@ -0,0 +1,92 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_ADAPTOR_BASE_HPP
+#define MSGPACK_ADAPTOR_BASE_HPP
+
+#include "rpc/msgpack/object_fwd.hpp"
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+template <typename Stream>
+class packer;
+
+namespace adaptor {
+
+// Adaptor functors
+
+template <typename T, typename Enabler = void>
+struct convert {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, T& v) const;
+};
+
+template <typename T, typename Enabler = void>
+struct pack {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, T const& v) const;
+};
+
+template <typename T, typename Enabler = void>
+struct object {
+ void operator()(clmdep_msgpack::object& o, T const& v) const;
+};
+
+template <typename T, typename Enabler = void>
+struct object_with_zone {
+ void operator()(clmdep_msgpack::object::with_zone& o, T const& v) const;
+};
+
+} // namespace adaptor
+
+// operators
+
+template <typename T>
+inline
+clmdep_msgpack::object const& operator>> (clmdep_msgpack::object const& o, T& v) {
+ return adaptor::convert<T>()(o, v);
+}
+
+template <typename Stream, typename T>
+inline
+clmdep_msgpack::packer<Stream>& operator<< (clmdep_msgpack::packer<Stream>& o, T const& v) {
+ return adaptor::pack<T>()(o, v);
+}
+
+template <typename T>
+inline
+void operator<< (clmdep_msgpack::object& o, T const& v) {
+ adaptor::object<T>()(o, v);
+}
+
+template <typename T>
+inline
+void operator<< (clmdep_msgpack::object::with_zone& o, T const& v) {
+ adaptor::object_with_zone<T>()(o, v);
+}
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+
+#endif // MSGPACK_ADAPTOR_BASE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/array_ref.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/array_ref.hpp
new file mode 100644
index 000000000..393fc906e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/array_ref.hpp
@@ -0,0 +1,182 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_ARRAY_REF_HPP
+#define MSGPACK_TYPE_ARRAY_REF_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+#include <cstring>
+#include <string>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+template <typename T>
+struct array_ref {
+ array_ref() : data(nullptr) {}
+ array_ref(T& t) : data(&t) {}
+
+ T* data;
+
+ template <typename U>
+ bool operator==(array_ref<U> const& t) const {
+ return *data == *t.data;
+ }
+ template <typename U>
+ bool operator!=(array_ref<U> const& t) const {
+ return !(*data == *t.data);
+ }
+ template <typename U>
+ bool operator< (array_ref<U> const& t) const
+ {
+ return *data < *t.data;
+ }
+ template <typename U>
+ bool operator> (array_ref<U> const& t) const
+ {
+ return *t.data < *data;
+ }
+ template <typename U>
+ bool operator<= (array_ref<U> const& t) const
+ {
+ return !(*t.data < *data);
+ }
+ template <typename U>
+ bool operator>= (array_ref<U> const& t) const
+ {
+ return !(*data < *t.data);
+ }
+};
+
+template <typename T>
+inline array_ref<T const> make_array_ref(T const& t) {
+ return array_ref<T const>(t);
+}
+
+template <typename T>
+inline array_ref<T> make_array_ref(T& t) {
+ return array_ref<T>(t);
+}
+
+
+} // namespace type
+
+namespace adaptor {
+
+template <typename T>
+struct convert<clmdep_msgpack::type::array_ref<T> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, clmdep_msgpack::type::array_ref<T>& v) const {
+ if (!v.data) { throw clmdep_msgpack::type_error(); }
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if (v.data->size() < o.via.bin.size) { throw clmdep_msgpack::type_error(); }
+ if (o.via.array.size > 0) {
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ typename T::iterator it = v.data->begin();
+ do {
+ p->convert(*it);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ return o;
+ }
+};
+
+template <typename T>
+struct convert<clmdep_msgpack::type::array_ref<std::vector<T> > > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, clmdep_msgpack::type::array_ref<std::vector<T> >& v) const {
+ if (!v.data) { throw clmdep_msgpack::type_error(); }
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ v.data->resize(o.via.bin.size);
+ if (o.via.array.size > 0) {
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ typename std::vector<T>::iterator it = v.data->begin();
+ do {
+ p->convert(*it);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ return o;
+ }
+};
+
+template <typename T>
+struct pack<clmdep_msgpack::type::array_ref<T> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::type::array_ref<T>& v) const {
+ if (!v.data) { throw clmdep_msgpack::type_error(); }
+ uint32_t size = checked_get_container_size(v.data->size());
+ o.pack_array(size);
+ for (typename T::const_iterator it(v.data->begin()), it_end(v.data->end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T>
+struct object_with_zone<clmdep_msgpack::type::array_ref<T> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const clmdep_msgpack::type::array_ref<T>& v) const {
+ if (!v.data) { throw clmdep_msgpack::type_error(); }
+ o.type = clmdep_msgpack::type::ARRAY;
+ if (v.data->empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ }
+ else {
+ uint32_t size = checked_get_container_size(v.data->size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename T::const_iterator it(v.data->begin());
+ do {
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+ *p = clmdep_msgpack::object(*it, o.zone);
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+#pragma GCC diagnostic pop
+#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_ARRAY_REF_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/bool.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/bool.hpp
new file mode 100644
index 000000000..f5867ca3f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/bool.hpp
@@ -0,0 +1,74 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_BOOL_HPP
+#define MSGPACK_TYPE_BOOL_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <>
+struct convert<bool> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, bool& v) const {
+ if(o.type != clmdep_msgpack::type::BOOLEAN) { throw clmdep_msgpack::type_error(); }
+ v = o.via.boolean;
+ return o;
+ }
+};
+
+template <>
+struct pack<bool> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const bool& v) const {
+ if(v) { o.pack_true(); }
+ else { o.pack_false(); }
+ return o;
+ }
+};
+
+template <>
+struct object<bool> {
+ void operator()(clmdep_msgpack::object& o, bool v) const {
+ o.type = clmdep_msgpack::type::BOOLEAN;
+ o.via.boolean = v;
+ }
+};
+
+template <>
+struct object_with_zone<bool> {
+ void operator()(clmdep_msgpack::object::with_zone& o, bool v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_BOOL_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/fusion.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/fusion.hpp
new file mode 100644
index 000000000..98085f2ba
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/fusion.hpp
@@ -0,0 +1,168 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_BOOST_FUSION_HPP
+#define MSGPACK_TYPE_BOOST_FUSION_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+#include "rpc/msgpack/meta.hpp"
+
+#if !defined (MSGPACK_USE_CPP03)
+#include "rpc/msgpack/adaptor/cpp11/tuple.hpp"
+#endif // #if !defined (MSGPACK_USE_CPP03)
+
+#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/fusion/sequence/intrinsic/size.hpp>
+#include <boost/fusion/algorithm/iteration/for_each.hpp>
+#include <boost/fusion/sequence/intrinsic/at.hpp>
+#include <boost/fusion/include/mpl.hpp>
+#include <boost/mpl/size.hpp>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+#if !defined (MSGPACK_USE_CPP03)
+
+template <typename T>
+struct as<
+ T,
+ typename clmdep_msgpack::enable_if<
+ boost::fusion::traits::is_sequence<T>::value &&
+ boost::mpl::fold<
+ T,
+ boost::mpl::bool_<true>,
+ boost::mpl::if_ <
+ boost::mpl::and_<
+ boost::mpl::_1,
+ clmdep_msgpack::has_as<boost::mpl::_2>
+ >,
+ boost::mpl::bool_<true>,
+ boost::mpl::bool_<false>
+ >
+ >::type::value
+ >::type
+> {
+ T operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if (o.via.array.size != checked_get_container_size(boost::mpl::size<T>::value)) {
+ throw clmdep_msgpack::type_error();
+ }
+ using tuple_t = decltype(to_tuple(std::declval<T>(), gen_seq<boost::mpl::size<T>::value>()));
+ return to_t(
+ o.as<tuple_t>(),
+ clmdep_msgpack::gen_seq<boost::mpl::size<T>::value>());
+ }
+ template<std::size_t... Is, typename U>
+ static std::tuple<
+ typename std::remove_reference<
+ typename boost::fusion::result_of::at_c<T, Is>::type
+ >::type...>
+ to_tuple(U const& u, seq<Is...>) {
+ return std::make_tuple(boost::fusion::at_c<Is>(u)...);
+ }
+ template<std::size_t... Is, typename U>
+ static T to_t(U const& u, seq<Is...>) {
+ return T(std::get<Is>(u)...);
+ }
+};
+
+#endif // !defined (MSGPACK_USE_CPP03)
+
+template <typename T>
+struct convert<T, typename clmdep_msgpack::enable_if<boost::fusion::traits::is_sequence<T>::value>::type > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, T& v) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if (o.via.array.size != checked_get_container_size(boost::fusion::size(v))) {
+ throw clmdep_msgpack::type_error();
+ }
+ uint32_t index = 0;
+ boost::fusion::for_each(v, convert_imp(o, index));
+ return o;
+ }
+private:
+ struct convert_imp {
+ convert_imp(clmdep_msgpack::object const& obj, uint32_t& index):obj_(obj), index_(index) {}
+ template <typename U>
+ void operator()(U& v) const {
+ clmdep_msgpack::adaptor::convert<U>()(obj_.via.array.ptr[index_++], v);
+ }
+ private:
+ clmdep_msgpack::object const& obj_;
+ uint32_t& index_;
+ };
+};
+
+template <typename T>
+struct pack<T, typename clmdep_msgpack::enable_if<boost::fusion::traits::is_sequence<T>::value>::type > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const T& v) const {
+ uint32_t size = checked_get_container_size(boost::fusion::size(v));
+ o.pack_array(size);
+ boost::fusion::for_each(v, pack_imp<Stream>(o));
+ return o;
+ }
+private:
+ template <typename Stream>
+ struct pack_imp {
+ pack_imp(clmdep_msgpack::packer<Stream>& stream):stream_(stream) {}
+ template <typename U>
+ void operator()(U const& v) const {
+ stream_.pack(v);
+ }
+ private:
+ clmdep_msgpack::packer<Stream>& stream_;
+ };
+};
+
+template <typename T>
+struct object_with_zone<T, typename clmdep_msgpack::enable_if<boost::fusion::traits::is_sequence<T>::value>::type > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const T& v) const {
+ uint32_t size = checked_get_container_size(boost::fusion::size(v));
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ o.via.array.size = size;
+ uint32_t count = 0;
+ boost::fusion::for_each(v, with_zone_imp(o, count));
+ }
+private:
+ struct with_zone_imp {
+ with_zone_imp(clmdep_msgpack::object::with_zone const& obj, uint32_t& count):obj_(obj), count_(count) {}
+ template <typename U>
+ void operator()(U const& v) const {
+ obj_.via.array.ptr[count_++] = clmdep_msgpack::object(v, obj_.zone);
+ }
+ clmdep_msgpack::object::with_zone const& obj_;
+ uint32_t& count_;
+ };
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_BOOST_FUSION_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/msgpack_variant.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/msgpack_variant.hpp
new file mode 100644
index 000000000..7dbd2bec4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/msgpack_variant.hpp
@@ -0,0 +1,438 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_HPP
+#define MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_HPP
+
+#if defined(MSGPACK_USE_BOOST)
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+#include "rpc/msgpack/adaptor/boost/string_ref.hpp"
+
+#include "rpc/msgpack/adaptor/nil.hpp"
+#include "rpc/msgpack/adaptor/bool.hpp"
+#include "rpc/msgpack/adaptor/int.hpp"
+#include "rpc/msgpack/adaptor/float.hpp"
+#include "rpc/msgpack/adaptor/string.hpp"
+#include "rpc/msgpack/adaptor/vector_char.hpp"
+#include "rpc/msgpack/adaptor/raw.hpp"
+#include "rpc/msgpack/adaptor/ext.hpp"
+#include "rpc/msgpack/adaptor/vector.hpp"
+#include "rpc/msgpack/adaptor/map.hpp"
+
+#include <boost/variant.hpp>
+#include <boost/operators.hpp>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+
+template <typename STR, typename BIN, typename EXT>
+struct basic_variant :
+ boost::variant<
+ nil, // NIL
+ bool, // BOOL
+ int64_t, // NEGATIVE_INTEGER
+ uint64_t, // POSITIVE_INTEGER
+ double, // FLOAT
+ std::string, // STR
+#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ boost::string_ref, // STR
+#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ std::vector<char>, // BIN
+ clmdep_msgpack::type::raw_ref, // BIN
+ ext, // EXT
+ ext_ref, // EXT
+ boost::recursive_wrapper<std::vector<basic_variant<STR, BIN, EXT> > >, // ARRAY
+ boost::recursive_wrapper<std::map<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >, // MAP
+ boost::recursive_wrapper<std::multimap<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >// MAP
+ >,
+ private boost::totally_ordered<basic_variant<STR, BIN, EXT> > {
+ typedef boost::variant<
+ nil, // NIL
+ bool, // BOOL
+ int64_t, // NEGATIVE_INTEGER
+ uint64_t, // POSITIVE_INTEGER
+ double, // FLOAT
+ std::string, // STR
+#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ boost::string_ref, // STR
+#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ std::vector<char>, // BIN
+ clmdep_msgpack::type::raw_ref, // BIN
+ ext, // EXT
+ ext_ref, // EXT
+ boost::recursive_wrapper<std::vector<basic_variant<STR, BIN, EXT> > >, // ARRAY
+ boost::recursive_wrapper<std::map<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >, // MAP
+ boost::recursive_wrapper<std::multimap<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >// MAP
+ > base;
+ basic_variant() {}
+ template <typename T>
+ basic_variant(T const& t):base(t) {}
+ basic_variant(char const* p):base(std::string(p)) {}
+ basic_variant(char v) {
+ int_init(v);
+ }
+ basic_variant(signed char v) {
+ int_init(v);
+ }
+ basic_variant(unsigned char v):base(uint64_t(v)) {}
+ basic_variant(signed int v) {
+ int_init(v);
+ }
+ basic_variant(unsigned int v):base(uint64_t(v)) {}
+ basic_variant(signed long v) {
+ int_init(v);
+ }
+ basic_variant(unsigned long v):base(uint64_t(v)) {}
+ basic_variant(signed long long v) {
+ int_init(v);
+ }
+ basic_variant(unsigned long long v):base(uint64_t(v)) {}
+
+ bool is_nil() const {
+ return boost::get<nil>(this);
+ }
+ bool is_bool() const {
+ return boost::get<bool>(this);
+ }
+ bool is_int64_t() const {
+ return boost::get<int64_t>(this);
+ }
+ bool is_uint64_t() const {
+ return boost::get<uint64_t>(this);
+ }
+ bool is_double() const {
+ return boost::get<double>(this);
+ }
+ bool is_string() const {
+ return boost::get<std::string>(this);
+ }
+#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ bool is_boost_string_ref() const {
+ return boost::get<boost::string_ref>(this);
+ }
+#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ bool is_vector_char() const {
+ return boost::get<std::vector<char> >(this);
+ }
+ bool is_vector_char() {
+ return boost::get<std::vector<char> >(this);
+ }
+ bool is_raw_ref() const {
+ return boost::get<raw_ref>(this);
+ }
+ bool is_ext() const {
+ return boost::get<ext>(this);
+ }
+ bool is_ext_ref() const {
+ return boost::get<ext_ref>(this);
+ }
+ bool is_vector() const {
+ return boost::get<std::vector<basic_variant<STR, BIN, EXT> > >(this);
+ }
+ bool is_map() const {
+ return boost::get<std::map<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >(this);
+ }
+ bool is_multimap() const {
+ return boost::get<std::multimap<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >(this);
+ }
+
+ bool as_bool() const {
+ return boost::get<bool>(*this);
+ }
+ int64_t as_int64_t() const {
+ return boost::get<int64_t>(*this);
+ }
+ int64_t& as_int64_t() {
+ return boost::get<int64_t>(*this);
+ }
+ uint64_t as_uint64_t() const {
+ return boost::get<uint64_t>(*this);
+ }
+ uint64_t& as_uint64_t() {
+ return boost::get<uint64_t>(*this);
+ }
+ double as_double() const {
+ return boost::get<double>(*this);
+ }
+ double& as_double() {
+ return boost::get<double>(*this);
+ }
+ std::string const& as_string() const {
+ return boost::get<std::string>(*this);
+ }
+ std::string& as_string() {
+ return boost::get<std::string>(*this);
+ }
+#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ boost::string_ref const& as_boost_string_ref() const {
+ return boost::get<boost::string_ref>(*this);
+ }
+ boost::string_ref& as_boost_string_ref() {
+ return boost::get<boost::string_ref>(*this);
+ }
+#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ std::vector<char> const& as_vector_char() const {
+ return boost::get<std::vector<char> >(*this);
+ }
+ std::vector<char>& as_vector_char() {
+ return boost::get<std::vector<char> >(*this);
+ }
+ raw_ref const& as_raw_ref() const {
+ return boost::get<raw_ref>(*this);
+ }
+ ext const& as_ext() const {
+ return boost::get<ext>(*this);
+ }
+ ext& as_ext() {
+ return boost::get<ext>(*this);
+ }
+ ext_ref const& as_ext_ref() const {
+ return boost::get<ext_ref>(*this);
+ }
+ std::vector<basic_variant<STR, BIN, EXT> > const& as_vector() const {
+ return boost::get<std::vector<basic_variant<STR, BIN, EXT> > >(*this);
+ }
+ std::vector<basic_variant<STR, BIN, EXT> >& as_vector() {
+ return boost::get<std::vector<basic_variant<STR, BIN, EXT> > >(*this);
+ }
+ std::map<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > const& as_map() const {
+ return boost::get<std::map<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >(*this);
+ }
+ std::map<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> >& as_map() {
+ return boost::get<std::map<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >(*this);
+ }
+ std::multimap<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > const& as_multimap() const {
+ return boost::get<std::multimap<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >(*this);
+ }
+ std::multimap<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> >& as_multimap() {
+ return boost::get<std::multimap<basic_variant<STR, BIN, EXT>, basic_variant<STR, BIN, EXT> > >(*this);
+ }
+private:
+ template <typename T>
+ void int_init(T v) {
+ if (v < 0) {
+ static_cast<base&>(*this) = int64_t(v);
+ }
+ else {
+ static_cast<base&>(*this) = uint64_t(v);
+ }
+ }
+};
+
+template <typename STR, typename BIN, typename EXT>
+inline bool operator<(basic_variant<STR, BIN, EXT> const& lhs, basic_variant<STR, BIN, EXT> const& rhs) {
+ return
+ static_cast<typename basic_variant<STR, BIN, EXT>::base const&>(lhs) <
+ static_cast<typename basic_variant<STR, BIN, EXT>::base const&>(rhs);
+}
+
+template <typename STR, typename BIN, typename EXT>
+inline bool operator==(basic_variant<STR, BIN, EXT> const& lhs, basic_variant<STR, BIN, EXT> const& rhs) {
+ return
+ static_cast<typename basic_variant<STR, BIN, EXT>::base const&>(lhs) ==
+ static_cast<typename basic_variant<STR, BIN, EXT>::base const&>(rhs);
+}
+
+typedef basic_variant<std::string, std::vector<char>, ext> variant;
+typedef basic_variant<
+#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ boost::string_ref,
+#else // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ std::string,
+#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+ raw_ref, ext_ref> variant_ref;
+
+} // namespace type
+
+namespace adaptor {
+
+#if !defined (MSGPACK_USE_CPP03)
+
+template <typename STR, typename BIN, typename EXT>
+struct as<clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > {
+ clmdep_msgpack::type::basic_variant<STR, BIN, EXT> operator()(clmdep_msgpack::object const& o) const {
+ switch(o.type) {
+ case type::NIL:
+ return o.as<clmdep_msgpack::type::nil>();
+ case type::BOOLEAN:
+ return o.as<bool>();
+ case type::POSITIVE_INTEGER:
+ return o.as<uint64_t>();
+ case type::NEGATIVE_INTEGER:
+ return o.as<int64_t>();
+ case type::FLOAT:
+ return o.as<double>();
+ case type::STR:
+ return o.as<STR>();
+ case type::BIN:
+ return o.as<BIN>();
+ case type::EXT:
+ return o.as<EXT>();
+ case type::ARRAY:
+ return o.as<std::vector<clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > >();
+ case type::MAP:
+ return o.as<std::multimap<clmdep_msgpack::type::basic_variant<STR, BIN, EXT>, clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > >();
+ default:
+ break;
+ }
+ return clmdep_msgpack::type::basic_variant<STR, BIN, EXT>();
+ }
+};
+
+#endif // !defined (MSGPACK_USE_CPP03)
+
+
+template <typename STR, typename BIN, typename EXT>
+struct convert<clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ clmdep_msgpack::type::basic_variant<STR, BIN, EXT>& v) const {
+ switch(o.type) {
+ case type::NIL:
+ v = o.as<clmdep_msgpack::type::nil>();
+ break;
+ case type::BOOLEAN:
+ v = o.as<bool>();
+ break;
+ case type::POSITIVE_INTEGER:
+ v = o.as<uint64_t>();
+ break;
+ case type::NEGATIVE_INTEGER:
+ v = o.as<int64_t>();
+ break;
+ case type::FLOAT:
+ v = o.as<double>();
+ break;
+ case type::STR:
+ v = o.as<STR>();
+ break;
+ case type::BIN:
+ v = o.as<BIN>();
+ break;
+ case type::EXT:
+ v = o.as<EXT>();
+ break;
+ case type::ARRAY:
+ v = o.as<std::vector<clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > >();
+ break;
+ case type::MAP:
+ v = o.as<std::multimap<clmdep_msgpack::type::basic_variant<STR, BIN, EXT>, clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > >();
+ break;
+ default:
+ break;
+ }
+ return o;
+ }
+};
+
+namespace detail {
+
+template <typename Stream>
+struct pack_imp : boost::static_visitor<void> {
+ template <typename T>
+ void operator()(T const& value) const {
+ pack<T>()(o_, value);
+ }
+ pack_imp(packer<Stream>& o):o_(o) {}
+ packer<Stream>& o_;
+};
+
+} // namespace detail
+
+template <typename STR, typename BIN, typename EXT>
+struct pack<clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::type::basic_variant<STR, BIN, EXT>& v) const {
+ boost::apply_visitor(detail::pack_imp<Stream>(o), v);
+ return o;
+ }
+};
+
+namespace detail {
+
+struct object_imp : boost::static_visitor<void> {
+ void operator()(clmdep_msgpack::type::nil const& v) const {
+ object<clmdep_msgpack::type::nil>()(o_, v);
+ }
+ void operator()(bool const& v) const {
+ object<bool>()(o_, v);
+ }
+ void operator()(uint64_t const& v) const {
+ object<uint64_t>()(o_, v);
+ }
+ void operator()(int64_t const& v) const {
+ object<int64_t>()(o_, v);
+ }
+ void operator()(double const& v) const {
+ object<double>()(o_, v);
+ }
+ template <typename T>
+ void operator()(T const&) const {
+ throw clmdep_msgpack::type_error();
+ }
+ object_imp(clmdep_msgpack::object& o):o_(o) {}
+ clmdep_msgpack::object& o_;
+};
+
+} // namespace detail
+
+template <typename STR, typename BIN, typename EXT>
+struct object<clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > {
+ void operator()(clmdep_msgpack::object& o, const clmdep_msgpack::type::basic_variant<STR, BIN, EXT>& v) const {
+ boost::apply_visitor(detail::object_imp(o), v);
+ }
+};
+
+namespace detail {
+
+struct object_with_zone_imp : boost::static_visitor<void> {
+ template <typename T>
+ void operator()(T const& v) const {
+ object_with_zone<T>()(o_, v);
+ }
+ object_with_zone_imp(clmdep_msgpack::object::with_zone& o):o_(o) {}
+ clmdep_msgpack::object::with_zone& o_;
+};
+
+} // namespace detail
+
+template <typename STR, typename BIN, typename EXT>
+struct object_with_zone<clmdep_msgpack::type::basic_variant<STR, BIN, EXT> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const clmdep_msgpack::type::basic_variant<STR, BIN, EXT>& v) const {
+ boost::apply_visitor(detail::object_with_zone_imp(o), v);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_USE_BOOST
+#endif // MSGPACK_TYPE_BOOST_MSGPACK_VARIANT_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/optional.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/optional.hpp
new file mode 100644
index 000000000..74f7908e0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/optional.hpp
@@ -0,0 +1,104 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_BOOST_OPTIONAL_HPP
+#define MSGPACK_TYPE_BOOST_OPTIONAL_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+// To supress warning on Boost.1.58.0
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
+
+#include <boost/optional.hpp>
+
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+#if !defined (MSGPACK_USE_CPP03)
+
+template <typename T>
+struct as<boost::optional<T>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ boost::optional<T> operator()(clmdep_msgpack::object const& o) const {
+ if(o.is_nil()) return boost::none;
+ return o.as<T>();
+ }
+};
+
+#endif // !defined (MSGPACK_USE_CPP03)
+
+template <typename T>
+struct convert<boost::optional<T> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, boost::optional<T>& v) const {
+ if(o.is_nil()) v = boost::none;
+ else {
+ T t;
+ clmdep_msgpack::adaptor::convert<T>()(o, t);
+ v = t;
+ }
+ return o;
+ }
+};
+
+template <typename T>
+struct pack<boost::optional<T> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const boost::optional<T>& v) const {
+ if (v) o.pack(*v);
+ else o.pack_nil();
+ return o;
+ }
+};
+
+template <typename T>
+struct object<boost::optional<T> > {
+ void operator()(clmdep_msgpack::object& o, const boost::optional<T>& v) const {
+ if (v) clmdep_msgpack::adaptor::object<T>()(o, *v);
+ else o.type = clmdep_msgpack::type::NIL;
+ }
+};
+
+template <typename T>
+struct object_with_zone<boost::optional<T> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const boost::optional<T>& v) const {
+ if (v) clmdep_msgpack::adaptor::object_with_zone<T>()(o, *v);
+ else o.type = clmdep_msgpack::type::NIL;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_BOOST_OPTIONAL_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/string_ref.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/string_ref.hpp
new file mode 100644
index 000000000..6dea3da5f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/boost/string_ref.hpp
@@ -0,0 +1,95 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_BOOST_STRING_REF_HPP
+#define MSGPACK_TYPE_BOOST_STRING_REF_HPP
+
+#include <boost/version.hpp>
+#if (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <boost/utility/string_ref.hpp>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <>
+struct convert<boost::string_ref> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, boost::string_ref& v) const {
+ switch (o.type) {
+ case clmdep_msgpack::type::BIN:
+ v = boost::string_ref(o.via.bin.ptr, o.via.bin.size);
+ break;
+ case clmdep_msgpack::type::STR:
+ v = boost::string_ref(o.via.str.ptr, o.via.str.size);
+ break;
+ default:
+ throw clmdep_msgpack::type_error();
+ break;
+ }
+ return o;
+ }
+};
+
+template <>
+struct pack<boost::string_ref> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const boost::string_ref& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_str(size);
+ o.pack_str_body(v.data(), size);
+ return o;
+ }
+};
+
+template <>
+struct object<boost::string_ref> {
+ void operator()(clmdep_msgpack::object& o, const boost::string_ref& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::STR;
+ o.via.str.ptr = v.data();
+ o.via.str.size = size;
+ }
+};
+
+template <>
+struct object_with_zone<boost::string_ref> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const boost::string_ref& v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // (BOOST_VERSION / 100000) >= 1 && ((BOOST_VERSION / 100) % 1000) >= 53
+
+#endif // MSGPACK_TYPE_BOOST_STRING_REF_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/char_ptr.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/char_ptr.hpp
new file mode 100644
index 000000000..0743524a2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/char_ptr.hpp
@@ -0,0 +1,165 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_CHAR_PTR_HPP
+#define MSGPACK_TYPE_CHAR_PTR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/object_fwd.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <cstring>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <>
+struct pack<const char*> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.pack_str(size);
+ o.pack_str_body(v, size);
+ return o;
+ }
+};
+
+template <>
+struct object_with_zone<const char*> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.type = clmdep_msgpack::type::STR;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.str.ptr = ptr;
+ o.via.str.size = size;
+ std::memcpy(ptr, v, size);
+ }
+};
+
+template <>
+struct object<const char*> {
+ void operator()(clmdep_msgpack::object& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.type = clmdep_msgpack::type::STR;
+ o.via.str.ptr = v;
+ o.via.str.size = size;
+ }
+};
+
+
+template <>
+struct pack<char*> {
+ template <typename Stream>
+ packer<Stream>& operator()(packer<Stream>& o, char* v) const {
+ return o << static_cast<const char*>(v);
+ }
+};
+
+template <>
+struct object_with_zone<char*> {
+ void operator()(clmdep_msgpack::object::with_zone& o, char* v) const {
+ o << static_cast<const char*>(v);
+ }
+};
+
+template <>
+struct object<char*> {
+ void operator()(clmdep_msgpack::object& o, char* v) const {
+ o << static_cast<const char*>(v);
+ }
+};
+
+template <std::size_t N>
+struct pack<char[N]> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.pack_str(size);
+ o.pack_str_body(v, size);
+ return o;
+ }
+};
+
+template <std::size_t N>
+struct object_with_zone<char[N]> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.type = clmdep_msgpack::type::STR;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.str.ptr = ptr;
+ o.via.str.size = size;
+ std::memcpy(ptr, v, size);
+ }
+};
+
+template <std::size_t N>
+struct object<char[N]> {
+ void operator()(clmdep_msgpack::object& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.type = clmdep_msgpack::type::STR;
+ o.via.str.ptr = v;
+ o.via.str.size = size;
+ }
+};
+
+template <std::size_t N>
+struct pack<const char[N]> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.pack_str(size);
+ o.pack_str_body(v, size);
+ return o;
+ }
+};
+
+template <std::size_t N>
+struct object_with_zone<const char[N]> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.type = clmdep_msgpack::type::STR;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.str.ptr = ptr;
+ o.via.str.size = size;
+ std::memcpy(ptr, v, size);
+ }
+};
+
+template <std::size_t N>
+struct object<const char[N]> {
+ void operator()(clmdep_msgpack::object& o, const char* v) const {
+ uint32_t size = checked_get_container_size(std::strlen(v));
+ o.type = clmdep_msgpack::type::STR;
+ o.via.str.ptr = v;
+ o.via.str.size = size;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_CHAR_PTR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/check_container_size.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/check_container_size.hpp
new file mode 100644
index 000000000..a5b4531b3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/check_container_size.hpp
@@ -0,0 +1,75 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CHECK_CONTAINER_SIZE_HPP
+#define MSGPACK_CHECK_CONTAINER_SIZE_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include <stdexcept>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+struct container_size_overflow : public std::runtime_error {
+ explicit container_size_overflow(const std::string& msg)
+ :std::runtime_error(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ explicit container_size_overflow(const char* msg):
+ std::runtime_error(msg) {}
+#endif // !defined(MSGPACK_USE_CPP03)
+};
+
+namespace detail {
+
+template <std::size_t N>
+inline void check_container_size(std::size_t size) {
+ if (size > 0xffffffff) throw container_size_overflow("container size overflow");
+}
+
+template <>
+inline void check_container_size<4>(std::size_t /*size*/) {
+}
+
+template <std::size_t N>
+inline void check_container_size_for_ext(std::size_t size) {
+ if (size > 0xffffffff) throw container_size_overflow("container size overflow");
+}
+
+template <>
+inline void check_container_size_for_ext<4>(std::size_t size) {
+ if (size > 0xfffffffe) throw container_size_overflow("container size overflow");
+}
+
+} // namespace detail
+
+template <typename T>
+inline uint32_t checked_get_container_size(T size) {
+ detail::check_container_size<sizeof(T)>(size);
+ return static_cast<uint32_t>(size);
+}
+
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CHECK_CONTAINER_SIZE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array.hpp
new file mode 100644
index 000000000..0a234a1be
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array.hpp
@@ -0,0 +1,146 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef MSGPACK_CPP11_ARRAY_HPP
+#define MSGPACK_CPP11_ARRAY_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+#include "rpc/msgpack/meta.hpp"
+
+#include <array>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+namespace detail {
+
+namespace array {
+
+template<typename T, std::size_t N1, std::size_t... I1, std::size_t N2, std::size_t... I2>
+inline std::array<T, N1+N2> concat(
+ std::array<T, N1>&& a1,
+ std::array<T, N2>&& a2,
+ clmdep_msgpack::seq<I1...>,
+ clmdep_msgpack::seq<I2...>) {
+ return {{ std::move(a1[I1])..., std::move(a2[I2])... }};
+}
+
+template<typename T, std::size_t N1, std::size_t N2>
+inline std::array<T, N1+N2> concat(std::array<T, N1>&& a1, std::array<T, N2>&& a2) {
+ return concat(std::move(a1), std::move(a2), clmdep_msgpack::gen_seq<N1>(), clmdep_msgpack::gen_seq<N2>());
+}
+
+template <typename T, std::size_t N>
+struct as_impl {
+ static std::array<T, N> as(clmdep_msgpack::object const& o) {
+ clmdep_msgpack::object* p = o.via.array.ptr + N - 1;
+ return concat(as_impl<T, N-1>::as(o), std::array<T, 1>{{p->as<T>()}});
+ }
+};
+
+template <typename T>
+struct as_impl<T, 1> {
+ static std::array<T, 1> as(clmdep_msgpack::object const& o) {
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ return std::array<T, 1>{{p->as<T>()}};
+ }
+};
+
+template <typename T>
+struct as_impl<T, 0> {
+ static std::array<T, 0> as(clmdep_msgpack::object const&) {
+ return std::array<T, 0>();
+ }
+};
+
+} // namespace array
+
+} // namespace detail
+
+template <typename T, std::size_t N>
+struct as<std::array<T, N>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::array<T, N> operator()(clmdep_msgpack::object const& o) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size != N) { throw clmdep_msgpack::type_error(); }
+ return detail::array::as_impl<T, N>::as(o);
+ }
+};
+
+template <typename T, std::size_t N>
+struct convert<std::array<T, N>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::array<T, N>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size != N) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size > 0) {
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ T* it = &v[0];
+ do {
+ p->convert(*it);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ return o;
+ }
+};
+
+template <typename T, std::size_t N>
+struct pack<std::array<T, N>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::array<T, N>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for(auto const& e : v) o.pack(e);
+ return o;
+ }
+};
+
+template <typename T, std::size_t N>
+struct object_with_zone<std::array<T, N>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::array<T, N>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ o.via.array.size = size;
+ o.via.array.ptr = p;
+ for (auto const& e : v) *p++ = clmdep_msgpack::object(e, o.zone);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_ARRAY_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_char.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_char.hpp
new file mode 100644
index 000000000..e2a5dcf41
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_char.hpp
@@ -0,0 +1,97 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_ARRAY_CHAR_HPP
+#define MSGPACK_TYPE_ARRAY_CHAR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <array>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <std::size_t N>
+struct convert<std::array<char, N>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::array<char, N>& v) const {
+ switch (o.type) {
+ case clmdep_msgpack::type::BIN:
+ if(o.via.bin.size != N) { throw clmdep_msgpack::type_error(); }
+ std::memcpy(v.data(), o.via.bin.ptr, o.via.bin.size);
+ break;
+ case clmdep_msgpack::type::STR:
+ if(o.via.str.size != N) { throw clmdep_msgpack::type_error(); }
+ std::memcpy(v.data(), o.via.str.ptr, N);
+ break;
+ default:
+ throw clmdep_msgpack::type_error();
+ break;
+ }
+ return o;
+ }
+};
+
+template <std::size_t N>
+struct pack<std::array<char, N>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::array<char, N>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_bin(size);
+ o.pack_bin_body(v.data(), size);
+
+ return o;
+ }
+};
+
+template <std::size_t N>
+struct object<std::array<char, N>> {
+ void operator()(clmdep_msgpack::object& o, const std::array<char, N>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ o.via.bin.ptr = v.data();
+ o.via.bin.size = size;
+ }
+};
+
+template <std::size_t N>
+struct object_with_zone<std::array<char, N>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::array<char, N>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.bin.ptr = ptr;
+ o.via.bin.size = size;
+ std::memcpy(ptr, v.data(), size);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_ARRAY_CHAR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_unsigned_char.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_unsigned_char.hpp
new file mode 100644
index 000000000..35b1df63e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/array_unsigned_char.hpp
@@ -0,0 +1,97 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_ARRAY_UNSIGNED_CHAR_HPP
+#define MSGPACK_TYPE_ARRAY_UNSIGNED_CHAR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <array>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <std::size_t N>
+struct convert<std::array<unsigned char, N>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::array<unsigned char, N>& v) const {
+ switch (o.type) {
+ case clmdep_msgpack::type::BIN:
+ if(o.via.bin.size != N) { throw clmdep_msgpack::type_error(); }
+ std::memcpy(v.data(), o.via.bin.ptr, o.via.bin.size);
+ break;
+ case clmdep_msgpack::type::STR:
+ if(o.via.str.size != N) { throw clmdep_msgpack::type_error(); }
+ std::memcpy(v.data(), o.via.str.ptr, N);
+ break;
+ default:
+ throw clmdep_msgpack::type_error();
+ break;
+ }
+ return o;
+ }
+};
+
+template <std::size_t N>
+struct pack<std::array<unsigned char, N>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::array<unsigned char, N>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_bin(size);
+ o.pack_bin_body(reinterpret_cast<char const*>(v.data()), size);
+
+ return o;
+ }
+};
+
+template <std::size_t N>
+struct object<std::array<unsigned char, N>> {
+ void operator()(clmdep_msgpack::object& o, const std::array<unsigned char, N>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ o.via.bin.ptr = reinterpret_cast<char const*>(v.data());
+ o.via.bin.size = size;
+ }
+};
+
+template <std::size_t N>
+struct object_with_zone<std::array<unsigned char, N>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::array<unsigned char, N>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.bin.ptr = ptr;
+ o.via.bin.size = size;
+ std::memcpy(ptr, v.data(), size);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_ARRAY_UNSIGNED_CHAR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/forward_list.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/forward_list.hpp
new file mode 100644
index 000000000..b12007609
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/forward_list.hpp
@@ -0,0 +1,102 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014 KONDO-2015 Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef MSGPACK_CPP11_FORWARD_LIST_HPP
+#define MSGPACK_CPP11_FORWARD_LIST_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <forward_list>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename T, typename Alloc>
+ struct as<std::forward_list<T, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::forward_list<T, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ std::forward_list<T, Alloc> v;
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pend = o.via.array.ptr;
+ while (p != pend) {
+ --p;
+ v.push_front(p->as<T>());
+ }
+ return v;
+ }
+};
+
+template <typename T, typename Alloc>
+struct convert<std::forward_list<T, Alloc>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::forward_list<T, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ v.resize(o.via.array.size);
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ for (auto &e : v) {
+ p->convert(e);
+ ++p;
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct pack<std::forward_list<T, Alloc>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::forward_list<T, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end()));
+ o.pack_array(size);
+ for(auto const& e : v) o.pack(e);
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct object_with_zone<std::forward_list<T, Alloc>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::forward_list<T, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end()));
+ o.via.array.size = size;
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(
+ o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ o.via.array.ptr = p;
+ for(auto const& e : v) *p++ = clmdep_msgpack::object(e, o.zone);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_FORWARD_LIST_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/shared_ptr.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/shared_ptr.hpp
new file mode 100644
index 000000000..9054c7810
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/shared_ptr.hpp
@@ -0,0 +1,90 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef MSGPACK_CPP11_SHARED_PTR_HPP
+#define MSGPACK_CPP11_SHARED_PTR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <memory>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename T>
+struct as<std::shared_ptr<T>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::shared_ptr<T> operator()(clmdep_msgpack::object const& o) const {
+ if(o.is_nil()) return nullptr;
+ return std::make_shared<T>(o.as<T>());
+ }
+};
+
+template <typename T>
+struct convert<std::shared_ptr<T>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::shared_ptr<T>& v) const {
+ if(o.is_nil()) v.reset();
+ else {
+ v = std::make_shared<T>();
+ clmdep_msgpack::adaptor::convert<T>()(o, *v);
+ }
+ return o;
+ }
+};
+
+template <typename T>
+struct pack<std::shared_ptr<T>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::shared_ptr<T>& v) const {
+ if (v) o.pack(*v);
+ else o.pack_nil();
+ return o;
+ }
+};
+
+template <typename T>
+struct object<std::shared_ptr<T> > {
+ void operator()(clmdep_msgpack::object& o, const std::shared_ptr<T>& v) const {
+ if (v) clmdep_msgpack::adaptor::object<T>()(o, *v);
+ else o.type = clmdep_msgpack::type::NIL;
+ }
+};
+
+template <typename T>
+struct object_with_zone<std::shared_ptr<T>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::shared_ptr<T>& v) const {
+ if (v) clmdep_msgpack::adaptor::object_with_zone<T>()(o, *v);
+ else o.type = clmdep_msgpack::type::NIL;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_SHARED_PTR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/tuple.hpp
new file mode 100644
index 000000000..35be7b12d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/tuple.hpp
@@ -0,0 +1,184 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP11_TUPLE_HPP
+#define MSGPACK_CPP11_TUPLE_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+#include "rpc/msgpack/meta.hpp"
+
+#include <tuple>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+// --- Pack from tuple to packer stream ---
+template <typename Stream, typename Tuple, std::size_t N>
+struct StdTuplePacker {
+ static void pack(
+ clmdep_msgpack::packer<Stream>& o,
+ const Tuple& v) {
+ StdTuplePacker<Stream, Tuple, N-1>::pack(o, v);
+ o.pack(std::get<N-1>(v));
+ }
+};
+
+template <typename Stream, typename Tuple>
+struct StdTuplePacker<Stream, Tuple, 0> {
+ static void pack (
+ clmdep_msgpack::packer<Stream>&,
+ const Tuple&) {
+ }
+};
+
+namespace adaptor {
+
+template <typename... Args>
+struct pack<std::tuple<Args...>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const std::tuple<Args...>& v) const {
+ uint32_t size = checked_get_container_size(sizeof...(Args));
+ o.pack_array(size);
+ StdTuplePacker<Stream, decltype(v), sizeof...(Args)>::pack(o, v);
+ return o;
+ }
+};
+
+} // namespace adaptor
+
+// --- Convert from tuple to object ---
+
+template <typename... Args>
+struct StdTupleAs;
+
+template <typename T, typename... Args>
+struct StdTupleAsImpl {
+ static std::tuple<T, Args...> as(clmdep_msgpack::object const& o) {
+ return std::tuple_cat(
+ std::make_tuple(o.via.array.ptr[o.via.array.size - sizeof...(Args) - 1].as<T>()),
+ StdTupleAs<Args...>::as(o));
+ }
+};
+
+template <typename... Args>
+struct StdTupleAs {
+ static std::tuple<Args...> as(clmdep_msgpack::object const& o) {
+ return StdTupleAsImpl<Args...>::as(o);
+ }
+};
+
+template <>
+struct StdTupleAs<> {
+ static std::tuple<> as (clmdep_msgpack::object const&) {
+ return std::tuple<>();
+ }
+};
+
+template <typename Tuple, std::size_t N>
+struct StdTupleConverter {
+ static void convert(
+ clmdep_msgpack::object const& o,
+ Tuple& v) {
+ StdTupleConverter<Tuple, N-1>::convert(o, v);
+ o.via.array.ptr[N-1].convert<typename std::remove_reference<decltype(std::get<N-1>(v))>::type>(std::get<N-1>(v));
+ }
+};
+
+template <typename Tuple>
+struct StdTupleConverter<Tuple, 0> {
+ static void convert (
+ clmdep_msgpack::object const&,
+ Tuple&) {
+ }
+};
+
+namespace adaptor {
+
+template <typename... Args>
+struct as<std::tuple<Args...>, typename std::enable_if<clmdep_msgpack::all_of<clmdep_msgpack::has_as, Args...>::value>::type> {
+ std::tuple<Args...> operator()(
+ clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if (o.via.array.size < sizeof...(Args)) { throw clmdep_msgpack::type_error(); }
+ return StdTupleAs<Args...>::as(o);
+ }
+};
+
+template <typename... Args>
+struct convert<std::tuple<Args...>> {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ std::tuple<Args...>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < sizeof...(Args)) { throw clmdep_msgpack::type_error(); }
+ StdTupleConverter<decltype(v), sizeof...(Args)>::convert(o, v);
+ return o;
+ }
+};
+
+} // namespace adaptor
+
+// --- Convert from tuple to object with zone ---
+template <typename Tuple, std::size_t N>
+struct StdTupleToObjectWithZone {
+ static void convert(
+ clmdep_msgpack::object::with_zone& o,
+ const Tuple& v) {
+ StdTupleToObjectWithZone<Tuple, N-1>::convert(o, v);
+ o.via.array.ptr[N-1] = clmdep_msgpack::object(std::get<N-1>(v), o.zone);
+ }
+};
+
+template <typename Tuple>
+struct StdTupleToObjectWithZone<Tuple, 0> {
+ static void convert (
+ clmdep_msgpack::object::with_zone&,
+ const Tuple&) {
+ }
+};
+
+namespace adaptor {
+
+template <typename... Args>
+struct object_with_zone<std::tuple<Args...>> {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ std::tuple<Args...> const& v) const {
+ uint32_t size = checked_get_container_size(sizeof...(Args));
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ o.via.array.size = size;
+ StdTupleToObjectWithZone<decltype(v), sizeof...(Args)>::convert(o, v);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_TUPLE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unique_ptr.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unique_ptr.hpp
new file mode 100644
index 000000000..49792b069
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unique_ptr.hpp
@@ -0,0 +1,90 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef MSGPACK_CPP11_UNIQUE_PTR_HPP
+#define MSGPACK_CPP11_UNIQUE_PTR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <memory>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename T>
+struct as<std::unique_ptr<T>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::unique_ptr<T> operator()(clmdep_msgpack::object const& o) const {
+ if(o.is_nil()) return nullptr;
+ return std::unique_ptr<T>(new T(o.as<T>()));
+ }
+};
+
+template <typename T>
+struct convert<std::unique_ptr<T>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::unique_ptr<T>& v) const {
+ if(o.is_nil()) v.reset();
+ else {
+ v.reset(new T);
+ clmdep_msgpack::adaptor::convert<T>()(o, *v);
+ }
+ return o;
+ }
+};
+
+template <typename T>
+struct pack<std::unique_ptr<T>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::unique_ptr<T>& v) const {
+ if (v) o.pack(*v);
+ else o.pack_nil();
+ return o;
+ }
+};
+
+template <typename T>
+struct object<std::unique_ptr<T> > {
+ void operator()(clmdep_msgpack::object& o, const std::unique_ptr<T>& v) const {
+ if (v) clmdep_msgpack::adaptor::object<T>()(o, *v);
+ else o.type = clmdep_msgpack::type::NIL;
+ }
+};
+
+template <typename T>
+struct object_with_zone<std::unique_ptr<T>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::unique_ptr<T>& v) const {
+ if (v) clmdep_msgpack::adaptor::object_with_zone<T>()(o, *v);
+ else o.type = clmdep_msgpack::type::NIL;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_UNIQUE_PTR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_map.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_map.hpp
new file mode 100644
index 000000000..428c987de
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_map.hpp
@@ -0,0 +1,190 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_UNORDERED_MAP_HPP
+#define MSGPACK_TYPE_UNORDERED_MAP_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <unordered_map>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct as<
+ std::unordered_map<K, V, Hash, Compare, Alloc>,
+ typename std::enable_if<clmdep_msgpack::has_as<K>::value && clmdep_msgpack::has_as<V>::value>::type> {
+ std::unordered_map<K, V, Hash, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::unordered_map<K, V, Hash, Compare, Alloc> v;
+ for (; p != pend; ++p) {
+ v.emplace(p->key.as<K>(), p->val.as<V>());
+ }
+ return v;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct convert<std::unordered_map<K, V, Hash, Compare, Alloc>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::unordered_map<K, V, Hash, Compare, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::unordered_map<K, V, Hash, Compare, Alloc> tmp;
+ for(; p != pend; ++p) {
+ K key;
+ p->key.convert(key);
+ p->val.convert(tmp[std::move(key)]);
+ }
+ v = std::move(tmp);
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct pack<std::unordered_map<K, V, Hash, Compare, Alloc>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::unordered_map<K, V, Hash, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_map(size);
+ for(typename std::unordered_map<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(it->first);
+ o.pack(it->second);
+ }
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct object_with_zone<std::unordered_map<K, V, Hash, Compare, Alloc>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::unordered_map<K, V, Hash, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::MAP;
+ if(v.empty()) {
+ o.via.map.ptr = nullptr;
+ o.via.map.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object_kv* p = static_cast<clmdep_msgpack::object_kv*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv)*size));
+ clmdep_msgpack::object_kv* const pend = p + size;
+ o.via.map.ptr = p;
+ o.via.map.size = size;
+ typename std::unordered_map<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ p->key = clmdep_msgpack::object(it->first, o.zone);
+ p->val = clmdep_msgpack::object(it->second, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct as<
+ std::unordered_multimap<K, V, Hash, Compare, Alloc>,
+ typename std::enable_if<clmdep_msgpack::has_as<K>::value && clmdep_msgpack::has_as<V>::value>::type> {
+ std::unordered_multimap<K, V, Hash, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::unordered_multimap<K, V, Hash, Compare, Alloc> v;
+ for (; p != pend; ++p) {
+ v.emplace(p->key.as<K>(), p->val.as<V>());
+ }
+ return v;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct convert<std::unordered_multimap<K, V, Hash, Compare, Alloc>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::unordered_multimap<K, V, Hash, Compare, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::unordered_multimap<K, V, Hash, Compare, Alloc> tmp;
+ for(; p != pend; ++p) {
+ std::pair<K, V> value;
+ p->key.convert(value.first);
+ p->val.convert(value.second);
+ tmp.insert(std::move(value));
+ }
+ v = std::move(tmp);
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct pack<std::unordered_multimap<K, V, Hash, Compare, Alloc>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::unordered_multimap<K, V, Hash, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_map(size);
+ for(typename std::unordered_multimap<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(it->first);
+ o.pack(it->second);
+ }
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Compare, typename Alloc>
+struct object_with_zone<std::unordered_multimap<K, V, Hash, Compare, Alloc>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::unordered_multimap<K, V, Hash, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::MAP;
+ if(v.empty()) {
+ o.via.map.ptr = nullptr;
+ o.via.map.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object_kv* p = static_cast<clmdep_msgpack::object_kv*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv)*size));
+ clmdep_msgpack::object_kv* const pend = p + size;
+ o.via.map.ptr = p;
+ o.via.map.size = size;
+ typename std::unordered_multimap<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ p->key = clmdep_msgpack::object(it->first, o.zone);
+ p->val = clmdep_msgpack::object(it->second, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+
+#endif // MSGPACK_TYPE_UNORDERED_MAP_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_set.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_set.hpp
new file mode 100644
index 000000000..2e5eeef11
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/cpp11/unordered_set.hpp
@@ -0,0 +1,180 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_UNORDERED_SET_HPP
+#define MSGPACK_TYPE_UNORDERED_SET_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <unordered_set>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct as<std::unordered_set<Key, Hash, Compare, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<Key>::value>::type> {
+ std::unordered_set<Key, Hash, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::unordered_set<Key, Hash, Compare, Alloc> v;
+ while (p > pbegin) {
+ --p;
+ v.insert(p->as<Key>());
+ }
+ return v;
+ }
+};
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct convert<std::unordered_set<Key, Hash, Compare, Alloc>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::unordered_set<Key, Hash, Compare, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::unordered_set<Key, Hash, Compare, Alloc> tmp;
+ while(p > pbegin) {
+ --p;
+ tmp.insert(p->as<Key>());
+ }
+ v = std::move(tmp);
+ return o;
+ }
+};
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct pack<std::unordered_set<Key, Hash, Compare, Alloc>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::unordered_set<Key, Hash, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for(typename std::unordered_set<Key, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct object_with_zone<std::unordered_set<Key, Hash, Compare, Alloc>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::unordered_set<Key, Hash, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::unordered_set<Key, Hash, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct as<std::unordered_multiset<Key, Hash, Compare, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<Key>::value>::type> {
+ std::unordered_multiset<Key, Hash, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::unordered_multiset<Key, Hash, Compare, Alloc> v;
+ while (p > pbegin) {
+ --p;
+ v.insert(p->as<Key>());
+ }
+ return v;
+ }
+};
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct convert<std::unordered_multiset<Key, Hash, Compare, Alloc>> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::unordered_multiset<Key, Hash, Compare, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::unordered_multiset<Key, Hash, Compare, Alloc> tmp;
+ while(p > pbegin) {
+ --p;
+ tmp.insert(p->as<Key>());
+ }
+ v = std::move(tmp);
+ return o;
+ }
+};
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct pack<std::unordered_multiset<Key, Hash, Compare, Alloc>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::unordered_multiset<Key, Hash, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for(typename std::unordered_multiset<Key, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename Key, typename Hash, typename Compare, typename Alloc>
+struct object_with_zone<std::unordered_multiset<Key, Hash, Compare, Alloc>> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::unordered_multiset<Key, Hash, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::unordered_multiset<Key, Hash, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_UNORDERED_SET_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/define.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/define.hpp
new file mode 100644
index 000000000..dce5f53c9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/define.hpp
@@ -0,0 +1,39 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_DEFINE_HPP
+#define MSGPACK_DEFINE_HPP
+
+#include "rpc/msgpack/cpp_config.hpp"
+
+#if defined(MSGPACK_USE_CPP03)
+#include "detail/cpp03_define_array.hpp"
+#include "detail/cpp03_define_map.hpp"
+#else // MSGPACK_USE_CPP03
+#include "detail/cpp11_define_array.hpp"
+#include "detail/cpp11_define_map.hpp"
+#endif // MSGPACK_USE_CPP03
+
+#if defined(MSGPACK_USE_DEFINE_MAP)
+#define MSGPACK_DEFINE MSGPACK_DEFINE_MAP
+#define MSGPACK_BASE MSGPACK_BASE_MAP
+#else // defined(MSGPACK_USE_DEFINE_MAP)
+#define MSGPACK_DEFINE MSGPACK_DEFINE_ARRAY
+#define MSGPACK_BASE MSGPACK_BASE_ARRAY
+#endif // defined(MSGPACK_USE_DEFINE_MAP)
+
+#endif // MSGPACK_DEFINE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/deque.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/deque.hpp
new file mode 100644
index 000000000..e2e5b8530
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/deque.hpp
@@ -0,0 +1,116 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_DEQUE_HPP
+#define MSGPACK_TYPE_DEQUE_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <deque>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Alloc>
+struct as<std::deque<T, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::deque<T, Alloc> operator()(const clmdep_msgpack::object& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ std::deque<T, Alloc> v;
+ if (o.via.array.size > 0) {
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ do {
+ v.push_back(p->as<T>());
+ ++p;
+ } while (p < pend);
+ }
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Alloc>
+struct convert<std::deque<T, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::deque<T, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ v.resize(o.via.array.size);
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ typename std::deque<T, Alloc>::iterator it = v.begin();
+ for(; p < pend; ++p, ++it) {
+ p->convert(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct pack<std::deque<T, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::deque<T, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for(typename std::deque<T, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct object_with_zone<std::deque<T, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::deque<T, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::deque<T, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/type/deque.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_array.hpp
new file mode 100644
index 000000000..b93dc7062
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_array.hpp
@@ -0,0 +1,3498 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP03_DEFINE_ARRAY_HPP
+#define MSGPACK_CPP03_DEFINE_ARRAY_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/msgpack_tuple.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/object_fwd.hpp"
+
+#define MSGPACK_DEFINE_ARRAY(...) \
+ template <typename Packer> \
+ void msgpack_pack(Packer& pk) const \
+ { \
+ clmdep_msgpack::type::make_define_array(__VA_ARGS__).msgpack_pack(pk); \
+ } \
+ void msgpack_unpack(clmdep_msgpack::object const& o) \
+ { \
+ clmdep_msgpack::type::make_define_array(__VA_ARGS__).msgpack_unpack(o); \
+ }\
+ template <typename MSGPACK_OBJECT> \
+ void msgpack_object(MSGPACK_OBJECT* o, clmdep_msgpack::zone& z) const \
+ { \
+ clmdep_msgpack::type::make_define_array(__VA_ARGS__).msgpack_object(o, z); \
+ }
+
+#define MSGPACK_BASE_ARRAY(base) (*const_cast<base *>(static_cast<base const*>(this)))
+
+// MSGPACK_ADD_ENUM must be used in the global namespace.
+#define MSGPACK_ADD_ENUM(enum_name) \
+ namespace clmdep_msgpack { \
+ /** @cond */ \
+ MSGPACK_API_VERSION_NAMESPACE(v1) { \
+ /** @endcond */ \
+ namespace adaptor { \
+ template<> \
+ struct convert<enum_name> { \
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, enum_name& v) const {\
+ int tmp; \
+ o >> tmp; \
+ v = static_cast<enum_name>(tmp); \
+ return o; \
+ } \
+ }; \
+ template<> \
+ struct object<enum_name> { \
+ void operator()(clmdep_msgpack::object& o, const enum_name& v) const {\
+ o << static_cast<int>(v); \
+ } \
+ }; \
+ template<> \
+ struct object_with_zone<enum_name> { \
+ void operator()(clmdep_msgpack::object::with_zone& o, const enum_name& v) const { \
+ o << static_cast<int>(v); \
+ } \
+ }; \
+ template<> \
+ struct pack<enum_name> { \
+ template <typename Stream> \
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const enum_name& v) const { \
+ return o << static_cast<int>(v); \
+ } \
+ }; \
+ } \
+ /** @cond */ \
+ } \
+ /** @endcond */ \
+ }
+
+namespace clmdep_msgpack {
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+namespace type {
+
+/// @cond
+
+template <typename A0 = void, typename A1 = void, typename A2 = void, typename A3 = void, typename A4 = void, typename A5 = void, typename A6 = void, typename A7 = void, typename A8 = void, typename A9 = void, typename A10 = void, typename A11 = void, typename A12 = void, typename A13 = void, typename A14 = void, typename A15 = void, typename A16 = void, typename A17 = void, typename A18 = void, typename A19 = void, typename A20 = void, typename A21 = void, typename A22 = void, typename A23 = void, typename A24 = void, typename A25 = void, typename A26 = void, typename A27 = void, typename A28 = void, typename A29 = void, typename A30 = void, typename A31 = void, typename A32 = void>
+struct define_array;
+/// @endcond
+
+template <>
+struct define_array<> {
+ typedef define_array<> value_type;
+ typedef tuple<> tuple_type;
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(0);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone&) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = nullptr;
+ o->via.array.size = 0;
+ }
+};
+
+/// @cond
+
+template <typename A0>
+struct define_array<A0> {
+ typedef define_array<A0> value_type;
+ typedef tuple<A0> tuple_type;
+ define_array(A0& _a0) :
+ a0(_a0) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(1);
+
+ pk.pack(a0);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*1));
+ o->via.array.size = 1;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ }
+
+ A0& a0;
+};
+
+template <typename A0, typename A1>
+struct define_array<A0, A1> {
+ typedef define_array<A0, A1> value_type;
+ typedef tuple<A0, A1> tuple_type;
+ define_array(A0& _a0, A1& _a1) :
+ a0(_a0), a1(_a1) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(2);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*2));
+ o->via.array.size = 2;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ }
+
+ A0& a0;
+ A1& a1;
+};
+
+template <typename A0, typename A1, typename A2>
+struct define_array<A0, A1, A2> {
+ typedef define_array<A0, A1, A2> value_type;
+ typedef tuple<A0, A1, A2> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2) :
+ a0(_a0), a1(_a1), a2(_a2) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(3);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*3));
+ o->via.array.size = 3;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct define_array<A0, A1, A2, A3> {
+ typedef define_array<A0, A1, A2, A3> value_type;
+ typedef tuple<A0, A1, A2, A3> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(4);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*4));
+ o->via.array.size = 4;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct define_array<A0, A1, A2, A3, A4> {
+ typedef define_array<A0, A1, A2, A3, A4> value_type;
+ typedef tuple<A0, A1, A2, A3, A4> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(5);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*5));
+ o->via.array.size = 5;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct define_array<A0, A1, A2, A3, A4, A5> {
+ typedef define_array<A0, A1, A2, A3, A4, A5> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(6);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*6));
+ o->via.array.size = 6;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct define_array<A0, A1, A2, A3, A4, A5, A6> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(7);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*7));
+ o->via.array.size = 7;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(8);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*8));
+ o->via.array.size = 8;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(9);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*9));
+ o->via.array.size = 9;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(10);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*10));
+ o->via.array.size = 10;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(11);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*11));
+ o->via.array.size = 11;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(12);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*12));
+ o->via.array.size = 12;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(13);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*13));
+ o->via.array.size = 13;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(14);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*14));
+ o->via.array.size = 14;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(15);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*15));
+ o->via.array.size = 15;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(16);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*16));
+ o->via.array.size = 16;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(17);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*17));
+ o->via.array.size = 17;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(18);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*18));
+ o->via.array.size = 18;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(19);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*19));
+ o->via.array.size = 19;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(20);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*20));
+ o->via.array.size = 20;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(21);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*21));
+ o->via.array.size = 21;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(22);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*22));
+ o->via.array.size = 22;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(23);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*23));
+ o->via.array.size = 23;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(24);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*24));
+ o->via.array.size = 24;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(25);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*25));
+ o->via.array.size = 25;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(26);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 26: ptr[25].convert(a25);
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*26));
+ o->via.array.size = 26;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ o->via.array.ptr[25] = clmdep_msgpack::object(a25, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(27);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 27: ptr[26].convert(a26);
+ case 26: ptr[25].convert(a25);
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*27));
+ o->via.array.size = 27;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ o->via.array.ptr[25] = clmdep_msgpack::object(a25, z);
+ o->via.array.ptr[26] = clmdep_msgpack::object(a26, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(28);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 28: ptr[27].convert(a27);
+ case 27: ptr[26].convert(a26);
+ case 26: ptr[25].convert(a25);
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*28));
+ o->via.array.size = 28;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ o->via.array.ptr[25] = clmdep_msgpack::object(a25, z);
+ o->via.array.ptr[26] = clmdep_msgpack::object(a26, z);
+ o->via.array.ptr[27] = clmdep_msgpack::object(a27, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(29);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ pk.pack(a28);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 29: ptr[28].convert(a28);
+ case 28: ptr[27].convert(a27);
+ case 27: ptr[26].convert(a26);
+ case 26: ptr[25].convert(a25);
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*29));
+ o->via.array.size = 29;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ o->via.array.ptr[25] = clmdep_msgpack::object(a25, z);
+ o->via.array.ptr[26] = clmdep_msgpack::object(a26, z);
+ o->via.array.ptr[27] = clmdep_msgpack::object(a27, z);
+ o->via.array.ptr[28] = clmdep_msgpack::object(a28, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+ A28& a28;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(30);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ pk.pack(a28);
+ pk.pack(a29);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 30: ptr[29].convert(a29);
+ case 29: ptr[28].convert(a28);
+ case 28: ptr[27].convert(a27);
+ case 27: ptr[26].convert(a26);
+ case 26: ptr[25].convert(a25);
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*30));
+ o->via.array.size = 30;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ o->via.array.ptr[25] = clmdep_msgpack::object(a25, z);
+ o->via.array.ptr[26] = clmdep_msgpack::object(a26, z);
+ o->via.array.ptr[27] = clmdep_msgpack::object(a27, z);
+ o->via.array.ptr[28] = clmdep_msgpack::object(a28, z);
+ o->via.array.ptr[29] = clmdep_msgpack::object(a29, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+ A28& a28;
+ A29& a29;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(31);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ pk.pack(a28);
+ pk.pack(a29);
+ pk.pack(a30);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 31: ptr[30].convert(a30);
+ case 30: ptr[29].convert(a29);
+ case 29: ptr[28].convert(a28);
+ case 28: ptr[27].convert(a27);
+ case 27: ptr[26].convert(a26);
+ case 26: ptr[25].convert(a25);
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*31));
+ o->via.array.size = 31;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ o->via.array.ptr[25] = clmdep_msgpack::object(a25, z);
+ o->via.array.ptr[26] = clmdep_msgpack::object(a26, z);
+ o->via.array.ptr[27] = clmdep_msgpack::object(a27, z);
+ o->via.array.ptr[28] = clmdep_msgpack::object(a28, z);
+ o->via.array.ptr[29] = clmdep_msgpack::object(a29, z);
+ o->via.array.ptr[30] = clmdep_msgpack::object(a30, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+ A28& a28;
+ A29& a29;
+ A30& a30;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> {
+ typedef define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> value_type;
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> tuple_type;
+ define_array(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30, A31& _a31) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(32);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ pk.pack(a28);
+ pk.pack(a29);
+ pk.pack(a30);
+ pk.pack(a31);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ const size_t size = o.via.array.size;
+ if(size > 0) {
+ clmdep_msgpack::object *ptr = o.via.array.ptr;
+ switch(size) {
+ default:
+ case 32: ptr[31].convert(a31);
+ case 31: ptr[30].convert(a30);
+ case 30: ptr[29].convert(a29);
+ case 29: ptr[28].convert(a28);
+ case 28: ptr[27].convert(a27);
+ case 27: ptr[26].convert(a26);
+ case 26: ptr[25].convert(a25);
+ case 25: ptr[24].convert(a24);
+ case 24: ptr[23].convert(a23);
+ case 23: ptr[22].convert(a22);
+ case 22: ptr[21].convert(a21);
+ case 21: ptr[20].convert(a20);
+ case 20: ptr[19].convert(a19);
+ case 19: ptr[18].convert(a18);
+ case 18: ptr[17].convert(a17);
+ case 17: ptr[16].convert(a16);
+ case 16: ptr[15].convert(a15);
+ case 15: ptr[14].convert(a14);
+ case 14: ptr[13].convert(a13);
+ case 13: ptr[12].convert(a12);
+ case 12: ptr[11].convert(a11);
+ case 11: ptr[10].convert(a10);
+ case 10: ptr[9].convert(a9);
+ case 9: ptr[8].convert(a8);
+ case 8: ptr[7].convert(a7);
+ case 7: ptr[6].convert(a6);
+ case 6: ptr[5].convert(a5);
+ case 5: ptr[4].convert(a4);
+ case 4: ptr[3].convert(a3);
+ case 3: ptr[2].convert(a2);
+ case 2: ptr[1].convert(a1);
+ case 1: ptr[0].convert(a0);
+ }
+ }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*32));
+ o->via.array.size = 32;
+
+ o->via.array.ptr[0] = clmdep_msgpack::object(a0, z);
+ o->via.array.ptr[1] = clmdep_msgpack::object(a1, z);
+ o->via.array.ptr[2] = clmdep_msgpack::object(a2, z);
+ o->via.array.ptr[3] = clmdep_msgpack::object(a3, z);
+ o->via.array.ptr[4] = clmdep_msgpack::object(a4, z);
+ o->via.array.ptr[5] = clmdep_msgpack::object(a5, z);
+ o->via.array.ptr[6] = clmdep_msgpack::object(a6, z);
+ o->via.array.ptr[7] = clmdep_msgpack::object(a7, z);
+ o->via.array.ptr[8] = clmdep_msgpack::object(a8, z);
+ o->via.array.ptr[9] = clmdep_msgpack::object(a9, z);
+ o->via.array.ptr[10] = clmdep_msgpack::object(a10, z);
+ o->via.array.ptr[11] = clmdep_msgpack::object(a11, z);
+ o->via.array.ptr[12] = clmdep_msgpack::object(a12, z);
+ o->via.array.ptr[13] = clmdep_msgpack::object(a13, z);
+ o->via.array.ptr[14] = clmdep_msgpack::object(a14, z);
+ o->via.array.ptr[15] = clmdep_msgpack::object(a15, z);
+ o->via.array.ptr[16] = clmdep_msgpack::object(a16, z);
+ o->via.array.ptr[17] = clmdep_msgpack::object(a17, z);
+ o->via.array.ptr[18] = clmdep_msgpack::object(a18, z);
+ o->via.array.ptr[19] = clmdep_msgpack::object(a19, z);
+ o->via.array.ptr[20] = clmdep_msgpack::object(a20, z);
+ o->via.array.ptr[21] = clmdep_msgpack::object(a21, z);
+ o->via.array.ptr[22] = clmdep_msgpack::object(a22, z);
+ o->via.array.ptr[23] = clmdep_msgpack::object(a23, z);
+ o->via.array.ptr[24] = clmdep_msgpack::object(a24, z);
+ o->via.array.ptr[25] = clmdep_msgpack::object(a25, z);
+ o->via.array.ptr[26] = clmdep_msgpack::object(a26, z);
+ o->via.array.ptr[27] = clmdep_msgpack::object(a27, z);
+ o->via.array.ptr[28] = clmdep_msgpack::object(a28, z);
+ o->via.array.ptr[29] = clmdep_msgpack::object(a29, z);
+ o->via.array.ptr[30] = clmdep_msgpack::object(a30, z);
+ o->via.array.ptr[31] = clmdep_msgpack::object(a31, z);
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+ A28& a28;
+ A29& a29;
+ A30& a30;
+ A31& a31;
+};
+
+/// @endcond
+
+inline define_array<> make_define_array()
+{
+ return define_array<>();
+}
+
+/// @cond
+
+template <typename A0>
+inline define_array<A0> make_define_array(A0& a0)
+{
+ return define_array<A0>(a0);
+}
+
+template <typename A0, typename A1>
+inline define_array<A0, A1> make_define_array(A0& a0, A1& a1)
+{
+ return define_array<A0, A1>(a0, a1);
+}
+
+template <typename A0, typename A1, typename A2>
+inline define_array<A0, A1, A2> make_define_array(A0& a0, A1& a1, A2& a2)
+{
+ return define_array<A0, A1, A2>(a0, a1, a2);
+}
+
+template <typename A0, typename A1, typename A2, typename A3>
+inline define_array<A0, A1, A2, A3> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3)
+{
+ return define_array<A0, A1, A2, A3>(a0, a1, a2, a3);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+inline define_array<A0, A1, A2, A3, A4> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4)
+{
+ return define_array<A0, A1, A2, A3, A4>(a0, a1, a2, a3, a4);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+inline define_array<A0, A1, A2, A3, A4, A5> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5)
+{
+ return define_array<A0, A1, A2, A3, A4, A5>(a0, a1, a2, a3, a4, a5);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+inline define_array<A0, A1, A2, A3, A4, A5, A6> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6>(a0, a1, a2, a3, a4, a5, a6);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7>(a0, a1, a2, a3, a4, a5, a6, a7);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8>(a0, a1, a2, a3, a4, a5, a6, a7, a8);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+inline define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> make_define_array(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31)
+{
+ return define_array<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31);
+}
+
+/// @endcond
+
+} // namespace type
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+} // namespace clmdep_msgpack
+
+
+#endif // MSGPACK_CPP03_DEFINE_ARRAY_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_map.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_map.hpp
new file mode 100644
index 000000000..814240548
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_define_map.hpp
@@ -0,0 +1,2799 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP03_DEFINE_MAP_HPP
+#define MSGPACK_CPP03_DEFINE_MAP_HPP
+
+// BOOST_PP_VARIADICS is defined in boost/preprocessor/config/config.hpp
+// http://www.boost.org/libs/preprocessor/doc/ref/variadics.html
+// However, supporting compiler detection is not complete. msgpack-c requires
+// variadic macro arguments support. So BOOST_PP_VARIADICS is defined here explicitly.
+#if !defined(MSGPACK_PP_VARIADICS)
+#define MSGPACK_PP_VARIADICS
+#endif
+
+#include <rpc/msgpack/preprocessor.hpp>
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/msgpack_tuple.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/object_fwd.hpp"
+
+#define MSGPACK_DEFINE_MAP_EACH_PROC(r, data, elem) \
+ MSGPACK_PP_IF( \
+ MSGPACK_PP_IS_BEGIN_PARENS(elem), \
+ elem, \
+ (MSGPACK_PP_STRINGIZE(elem))(elem) \
+ )
+
+#define MSGPACK_DEFINE_MAP_IMPL(...) \
+ MSGPACK_PP_SEQ_TO_TUPLE( \
+ MSGPACK_PP_SEQ_FOR_EACH( \
+ MSGPACK_DEFINE_MAP_EACH_PROC, \
+ 0, \
+ MSGPACK_PP_VARIADIC_TO_SEQ(__VA_ARGS__) \
+ ) \
+ )
+
+#define MSGPACK_DEFINE_MAP(...) \
+ template <typename Packer> \
+ void msgpack_pack(Packer& pk) const \
+ { \
+ clmdep_msgpack::type::make_define_map \
+ MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
+ .msgpack_pack(pk); \
+ } \
+ void msgpack_unpack(clmdep_msgpack::object const& o) \
+ { \
+ clmdep_msgpack::type::make_define_map \
+ MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
+ .msgpack_unpack(o); \
+ }\
+ template <typename MSGPACK_OBJECT> \
+ void msgpack_object(MSGPACK_OBJECT* o, clmdep_msgpack::zone& z) const \
+ { \
+ clmdep_msgpack::type::make_define_map \
+ MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
+ .msgpack_object(o, z); \
+ }
+
+#define MSGPACK_BASE_MAP(base) \
+ (MSGPACK_PP_STRINGIZE(base))(*const_cast<base *>(static_cast<base const*>(this)))
+
+namespace clmdep_msgpack {
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+namespace type {
+
+/// @cond
+
+template <typename A0 = void, typename A1 = void, typename A2 = void, typename A3 = void, typename A4 = void, typename A5 = void, typename A6 = void, typename A7 = void, typename A8 = void, typename A9 = void, typename A10 = void, typename A11 = void, typename A12 = void, typename A13 = void, typename A14 = void, typename A15 = void, typename A16 = void, typename A17 = void, typename A18 = void, typename A19 = void, typename A20 = void, typename A21 = void, typename A22 = void, typename A23 = void, typename A24 = void, typename A25 = void, typename A26 = void, typename A27 = void, typename A28 = void, typename A29 = void, typename A30 = void, typename A31 = void, typename A32 = void>
+struct define_map;
+/// @endcond
+
+template <>
+struct define_map<> {
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(0);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone&) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = nullptr;
+ o->via.map.size = 0;
+ }
+};
+
+/// @cond
+
+template <typename A0, typename A1>
+struct define_map<A0, A1> {
+ define_map(A0& _a0, A1& _a1) :
+ a0(_a0), a1(_a1) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(1);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*1));
+ o->via.map.size = 1;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct define_map<A0, A1, A2, A3> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(2);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*2));
+ o->via.map.size = 2;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct define_map<A0, A1, A2, A3, A4, A5> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(3);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*3));
+ o->via.map.size = 3;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(4);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*4));
+ o->via.map.size = 4;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(5);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*5));
+ o->via.map.size = 5;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(6);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*6));
+ o->via.map.size = 6;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(7);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*7));
+ o->via.map.size = 7;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(8);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*8));
+ o->via.map.size = 8;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(9);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*9));
+ o->via.map.size = 9;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(10);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a18);
+ if (it != kvmap.end()) {
+ it->second->convert(a19);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*10));
+ o->via.map.size = 10;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ o->via.map.ptr[9].key = clmdep_msgpack::object(a18, z);
+ o->via.map.ptr[9].val = clmdep_msgpack::object(a19, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(11);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a18);
+ if (it != kvmap.end()) {
+ it->second->convert(a19);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a20);
+ if (it != kvmap.end()) {
+ it->second->convert(a21);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*11));
+ o->via.map.size = 11;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ o->via.map.ptr[9].key = clmdep_msgpack::object(a18, z);
+ o->via.map.ptr[9].val = clmdep_msgpack::object(a19, z);
+
+ o->via.map.ptr[10].key = clmdep_msgpack::object(a20, z);
+ o->via.map.ptr[10].val = clmdep_msgpack::object(a21, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(12);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a18);
+ if (it != kvmap.end()) {
+ it->second->convert(a19);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a20);
+ if (it != kvmap.end()) {
+ it->second->convert(a21);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a22);
+ if (it != kvmap.end()) {
+ it->second->convert(a23);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*12));
+ o->via.map.size = 12;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ o->via.map.ptr[9].key = clmdep_msgpack::object(a18, z);
+ o->via.map.ptr[9].val = clmdep_msgpack::object(a19, z);
+
+ o->via.map.ptr[10].key = clmdep_msgpack::object(a20, z);
+ o->via.map.ptr[10].val = clmdep_msgpack::object(a21, z);
+
+ o->via.map.ptr[11].key = clmdep_msgpack::object(a22, z);
+ o->via.map.ptr[11].val = clmdep_msgpack::object(a23, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(13);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a18);
+ if (it != kvmap.end()) {
+ it->second->convert(a19);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a20);
+ if (it != kvmap.end()) {
+ it->second->convert(a21);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a22);
+ if (it != kvmap.end()) {
+ it->second->convert(a23);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a24);
+ if (it != kvmap.end()) {
+ it->second->convert(a25);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*13));
+ o->via.map.size = 13;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ o->via.map.ptr[9].key = clmdep_msgpack::object(a18, z);
+ o->via.map.ptr[9].val = clmdep_msgpack::object(a19, z);
+
+ o->via.map.ptr[10].key = clmdep_msgpack::object(a20, z);
+ o->via.map.ptr[10].val = clmdep_msgpack::object(a21, z);
+
+ o->via.map.ptr[11].key = clmdep_msgpack::object(a22, z);
+ o->via.map.ptr[11].val = clmdep_msgpack::object(a23, z);
+
+ o->via.map.ptr[12].key = clmdep_msgpack::object(a24, z);
+ o->via.map.ptr[12].val = clmdep_msgpack::object(a25, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(14);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a18);
+ if (it != kvmap.end()) {
+ it->second->convert(a19);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a20);
+ if (it != kvmap.end()) {
+ it->second->convert(a21);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a22);
+ if (it != kvmap.end()) {
+ it->second->convert(a23);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a24);
+ if (it != kvmap.end()) {
+ it->second->convert(a25);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a26);
+ if (it != kvmap.end()) {
+ it->second->convert(a27);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*14));
+ o->via.map.size = 14;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ o->via.map.ptr[9].key = clmdep_msgpack::object(a18, z);
+ o->via.map.ptr[9].val = clmdep_msgpack::object(a19, z);
+
+ o->via.map.ptr[10].key = clmdep_msgpack::object(a20, z);
+ o->via.map.ptr[10].val = clmdep_msgpack::object(a21, z);
+
+ o->via.map.ptr[11].key = clmdep_msgpack::object(a22, z);
+ o->via.map.ptr[11].val = clmdep_msgpack::object(a23, z);
+
+ o->via.map.ptr[12].key = clmdep_msgpack::object(a24, z);
+ o->via.map.ptr[12].val = clmdep_msgpack::object(a25, z);
+
+ o->via.map.ptr[13].key = clmdep_msgpack::object(a26, z);
+ o->via.map.ptr[13].val = clmdep_msgpack::object(a27, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(15);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ pk.pack(a28);
+ pk.pack(a29);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a18);
+ if (it != kvmap.end()) {
+ it->second->convert(a19);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a20);
+ if (it != kvmap.end()) {
+ it->second->convert(a21);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a22);
+ if (it != kvmap.end()) {
+ it->second->convert(a23);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a24);
+ if (it != kvmap.end()) {
+ it->second->convert(a25);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a26);
+ if (it != kvmap.end()) {
+ it->second->convert(a27);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a28);
+ if (it != kvmap.end()) {
+ it->second->convert(a29);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*15));
+ o->via.map.size = 15;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ o->via.map.ptr[9].key = clmdep_msgpack::object(a18, z);
+ o->via.map.ptr[9].val = clmdep_msgpack::object(a19, z);
+
+ o->via.map.ptr[10].key = clmdep_msgpack::object(a20, z);
+ o->via.map.ptr[10].val = clmdep_msgpack::object(a21, z);
+
+ o->via.map.ptr[11].key = clmdep_msgpack::object(a22, z);
+ o->via.map.ptr[11].val = clmdep_msgpack::object(a23, z);
+
+ o->via.map.ptr[12].key = clmdep_msgpack::object(a24, z);
+ o->via.map.ptr[12].val = clmdep_msgpack::object(a25, z);
+
+ o->via.map.ptr[13].key = clmdep_msgpack::object(a26, z);
+ o->via.map.ptr[13].val = clmdep_msgpack::object(a27, z);
+
+ o->via.map.ptr[14].key = clmdep_msgpack::object(a28, z);
+ o->via.map.ptr[14].val = clmdep_msgpack::object(a29, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+ A28& a28;
+ A29& a29;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> {
+ define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30, A31& _a31) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_map(16);
+
+ pk.pack(a0);
+ pk.pack(a1);
+ pk.pack(a2);
+ pk.pack(a3);
+ pk.pack(a4);
+ pk.pack(a5);
+ pk.pack(a6);
+ pk.pack(a7);
+ pk.pack(a8);
+ pk.pack(a9);
+ pk.pack(a10);
+ pk.pack(a11);
+ pk.pack(a12);
+ pk.pack(a13);
+ pk.pack(a14);
+ pk.pack(a15);
+ pk.pack(a16);
+ pk.pack(a17);
+ pk.pack(a18);
+ pk.pack(a19);
+ pk.pack(a20);
+ pk.pack(a21);
+ pk.pack(a22);
+ pk.pack(a23);
+ pk.pack(a24);
+ pk.pack(a25);
+ pk.pack(a26);
+ pk.pack(a27);
+ pk.pack(a28);
+ pk.pack(a29);
+ pk.pack(a30);
+ pk.pack(a31);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.insert(
+ std::map<std::string, clmdep_msgpack::object const*>::value_type(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val
+ )
+ );
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a0);
+ if (it != kvmap.end()) {
+ it->second->convert(a1);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a2);
+ if (it != kvmap.end()) {
+ it->second->convert(a3);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a4);
+ if (it != kvmap.end()) {
+ it->second->convert(a5);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a6);
+ if (it != kvmap.end()) {
+ it->second->convert(a7);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a8);
+ if (it != kvmap.end()) {
+ it->second->convert(a9);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a10);
+ if (it != kvmap.end()) {
+ it->second->convert(a11);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a12);
+ if (it != kvmap.end()) {
+ it->second->convert(a13);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a14);
+ if (it != kvmap.end()) {
+ it->second->convert(a15);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a16);
+ if (it != kvmap.end()) {
+ it->second->convert(a17);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a18);
+ if (it != kvmap.end()) {
+ it->second->convert(a19);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a20);
+ if (it != kvmap.end()) {
+ it->second->convert(a21);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a22);
+ if (it != kvmap.end()) {
+ it->second->convert(a23);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a24);
+ if (it != kvmap.end()) {
+ it->second->convert(a25);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a26);
+ if (it != kvmap.end()) {
+ it->second->convert(a27);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a28);
+ if (it != kvmap.end()) {
+ it->second->convert(a29);
+ }
+ }
+
+ {
+ std::map<std::string, clmdep_msgpack::object const*>::const_iterator it = kvmap.find(a30);
+ if (it != kvmap.end()) {
+ it->second->convert(a31);
+ }
+ }
+
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*16));
+ o->via.map.size = 16;
+
+ o->via.map.ptr[0].key = clmdep_msgpack::object(a0, z);
+ o->via.map.ptr[0].val = clmdep_msgpack::object(a1, z);
+
+ o->via.map.ptr[1].key = clmdep_msgpack::object(a2, z);
+ o->via.map.ptr[1].val = clmdep_msgpack::object(a3, z);
+
+ o->via.map.ptr[2].key = clmdep_msgpack::object(a4, z);
+ o->via.map.ptr[2].val = clmdep_msgpack::object(a5, z);
+
+ o->via.map.ptr[3].key = clmdep_msgpack::object(a6, z);
+ o->via.map.ptr[3].val = clmdep_msgpack::object(a7, z);
+
+ o->via.map.ptr[4].key = clmdep_msgpack::object(a8, z);
+ o->via.map.ptr[4].val = clmdep_msgpack::object(a9, z);
+
+ o->via.map.ptr[5].key = clmdep_msgpack::object(a10, z);
+ o->via.map.ptr[5].val = clmdep_msgpack::object(a11, z);
+
+ o->via.map.ptr[6].key = clmdep_msgpack::object(a12, z);
+ o->via.map.ptr[6].val = clmdep_msgpack::object(a13, z);
+
+ o->via.map.ptr[7].key = clmdep_msgpack::object(a14, z);
+ o->via.map.ptr[7].val = clmdep_msgpack::object(a15, z);
+
+ o->via.map.ptr[8].key = clmdep_msgpack::object(a16, z);
+ o->via.map.ptr[8].val = clmdep_msgpack::object(a17, z);
+
+ o->via.map.ptr[9].key = clmdep_msgpack::object(a18, z);
+ o->via.map.ptr[9].val = clmdep_msgpack::object(a19, z);
+
+ o->via.map.ptr[10].key = clmdep_msgpack::object(a20, z);
+ o->via.map.ptr[10].val = clmdep_msgpack::object(a21, z);
+
+ o->via.map.ptr[11].key = clmdep_msgpack::object(a22, z);
+ o->via.map.ptr[11].val = clmdep_msgpack::object(a23, z);
+
+ o->via.map.ptr[12].key = clmdep_msgpack::object(a24, z);
+ o->via.map.ptr[12].val = clmdep_msgpack::object(a25, z);
+
+ o->via.map.ptr[13].key = clmdep_msgpack::object(a26, z);
+ o->via.map.ptr[13].val = clmdep_msgpack::object(a27, z);
+
+ o->via.map.ptr[14].key = clmdep_msgpack::object(a28, z);
+ o->via.map.ptr[14].val = clmdep_msgpack::object(a29, z);
+
+ o->via.map.ptr[15].key = clmdep_msgpack::object(a30, z);
+ o->via.map.ptr[15].val = clmdep_msgpack::object(a31, z);
+
+ }
+
+ A0& a0;
+ A1& a1;
+ A2& a2;
+ A3& a3;
+ A4& a4;
+ A5& a5;
+ A6& a6;
+ A7& a7;
+ A8& a8;
+ A9& a9;
+ A10& a10;
+ A11& a11;
+ A12& a12;
+ A13& a13;
+ A14& a14;
+ A15& a15;
+ A16& a16;
+ A17& a17;
+ A18& a18;
+ A19& a19;
+ A20& a20;
+ A21& a21;
+ A22& a22;
+ A23& a23;
+ A24& a24;
+ A25& a25;
+ A26& a26;
+ A27& a27;
+ A28& a28;
+ A29& a29;
+ A30& a30;
+ A31& a31;
+};
+
+/// @endcond
+
+inline define_map<> make_define_map()
+{
+ return define_map<>();
+}
+
+/// @cond
+
+template <typename A0>
+inline define_map<A0> make_define_map(A0& a0)
+{
+ return define_map<A0>(a0);
+}
+
+template <typename A0, typename A1>
+inline define_map<A0, A1> make_define_map(A0& a0, A1& a1)
+{
+ return define_map<A0, A1>(a0, a1);
+}
+
+template <typename A0, typename A1, typename A2>
+inline define_map<A0, A1, A2> make_define_map(A0& a0, A1& a1, A2& a2)
+{
+ return define_map<A0, A1, A2>(a0, a1, a2);
+}
+
+template <typename A0, typename A1, typename A2, typename A3>
+inline define_map<A0, A1, A2, A3> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3)
+{
+ return define_map<A0, A1, A2, A3>(a0, a1, a2, a3);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+inline define_map<A0, A1, A2, A3, A4> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4)
+{
+ return define_map<A0, A1, A2, A3, A4>(a0, a1, a2, a3, a4);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+inline define_map<A0, A1, A2, A3, A4, A5> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5)
+{
+ return define_map<A0, A1, A2, A3, A4, A5>(a0, a1, a2, a3, a4, a5);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+inline define_map<A0, A1, A2, A3, A4, A5, A6> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6>(a0, a1, a2, a3, a4, a5, a6);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7>(a0, a1, a2, a3, a4, a5, a6, a7);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8>(a0, a1, a2, a3, a4, a5, a6, a7, a8);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31)
+{
+ return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31);
+}
+
+/// @endcond
+
+} // namespace type
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP03_DEFINE_MAP_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_msgpack_tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_msgpack_tuple.hpp
new file mode 100644
index 000000000..0ec6d4f3c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp03_msgpack_tuple.hpp
@@ -0,0 +1,13917 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP03_MSGPACK_TUPLE_HPP
+#define MSGPACK_CPP03_MSGPACK_TUPLE_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/object.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+// FIXME operator==
+// FIXME operator!=
+
+
+/// @cond
+template <typename A0 = void, typename A1 = void, typename A2 = void, typename A3 = void, typename A4 = void, typename A5 = void, typename A6 = void, typename A7 = void, typename A8 = void, typename A9 = void, typename A10 = void, typename A11 = void, typename A12 = void, typename A13 = void, typename A14 = void, typename A15 = void, typename A16 = void, typename A17 = void, typename A18 = void, typename A19 = void, typename A20 = void, typename A21 = void, typename A22 = void, typename A23 = void, typename A24 = void, typename A25 = void, typename A26 = void, typename A27 = void, typename A28 = void, typename A29 = void, typename A30 = void, typename A31 = void, typename A32 = void>
+struct tuple;
+/// @endcond
+
+template <typename Tuple, int N>
+struct tuple_element;
+
+template <typename Tuple, int N>
+struct const_tuple_element;
+
+template <typename T>
+struct tuple_type {
+ typedef T type;
+ typedef T value_type;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef const T& transparent_reference;
+};
+
+template <typename T>
+struct tuple_type<T&> {
+ typedef T type;
+ typedef T& value_type;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef T& transparent_reference;
+};
+
+template <typename T>
+struct tuple_type<const T&> {
+ typedef T type;
+ typedef T& value_type;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef const T& transparent_reference;
+};
+
+/// @cond
+
+
+template <typename A0>
+struct tuple_element<tuple<A0>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1>
+struct tuple_element<tuple<A0, A1>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1>
+struct tuple_element<tuple<A0, A1>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2>
+struct tuple_element<tuple<A0, A1, A2>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2>
+struct tuple_element<tuple<A0, A1, A2>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2>
+struct tuple_element<tuple<A0, A1, A2>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct tuple_element<tuple<A0, A1, A2, A3>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct tuple_element<tuple<A0, A1, A2, A3>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct tuple_element<tuple<A0, A1, A2, A3>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct tuple_element<tuple<A0, A1, A2, A3>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct tuple_element<tuple<A0, A1, A2, A3, A4>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct tuple_element<tuple<A0, A1, A2, A3, A4>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct tuple_element<tuple<A0, A1, A2, A3, A4>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct tuple_element<tuple<A0, A1, A2, A3, A4>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct tuple_element<tuple<A0, A1, A2, A3, A4>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 25> : tuple_type<A25> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 >& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::reference get() { return m_x; }
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 25> : tuple_type<A25> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::reference get() { return m_x; }
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 26> : tuple_type<A26> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 >& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::reference get() { return m_x; }
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 25> : tuple_type<A25> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::reference get() { return m_x; }
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 26> : tuple_type<A26> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::reference get() { return m_x; }
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 27> : tuple_type<A27> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 >& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::reference get() { return m_x; }
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 25> : tuple_type<A25> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::reference get() { return m_x; }
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 26> : tuple_type<A26> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::reference get() { return m_x; }
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 27> : tuple_type<A27> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::reference get() { return m_x; }
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 28> : tuple_type<A28> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 >& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::reference get() { return m_x; }
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 25> : tuple_type<A25> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::reference get() { return m_x; }
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 26> : tuple_type<A26> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::reference get() { return m_x; }
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 27> : tuple_type<A27> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::reference get() { return m_x; }
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 28> : tuple_type<A28> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::reference get() { return m_x; }
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 29> : tuple_type<A29> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 >& x) : m_x(x.a29) {}
+ typename tuple_type<A29>::reference get() { return m_x; }
+ typename tuple_type<A29>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A29>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 25> : tuple_type<A25> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::reference get() { return m_x; }
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 26> : tuple_type<A26> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::reference get() { return m_x; }
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 27> : tuple_type<A27> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::reference get() { return m_x; }
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 28> : tuple_type<A28> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::reference get() { return m_x; }
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 29> : tuple_type<A29> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a29) {}
+ typename tuple_type<A29>::reference get() { return m_x; }
+ typename tuple_type<A29>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A29>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 30> : tuple_type<A30> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 >& x) : m_x(x.a30) {}
+ typename tuple_type<A30>::reference get() { return m_x; }
+ typename tuple_type<A30>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A30>::reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 0> : tuple_type<A0> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::reference get() { return m_x; }
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 1> : tuple_type<A1> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::reference get() { return m_x; }
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 2> : tuple_type<A2> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::reference get() { return m_x; }
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 3> : tuple_type<A3> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::reference get() { return m_x; }
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 4> : tuple_type<A4> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::reference get() { return m_x; }
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 5> : tuple_type<A5> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::reference get() { return m_x; }
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 6> : tuple_type<A6> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::reference get() { return m_x; }
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 7> : tuple_type<A7> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::reference get() { return m_x; }
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 8> : tuple_type<A8> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::reference get() { return m_x; }
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 9> : tuple_type<A9> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::reference get() { return m_x; }
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 10> : tuple_type<A10> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::reference get() { return m_x; }
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 11> : tuple_type<A11> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::reference get() { return m_x; }
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 12> : tuple_type<A12> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::reference get() { return m_x; }
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 13> : tuple_type<A13> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::reference get() { return m_x; }
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 14> : tuple_type<A14> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::reference get() { return m_x; }
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 15> : tuple_type<A15> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::reference get() { return m_x; }
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 16> : tuple_type<A16> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::reference get() { return m_x; }
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 17> : tuple_type<A17> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::reference get() { return m_x; }
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 18> : tuple_type<A18> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::reference get() { return m_x; }
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 19> : tuple_type<A19> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::reference get() { return m_x; }
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 20> : tuple_type<A20> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::reference get() { return m_x; }
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 21> : tuple_type<A21> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::reference get() { return m_x; }
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 22> : tuple_type<A22> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::reference get() { return m_x; }
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 23> : tuple_type<A23> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::reference get() { return m_x; }
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 24> : tuple_type<A24> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::reference get() { return m_x; }
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 25> : tuple_type<A25> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::reference get() { return m_x; }
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 26> : tuple_type<A26> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::reference get() { return m_x; }
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 27> : tuple_type<A27> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::reference get() { return m_x; }
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 28> : tuple_type<A28> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::reference get() { return m_x; }
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 29> : tuple_type<A29> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a29) {}
+ typename tuple_type<A29>::reference get() { return m_x; }
+ typename tuple_type<A29>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A29>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 30> : tuple_type<A30> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a30) {}
+ typename tuple_type<A30>::reference get() { return m_x; }
+ typename tuple_type<A30>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A30>::reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 31> : tuple_type<A31> {
+ tuple_element(tuple<A0, A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9 , A10 , A11 , A12 , A13 , A14 , A15 , A16 , A17 , A18 , A19 , A20 , A21 , A22 , A23 , A24 , A25 , A26 , A27 , A28 , A29 , A30 , A31 >& x) : m_x(x.a31) {}
+ typename tuple_type<A31>::reference get() { return m_x; }
+ typename tuple_type<A31>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A31>::reference m_x;
+};
+
+
+
+
+
+template <typename A0>
+struct const_tuple_element<tuple<A0>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1>
+struct const_tuple_element<tuple<A0, A1>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1>
+struct const_tuple_element<tuple<A0, A1>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2>
+struct const_tuple_element<tuple<A0, A1, A2>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2>
+struct const_tuple_element<tuple<A0, A1, A2>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2>
+struct const_tuple_element<tuple<A0, A1, A2>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct const_tuple_element<tuple<A0, A1, A2, A3>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct const_tuple_element<tuple<A0, A1, A2, A3>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct const_tuple_element<tuple<A0, A1, A2, A3>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct const_tuple_element<tuple<A0, A1, A2, A3>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, 25> : tuple_type<A25> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 25> : tuple_type<A25> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, 26> : tuple_type<A26> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 25> : tuple_type<A25> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 26> : tuple_type<A26> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, 27> : tuple_type<A27> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 25> : tuple_type<A25> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 26> : tuple_type<A26> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 27> : tuple_type<A27> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, 28> : tuple_type<A28> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 25> : tuple_type<A25> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 26> : tuple_type<A26> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 27> : tuple_type<A27> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 28> : tuple_type<A28> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, 29> : tuple_type<A29> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& x) : m_x(x.a29) {}
+ typename tuple_type<A29>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A29>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 25> : tuple_type<A25> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 26> : tuple_type<A26> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 27> : tuple_type<A27> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 28> : tuple_type<A28> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 29> : tuple_type<A29> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a29) {}
+ typename tuple_type<A29>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A29>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, 30> : tuple_type<A30> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& x) : m_x(x.a30) {}
+ typename tuple_type<A30>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A30>::const_reference m_x;
+};
+
+
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 0> : tuple_type<A0> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a0) {}
+ typename tuple_type<A0>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A0>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 1> : tuple_type<A1> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a1) {}
+ typename tuple_type<A1>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A1>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 2> : tuple_type<A2> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a2) {}
+ typename tuple_type<A2>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A2>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 3> : tuple_type<A3> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a3) {}
+ typename tuple_type<A3>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A3>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 4> : tuple_type<A4> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a4) {}
+ typename tuple_type<A4>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A4>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 5> : tuple_type<A5> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a5) {}
+ typename tuple_type<A5>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A5>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 6> : tuple_type<A6> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a6) {}
+ typename tuple_type<A6>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A6>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 7> : tuple_type<A7> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a7) {}
+ typename tuple_type<A7>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A7>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 8> : tuple_type<A8> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a8) {}
+ typename tuple_type<A8>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A8>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 9> : tuple_type<A9> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a9) {}
+ typename tuple_type<A9>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A9>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 10> : tuple_type<A10> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a10) {}
+ typename tuple_type<A10>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A10>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 11> : tuple_type<A11> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a11) {}
+ typename tuple_type<A11>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A11>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 12> : tuple_type<A12> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a12) {}
+ typename tuple_type<A12>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A12>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 13> : tuple_type<A13> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a13) {}
+ typename tuple_type<A13>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A13>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 14> : tuple_type<A14> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a14) {}
+ typename tuple_type<A14>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A14>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 15> : tuple_type<A15> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a15) {}
+ typename tuple_type<A15>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A15>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 16> : tuple_type<A16> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a16) {}
+ typename tuple_type<A16>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A16>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 17> : tuple_type<A17> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a17) {}
+ typename tuple_type<A17>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A17>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 18> : tuple_type<A18> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a18) {}
+ typename tuple_type<A18>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A18>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 19> : tuple_type<A19> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a19) {}
+ typename tuple_type<A19>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A19>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 20> : tuple_type<A20> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a20) {}
+ typename tuple_type<A20>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A20>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 21> : tuple_type<A21> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a21) {}
+ typename tuple_type<A21>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A21>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 22> : tuple_type<A22> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a22) {}
+ typename tuple_type<A22>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A22>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 23> : tuple_type<A23> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a23) {}
+ typename tuple_type<A23>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A23>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 24> : tuple_type<A24> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a24) {}
+ typename tuple_type<A24>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A24>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 25> : tuple_type<A25> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a25) {}
+ typename tuple_type<A25>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A25>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 26> : tuple_type<A26> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a26) {}
+ typename tuple_type<A26>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A26>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 27> : tuple_type<A27> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a27) {}
+ typename tuple_type<A27>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A27>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 28> : tuple_type<A28> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a28) {}
+ typename tuple_type<A28>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A28>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 29> : tuple_type<A29> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a29) {}
+ typename tuple_type<A29>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A29>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 30> : tuple_type<A30> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a30) {}
+ typename tuple_type<A30>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A30>::const_reference m_x;
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct const_tuple_element<tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, 31> : tuple_type<A31> {
+ const_tuple_element(const tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& x) : m_x(x.a31) {}
+ typename tuple_type<A31>::const_reference get() const { return m_x; }
+private:
+ typename tuple_type<A31>::const_reference m_x;
+};
+
+
+/// @endcond
+
+template <>
+struct tuple<> {
+ tuple() {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ typedef tuple<> value_type;
+};
+
+/// @cond
+
+template <typename A0>
+struct tuple<A0> {
+ typedef tuple<A0> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0) :
+ a0(_a0) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+};
+
+template <int N, typename A0>
+inline typename type::tuple_element<type::tuple<A0>, N>::reference get(type::tuple<A0>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0>
+inline typename type::const_tuple_element<type::tuple<A0>, N>::const_reference get(type::tuple<A0> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1>
+struct tuple<A0, A1> {
+ typedef tuple<A0, A1> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1) :
+ a0(_a0), a1(_a1) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+};
+
+template <int N, typename A0, typename A1>
+inline typename type::tuple_element<type::tuple<A0, A1>, N>::reference get(type::tuple<A0, A1>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1>
+inline typename type::const_tuple_element<type::tuple<A0, A1>, N>::const_reference get(type::tuple<A0, A1> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2>
+struct tuple<A0, A1, A2> {
+ typedef tuple<A0, A1, A2> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2) :
+ a0(_a0), a1(_a1), a2(_a2) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+};
+
+template <int N, typename A0, typename A1, typename A2>
+inline typename type::tuple_element<type::tuple<A0, A1, A2>, N>::reference get(type::tuple<A0, A1, A2>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2>, N>::const_reference get(type::tuple<A0, A1, A2> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct tuple<A0, A1, A2, A3> {
+ typedef tuple<A0, A1, A2, A3> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3>, N>::reference get(type::tuple<A0, A1, A2, A3>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3>, N>::const_reference get(type::tuple<A0, A1, A2, A3> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct tuple<A0, A1, A2, A3, A4> {
+ typedef tuple<A0, A1, A2, A3, A4> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4>, N>::reference get(type::tuple<A0, A1, A2, A3, A4>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct tuple<A0, A1, A2, A3, A4, A5> {
+ typedef tuple<A0, A1, A2, A3, A4, A5> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct tuple<A0, A1, A2, A3, A4, A5, A6> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+ A25 a25;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+ A25 a25;
+ A26 a26;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+ A25 a25;
+ A26 a26;
+ A27 a27;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+ A25 a25;
+ A26 a26;
+ A27 a27;
+ A28 a28;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+ A25 a25;
+ A26 a26;
+ A27 a27;
+ A28 a28;
+ A29 a29;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29, typename tuple_type<A30>::transparent_reference _a30) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+ A25 a25;
+ A26 a26;
+ A27 a27;
+ A28 a28;
+ A29 a29;
+ A30 a30;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> const& t)
+{ return t.template get<N>(); }
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> {
+ typedef tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> value_type;
+ tuple() {}
+ tuple(typename tuple_type<A0>::transparent_reference _a0, typename tuple_type<A1>::transparent_reference _a1, typename tuple_type<A2>::transparent_reference _a2, typename tuple_type<A3>::transparent_reference _a3, typename tuple_type<A4>::transparent_reference _a4, typename tuple_type<A5>::transparent_reference _a5, typename tuple_type<A6>::transparent_reference _a6, typename tuple_type<A7>::transparent_reference _a7, typename tuple_type<A8>::transparent_reference _a8, typename tuple_type<A9>::transparent_reference _a9, typename tuple_type<A10>::transparent_reference _a10, typename tuple_type<A11>::transparent_reference _a11, typename tuple_type<A12>::transparent_reference _a12, typename tuple_type<A13>::transparent_reference _a13, typename tuple_type<A14>::transparent_reference _a14, typename tuple_type<A15>::transparent_reference _a15, typename tuple_type<A16>::transparent_reference _a16, typename tuple_type<A17>::transparent_reference _a17, typename tuple_type<A18>::transparent_reference _a18, typename tuple_type<A19>::transparent_reference _a19, typename tuple_type<A20>::transparent_reference _a20, typename tuple_type<A21>::transparent_reference _a21, typename tuple_type<A22>::transparent_reference _a22, typename tuple_type<A23>::transparent_reference _a23, typename tuple_type<A24>::transparent_reference _a24, typename tuple_type<A25>::transparent_reference _a25, typename tuple_type<A26>::transparent_reference _a26, typename tuple_type<A27>::transparent_reference _a27, typename tuple_type<A28>::transparent_reference _a28, typename tuple_type<A29>::transparent_reference _a29, typename tuple_type<A30>::transparent_reference _a30, typename tuple_type<A31>::transparent_reference _a31) :
+ a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {}
+ tuple(clmdep_msgpack::object const& o) { o.convert(*this); }
+ template <int N> typename tuple_element<value_type, N>::reference get()
+ { return tuple_element<value_type, N>(*this).get(); }
+ template <int N> typename const_tuple_element<value_type, N>::const_reference get() const
+ { return const_tuple_element<value_type, N>(*this).get(); }
+
+ A0 a0;
+ A1 a1;
+ A2 a2;
+ A3 a3;
+ A4 a4;
+ A5 a5;
+ A6 a6;
+ A7 a7;
+ A8 a8;
+ A9 a9;
+ A10 a10;
+ A11 a11;
+ A12 a12;
+ A13 a13;
+ A14 a14;
+ A15 a15;
+ A16 a16;
+ A17 a17;
+ A18 a18;
+ A19 a19;
+ A20 a20;
+ A21 a21;
+ A22 a22;
+ A23 a23;
+ A24 a24;
+ A25 a25;
+ A26 a26;
+ A27 a27;
+ A28 a28;
+ A29 a29;
+ A30 a30;
+ A31 a31;
+};
+
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+inline typename type::tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, N>::reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& t)
+{ return t.template get<N>(); }
+template <int N, typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+inline typename type::const_tuple_element<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>, N>::const_reference get(type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> const& t)
+{ return t.template get<N>(); }
+
+/// @endcond
+
+inline tuple<> make_tuple()
+{
+ return tuple<>();
+}
+
+/// @cond
+
+template <typename A0>
+inline tuple<A0> make_tuple(typename tuple_type<A0>::transparent_reference a0)
+{
+ return tuple<A0>(a0);
+}
+
+template <typename A0, typename A1>
+inline tuple<A0, A1> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1)
+{
+ return tuple<A0, A1>(a0, a1);
+}
+
+template <typename A0, typename A1, typename A2>
+inline tuple<A0, A1, A2> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2)
+{
+ return tuple<A0, A1, A2>(a0, a1, a2);
+}
+
+template <typename A0, typename A1, typename A2, typename A3>
+inline tuple<A0, A1, A2, A3> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3)
+{
+ return tuple<A0, A1, A2, A3>(a0, a1, a2, a3);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+inline tuple<A0, A1, A2, A3, A4> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4)
+{
+ return tuple<A0, A1, A2, A3, A4>(a0, a1, a2, a3, a4);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+inline tuple<A0, A1, A2, A3, A4, A5> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5)
+{
+ return tuple<A0, A1, A2, A3, A4, A5>(a0, a1, a2, a3, a4, a5);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+inline tuple<A0, A1, A2, A3, A4, A5, A6> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6>(a0, a1, a2, a3, a4, a5, a6);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7>(a0, a1, a2, a3, a4, a5, a6, a7);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>(a0, a1, a2, a3, a4, a5, a6, a7, a8);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29, typename tuple_type<A30>::transparent_reference a30)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30);
+}
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+inline tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> make_tuple(typename tuple_type<A0>::transparent_reference a0, typename tuple_type<A1>::transparent_reference a1, typename tuple_type<A2>::transparent_reference a2, typename tuple_type<A3>::transparent_reference a3, typename tuple_type<A4>::transparent_reference a4, typename tuple_type<A5>::transparent_reference a5, typename tuple_type<A6>::transparent_reference a6, typename tuple_type<A7>::transparent_reference a7, typename tuple_type<A8>::transparent_reference a8, typename tuple_type<A9>::transparent_reference a9, typename tuple_type<A10>::transparent_reference a10, typename tuple_type<A11>::transparent_reference a11, typename tuple_type<A12>::transparent_reference a12, typename tuple_type<A13>::transparent_reference a13, typename tuple_type<A14>::transparent_reference a14, typename tuple_type<A15>::transparent_reference a15, typename tuple_type<A16>::transparent_reference a16, typename tuple_type<A17>::transparent_reference a17, typename tuple_type<A18>::transparent_reference a18, typename tuple_type<A19>::transparent_reference a19, typename tuple_type<A20>::transparent_reference a20, typename tuple_type<A21>::transparent_reference a21, typename tuple_type<A22>::transparent_reference a22, typename tuple_type<A23>::transparent_reference a23, typename tuple_type<A24>::transparent_reference a24, typename tuple_type<A25>::transparent_reference a25, typename tuple_type<A26>::transparent_reference a26, typename tuple_type<A27>::transparent_reference a27, typename tuple_type<A28>::transparent_reference a28, typename tuple_type<A29>::transparent_reference a29, typename tuple_type<A30>::transparent_reference a30, typename tuple_type<A31>::transparent_reference a31)
+{
+ return tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31);
+}
+
+/// @endcond
+
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<type::tuple<> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<>&) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ return o;
+ }
+};
+
+/// @cond
+
+template <typename A0>
+struct convert<type::tuple<A0> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 1) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1>
+struct convert<type::tuple<A0, A1> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 2) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2>
+struct convert<type::tuple<A0, A1, A2> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 3) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct convert<type::tuple<A0, A1, A2, A3> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 4) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct convert<type::tuple<A0, A1, A2, A3, A4> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 5) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 6) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 7) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 8) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 9) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 10) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 11) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 12) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 13) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 14) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 15) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 16) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 17) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 18) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 19) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 20) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 21) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 22) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 23) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 24) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 25) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 26) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[25].clmdep_msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 27) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[25].clmdep_msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[26].clmdep_msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 28) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[25].clmdep_msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[26].clmdep_msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[27].clmdep_msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 29) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[25].clmdep_msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[26].clmdep_msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[27].clmdep_msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[28].clmdep_msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 30) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[25].clmdep_msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[26].clmdep_msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[27].clmdep_msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[28].clmdep_msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[29].clmdep_msgpack::object::convert<typename type::tuple_type<A29>::type>(v.template get<29>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 31) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[25].clmdep_msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[26].clmdep_msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[27].clmdep_msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[28].clmdep_msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[29].clmdep_msgpack::object::convert<typename type::tuple_type<A29>::type>(v.template get<29>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[30].clmdep_msgpack::object::convert<typename type::tuple_type<A30>::type>(v.template get<30>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct convert<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> > {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < 32) { throw clmdep_msgpack::type_error(); }
+
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[0].clmdep_msgpack::object::convert<typename type::tuple_type<A0>::type>(v.template get<0>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[1].clmdep_msgpack::object::convert<typename type::tuple_type<A1>::type>(v.template get<1>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[2].clmdep_msgpack::object::convert<typename type::tuple_type<A2>::type>(v.template get<2>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[3].clmdep_msgpack::object::convert<typename type::tuple_type<A3>::type>(v.template get<3>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[4].clmdep_msgpack::object::convert<typename type::tuple_type<A4>::type>(v.template get<4>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[5].clmdep_msgpack::object::convert<typename type::tuple_type<A5>::type>(v.template get<5>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[6].clmdep_msgpack::object::convert<typename type::tuple_type<A6>::type>(v.template get<6>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[7].clmdep_msgpack::object::convert<typename type::tuple_type<A7>::type>(v.template get<7>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[8].clmdep_msgpack::object::convert<typename type::tuple_type<A8>::type>(v.template get<8>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[9].clmdep_msgpack::object::convert<typename type::tuple_type<A9>::type>(v.template get<9>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[10].clmdep_msgpack::object::convert<typename type::tuple_type<A10>::type>(v.template get<10>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[11].clmdep_msgpack::object::convert<typename type::tuple_type<A11>::type>(v.template get<11>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[12].clmdep_msgpack::object::convert<typename type::tuple_type<A12>::type>(v.template get<12>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[13].clmdep_msgpack::object::convert<typename type::tuple_type<A13>::type>(v.template get<13>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[14].clmdep_msgpack::object::convert<typename type::tuple_type<A14>::type>(v.template get<14>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[15].clmdep_msgpack::object::convert<typename type::tuple_type<A15>::type>(v.template get<15>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[16].clmdep_msgpack::object::convert<typename type::tuple_type<A16>::type>(v.template get<16>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[17].clmdep_msgpack::object::convert<typename type::tuple_type<A17>::type>(v.template get<17>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[18].clmdep_msgpack::object::convert<typename type::tuple_type<A18>::type>(v.template get<18>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[19].clmdep_msgpack::object::convert<typename type::tuple_type<A19>::type>(v.template get<19>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[20].clmdep_msgpack::object::convert<typename type::tuple_type<A20>::type>(v.template get<20>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[21].clmdep_msgpack::object::convert<typename type::tuple_type<A21>::type>(v.template get<21>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[22].clmdep_msgpack::object::convert<typename type::tuple_type<A22>::type>(v.template get<22>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[23].clmdep_msgpack::object::convert<typename type::tuple_type<A23>::type>(v.template get<23>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[24].clmdep_msgpack::object::convert<typename type::tuple_type<A24>::type>(v.template get<24>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[25].clmdep_msgpack::object::convert<typename type::tuple_type<A25>::type>(v.template get<25>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[26].clmdep_msgpack::object::convert<typename type::tuple_type<A26>::type>(v.template get<26>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[27].clmdep_msgpack::object::convert<typename type::tuple_type<A27>::type>(v.template get<27>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[28].clmdep_msgpack::object::convert<typename type::tuple_type<A28>::type>(v.template get<28>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[29].clmdep_msgpack::object::convert<typename type::tuple_type<A29>::type>(v.template get<29>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[30].clmdep_msgpack::object::convert<typename type::tuple_type<A30>::type>(v.template get<30>());
+ // In order to avoid clang++'s invalid warning, clmdep_msgpack::object:: has been added.
+ o.via.array.ptr[31].clmdep_msgpack::object::convert<typename type::tuple_type<A31>::type>(v.template get<31>());
+ return o;
+ }
+};
+
+/// @endcond
+
+template <>
+struct pack<type::tuple<> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<>&) const {
+ o.pack_array(0);
+ return o;
+ }
+};
+
+/// @cond
+
+template <typename A0>
+struct pack<type::tuple<A0> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0>& v) const {
+ o.pack_array(1);
+
+ o.pack(v.template get<0>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1>
+struct pack<type::tuple<A0, A1> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1>& v) const {
+ o.pack_array(2);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2>
+struct pack<type::tuple<A0, A1, A2> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2>& v) const {
+ o.pack_array(3);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct pack<type::tuple<A0, A1, A2, A3> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3>& v) const {
+ o.pack_array(4);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct pack<type::tuple<A0, A1, A2, A3, A4> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4>& v) const {
+ o.pack_array(5);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5>& v) const {
+ o.pack_array(6);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const {
+ o.pack_array(7);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const {
+ o.pack_array(8);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const {
+ o.pack_array(9);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const {
+ o.pack_array(10);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const {
+ o.pack_array(11);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const {
+ o.pack_array(12);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const {
+ o.pack_array(13);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const {
+ o.pack_array(14);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const {
+ o.pack_array(15);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const {
+ o.pack_array(16);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const {
+ o.pack_array(17);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const {
+ o.pack_array(18);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const {
+ o.pack_array(19);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const {
+ o.pack_array(20);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const {
+ o.pack_array(21);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const {
+ o.pack_array(22);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const {
+ o.pack_array(23);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const {
+ o.pack_array(24);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const {
+ o.pack_array(25);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const {
+ o.pack_array(26);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ o.pack(v.template get<25>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const {
+ o.pack_array(27);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ o.pack(v.template get<25>());
+ o.pack(v.template get<26>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const {
+ o.pack_array(28);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ o.pack(v.template get<25>());
+ o.pack(v.template get<26>());
+ o.pack(v.template get<27>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const {
+ o.pack_array(29);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ o.pack(v.template get<25>());
+ o.pack(v.template get<26>());
+ o.pack(v.template get<27>());
+ o.pack(v.template get<28>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const {
+ o.pack_array(30);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ o.pack(v.template get<25>());
+ o.pack(v.template get<26>());
+ o.pack(v.template get<27>());
+ o.pack(v.template get<28>());
+ o.pack(v.template get<29>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const {
+ o.pack_array(31);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ o.pack(v.template get<25>());
+ o.pack(v.template get<26>());
+ o.pack(v.template get<27>());
+ o.pack(v.template get<28>());
+ o.pack(v.template get<29>());
+ o.pack(v.template get<30>());
+ return o;
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct pack<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const {
+ o.pack_array(32);
+
+ o.pack(v.template get<0>());
+ o.pack(v.template get<1>());
+ o.pack(v.template get<2>());
+ o.pack(v.template get<3>());
+ o.pack(v.template get<4>());
+ o.pack(v.template get<5>());
+ o.pack(v.template get<6>());
+ o.pack(v.template get<7>());
+ o.pack(v.template get<8>());
+ o.pack(v.template get<9>());
+ o.pack(v.template get<10>());
+ o.pack(v.template get<11>());
+ o.pack(v.template get<12>());
+ o.pack(v.template get<13>());
+ o.pack(v.template get<14>());
+ o.pack(v.template get<15>());
+ o.pack(v.template get<16>());
+ o.pack(v.template get<17>());
+ o.pack(v.template get<18>());
+ o.pack(v.template get<19>());
+ o.pack(v.template get<20>());
+ o.pack(v.template get<21>());
+ o.pack(v.template get<22>());
+ o.pack(v.template get<23>());
+ o.pack(v.template get<24>());
+ o.pack(v.template get<25>());
+ o.pack(v.template get<26>());
+ o.pack(v.template get<27>());
+ o.pack(v.template get<28>());
+ o.pack(v.template get<29>());
+ o.pack(v.template get<30>());
+ o.pack(v.template get<31>());
+ return o;
+ }
+};
+
+/// @endcond
+
+template <>
+struct object_with_zone<type::tuple<> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<>&) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ }
+};
+
+/// @cond
+
+template <typename A0>
+struct object_with_zone<type::tuple<A0> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*1));
+ o.via.array.size = 1;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1>
+struct object_with_zone<type::tuple<A0, A1> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*2));
+ o.via.array.size = 2;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2>
+struct object_with_zone<type::tuple<A0, A1, A2> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*3));
+ o.via.array.size = 3;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3>
+struct object_with_zone<type::tuple<A0, A1, A2, A3> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*4));
+ o.via.array.size = 4;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*5));
+ o.via.array.size = 5;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*6));
+ o.via.array.size = 6;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*7));
+ o.via.array.size = 7;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*8));
+ o.via.array.size = 8;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*9));
+ o.via.array.size = 9;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*10));
+ o.via.array.size = 10;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*11));
+ o.via.array.size = 11;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*12));
+ o.via.array.size = 12;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*13));
+ o.via.array.size = 13;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*14));
+ o.via.array.size = 14;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*15));
+ o.via.array.size = 15;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*16));
+ o.via.array.size = 16;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*17));
+ o.via.array.size = 17;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*18));
+ o.via.array.size = 18;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*19));
+ o.via.array.size = 19;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*20));
+ o.via.array.size = 20;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*21));
+ o.via.array.size = 21;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*22));
+ o.via.array.size = 22;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*23));
+ o.via.array.size = 23;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*24));
+ o.via.array.size = 24;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*25));
+ o.via.array.size = 25;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*26));
+ o.via.array.size = 26;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ o.via.array.ptr[25] = clmdep_msgpack::object(v.template get<25>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*27));
+ o.via.array.size = 27;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ o.via.array.ptr[25] = clmdep_msgpack::object(v.template get<25>(), o.zone);
+ o.via.array.ptr[26] = clmdep_msgpack::object(v.template get<26>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*28));
+ o.via.array.size = 28;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ o.via.array.ptr[25] = clmdep_msgpack::object(v.template get<25>(), o.zone);
+ o.via.array.ptr[26] = clmdep_msgpack::object(v.template get<26>(), o.zone);
+ o.via.array.ptr[27] = clmdep_msgpack::object(v.template get<27>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*29));
+ o.via.array.size = 29;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ o.via.array.ptr[25] = clmdep_msgpack::object(v.template get<25>(), o.zone);
+ o.via.array.ptr[26] = clmdep_msgpack::object(v.template get<26>(), o.zone);
+ o.via.array.ptr[27] = clmdep_msgpack::object(v.template get<27>(), o.zone);
+ o.via.array.ptr[28] = clmdep_msgpack::object(v.template get<28>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*30));
+ o.via.array.size = 30;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ o.via.array.ptr[25] = clmdep_msgpack::object(v.template get<25>(), o.zone);
+ o.via.array.ptr[26] = clmdep_msgpack::object(v.template get<26>(), o.zone);
+ o.via.array.ptr[27] = clmdep_msgpack::object(v.template get<27>(), o.zone);
+ o.via.array.ptr[28] = clmdep_msgpack::object(v.template get<28>(), o.zone);
+ o.via.array.ptr[29] = clmdep_msgpack::object(v.template get<29>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*31));
+ o.via.array.size = 31;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ o.via.array.ptr[25] = clmdep_msgpack::object(v.template get<25>(), o.zone);
+ o.via.array.ptr[26] = clmdep_msgpack::object(v.template get<26>(), o.zone);
+ o.via.array.ptr[27] = clmdep_msgpack::object(v.template get<27>(), o.zone);
+ o.via.array.ptr[28] = clmdep_msgpack::object(v.template get<28>(), o.zone);
+ o.via.array.ptr[29] = clmdep_msgpack::object(v.template get<29>(), o.zone);
+ o.via.array.ptr[30] = clmdep_msgpack::object(v.template get<30>(), o.zone);
+ }
+};
+
+template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
+struct object_with_zone<type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> > {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ const type::tuple<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*32));
+ o.via.array.size = 32;
+
+ o.via.array.ptr[0] = clmdep_msgpack::object(v.template get<0>(), o.zone);
+ o.via.array.ptr[1] = clmdep_msgpack::object(v.template get<1>(), o.zone);
+ o.via.array.ptr[2] = clmdep_msgpack::object(v.template get<2>(), o.zone);
+ o.via.array.ptr[3] = clmdep_msgpack::object(v.template get<3>(), o.zone);
+ o.via.array.ptr[4] = clmdep_msgpack::object(v.template get<4>(), o.zone);
+ o.via.array.ptr[5] = clmdep_msgpack::object(v.template get<5>(), o.zone);
+ o.via.array.ptr[6] = clmdep_msgpack::object(v.template get<6>(), o.zone);
+ o.via.array.ptr[7] = clmdep_msgpack::object(v.template get<7>(), o.zone);
+ o.via.array.ptr[8] = clmdep_msgpack::object(v.template get<8>(), o.zone);
+ o.via.array.ptr[9] = clmdep_msgpack::object(v.template get<9>(), o.zone);
+ o.via.array.ptr[10] = clmdep_msgpack::object(v.template get<10>(), o.zone);
+ o.via.array.ptr[11] = clmdep_msgpack::object(v.template get<11>(), o.zone);
+ o.via.array.ptr[12] = clmdep_msgpack::object(v.template get<12>(), o.zone);
+ o.via.array.ptr[13] = clmdep_msgpack::object(v.template get<13>(), o.zone);
+ o.via.array.ptr[14] = clmdep_msgpack::object(v.template get<14>(), o.zone);
+ o.via.array.ptr[15] = clmdep_msgpack::object(v.template get<15>(), o.zone);
+ o.via.array.ptr[16] = clmdep_msgpack::object(v.template get<16>(), o.zone);
+ o.via.array.ptr[17] = clmdep_msgpack::object(v.template get<17>(), o.zone);
+ o.via.array.ptr[18] = clmdep_msgpack::object(v.template get<18>(), o.zone);
+ o.via.array.ptr[19] = clmdep_msgpack::object(v.template get<19>(), o.zone);
+ o.via.array.ptr[20] = clmdep_msgpack::object(v.template get<20>(), o.zone);
+ o.via.array.ptr[21] = clmdep_msgpack::object(v.template get<21>(), o.zone);
+ o.via.array.ptr[22] = clmdep_msgpack::object(v.template get<22>(), o.zone);
+ o.via.array.ptr[23] = clmdep_msgpack::object(v.template get<23>(), o.zone);
+ o.via.array.ptr[24] = clmdep_msgpack::object(v.template get<24>(), o.zone);
+ o.via.array.ptr[25] = clmdep_msgpack::object(v.template get<25>(), o.zone);
+ o.via.array.ptr[26] = clmdep_msgpack::object(v.template get<26>(), o.zone);
+ o.via.array.ptr[27] = clmdep_msgpack::object(v.template get<27>(), o.zone);
+ o.via.array.ptr[28] = clmdep_msgpack::object(v.template get<28>(), o.zone);
+ o.via.array.ptr[29] = clmdep_msgpack::object(v.template get<29>(), o.zone);
+ o.via.array.ptr[30] = clmdep_msgpack::object(v.template get<30>(), o.zone);
+ o.via.array.ptr[31] = clmdep_msgpack::object(v.template get<31>(), o.zone);
+ }
+};
+
+/// @endcond
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP03_MSGPACK_TUPLE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_array.hpp
new file mode 100644
index 000000000..efd474678
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_array.hpp
@@ -0,0 +1,201 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP11_DEFINE_ARRAY_HPP
+#define MSGPACK_CPP11_DEFINE_ARRAY_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+
+// for MSGPACK_ADD_ENUM
+#include "rpc/msgpack/adaptor/int.hpp"
+
+#include <type_traits>
+#include <tuple>
+
+#define MSGPACK_DEFINE_ARRAY(...) \
+ template <typename Packer> \
+ void msgpack_pack(Packer& pk) const \
+ { \
+ clmdep_msgpack::type::make_define_array(__VA_ARGS__).msgpack_pack(pk); \
+ } \
+ void msgpack_unpack(clmdep_msgpack::object const& o) \
+ { \
+ clmdep_msgpack::type::make_define_array(__VA_ARGS__).msgpack_unpack(o); \
+ }\
+ template <typename MSGPACK_OBJECT> \
+ void msgpack_object(MSGPACK_OBJECT* o, clmdep_msgpack::zone& z) const \
+ { \
+ clmdep_msgpack::type::make_define_array(__VA_ARGS__).msgpack_object(o, z); \
+ }
+
+#define MSGPACK_BASE_ARRAY(base) (*const_cast<base *>(static_cast<base const*>(this)))
+
+// MSGPACK_ADD_ENUM must be used in the global namespace.
+#define MSGPACK_ADD_ENUM(enum_name) \
+ namespace clmdep_msgpack { \
+ /** @cond */ \
+ MSGPACK_API_VERSION_NAMESPACE(v1) { \
+ /** @endcond */ \
+ namespace adaptor { \
+ template<> \
+ struct convert<enum_name> { \
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, enum_name& v) const { \
+ std::underlying_type<enum_name>::type tmp; \
+ o >> tmp; \
+ v = static_cast<enum_name>(tmp); \
+ return o; \
+ } \
+ }; \
+ template<> \
+ struct object<enum_name> { \
+ void operator()(clmdep_msgpack::object& o, const enum_name& v) const { \
+ auto tmp = static_cast<std::underlying_type<enum_name>::type>(v); \
+ o << tmp; \
+ } \
+ }; \
+ template<> \
+ struct object_with_zone<enum_name> { \
+ void operator()(clmdep_msgpack::object::with_zone& o, const enum_name& v) const { \
+ auto tmp = static_cast<std::underlying_type<enum_name>::type>(v); \
+ o << tmp; \
+ } \
+ }; \
+ template <> \
+ struct pack<enum_name> { \
+ template <typename Stream> \
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const enum_name& v) const { \
+ return o << static_cast<std::underlying_type<enum_name>::type>(v); \
+ } \
+ }; \
+ } \
+ /** @cond */ \
+ } \
+ /** @endcond */ \
+ }
+
+namespace clmdep_msgpack {
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+namespace type {
+
+template <typename Tuple, std::size_t N>
+struct define_array_imp {
+ template <typename Packer>
+ static void pack(Packer& pk, Tuple const& t) {
+ define_array_imp<Tuple, N-1>::pack(pk, t);
+ pk.pack(std::get<N-1>(t));
+ }
+ static void unpack(clmdep_msgpack::object const& o, Tuple& t) {
+ define_array_imp<Tuple, N-1>::unpack(o, t);
+ const size_t size = o.via.array.size;
+ if(size <= N-1) { return; }
+ o.via.array.ptr[N-1].convert(std::get<N-1>(t));
+ }
+ static void object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z, Tuple const& t) {
+ define_array_imp<Tuple, N-1>::object(o, z, t);
+ o->via.array.ptr[N-1] = clmdep_msgpack::object(std::get<N-1>(t), z);
+ }
+};
+
+template <typename Tuple>
+struct define_array_imp<Tuple, 1> {
+ template <typename Packer>
+ static void pack(Packer& pk, Tuple const& t) {
+ pk.pack(std::get<0>(t));
+ }
+ static void unpack(clmdep_msgpack::object const& o, Tuple& t) {
+ const size_t size = o.via.array.size;
+ if(size <= 0) { return; }
+ o.via.array.ptr[0].convert(std::get<0>(t));
+ }
+ static void object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z, Tuple const& t) {
+ o->via.array.ptr[0] = clmdep_msgpack::object(std::get<0>(t), z);
+ }
+};
+
+template <typename... Args>
+struct define_array {
+ typedef define_array<Args...> value_type;
+ typedef std::tuple<Args...> tuple_type;
+ define_array(Args&... args) :
+ a(args...) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(sizeof...(Args));
+
+ define_array_imp<std::tuple<Args&...>, sizeof...(Args)>::pack(pk, a);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+
+ define_array_imp<std::tuple<Args&...>, sizeof...(Args)>::unpack(o, a);
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = static_cast<clmdep_msgpack::object*>(z.allocate_align(sizeof(clmdep_msgpack::object)*sizeof...(Args)));
+ o->via.array.size = sizeof...(Args);
+
+ define_array_imp<std::tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
+ }
+
+ std::tuple<Args&...> a;
+};
+
+template <>
+struct define_array<> {
+ typedef define_array<> value_type;
+ typedef std::tuple<> tuple_type;
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ pk.pack_array(0);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o)
+ {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone&) const
+ {
+ o->type = clmdep_msgpack::type::ARRAY;
+ o->via.array.ptr = NULL;
+ o->via.array.size = 0;
+ }
+};
+
+inline define_array<> make_define_array()
+{
+ return define_array<>();
+}
+
+template <typename... Args>
+inline define_array<Args...> make_define_array(Args&... args)
+{
+ return define_array<Args...>(args...);
+}
+
+} // namespace type
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_DEFINE_ARRAY_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_map.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_map.hpp
new file mode 100644
index 000000000..1ccadda1b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_define_map.hpp
@@ -0,0 +1,171 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP11_DEFINE_MAP_HPP
+#define MSGPACK_CPP11_DEFINE_MAP_HPP
+
+// BOOST_PP_VARIADICS is defined in boost/preprocessor/config/config.hpp
+// http://www.boost.org/libs/preprocessor/doc/ref/variadics.html
+// However, supporting compiler detection is not complete. msgpack-c requires
+// variadic macro arguments support. So BOOST_PP_VARIADICS is defined here explicitly.
+#if !defined(MSGPACK_PP_VARIADICS)
+#define MSGPACK_PP_VARIADICS
+#endif
+
+#include <rpc/msgpack/preprocessor.hpp>
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+
+// for MSGPACK_ADD_ENUM
+#include "rpc/msgpack/adaptor/int.hpp"
+
+#include <type_traits>
+#include <tuple>
+
+#define MSGPACK_DEFINE_MAP_EACH_PROC(r, data, elem) \
+ MSGPACK_PP_IF( \
+ MSGPACK_PP_IS_BEGIN_PARENS(elem), \
+ elem, \
+ (MSGPACK_PP_STRINGIZE(elem))(elem) \
+ )
+
+#define MSGPACK_DEFINE_MAP_IMPL(...) \
+ MSGPACK_PP_SEQ_TO_TUPLE( \
+ MSGPACK_PP_SEQ_FOR_EACH( \
+ MSGPACK_DEFINE_MAP_EACH_PROC, \
+ 0, \
+ MSGPACK_PP_VARIADIC_TO_SEQ(__VA_ARGS__) \
+ ) \
+ )
+
+#define MSGPACK_DEFINE_MAP(...) \
+ template <typename Packer> \
+ void msgpack_pack(Packer& pk) const \
+ { \
+ clmdep_msgpack::type::make_define_map \
+ MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
+ .msgpack_pack(pk); \
+ } \
+ void msgpack_unpack(clmdep_msgpack::object const& o) \
+ { \
+ clmdep_msgpack::type::make_define_map \
+ MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
+ .msgpack_unpack(o); \
+ }\
+ template <typename MSGPACK_OBJECT> \
+ void msgpack_object(MSGPACK_OBJECT* o, clmdep_msgpack::zone& z) const \
+ { \
+ clmdep_msgpack::type::make_define_map \
+ MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
+ .msgpack_object(o, z); \
+ }
+
+#define MSGPACK_BASE_MAP(base) \
+ (MSGPACK_PP_STRINGIZE(base))(*const_cast<base *>(static_cast<base const*>(this)))
+
+namespace clmdep_msgpack {
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+namespace type {
+
+template <typename Tuple, std::size_t N>
+struct define_map_imp {
+ template <typename Packer>
+ static void pack(Packer& pk, Tuple const& t) {
+ define_map_imp<Tuple, N-1>::pack(pk, t);
+ pk.pack(std::get<N-1>(t));
+ }
+ static void unpack(
+ clmdep_msgpack::object const& o, Tuple const& t,
+ std::map<std::string, clmdep_msgpack::object const*> const& kvmap) {
+ define_map_imp<Tuple, N-2>::unpack(o, t, kvmap);
+ auto it = kvmap.find(std::get<N-2>(t));
+ if (it != kvmap.end()) {
+ it->second->convert(std::get<N-1>(t));
+ }
+ }
+ static void object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z, Tuple const& t) {
+ define_map_imp<Tuple, N-2>::object(o, z, t);
+ o->via.map.ptr[(N-1)/2].key = clmdep_msgpack::object(std::get<N-2>(t), z);
+ o->via.map.ptr[(N-1)/2].val = clmdep_msgpack::object(std::get<N-1>(t), z);
+ }
+};
+
+template <typename Tuple>
+struct define_map_imp<Tuple, 0> {
+ template <typename Packer>
+ static void pack(Packer&, Tuple const&) {}
+ static void unpack(
+ clmdep_msgpack::object const&, Tuple const&,
+ std::map<std::string, clmdep_msgpack::object const*> const&) {}
+ static void object(clmdep_msgpack::object*, clmdep_msgpack::zone&, Tuple const&) {}
+};
+
+template <typename... Args>
+struct define_map {
+ define_map(Args&... args) :
+ a(args...) {}
+ template <typename Packer>
+ void msgpack_pack(Packer& pk) const
+ {
+ static_assert(sizeof...(Args) % 2 == 0, "");
+ pk.pack_map(sizeof...(Args) / 2);
+
+ define_map_imp<std::tuple<Args&...>, sizeof...(Args)>::pack(pk, a);
+ }
+ void msgpack_unpack(clmdep_msgpack::object const& o) const
+ {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ std::map<std::string, clmdep_msgpack::object const*> kvmap;
+ for (uint32_t i = 0; i < o.via.map.size; ++i) {
+ kvmap.emplace(
+ std::string(
+ o.via.map.ptr[i].key.via.str.ptr,
+ o.via.map.ptr[i].key.via.str.size),
+ &o.via.map.ptr[i].val);
+ }
+ define_map_imp<std::tuple<Args&...>, sizeof...(Args)>::unpack(o, a, kvmap);
+ }
+ void msgpack_object(clmdep_msgpack::object* o, clmdep_msgpack::zone& z) const
+ {
+ static_assert(sizeof...(Args) % 2 == 0, "");
+ o->type = clmdep_msgpack::type::MAP;
+ o->via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(z.allocate_align(sizeof(clmdep_msgpack::object_kv)*sizeof...(Args)/2));
+ o->via.map.size = sizeof...(Args) / 2;
+
+ define_map_imp<std::tuple<Args&...>, sizeof...(Args)>::object(o, z, a);
+ }
+
+ std::tuple<Args&...> a;
+};
+
+
+template <typename... Args>
+define_map<Args...> make_define_map(Args&... args)
+{
+ return define_map<Args...>(args...);
+}
+
+} // namespace type
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_DEFINE_MAP_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp
new file mode 100644
index 000000000..b98ac66d6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/detail/cpp11_msgpack_tuple.hpp
@@ -0,0 +1,283 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP11_MSGPACK_TUPLE_HPP
+#define MSGPACK_CPP11_MSGPACK_TUPLE_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/object_fwd.hpp"
+#include "rpc/msgpack/meta.hpp"
+
+#include <tuple>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+ // tuple
+ using std::get;
+ using std::tuple_size;
+ using std::tuple_element;
+ using std::uses_allocator;
+ using std::ignore;
+ using std::swap;
+
+ template< class... Types >
+ class tuple : public std::tuple<Types...> {
+ public:
+ using base = std::tuple<Types...>;
+
+ using base::base;
+
+ tuple() = default;
+ tuple(tuple const&) = default;
+ tuple(tuple&&) = default;
+
+ template<typename... OtherTypes>
+ tuple(tuple<OtherTypes...> const& other):base(static_cast<std::tuple<OtherTypes...> const&>(other)) {}
+ template<typename... OtherTypes>
+ tuple(tuple<OtherTypes...> && other):base(static_cast<std::tuple<OtherTypes...> &&>(other)) {}
+
+ tuple& operator=(tuple const&) = default;
+ tuple& operator=(tuple&&) = default;
+
+ template<typename... OtherTypes>
+ tuple& operator=(tuple<OtherTypes...> const& other) {
+ *static_cast<base*>(this) = static_cast<std::tuple<OtherTypes...> const&>(other);
+ return *this;
+ }
+ template<typename... OtherTypes>
+ tuple& operator=(tuple<OtherTypes...> && other) {
+ *static_cast<base*>(this) = static_cast<std::tuple<OtherTypes...> &&>(other);
+ return *this;
+ }
+
+ template< std::size_t I>
+ typename tuple_element<I, base >::type&
+ get() & { return std::get<I>(*this); }
+
+ template< std::size_t I>
+ typename tuple_element<I, base >::type const&
+ get() const& { return std::get<I>(*this); }
+
+ template< std::size_t I>
+ typename tuple_element<I, base >::type&&
+ get() && { return std::get<I>(*this); }
+ };
+
+ template <class... Args>
+ inline tuple<Args...> make_tuple(Args&&... args) {
+ return tuple<Args...>(args...);
+ }
+
+ template<class... Args>
+ inline tuple<Args&&...> forward_as_tuple (Args&&... args) noexcept {
+ return tuple<Args&&...>(std::forward<Args>(args)...);
+ }
+
+ template <class... Tuples>
+ inline auto tuple_cat(Tuples&&... args) ->
+ decltype(
+ std::tuple_cat(std::forward<typename std::remove_reference<Tuples>::type::base>(args)...)
+ ) {
+ return std::tuple_cat(std::forward<typename std::remove_reference<Tuples>::type::base>(args)...);
+ }
+ template <class... Args>
+ inline tuple<Args&...> tie(Args&... args) {
+ return tuple<Args&...>(args...);
+ }
+} // namespace type
+
+// --- Pack from tuple to packer stream ---
+template <typename Stream, typename Tuple, std::size_t N>
+struct MsgpackTuplePacker {
+ static void pack(
+ clmdep_msgpack::packer<Stream>& o,
+ const Tuple& v) {
+ MsgpackTuplePacker<Stream, Tuple, N-1>::pack(o, v);
+ o.pack(type::get<N-1>(v));
+ }
+};
+
+template <typename Stream, typename Tuple>
+struct MsgpackTuplePacker<Stream, Tuple, 1> {
+ static void pack (
+ clmdep_msgpack::packer<Stream>& o,
+ const Tuple& v) {
+ o.pack(type::get<0>(v));
+ }
+};
+
+template <typename Stream, typename Tuple>
+struct MsgpackTuplePacker<Stream, Tuple, 0> {
+ static void pack (
+ clmdep_msgpack::packer<Stream>&,
+ const Tuple&) {
+ }
+};
+
+namespace adaptor {
+
+template <typename... Args>
+struct pack<clmdep_msgpack::type::tuple<Args...>> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(
+ clmdep_msgpack::packer<Stream>& o,
+ const clmdep_msgpack::type::tuple<Args...>& v) const {
+ o.pack_array(sizeof...(Args));
+ MsgpackTuplePacker<Stream, decltype(v), sizeof...(Args)>::pack(o, v);
+ return o;
+ }
+};
+
+} // namespace adaptor
+
+// --- Convert from tuple to object ---
+
+template <typename... Args>
+struct MsgpackTupleAs;
+
+template <typename T, typename... Args>
+struct MsgpackTupleAsImpl {
+ static clmdep_msgpack::type::tuple<T, Args...> as(clmdep_msgpack::object const& o) {
+ return clmdep_msgpack::type::tuple_cat(
+ clmdep_msgpack::type::make_tuple(o.via.array.ptr[o.via.array.size - sizeof...(Args) - 1].as<T>()),
+ MsgpackTupleAs<Args...>::as(o));
+ }
+};
+
+template <typename... Args>
+struct MsgpackTupleAs {
+ static clmdep_msgpack::type::tuple<Args...> as(clmdep_msgpack::object const& o) {
+ return MsgpackTupleAsImpl<Args...>::as(o);
+ }
+};
+
+template <>
+struct MsgpackTupleAs<> {
+ static clmdep_msgpack::type::tuple<> as (clmdep_msgpack::object const&) {
+ return clmdep_msgpack::type::tuple<>();
+ }
+};
+
+template <typename Tuple, std::size_t N>
+struct MsgpackTupleConverter {
+ static void convert(
+ clmdep_msgpack::object const& o,
+ Tuple& v) {
+ MsgpackTupleConverter<Tuple, N-1>::convert(o, v);
+ o.via.array.ptr[N-1].convert<typename std::remove_reference<decltype(type::get<N-1>(v))>::type>(type::get<N-1>(v));
+ }
+};
+
+template <typename Tuple>
+struct MsgpackTupleConverter<Tuple, 1> {
+ static void convert (
+ clmdep_msgpack::object const& o,
+ Tuple& v) {
+ o.via.array.ptr[0].convert<typename std::remove_reference<decltype(type::get<0>(v))>::type>(type::get<0>(v));
+ }
+};
+
+template <typename Tuple>
+struct MsgpackTupleConverter<Tuple, 0> {
+ static void convert (
+ clmdep_msgpack::object const&,
+ Tuple&) {
+ }
+};
+
+namespace adaptor {
+
+template <typename... Args>
+struct as<clmdep_msgpack::type::tuple<Args...>, typename std::enable_if<clmdep_msgpack::all_of<clmdep_msgpack::has_as, Args...>::value>::type> {
+ clmdep_msgpack::type::tuple<Args...> operator()(
+ clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if (o.via.array.size < sizeof...(Args)) { throw clmdep_msgpack::type_error(); }
+ return MsgpackTupleAs<Args...>::as(o);
+ }
+};
+
+template <typename... Args>
+struct convert<clmdep_msgpack::type::tuple<Args...>> {
+ clmdep_msgpack::object const& operator()(
+ clmdep_msgpack::object const& o,
+ clmdep_msgpack::type::tuple<Args...>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size < sizeof...(Args)) { throw clmdep_msgpack::type_error(); }
+ MsgpackTupleConverter<decltype(v), sizeof...(Args)>::convert(o, v);
+ return o;
+ }
+};
+
+} // namespace adaptor
+
+// --- Convert from tuple to object with zone ---
+template <typename Tuple, std::size_t N>
+struct MsgpackTupleToObjectWithZone {
+ static void convert(
+ clmdep_msgpack::object::with_zone& o,
+ const Tuple& v) {
+ MsgpackTupleToObjectWithZone<Tuple, N-1>::convert(o, v);
+ o.via.array.ptr[N-1] = clmdep_msgpack::object(type::get<N-1>(v), o.zone);
+ }
+};
+
+template <typename Tuple>
+struct MsgpackTupleToObjectWithZone<Tuple, 1> {
+ static void convert (
+ clmdep_msgpack::object::with_zone& o,
+ const Tuple& v) {
+ o.via.array.ptr[0] = clmdep_msgpack::object(type::get<0>(v), o.zone);
+ }
+};
+
+template <typename Tuple>
+struct MsgpackTupleToObjectWithZone<Tuple, 0> {
+ static void convert (
+ clmdep_msgpack::object::with_zone&,
+ const Tuple&) {
+ }
+};
+
+namespace adaptor {
+
+template <typename... Args>
+ struct object_with_zone<clmdep_msgpack::type::tuple<Args...>> {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ clmdep_msgpack::type::tuple<Args...> const& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*sizeof...(Args)));
+ o.via.array.size = sizeof...(Args);
+ MsgpackTupleToObjectWithZone<decltype(v), sizeof...(Args)>::convert(o, v);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+///@endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_MSGPACK_TUPLE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/ext.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/ext.hpp
new file mode 100644
index 000000000..1f1a60408
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/ext.hpp
@@ -0,0 +1,245 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_EXT_HPP
+#define MSGPACK_TYPE_EXT_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include <cstring>
+#include <string>
+#include <cassert>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+class ext_ref;
+
+class ext {
+public:
+ ext() : m_data(1, 0) {}
+ ext(int8_t t, const char* p, uint32_t s) {
+ detail::check_container_size_for_ext<sizeof(std::size_t)>(s);
+ m_data.reserve(static_cast<std::size_t>(s) + 1);
+ m_data.push_back(static_cast<char>(t));
+ m_data.insert(m_data.end(), p, p + s);
+ }
+ ext(int8_t t, uint32_t s) {
+ detail::check_container_size_for_ext<sizeof(std::size_t)>(s);
+ m_data.resize(static_cast<std::size_t>(s) + 1);
+ m_data[0] = static_cast<char>(t);
+ }
+ ext(ext_ref const&);
+ int8_t type() const {
+ return static_cast<int8_t>(m_data[0]);
+ }
+ const char* data() const {
+ return &m_data[1];
+ }
+ char* data() {
+ return &m_data[1];
+ }
+ uint32_t size() const {
+ return static_cast<uint32_t>(m_data.size()) - 1;
+ }
+ bool operator== (const ext& x) const {
+ return m_data == x.m_data;
+ }
+
+ bool operator!= (const ext& x) const {
+ return !(*this == x);
+ }
+
+ bool operator< (const ext& x) const {
+ return m_data < x.m_data;
+ }
+
+ bool operator> (const ext& x) const {
+ return m_data > x.m_data;
+ }
+private:
+ std::vector<char> m_data;
+ friend class ext_ref;
+};
+
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<clmdep_msgpack::type::ext> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, clmdep_msgpack::type::ext& v) const {
+ if(o.type != clmdep_msgpack::type::EXT) {
+ throw clmdep_msgpack::type_error();
+ }
+ v = clmdep_msgpack::type::ext(o.via.ext.type(), o.via.ext.data(), o.via.ext.size);
+ return o;
+ }
+};
+
+template <>
+struct pack<clmdep_msgpack::type::ext> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::type::ext& v) const {
+ // size limit has aleady been checked at ext's constructor
+ uint32_t size = v.size();
+ o.pack_ext(size, v.type());
+ o.pack_ext_body(v.data(), size);
+ return o;
+ }
+};
+
+template <>
+struct object_with_zone<clmdep_msgpack::type::ext> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const clmdep_msgpack::type::ext& v) const {
+ // size limit has aleady been checked at ext's constructor
+ uint32_t size = v.size();
+ o.type = clmdep_msgpack::type::EXT;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size + 1));
+ o.via.ext.ptr = ptr;
+ o.via.ext.size = size;
+ ptr[0] = static_cast<char>(v.type());
+ std::memcpy(ptr + 1, v.data(), size);
+ }
+};
+
+} // namespace adaptor
+
+namespace type {
+
+class ext_ref {
+public:
+ // ext_ref should be default constructible to support 'convert'.
+ // A default constructed ext_ref object::m_ptr doesn't have the buffer to point to.
+ // In order to avoid nullptr checking branches, m_ptr points to m_size.
+ // So type() returns unspecified but valid value. It might be a zero because m_size
+ // is initialized as zero, but shoudn't assume that.
+ ext_ref() : m_ptr(static_cast<char*>(static_cast<void*>(&m_size))), m_size(0) {}
+ ext_ref(const char* p, uint32_t s) :
+ m_ptr(s == 0 ? static_cast<char*>(static_cast<void*>(&m_size)) : p),
+ m_size(s == 0 ? 0 : s - 1) {
+ detail::check_container_size_for_ext<sizeof(std::size_t)>(s);
+ }
+
+ // size limit has aleady been checked at ext's constructor
+ ext_ref(ext const& x) : m_ptr(&x.m_data[0]), m_size(x.size()) {}
+
+ const char* data() const {
+ return m_ptr + 1;
+ }
+
+ uint32_t size() const {
+ return m_size;
+ }
+
+ int8_t type() const {
+ return static_cast<int8_t>(m_ptr[0]);
+ }
+
+ std::string str() const {
+ return std::string(m_ptr + 1, m_size);
+ }
+
+ bool operator== (const ext_ref& x) const {
+ return m_size == x.m_size && std::memcmp(m_ptr, x.m_ptr, m_size) == 0;
+ }
+
+ bool operator!= (const ext_ref& x) const {
+ return !(*this == x);
+ }
+
+ bool operator< (const ext_ref& x) const {
+ if (m_size < x.m_size) return true;
+ if (m_size > x.m_size) return false;
+ return std::memcmp(m_ptr, x.m_ptr, m_size) < 0;
+ }
+
+ bool operator> (const ext_ref& x) const {
+ if (m_size > x.m_size) return true;
+ if (m_size < x.m_size) return false;
+ return std::memcmp(m_ptr, x.m_ptr, m_size) > 0;
+ }
+private:
+ const char* m_ptr;
+ uint32_t m_size;
+ friend struct clmdep_msgpack::adaptor::object<clmdep_msgpack::type::ext_ref>;
+};
+
+inline ext::ext(ext_ref const& x) {
+ // size limit has aleady been checked at ext_ref's constructor
+ m_data.reserve(x.size() + 1);
+
+ m_data.push_back(x.type());
+ m_data.insert(m_data.end(), x.data(), x.data() + x.size());
+}
+
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<clmdep_msgpack::type::ext_ref> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, clmdep_msgpack::type::ext_ref& v) const {
+ if(o.type != clmdep_msgpack::type::EXT) { throw clmdep_msgpack::type_error(); }
+ v = clmdep_msgpack::type::ext_ref(o.via.ext.ptr, o.via.ext.size + 1);
+ return o;
+ }
+};
+
+template <>
+struct pack<clmdep_msgpack::type::ext_ref> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::type::ext_ref& v) const {
+ // size limit has aleady been checked at ext_ref's constructor
+ uint32_t size = v.size();
+ o.pack_ext(size, v.type());
+ o.pack_ext_body(v.data(), size);
+ return o;
+ }
+};
+
+template <>
+struct object<clmdep_msgpack::type::ext_ref> {
+ void operator()(clmdep_msgpack::object& o, const clmdep_msgpack::type::ext_ref& v) const {
+ // size limit has aleady been checked at ext_ref's constructor
+ uint32_t size = v.size();
+ o.type = clmdep_msgpack::type::EXT;
+ o.via.ext.ptr = v.m_ptr;
+ o.via.ext.size = size;
+ }
+};
+
+template <>
+struct object_with_zone<clmdep_msgpack::type::ext_ref> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const clmdep_msgpack::type::ext_ref& v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_EXT_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/fixint.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/fixint.hpp
new file mode 100644
index 000000000..b5f5b0957
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/fixint.hpp
@@ -0,0 +1,306 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2020 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_FIXINT_HPP
+#define MSGPACK_TYPE_FIXINT_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/int.hpp"
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+
+template <typename T>
+struct fix_int {
+ fix_int() : value(0) { }
+ fix_int(T value) : value(value) { }
+
+ operator T() const { return value; }
+
+ T get() const { return value; }
+
+private:
+ T value;
+};
+
+
+typedef fix_int<uint8_t> fix_uint8;
+typedef fix_int<uint16_t> fix_uint16;
+typedef fix_int<uint32_t> fix_uint32;
+typedef fix_int<uint64_t> fix_uint64;
+
+typedef fix_int<int8_t> fix_int8;
+typedef fix_int<int16_t> fix_int16;
+typedef fix_int<int32_t> fix_int32;
+typedef fix_int<int64_t> fix_int64;
+
+
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<type::fix_int8> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_int8& v) const
+ { v = type::detail::convert_integer<int8_t>(o); return o; }
+};
+
+template <>
+struct convert<type::fix_int16> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_int16& v) const
+ { v = type::detail::convert_integer<int16_t>(o); return o; }
+};
+
+template <>
+struct convert<type::fix_int32> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_int32& v) const
+ { v = type::detail::convert_integer<int32_t>(o); return o; }
+};
+
+template <>
+struct convert<type::fix_int64> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_int64& v) const
+ { v = type::detail::convert_integer<int64_t>(o); return o; }
+};
+
+
+template <>
+struct convert<type::fix_uint8> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_uint8& v) const
+ { v = type::detail::convert_integer<uint8_t>(o); return o; }
+};
+
+template <>
+struct convert<type::fix_uint16> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_uint16& v) const
+ { v = type::detail::convert_integer<uint16_t>(o); return o; }
+};
+
+template <>
+struct convert<type::fix_uint32> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_uint32& v) const
+ { v = type::detail::convert_integer<uint32_t>(o); return o; }
+};
+
+template <>
+struct convert<type::fix_uint64> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::fix_uint64& v) const
+ { v = type::detail::convert_integer<uint64_t>(o); return o; }
+};
+
+template <>
+struct pack<type::fix_int8> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_int8& v) const
+ { o.pack_fix_int8(v); return o; }
+};
+
+template <>
+struct pack<type::fix_int16> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_int16& v) const
+ { o.pack_fix_int16(v); return o; }
+};
+
+template <>
+struct pack<type::fix_int32> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_int32& v) const
+ { o.pack_fix_int32(v); return o; }
+};
+
+template <>
+struct pack<type::fix_int64> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_int64& v) const
+ { o.pack_fix_int64(v); return o; }
+};
+
+
+template <>
+struct pack<type::fix_uint8> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_uint8& v) const
+ { o.pack_fix_uint8(v); return o; }
+};
+
+template <>
+struct pack<type::fix_uint16> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_uint16& v) const
+ { o.pack_fix_uint16(v); return o; }
+};
+
+template <>
+struct pack<type::fix_uint32> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_uint32& v) const
+ { o.pack_fix_uint32(v); return o; }
+};
+
+template <>
+struct pack<type::fix_uint64> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::fix_uint64& v) const
+ { o.pack_fix_uint64(v); return o; }
+};
+
+template <>
+struct object<type::fix_int8> {
+ void operator()(clmdep_msgpack::object& o, type::fix_int8 v) const {
+ if (v.get() < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v.get();
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v.get();
+ }
+ }
+};
+
+template <>
+struct object<type::fix_int16> {
+ void operator()(clmdep_msgpack::object& o, type::fix_int16 v) const {
+ if(v.get() < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v.get();
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v.get();
+ }
+ }
+};
+
+template <>
+struct object<type::fix_int32> {
+ void operator()(clmdep_msgpack::object& o, type::fix_int32 v) const {
+ if (v.get() < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v.get();
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v.get();
+ }
+ }
+};
+
+template <>
+struct object<type::fix_int64> {
+ void operator()(clmdep_msgpack::object& o, type::fix_int64 v) const {
+ if (v.get() < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v.get();
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v.get();
+ }
+ }
+};
+
+template <>
+struct object<type::fix_uint8> {
+ void operator()(clmdep_msgpack::object& o, type::fix_uint8 v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
+};
+
+template <>
+struct object<type::fix_uint16> {
+ void operator()(clmdep_msgpack::object& o, type::fix_uint16 v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
+};
+
+template <>
+struct object<type::fix_uint32> {
+ void operator()(clmdep_msgpack::object& o, type::fix_uint32 v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
+};
+
+template <>
+struct object<type::fix_uint64> {
+ void operator()(clmdep_msgpack::object& o, type::fix_uint64 v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v.get(); }
+};
+
+template <>
+struct object_with_zone<type::fix_int8> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_int8 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<type::fix_int16> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_int16 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<type::fix_int32> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_int32 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<type::fix_int64> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_int64 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+
+template <>
+struct object_with_zone<type::fix_uint8> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_uint8 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<type::fix_uint16> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_uint16 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<type::fix_uint32> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_uint32 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<type::fix_uint64> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::fix_uint64 v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/type/fixint.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/float.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/float.hpp
new file mode 100644
index 000000000..8967b64d5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/float.hpp
@@ -0,0 +1,131 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_FLOAT_HPP
+#define MSGPACK_TYPE_FLOAT_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/object_fwd.hpp"
+#include <vector>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+// FIXME check overflow, underflow
+
+namespace adaptor {
+
+template <>
+struct convert<float> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, float& v) const {
+ if(o.type == clmdep_msgpack::type::FLOAT) {
+ v = static_cast<float>(o.via.f64);
+ }
+ else if (o.type == clmdep_msgpack::type::POSITIVE_INTEGER) {
+ v = static_cast<float>(o.via.u64);
+ }
+ else if (o.type == clmdep_msgpack::type::NEGATIVE_INTEGER) {
+ v = static_cast<float>(o.via.i64);
+ }
+ else {
+ throw clmdep_msgpack::type_error();
+ }
+ return o;
+ }
+};
+
+template <>
+struct pack<float> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const float& v) const {
+ o.pack_float(v);
+ return o;
+ }
+};
+
+
+template <>
+struct convert<double> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, double& v) const {
+ if(o.type == clmdep_msgpack::type::FLOAT) {
+ v = o.via.f64;
+ }
+ else if (o.type == clmdep_msgpack::type::POSITIVE_INTEGER) {
+ v = static_cast<double>(o.via.u64);
+ }
+ else if (o.type == clmdep_msgpack::type::NEGATIVE_INTEGER) {
+ v = static_cast<double>(o.via.i64);
+ }
+ else {
+ throw clmdep_msgpack::type_error();
+ }
+ return o;
+ }
+};
+
+template <>
+struct pack<double> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const double& v) const {
+ o.pack_double(v);
+ return o;
+ }
+};
+
+
+template <>
+struct object<float> {
+ void operator()(clmdep_msgpack::object& o, float v) const {
+ o.type = clmdep_msgpack::type::FLOAT;
+ o.via.f64 = static_cast<double>(v);
+ }
+};
+
+template <>
+struct object<double> {
+ void operator()(clmdep_msgpack::object& o, double v) const {
+ o.type = clmdep_msgpack::type::FLOAT;
+ o.via.f64 = v;
+ }
+};
+
+template <>
+struct object_with_zone<float> {
+ void operator()(clmdep_msgpack::object::with_zone& o, float v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+template <>
+struct object_with_zone<double> {
+ void operator()(clmdep_msgpack::object::with_zone& o, double v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_FLOAT_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/int.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/int.hpp
new file mode 100644
index 000000000..68856b235
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/int.hpp
@@ -0,0 +1,436 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_INT_HPP
+#define MSGPACK_TYPE_INT_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include <limits>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1){
+/// @endcond
+
+namespace type {
+namespace detail {
+ template <typename T, bool Signed>
+ struct convert_integer_sign;
+
+ template <typename T>
+ struct convert_integer_sign<T, true> {
+ static inline T convert(clmdep_msgpack::object const& o) {
+ if(o.type == clmdep_msgpack::type::POSITIVE_INTEGER) {
+ if(o.via.u64 > static_cast<uint64_t>(std::numeric_limits<T>::max()))
+ { throw clmdep_msgpack::type_error(); }
+ return static_cast<T>(o.via.u64);
+ } else if(o.type == clmdep_msgpack::type::NEGATIVE_INTEGER) {
+ if(o.via.i64 < static_cast<int64_t>(std::numeric_limits<T>::min()))
+ { throw clmdep_msgpack::type_error(); }
+ return static_cast<T>(o.via.i64);
+ }
+ throw clmdep_msgpack::type_error();
+ }
+ };
+
+ template <typename T>
+ struct convert_integer_sign<T, false> {
+ static inline T convert(clmdep_msgpack::object const& o) {
+ if(o.type == clmdep_msgpack::type::POSITIVE_INTEGER) {
+ if(o.via.u64 > static_cast<uint64_t>(std::numeric_limits<T>::max()))
+ { throw clmdep_msgpack::type_error(); }
+ return static_cast<T>(o.via.u64);
+ }
+ throw clmdep_msgpack::type_error();
+ }
+ };
+
+ template <typename T>
+ struct is_signed {
+ static const bool value = std::numeric_limits<T>::is_signed;
+ };
+
+ template <typename T>
+ static inline T convert_integer(clmdep_msgpack::object const& o)
+ {
+ return detail::convert_integer_sign<T, is_signed<T>::value>::convert(o);
+ }
+
+ template <bool Signed>
+ struct object_char_sign;
+
+ template <>
+ struct object_char_sign<true> {
+ static inline void make(clmdep_msgpack::object& o, char v) {
+ if (v < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v;
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v;
+ }
+ }
+ };
+
+ template <>
+ struct object_char_sign<false> {
+ static inline void make(clmdep_msgpack::object& o, char v) {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v;
+ }
+ };
+
+ static inline void object_char(clmdep_msgpack::object& o, char v) {
+ return object_char_sign<is_signed<char>::value>::make(o, v);
+ }
+
+} // namespace detail
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<char> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, char& v) const
+ { v = type::detail::convert_integer<char>(o); return o; }
+};
+
+template <>
+struct convert<signed char> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, signed char& v) const
+ { v = type::detail::convert_integer<signed char>(o); return o; }
+};
+
+template <>
+struct convert<signed short> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, signed short& v) const
+ { v = type::detail::convert_integer<signed short>(o); return o; }
+};
+
+template <>
+struct convert<signed int> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, signed int& v) const
+ { v = type::detail::convert_integer<signed int>(o); return o; }
+};
+
+template <>
+struct convert<signed long> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, signed long& v) const
+ { v = type::detail::convert_integer<signed long>(o); return o; }
+};
+
+template <>
+struct convert<signed long long> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, signed long long& v) const
+ { v = type::detail::convert_integer<signed long long>(o); return o; }
+};
+
+
+template <>
+struct convert<unsigned char> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, unsigned char& v) const
+ { v = type::detail::convert_integer<unsigned char>(o); return o; }
+};
+
+template <>
+struct convert<unsigned short> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, unsigned short& v) const
+ { v = type::detail::convert_integer<unsigned short>(o); return o; }
+};
+
+template <>
+struct convert<unsigned int> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, unsigned int& v) const
+ { v = type::detail::convert_integer<unsigned int>(o); return o; }
+};
+
+template <>
+struct convert<unsigned long> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, unsigned long& v) const
+ { v = type::detail::convert_integer<unsigned long>(o); return o; }
+};
+
+template <>
+struct convert<unsigned long long> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, unsigned long long& v) const
+ { v = type::detail::convert_integer<unsigned long long>(o); return o; }
+};
+
+
+template <>
+struct pack<char> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, char v) const
+ { o.pack_char(v); return o; }
+};
+
+template <>
+struct pack<signed char> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, signed char v) const
+ { o.pack_signed_char(v); return o; }
+};
+
+template <>
+struct pack<signed short> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, signed short v) const
+ { o.pack_short(v); return o; }
+};
+
+template <>
+struct pack<signed int> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, signed int v) const
+ { o.pack_int(v); return o; }
+};
+
+template <>
+struct pack<signed long> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, signed long v) const
+ { o.pack_long(v); return o; }
+};
+
+template <>
+struct pack<signed long long> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, signed long long v) const
+ { o.pack_long_long(v); return o; }
+};
+
+
+template <>
+struct pack<unsigned char> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, unsigned char v) const
+ { o.pack_unsigned_char(v); return o; }
+};
+
+template <>
+struct pack<unsigned short> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, unsigned short v) const
+ { o.pack_unsigned_short(v); return o; }
+};
+
+template <>
+struct pack<unsigned int> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, unsigned int v) const
+ { o.pack_unsigned_int(v); return o; }
+};
+
+template <>
+struct pack<unsigned long> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, unsigned long v) const
+ { o.pack_unsigned_long(v); return o; }
+};
+
+template <>
+struct pack<unsigned long long> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, unsigned long long v) const
+ { o.pack_unsigned_long_long(v); return o; }
+};
+
+
+template <>
+struct object<char> {
+ void operator()(clmdep_msgpack::object& o, char v) const
+ { type::detail::object_char(o, v); }
+};
+
+template <>
+struct object<signed char> {
+ void operator()(clmdep_msgpack::object& o, signed char v) const {
+ if (v < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v;
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v;
+ }
+ }
+};
+
+template <>
+struct object<signed short> {
+ void operator()(clmdep_msgpack::object& o, signed short v) const {
+ if (v < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v;
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v;
+ }
+ }
+};
+
+template <>
+struct object<signed int> {
+ void operator()(clmdep_msgpack::object& o, signed int v) const {
+ if (v < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v;
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v;
+ }
+ }
+};
+
+template <>
+struct object<signed long> {
+ void operator()(clmdep_msgpack::object& o, signed long v) const {
+ if (v < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v;
+ }
+ else {
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v;
+ }
+ }
+};
+
+template <>
+struct object<signed long long> {
+ void operator()(clmdep_msgpack::object& o, signed long long v) const {
+ if (v < 0) {
+ o.type = clmdep_msgpack::type::NEGATIVE_INTEGER;
+ o.via.i64 = v;
+ }
+ else{
+ o.type = clmdep_msgpack::type::POSITIVE_INTEGER;
+ o.via.u64 = v;
+ }
+ }
+};
+
+template <>
+struct object<unsigned char> {
+ void operator()(clmdep_msgpack::object& o, unsigned char v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
+};
+
+template <>
+struct object<unsigned short> {
+ void operator()(clmdep_msgpack::object& o, unsigned short v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
+};
+
+template <>
+struct object<unsigned int> {
+ void operator()(clmdep_msgpack::object& o, unsigned int v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
+};
+
+template <>
+struct object<unsigned long> {
+ void operator()(clmdep_msgpack::object& o, unsigned long v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
+};
+
+template <>
+struct object<unsigned long long> {
+ void operator()(clmdep_msgpack::object& o, unsigned long long v) const
+ { o.type = clmdep_msgpack::type::POSITIVE_INTEGER, o.via.u64 = v; }
+};
+
+
+template <>
+struct object_with_zone<char> {
+ void operator()(clmdep_msgpack::object::with_zone& o, char v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<signed char> {
+ void operator()(clmdep_msgpack::object::with_zone& o, signed char v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<signed short> {
+ void operator()(clmdep_msgpack::object::with_zone& o, signed short v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<signed int> {
+ void operator()(clmdep_msgpack::object::with_zone& o, signed int v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<signed long> {
+ void operator()(clmdep_msgpack::object::with_zone& o, signed long v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<signed long long> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const signed long long& v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<unsigned char> {
+ void operator()(clmdep_msgpack::object::with_zone& o, unsigned char v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<unsigned short> {
+ void operator()(clmdep_msgpack::object::with_zone& o, unsigned short v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<unsigned int> {
+ void operator()(clmdep_msgpack::object::with_zone& o, unsigned int v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<unsigned long> {
+ void operator()(clmdep_msgpack::object::with_zone& o, unsigned long v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+template <>
+struct object_with_zone<unsigned long long> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const unsigned long long& v) const
+ { static_cast<clmdep_msgpack::object&>(o) << v; }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/type/int.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/list.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/list.hpp
new file mode 100644
index 000000000..38666cb91
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/list.hpp
@@ -0,0 +1,114 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_LIST_HPP
+#define MSGPACK_TYPE_LIST_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <list>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Alloc>
+struct as<std::list<T, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::list<T, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ std::list<T, Alloc> v;
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ for (; p < pend; ++p) {
+ v.push_back(p->as<T>());
+ }
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Alloc>
+struct convert<std::list<T, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::list<T, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ v.resize(o.via.array.size);
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ typename std::list<T, Alloc>::iterator it = v.begin();
+ for (; p < pend; ++p, ++it) {
+ p->convert(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct pack<std::list<T, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::list<T, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for (typename std::list<T, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct object_with_zone<std::list<T, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::list<T, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if (v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ }
+ else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::list<T, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_LIST_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/map.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/map.hpp
new file mode 100644
index 000000000..7e94223f7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/map.hpp
@@ -0,0 +1,314 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_MAP_HPP
+#define MSGPACK_TYPE_MAP_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/object_fwd.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <map>
+#include <vector>
+#include <algorithm>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+template <typename K, typename V, typename Compare = std::less<K>, typename Alloc = std::allocator<std::pair<K, V> > >
+class assoc_vector : public std::vector< std::pair<K, V>, Alloc > {
+#if !defined(MSGPACK_USE_CPP03)
+ using std::vector<std::pair<K, V>, Alloc>::vector;
+#endif // !defined(MSGPACK_USE_CPP03)
+};
+
+namespace detail {
+ template <typename K, typename V, typename Compare, typename Alloc>
+ struct pair_first_less {
+ bool operator() (const std::pair<K, V>& x, const std::pair<K, V>& y) const
+ { return Compare()(x.first, y.first); }
+ };
+}
+
+} //namespace type
+
+namespace adaptor {
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct as<
+ type::assoc_vector<K, V, Compare, Alloc>,
+ typename std::enable_if<clmdep_msgpack::has_as<K>::value && clmdep_msgpack::has_as<V>::value>::type> {
+ type::assoc_vector<K, V, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ type::assoc_vector<K, V, Compare, Alloc> v;
+ v.reserve(o.via.map.size);
+ clmdep_msgpack::object_kv* p = o.via.map.ptr;
+ clmdep_msgpack::object_kv* const pend = o.via.map.ptr + o.via.map.size;
+ for (; p < pend; ++p) {
+ v.emplace_back(p->key.as<K>(), p->val.as<V>());
+ }
+ std::sort(v.begin(), v.end(), type::detail::pair_first_less<K, V, Compare, Alloc>());
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct convert<type::assoc_vector<K, V, Compare, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::assoc_vector<K, V, Compare, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ v.resize(o.via.map.size);
+ clmdep_msgpack::object_kv* p = o.via.map.ptr;
+ clmdep_msgpack::object_kv* const pend = o.via.map.ptr + o.via.map.size;
+ std::pair<K, V>* it(&v.front());
+ for (; p < pend; ++p, ++it) {
+ p->key.convert(it->first);
+ p->val.convert(it->second);
+ }
+ std::sort(v.begin(), v.end(), type::detail::pair_first_less<K, V, Compare, Alloc>());
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct pack<type::assoc_vector<K, V, Compare, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::assoc_vector<K, V, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_map(size);
+ for (typename type::assoc_vector<K, V, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(it->first);
+ o.pack(it->second);
+ }
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct object_with_zone<type::assoc_vector<K, V, Compare, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const type::assoc_vector<K, V, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::MAP;
+ if (v.empty()) {
+ o.via.map.ptr = nullptr;
+ o.via.map.size = 0;
+ }
+ else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object_kv* p = static_cast<clmdep_msgpack::object_kv*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv)*size));
+ clmdep_msgpack::object_kv* const pend = p + size;
+ o.via.map.ptr = p;
+ o.via.map.size = size;
+ typename type::assoc_vector<K, V, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ p->key = clmdep_msgpack::object(it->first, o.zone);
+ p->val = clmdep_msgpack::object(it->second, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct as<
+ std::map<K, V, Compare, Alloc>,
+ typename std::enable_if<clmdep_msgpack::has_as<K>::value && clmdep_msgpack::has_as<V>::value>::type> {
+ std::map<K, V, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::map<K, V, Compare, Alloc> v;
+ for (; p != pend; ++p) {
+ v.emplace(p->key.as<K>(), p->val.as<V>());
+ }
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct convert<std::map<K, V, Compare, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::map<K, V, Compare, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::map<K, V, Compare, Alloc> tmp;
+ for (; p != pend; ++p) {
+ K key;
+ p->key.convert(key);
+#if __cplusplus >= 201103L
+ p->val.convert(tmp[std::move(key)]);
+#else
+ p->val.convert(tmp[key]);
+#endif
+ }
+#if __cplusplus >= 201103L
+ v = std::move(tmp);
+#else
+ tmp.swap(v);
+#endif
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct pack<std::map<K, V, Compare, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::map<K, V, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_map(size);
+ for (typename std::map<K, V, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(it->first);
+ o.pack(it->second);
+ }
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct object_with_zone<std::map<K, V, Compare, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::map<K, V, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::MAP;
+ if (v.empty()) {
+ o.via.map.ptr = nullptr;
+ o.via.map.size = 0;
+ }
+ else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object_kv* p = static_cast<clmdep_msgpack::object_kv*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv)*size));
+ clmdep_msgpack::object_kv* const pend = p + size;
+ o.via.map.ptr = p;
+ o.via.map.size = size;
+ typename std::map<K, V, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ p->key = clmdep_msgpack::object(it->first, o.zone);
+ p->val = clmdep_msgpack::object(it->second, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct as<
+ std::multimap<K, V, Compare, Alloc>,
+ typename std::enable_if<clmdep_msgpack::has_as<K>::value && clmdep_msgpack::has_as<V>::value>::type> {
+ std::multimap<K, V, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::multimap<K, V, Compare, Alloc> v;
+ for (; p != pend; ++p) {
+ v.emplace(p->key.as<K>(), p->val.as<V>());
+ }
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct convert<std::multimap<K, V, Compare, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::multimap<K, V, Compare, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ std::multimap<K, V, Compare, Alloc> tmp;
+ for (; p != pend; ++p) {
+ std::pair<K, V> value;
+ p->key.convert(value.first);
+ p->val.convert(value.second);
+#if __cplusplus >= 201103L
+ tmp.insert(std::move(value));
+#else
+ tmp.insert(value);
+#endif
+ }
+#if __cplusplus >= 201103L
+ v = std::move(tmp);
+#else
+ tmp.swap(v);
+#endif
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct pack<std::multimap<K, V, Compare, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::multimap<K, V, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_map(size);
+ for (typename std::multimap<K, V, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(it->first);
+ o.pack(it->second);
+ }
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Compare, typename Alloc>
+struct object_with_zone<std::multimap<K, V, Compare, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::multimap<K, V, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::MAP;
+ if (v.empty()) {
+ o.via.map.ptr = nullptr;
+ o.via.map.size = 0;
+ }
+ else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object_kv* p = static_cast<clmdep_msgpack::object_kv*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv)*size));
+ clmdep_msgpack::object_kv* const pend = p + size;
+ o.via.map.ptr = p;
+ o.via.map.size = size;
+ typename std::multimap<K, V, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ p->key = clmdep_msgpack::object(it->first, o.zone);
+ p->val = clmdep_msgpack::object(it->second, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_MAP_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/msgpack_tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/msgpack_tuple.hpp
new file mode 100644
index 000000000..6ca153df0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/msgpack_tuple.hpp
@@ -0,0 +1,29 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_MSGPACK_TUPLE_HPP
+#define MSGPACK_MSGPACK_TUPLE_HPP
+
+#include "rpc/msgpack/cpp_config.hpp"
+
+#if defined(MSGPACK_USE_CPP03)
+#include "detail/cpp03_msgpack_tuple.hpp"
+#else // MSGPACK_USE_CPP03
+#include "detail/cpp11_msgpack_tuple.hpp"
+#endif // MSGPACK_USE_CPP03
+
+#endif // MSGPACK_MSGPACK_TUPLE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/nil.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/nil.hpp
new file mode 100644
index 000000000..4dca2af19
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/nil.hpp
@@ -0,0 +1,92 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_NIL_HPP
+#define MSGPACK_TYPE_NIL_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+struct nil { };
+
+inline bool operator<(nil const& lhs, nil const& rhs) {
+ return &lhs < &rhs;
+}
+
+inline bool operator==(nil const& lhs, nil const& rhs) {
+ return &lhs == &rhs;
+}
+
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<type::nil> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, type::nil&) const {
+ if(o.type != clmdep_msgpack::type::NIL) { throw clmdep_msgpack::type_error(); }
+ return o;
+ }
+};
+
+template <>
+struct pack<type::nil> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const type::nil&) const {
+ o.pack_nil();
+ return o;
+ }
+};
+
+template <>
+struct object<type::nil> {
+ void operator()(clmdep_msgpack::object& o, type::nil) const {
+ o.type = clmdep_msgpack::type::NIL;
+ }
+};
+
+template <>
+struct object_with_zone<type::nil> {
+ void operator()(clmdep_msgpack::object::with_zone& o, type::nil v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+} // namespace adaptror
+
+template <>
+inline void clmdep_msgpack::object::as<void>() const
+{
+ clmdep_msgpack::type::nil v;
+ convert(v);
+}
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_NIL_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/pair.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/pair.hpp
new file mode 100644
index 000000000..2f6f0c18e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/pair.hpp
@@ -0,0 +1,91 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_PAIR_HPP
+#define MSGPACK_TYPE_PAIR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/meta.hpp"
+
+#include <utility>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename T1, typename T2>
+struct as<std::pair<T1, T2>,
+ typename std::enable_if<clmdep_msgpack::all_of<clmdep_msgpack::has_as, T1, T2>::value>::type> {
+ std::pair<T1, T2> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if (o.via.array.size != 2) { throw clmdep_msgpack::type_error(); }
+ return std::make_pair(o.via.array.ptr[0].as<T1>(), o.via.array.ptr[1].as<T2>());
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename T1, typename T2>
+struct convert<std::pair<T1, T2> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::pair<T1, T2>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if(o.via.array.size != 2) { throw clmdep_msgpack::type_error(); }
+ o.via.array.ptr[0].convert(v.first);
+ o.via.array.ptr[1].convert(v.second);
+ return o;
+ }
+};
+
+template <typename T1, typename T2>
+struct pack<std::pair<T1, T2> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::pair<T1, T2>& v) const {
+ o.pack_array(2);
+ o.pack(v.first);
+ o.pack(v.second);
+ return o;
+ }
+};
+
+template <typename T1, typename T2>
+struct object_with_zone<std::pair<T1, T2> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::pair<T1, T2>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*2));
+ o.via.array.ptr = p;
+ o.via.array.size = 2;
+ p[0] = clmdep_msgpack::object(v.first, o.zone);
+ p[1] = clmdep_msgpack::object(v.second, o.zone);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_PAIR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/raw.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/raw.hpp
new file mode 100644
index 000000000..a01340089
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/raw.hpp
@@ -0,0 +1,114 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2009 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_RAW_HPP
+#define MSGPACK_TYPE_RAW_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include <cstring>
+#include <string>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+struct raw_ref {
+ raw_ref() : size(0), ptr(nullptr) {}
+ raw_ref(const char* p, uint32_t s) : size(s), ptr(p) {}
+
+ uint32_t size;
+ const char* ptr;
+
+ std::string str() const { return std::string(ptr, size); }
+
+ bool operator== (const raw_ref& x) const
+ {
+ return size == x.size && std::memcmp(ptr, x.ptr, size) == 0;
+ }
+
+ bool operator!= (const raw_ref& x) const
+ {
+ return !(*this == x);
+ }
+
+ bool operator< (const raw_ref& x) const
+ {
+ if(size == x.size) { return std::memcmp(ptr, x.ptr, size) < 0; }
+ else { return size < x.size; }
+ }
+
+ bool operator> (const raw_ref& x) const
+ {
+ if(size == x.size) { return std::memcmp(ptr, x.ptr, size) > 0; }
+ else { return size > x.size; }
+ }
+};
+
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<clmdep_msgpack::type::raw_ref> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, clmdep_msgpack::type::raw_ref& v) const {
+ if(o.type != clmdep_msgpack::type::BIN) { throw clmdep_msgpack::type_error(); }
+ v.ptr = o.via.bin.ptr;
+ v.size = o.via.bin.size;
+ return o;
+ }
+};
+
+template <>
+struct pack<clmdep_msgpack::type::raw_ref> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::type::raw_ref& v) const {
+ o.pack_bin(v.size);
+ o.pack_bin_body(v.ptr, v.size);
+ return o;
+ }
+};
+
+template <>
+struct object<clmdep_msgpack::type::raw_ref> {
+ void operator()(clmdep_msgpack::object& o, const clmdep_msgpack::type::raw_ref& v) const {
+ o.type = clmdep_msgpack::type::BIN;
+ o.via.bin.ptr = v.ptr;
+ o.via.bin.size = v.size;
+ }
+};
+
+template <>
+struct object_with_zone<clmdep_msgpack::type::raw_ref> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const clmdep_msgpack::type::raw_ref& v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_RAW_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/set.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/set.hpp
new file mode 100644
index 000000000..405a99272
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/set.hpp
@@ -0,0 +1,196 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_SET_HPP
+#define MSGPACK_TYPE_SET_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <set>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Compare, typename Alloc>
+struct as<std::set<T, Compare, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::set<T, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::set<T, Compare, Alloc> v;
+ while (p > pbegin) {
+ --p;
+ v.insert(p->as<T>());
+ }
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Compare, typename Alloc>
+struct convert<std::set<T, Compare, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::set<T, Compare, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::set<T, Compare, Alloc> tmp;
+ while (p > pbegin) {
+ --p;
+ tmp.insert(p->as<T>());
+ }
+#if __cplusplus >= 201103L
+ v = std::move(tmp);
+#else
+ tmp.swap(v);
+#endif
+ return o;
+ }
+};
+
+template <typename T, typename Compare, typename Alloc>
+struct pack<std::set<T, Compare, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::set<T, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for (typename std::set<T, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Compare, typename Alloc>
+struct object_with_zone<std::set<T, Compare, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::set<T, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if (v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ }
+ else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::set<T, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Compare, typename Alloc>
+struct as<std::multiset<T, Compare, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::multiset<T, Compare, Alloc> operator()(clmdep_msgpack::object const& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::multiset<T, Compare, Alloc> v;
+ while (p > pbegin) {
+ --p;
+ v.insert(p->as<T>());
+ }
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Compare, typename Alloc>
+struct convert<std::multiset<T, Compare, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::multiset<T, Compare, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ std::multiset<T, Compare, Alloc> tmp;
+ while (p > pbegin) {
+ --p;
+ tmp.insert(p->as<T>());
+ }
+#if __cplusplus >= 201103L
+ v = std::move(tmp);
+#else
+ tmp.swap(v);
+#endif
+ return o;
+ }
+};
+
+template <typename T, typename Compare, typename Alloc>
+struct pack<std::multiset<T, Compare, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::multiset<T, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for (typename std::multiset<T, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Compare, typename Alloc>
+struct object_with_zone<std::multiset<T, Compare, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::multiset<T, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if (v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::multiset<T, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_SET_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/string.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/string.hpp
new file mode 100644
index 000000000..c9c5359f3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/string.hpp
@@ -0,0 +1,94 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_STRING_HPP
+#define MSGPACK_TYPE_STRING_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <string>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <>
+struct convert<std::string> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::string& v) const {
+ switch (o.type) {
+ case clmdep_msgpack::type::BIN:
+ v.assign(o.via.bin.ptr, o.via.bin.size);
+ break;
+ case clmdep_msgpack::type::STR:
+ v.assign(o.via.str.ptr, o.via.str.size);
+ break;
+ default:
+ throw clmdep_msgpack::type_error();
+ break;
+ }
+ return o;
+ }
+};
+
+template <>
+struct pack<std::string> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::string& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_str(size);
+ o.pack_str_body(v.data(), size);
+ return o;
+ }
+};
+
+template <>
+struct object<std::string> {
+ void operator()(clmdep_msgpack::object& o, const std::string& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::STR;
+ o.via.str.ptr = v.data();
+ o.via.str.size = size;
+ }
+};
+
+template <>
+struct object_with_zone<std::string> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::string& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::STR;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.str.ptr = ptr;
+ o.via.str.size = size;
+ std::memcpy(ptr, v.data(), v.size());
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_STRING_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_map.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_map.hpp
new file mode 100644
index 000000000..4fec3ba68
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_map.hpp
@@ -0,0 +1,179 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP
+#define MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
+
+#define MSGPACK_HAS_STD_UNORDERED_MAP
+#include <unordered_map>
+#define MSGPACK_STD_TR1 std
+
+#else // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
+
+#if __GNUC__ >= 4
+
+#define MSGPACK_HAS_STD_TR1_UNORDERED_MAP
+
+#include <tr1/unordered_map>
+#define MSGPACK_STD_TR1 std::tr1
+
+#endif // __GNUC__ >= 4
+
+#endif // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
+
+#if defined(MSGPACK_STD_TR1)
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename K, typename V, typename Hash, typename Pred, typename Alloc>
+struct convert<MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc> tmp;
+ for(; p != pend; ++p) {
+ K key;
+ p->key.convert(key);
+ p->val.convert(tmp[key]);
+ }
+ tmp.swap(v);
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Pred, typename Alloc>
+struct pack<MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_map(size);
+ for(typename MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(it->first);
+ o.pack(it->second);
+ }
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Pred, typename Alloc>
+struct object_with_zone<MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::MAP;
+ if(v.empty()) {
+ o.via.map.ptr = nullptr;
+ o.via.map.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object_kv* p = static_cast<clmdep_msgpack::object_kv*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv)*size));
+ clmdep_msgpack::object_kv* const pend = p + size;
+ o.via.map.ptr = p;
+ o.via.map.size = size;
+ typename MSGPACK_STD_TR1::unordered_map<K, V, Hash, Pred, Alloc>::const_iterator it(v.begin());
+ do {
+ p->key = clmdep_msgpack::object(it->first, o.zone);
+ p->val = clmdep_msgpack::object(it->second, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Pred, typename Alloc>
+struct convert<MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::MAP) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc> tmp;
+ for(; p != pend; ++p) {
+ std::pair<K, V> value;
+ p->key.convert(value.first);
+ p->val.convert(value.second);
+ tmp.insert(value);
+ }
+ tmp.swap(v);
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Pred, typename Alloc>
+struct pack<MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_map(size);
+ for(typename MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(it->first);
+ o.pack(it->second);
+ }
+ return o;
+ }
+};
+
+template <typename K, typename V, typename Hash, typename Pred, typename Alloc>
+struct object_with_zone<MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::MAP;
+ if(v.empty()) {
+ o.via.map.ptr = nullptr;
+ o.via.map.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object_kv* p = static_cast<clmdep_msgpack::object_kv*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv)*size));
+ clmdep_msgpack::object_kv* const pend = p + size;
+ o.via.map.ptr = p;
+ o.via.map.size = size;
+ typename MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc>::const_iterator it(v.begin());
+ do {
+ p->key = clmdep_msgpack::object(it->first, o.zone);
+ p->val = clmdep_msgpack::object(it->second, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#undef MSGPACK_STD_TR1
+
+#endif // MSGPACK_STD_TR1
+
+#endif // MSGPACK_TYPE_TR1_UNORDERED_MAP_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_set.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_set.hpp
new file mode 100644
index 000000000..e00b160d2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/tr1/unordered_set.hpp
@@ -0,0 +1,173 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_TR1_UNORDERED_SET_HPP
+#define MSGPACK_TYPE_TR1_UNORDERED_SET_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#if defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
+
+#define MSGPACK_HAS_STD_UNORDERED_SET
+#include <unordered_set>
+#define MSGPACK_STD_TR1 std
+
+#else // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
+
+#if __GNUC__ >= 4
+
+#define MSGPACK_HAS_STD_TR1_UNORDERED_SET
+
+#include <tr1/unordered_set>
+#define MSGPACK_STD_TR1 std::tr1
+
+#endif // __GNUC__ >= 4
+
+#endif // defined(_LIBCPP_VERSION) || (_MSC_VER >= 1700)
+
+#if defined(MSGPACK_STD_TR1)
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename T, typename Hash, typename Compare, typename Alloc>
+struct convert<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> tmp;
+ while(p > pbegin) {
+ --p;
+ tmp.insert(p->as<T>());
+ }
+ tmp.swap(v);
+ return o;
+ }
+};
+
+template <typename T, typename Hash, typename Compare, typename Alloc>
+struct pack<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for(typename MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Hash, typename Compare, typename Alloc>
+struct object_with_zone<MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename MSGPACK_STD_TR1::unordered_set<T, Hash, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+
+template <typename T, typename Hash, typename Compare, typename Alloc>
+struct convert<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc>& v) const {
+ if(o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ clmdep_msgpack::object* p = o.via.array.ptr + o.via.array.size;
+ clmdep_msgpack::object* const pbegin = o.via.array.ptr;
+ MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> tmp;
+ while(p > pbegin) {
+ --p;
+ tmp.insert(p->as<T>());
+ }
+ tmp.swap(v);
+ return o;
+ }
+};
+
+template <typename T, typename Hash, typename Compare, typename Alloc>
+struct pack<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for(typename MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Hash, typename Compare, typename Alloc>
+struct object_with_zone<MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename MSGPACK_STD_TR1::unordered_multiset<T, Hash, Compare, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(*it, o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#undef MSGPACK_STD_TR1
+
+#endif // MSGPACK_STD_TR1
+
+#endif // MSGPACK_TYPE_TR1_UNORDERED_SET_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/v4raw.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/v4raw.hpp
new file mode 100644
index 000000000..8ddf786bc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/v4raw.hpp
@@ -0,0 +1,114 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_V4RAW_HPP
+#define MSGPACK_TYPE_V4RAW_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include <cstring>
+#include <string>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace type {
+
+struct v4raw_ref {
+ v4raw_ref() : size(0), ptr(nullptr) {}
+ v4raw_ref(const char* p, uint32_t s) : size(s), ptr(p) {}
+
+ uint32_t size;
+ const char* ptr;
+
+ std::string str() const { return std::string(ptr, size); }
+
+ bool operator== (const v4raw_ref& x) const
+ {
+ return size == x.size && std::memcmp(ptr, x.ptr, size) == 0;
+ }
+
+ bool operator!= (const v4raw_ref& x) const
+ {
+ return !(*this == x);
+ }
+
+ bool operator< (const v4raw_ref& x) const
+ {
+ if(size == x.size) { return std::memcmp(ptr, x.ptr, size) < 0; }
+ else { return size < x.size; }
+ }
+
+ bool operator> (const v4raw_ref& x) const
+ {
+ if(size == x.size) { return std::memcmp(ptr, x.ptr, size) > 0; }
+ else { return size > x.size; }
+ }
+};
+
+} // namespace type
+
+namespace adaptor {
+
+template <>
+struct convert<clmdep_msgpack::type::v4raw_ref> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, clmdep_msgpack::type::v4raw_ref& v) const {
+ if(o.type != clmdep_msgpack::type::STR) { throw clmdep_msgpack::type_error(); }
+ v.ptr = o.via.str.ptr;
+ v.size = o.via.str.size;
+ return o;
+ }
+};
+
+template <>
+struct pack<clmdep_msgpack::type::v4raw_ref> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::type::v4raw_ref& v) const {
+ o.pack_v4raw(v.size);
+ o.pack_v4raw_body(v.ptr, v.size);
+ return o;
+ }
+};
+
+template <>
+struct object<clmdep_msgpack::type::v4raw_ref> {
+ void operator()(clmdep_msgpack::object& o, const clmdep_msgpack::type::v4raw_ref& v) const {
+ o.type = clmdep_msgpack::type::STR;
+ o.via.str.ptr = v.ptr;
+ o.via.str.size = v.size;
+ }
+};
+
+template <>
+struct object_with_zone<clmdep_msgpack::type::v4raw_ref> {
+ void operator()(clmdep_msgpack::object::with_zone& o, const clmdep_msgpack::type::v4raw_ref& v) const {
+ static_cast<clmdep_msgpack::object&>(o) << v;
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_V4RAW_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector.hpp
new file mode 100644
index 000000000..d5a2a12e6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector.hpp
@@ -0,0 +1,129 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_VECTOR_HPP
+#define MSGPACK_TYPE_VECTOR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <vector>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+#if !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Alloc>
+struct as<std::vector<T, Alloc>, typename std::enable_if<clmdep_msgpack::has_as<T>::value>::type> {
+ std::vector<T, Alloc> operator()(const clmdep_msgpack::object& o) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ std::vector<T, Alloc> v;
+ v.reserve(o.via.array.size);
+ if (o.via.array.size > 0) {
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ do {
+ v.push_back(p->as<T>());
+ ++p;
+ } while (p < pend);
+ }
+ return v;
+ }
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+template <typename T, typename Alloc>
+struct convert<std::vector<T, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::vector<T, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ v.resize(o.via.array.size);
+ if (o.via.array.size > 0) {
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ clmdep_msgpack::object* const pend = o.via.array.ptr + o.via.array.size;
+ typename std::vector<T, Alloc>::iterator it = v.begin();
+ do {
+ p->convert(*it);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct pack<std::vector<T, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::vector<T, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for (typename std::vector<T, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(*it);
+ }
+ return o;
+ }
+};
+
+template <typename T, typename Alloc>
+struct object_with_zone<std::vector<T, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::vector<T, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if (v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ }
+ else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::vector<T, Alloc>::const_iterator it(v.begin());
+ do {
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+ *p = clmdep_msgpack::object(*it, o.zone);
+#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+#pragma GCC diagnostic pop
+#endif // (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__)
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_VECTOR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_bool.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_bool.hpp
new file mode 100644
index 000000000..bfee60e67
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_bool.hpp
@@ -0,0 +1,96 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_VECTOR_BOOL_HPP
+#define MSGPACK_TYPE_VECTOR_BOOL_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/object_fwd.hpp"
+#include <vector>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename Alloc>
+struct convert<std::vector<bool, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::vector<bool, Alloc>& v) const {
+ if (o.type != clmdep_msgpack::type::ARRAY) { throw clmdep_msgpack::type_error(); }
+ if (o.via.array.size > 0) {
+ v.resize(o.via.array.size);
+ clmdep_msgpack::object* p = o.via.array.ptr;
+ for (typename std::vector<bool, Alloc>::iterator it = v.begin(), end = v.end();
+ it != end;
+ ++it) {
+ *it = p->as<bool>();
+ ++p;
+ }
+ }
+ return o;
+ }
+};
+
+template <typename Alloc>
+struct pack<std::vector<bool, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::vector<bool, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_array(size);
+ for(typename std::vector<bool, Alloc>::const_iterator it(v.begin()), it_end(v.end());
+ it != it_end; ++it) {
+ o.pack(static_cast<bool>(*it));
+ }
+ return o;
+ }
+};
+
+template <typename Alloc>
+struct object_with_zone<std::vector<bool, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::vector<bool, Alloc>& v) const {
+ o.type = clmdep_msgpack::type::ARRAY;
+ if(v.empty()) {
+ o.via.array.ptr = nullptr;
+ o.via.array.size = 0;
+ } else {
+ uint32_t size = checked_get_container_size(v.size());
+ clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
+ clmdep_msgpack::object* const pend = p + size;
+ o.via.array.ptr = p;
+ o.via.array.size = size;
+ typename std::vector<bool, Alloc>::const_iterator it(v.begin());
+ do {
+ *p = clmdep_msgpack::object(static_cast<bool>(*it), o.zone);
+ ++p;
+ ++it;
+ } while(p < pend);
+ }
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_VECTOR_BOOL_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_char.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_char.hpp
new file mode 100644
index 000000000..a5416e8d2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_char.hpp
@@ -0,0 +1,97 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_VECTOR_CHAR_HPP
+#define MSGPACK_TYPE_VECTOR_CHAR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <vector>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename Alloc>
+struct convert<std::vector<char, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::vector<char, Alloc>& v) const {
+ switch (o.type) {
+ case clmdep_msgpack::type::BIN:
+ v.resize(o.via.bin.size);
+ std::memcpy(&v.front(), o.via.bin.ptr, o.via.bin.size);
+ break;
+ case clmdep_msgpack::type::STR:
+ v.resize(o.via.str.size);
+ std::memcpy(&v.front(), o.via.str.ptr, o.via.str.size);
+ break;
+ default:
+ throw clmdep_msgpack::type_error();
+ break;
+ }
+ return o;
+ }
+};
+
+template <typename Alloc>
+struct pack<std::vector<char, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::vector<char, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_bin(size);
+ o.pack_bin_body(&v.front(), size);
+
+ return o;
+ }
+};
+
+template <typename Alloc>
+struct object<std::vector<char, Alloc> > {
+ void operator()(clmdep_msgpack::object& o, const std::vector<char, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ o.via.bin.ptr = &v.front();
+ o.via.bin.size = size;
+ }
+};
+
+template <typename Alloc>
+struct object_with_zone<std::vector<char, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::vector<char, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.bin.ptr = ptr;
+ o.via.bin.size = size;
+ std::memcpy(ptr, &v.front(), size);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_VECTOR_CHAR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_unsigned_char.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_unsigned_char.hpp
new file mode 100644
index 000000000..3321d0d6d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/adaptor/vector_unsigned_char.hpp
@@ -0,0 +1,97 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2014-2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_TYPE_VECTOR_UNSIGNED_CHAR_HPP
+#define MSGPACK_TYPE_VECTOR_UNSIGNED_CHAR_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+#include "rpc/msgpack/adaptor/check_container_size.hpp"
+
+#include <vector>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace adaptor {
+
+template <typename Alloc>
+struct convert<std::vector<unsigned char, Alloc> > {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, std::vector<unsigned char, Alloc>& v) const {
+ switch (o.type) {
+ case clmdep_msgpack::type::BIN:
+ v.resize(o.via.bin.size);
+ std::memcpy(&v.front(), o.via.bin.ptr, o.via.bin.size);
+ break;
+ case clmdep_msgpack::type::STR:
+ v.resize(o.via.str.size);
+ std::memcpy(&v.front(), o.via.str.ptr, o.via.str.size);
+ break;
+ default:
+ throw clmdep_msgpack::type_error();
+ break;
+ }
+ return o;
+ }
+};
+
+template <typename Alloc>
+struct pack<std::vector<unsigned char, Alloc> > {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::vector<unsigned char, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.pack_bin(size);
+ o.pack_bin_body(reinterpret_cast<char const*>(&v.front()), size);
+
+ return o;
+ }
+};
+
+template <typename Alloc>
+struct object<std::vector<unsigned char, Alloc> > {
+ void operator()(clmdep_msgpack::object& o, const std::vector<unsigned char, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ o.via.bin.ptr = reinterpret_cast<char const*>(&v.front());
+ o.via.bin.size = size;
+ }
+};
+
+template <typename Alloc>
+struct object_with_zone<std::vector<unsigned char, Alloc> > {
+ void operator()(clmdep_msgpack::object::with_zone& o, const std::vector<unsigned char, Alloc>& v) const {
+ uint32_t size = checked_get_container_size(v.size());
+ o.type = clmdep_msgpack::type::BIN;
+ char* ptr = static_cast<char*>(o.zone.allocate_align(size));
+ o.via.bin.ptr = ptr;
+ o.via.bin.size = size;
+ std::memcpy(ptr, &v.front(), size);
+ }
+};
+
+} // namespace adaptor
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_TYPE_VECTOR_UNSIGNED_CHAR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/cpp_config.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/cpp_config.hpp
new file mode 100644
index 000000000..9836ba47f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/cpp_config.hpp
@@ -0,0 +1,135 @@
+//
+// MessagePack for C++ C++03/C++11 Adaptation
+//
+// Copyright (C) 2013 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP_CONFIG_HPP
+#define MSGPACK_CPP_CONFIG_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+
+#if !defined(MSGPACK_USE_CPP03)
+# if defined(_MSC_VER)
+# if _MSC_VER < 1900
+# define MSGPACK_USE_CPP03
+# endif
+# elif (__cplusplus < 201103L)
+# define MSGPACK_USE_CPP03
+# endif
+#endif // MSGPACK_USE_CPP03
+
+
+
+#if defined __cplusplus
+#if __cplusplus < 201103L
+
+#if !defined(nullptr)
+# if _MSC_VER < 1600
+# define nullptr (0)
+# endif
+#endif
+
+#include <memory>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+template <typename T>
+struct unique_ptr : std::auto_ptr<T> {
+ explicit unique_ptr(T* p = 0) throw() : std::auto_ptr<T>(p) {}
+ unique_ptr(unique_ptr& a) throw() : std::auto_ptr<T>(a) {}
+ template<class Y>
+ unique_ptr (unique_ptr<Y>& a) throw() : std::auto_ptr<T>(a) {}
+};
+
+template <typename T>
+T& move(T& t)
+{
+ return t;
+}
+
+template <typename T>
+T const& move(T const& t)
+{
+ return t;
+}
+
+template <bool P, typename T = void>
+struct enable_if {
+ typedef T type;
+};
+
+template <typename T>
+struct enable_if<false, T> {
+};
+
+template<typename T, T val>
+struct integral_constant {
+ static T const value = val;
+ typedef T value_type;
+ typedef integral_constant<T, val> type;
+};
+
+typedef integral_constant<bool, true> true_type;
+typedef integral_constant<bool, false> false_type;
+
+template<class T, class U>
+struct is_same : false_type {};
+
+template<class T>
+struct is_same<T, T> : true_type {};
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+
+#else // __cplusplus < 201103L
+
+#include <memory>
+#include <tuple>
+
+namespace clmdep_msgpack {
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+ // unique_ptr
+ using std::unique_ptr;
+ // using std::make_unique; // since C++14
+ using std::hash;
+
+ // utility
+ using std::move;
+ using std::swap;
+ using std::enable_if;
+ using std::is_same;
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+} // namespace clmdep_msgpack
+
+
+#endif // __cplusplus < 201103L
+
+#endif // __cplusplus
+
+#endif /* msgpack/cpp_config.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp03_zone.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp03_zone.hpp
new file mode 100644
index 000000000..5c7703070
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp03_zone.hpp
@@ -0,0 +1,676 @@
+//
+// MessagePack for C++ memory pool
+//
+// Copyright (C) 2008-2010 FURUHASHI Sadayuki
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP03_ZONE_HPP
+#define MSGPACK_CPP03_ZONE_HPP
+
+#include <cstdlib>
+#include <memory>
+#include <vector>
+
+#include "rpc/msgpack/versioning.hpp"
+
+#ifndef MSGPACK_ZONE_CHUNK_SIZE
+#define MSGPACK_ZONE_CHUNK_SIZE 8192
+#endif
+
+#ifndef MSGPACK_ZONE_ALIGN
+#define MSGPACK_ZONE_ALIGN sizeof(void*)
+#endif
+
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+class zone {
+ struct finalizer {
+ finalizer(void (*func)(void*), void* data):m_func(func), m_data(data) {}
+ void operator()() { m_func(m_data); }
+ void (*m_func)(void*);
+ void* m_data;
+ };
+ struct finalizer_array {
+ finalizer_array():m_tail(nullptr), m_end(nullptr), m_array(nullptr) {}
+ void call() {
+ finalizer* fin = m_tail;
+ for(; fin != m_array; --fin) (*(fin-1))();
+ }
+ ~finalizer_array() {
+ call();
+ ::free(m_array);
+ }
+ void clear() {
+ call();
+ m_tail = m_array;
+ }
+ void push(void (*func)(void* data), void* data)
+ {
+ finalizer* fin = m_tail;
+
+ if(fin == m_end) {
+ push_expand(func, data);
+ return;
+ }
+
+ fin->m_func = func;
+ fin->m_data = data;
+
+ ++m_tail;
+ }
+ void push_expand(void (*func)(void*), void* data) {
+ const size_t nused = m_end - m_array;
+ size_t nnext;
+ if(nused == 0) {
+ nnext = (sizeof(finalizer) < 72/2) ?
+ 72 / sizeof(finalizer) : 8;
+ } else {
+ nnext = nused * 2;
+ }
+ finalizer* tmp =
+ static_cast<finalizer*>(::realloc(m_array, sizeof(finalizer) * nnext));
+ if(!tmp) {
+ throw std::bad_alloc();
+ }
+ m_array = tmp;
+ m_end = tmp + nnext;
+ m_tail = tmp + nused;
+ new (m_tail) finalizer(func, data);
+
+ ++m_tail;
+ }
+ finalizer* m_tail;
+ finalizer* m_end;
+ finalizer* m_array;
+ };
+ struct chunk {
+ chunk* m_next;
+ };
+ struct chunk_list {
+ chunk_list(size_t chunk_size)
+ {
+ chunk* c = static_cast<chunk*>(::malloc(sizeof(chunk) + chunk_size));
+ if(!c) {
+ throw std::bad_alloc();
+ }
+
+ m_head = c;
+ m_free = chunk_size;
+ m_ptr = reinterpret_cast<char*>(c) + sizeof(chunk);
+ c->m_next = nullptr;
+ }
+ ~chunk_list()
+ {
+ chunk* c = m_head;
+ while(c) {
+ chunk* n = c->m_next;
+ ::free(c);
+ c = n;
+ }
+ }
+ void clear(size_t chunk_size)
+ {
+ chunk* c = m_head;
+ while(true) {
+ chunk* n = c->m_next;
+ if(n) {
+ ::free(c);
+ c = n;
+ } else {
+ break;
+ }
+ }
+ m_head->m_next = nullptr;
+ m_free = chunk_size;
+ m_ptr = reinterpret_cast<char*>(m_head) + sizeof(chunk);
+ }
+ size_t m_free;
+ char* m_ptr;
+ chunk* m_head;
+ };
+ size_t m_chunk_size;
+ chunk_list m_chunk_list;
+ finalizer_array m_finalizer_array;
+
+public:
+ zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) /* throw() */;
+
+public:
+ void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN);
+ void* allocate_no_align(size_t size);
+
+ void push_finalizer(void (*func)(void*), void* data);
+
+ template <typename T>
+ void push_finalizer(clmdep_msgpack::unique_ptr<T> obj);
+
+ void clear();
+
+ void swap(zone& o);
+ static void* operator new(std::size_t size)
+ {
+ void* p = ::malloc(size);
+ if (!p) throw std::bad_alloc();
+ return p;
+ }
+ static void operator delete(void *p) /* throw() */
+ {
+ ::free(p);
+ }
+ static void* operator new(std::size_t size, void* place) /* throw() */
+ {
+ return ::operator new(size, place);
+ }
+ static void operator delete(void* p, void* place) /* throw() */
+ {
+ ::operator delete(p, place);
+ }
+ /// @cond
+
+ template <typename T>
+ T* allocate();
+
+ template <typename T, typename A1>
+ T* allocate(A1 a1);
+
+ template <typename T, typename A1, typename A2>
+ T* allocate(A1 a1, A2 a2);
+
+ template <typename T, typename A1, typename A2, typename A3>
+ T* allocate(A1 a1, A2 a2, A3 a3);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14);
+
+ template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+ T* allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15);
+
+ /// @endcond
+
+private:
+ void undo_allocate(size_t size);
+
+ template <typename T>
+ static void object_destruct(void* obj);
+
+ template <typename T>
+ static void object_delete(void* obj);
+
+ void* allocate_expand(size_t size);
+private:
+ zone(const zone&);
+ zone& operator=(const zone&);
+};
+
+inline zone::zone(size_t chunk_size) /* throw() */ :m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
+{
+}
+
+inline void* zone::allocate_align(size_t size, size_t align)
+{
+ char* aligned =
+ reinterpret_cast<char*>(
+ reinterpret_cast<size_t>(
+ (m_chunk_list.m_ptr + (align - 1))) / align * align);
+ size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
+ if(m_chunk_list.m_free >= adjusted_size) {
+ m_chunk_list.m_free -= adjusted_size;
+ m_chunk_list.m_ptr += adjusted_size;
+ return aligned;
+ }
+ return reinterpret_cast<char*>(
+ reinterpret_cast<size_t>(
+ allocate_expand(size + (align - 1))) / align * align);
+}
+
+inline void* zone::allocate_no_align(size_t size)
+{
+ if(m_chunk_list.m_free < size) {
+ return allocate_expand(size);
+ }
+
+ char* ptr = m_chunk_list.m_ptr;
+ m_chunk_list.m_free -= size;
+ m_chunk_list.m_ptr += size;
+
+ return ptr;
+}
+
+inline void* zone::allocate_expand(size_t size)
+{
+ chunk_list* const cl = &m_chunk_list;
+
+ size_t sz = m_chunk_size;
+
+ while(sz < size) {
+ size_t tmp_sz = sz * 2;
+ if (tmp_sz <= sz) {
+ sz = size;
+ break;
+ }
+ sz = tmp_sz;
+ }
+
+ chunk* c = static_cast<chunk*>(::malloc(sizeof(chunk) + sz));
+ if (!c) throw std::bad_alloc();
+
+ char* ptr = reinterpret_cast<char*>(c) + sizeof(chunk);
+
+ c->m_next = cl->m_head;
+ cl->m_head = c;
+ cl->m_free = sz - size;
+ cl->m_ptr = ptr + size;
+
+ return ptr;
+}
+
+inline void zone::push_finalizer(void (*func)(void*), void* data)
+{
+ m_finalizer_array.push(func, data);
+}
+
+template <typename T>
+inline void zone::push_finalizer(clmdep_msgpack::unique_ptr<T> obj)
+{
+ m_finalizer_array.push(&zone::object_delete<T>, obj.release());
+}
+
+inline void zone::clear()
+{
+ m_finalizer_array.clear();
+ m_chunk_list.clear(m_chunk_size);
+}
+
+inline void zone::swap(zone& o)
+{
+ using std::swap;
+ swap(m_chunk_size, o.m_chunk_size);
+ swap(m_chunk_list, o.m_chunk_list);
+ swap(m_finalizer_array, o.m_finalizer_array);
+}
+
+template <typename T>
+void zone::object_destruct(void* obj)
+{
+ static_cast<T*>(obj)->~T();
+}
+
+template <typename T>
+void zone::object_delete(void* obj)
+{
+ delete static_cast<T*>(obj);
+}
+
+inline void zone::undo_allocate(size_t size)
+{
+ m_chunk_list.m_ptr -= size;
+ m_chunk_list.m_free += size;
+}
+
+inline std::size_t aligned_size(
+ std::size_t size,
+ std::size_t align = MSGPACK_ZONE_ALIGN) {
+ return (size + align - 1) / align * align;
+}
+
+/// @cond
+
+template <typename T>
+T* zone::allocate()
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T();
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1>
+T* zone::allocate(A1 a1)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2>
+T* zone::allocate(A1 a1, A2 a2)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3>
+T* zone::allocate(A1 a1, A2 a2, A3 a3)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+template <typename T, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
+T* zone::allocate(A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9, A10 a10, A11 a11, A12 a12, A13 a13, A14 a14, A15 a15)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+/// @endcond
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP03_ZONE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp11_zone.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp11_zone.hpp
new file mode 100644
index 000000000..2c4e82ca1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/detail/cpp11_zone.hpp
@@ -0,0 +1,376 @@
+//
+// MessagePack for C++ memory pool
+//
+// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_CPP11_ZONE_HPP
+#define MSGPACK_CPP11_ZONE_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+
+#include <cstdlib>
+#include <memory>
+#include <vector>
+
+#include "rpc/msgpack/cpp_config.hpp"
+
+#ifndef MSGPACK_ZONE_CHUNK_SIZE
+#define MSGPACK_ZONE_CHUNK_SIZE 8192
+#endif
+
+#ifndef MSGPACK_ZONE_ALIGN
+#define MSGPACK_ZONE_ALIGN sizeof(void*)
+#endif
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+class zone {
+private:
+ struct finalizer {
+ finalizer(void (*func)(void*), void* data):m_func(func), m_data(data) {}
+ void operator()() { m_func(m_data); }
+ void (*m_func)(void*);
+ void* m_data;
+ };
+ struct finalizer_array {
+ finalizer_array():m_tail(nullptr), m_end(nullptr), m_array(nullptr) {}
+ void call() {
+ finalizer* fin = m_tail;
+ for(; fin != m_array; --fin) (*(fin-1))();
+ }
+ ~finalizer_array() {
+ call();
+ ::free(m_array);
+ }
+ void clear() {
+ call();
+ m_tail = m_array;
+ }
+ void push(void (*func)(void* data), void* data)
+ {
+ finalizer* fin = m_tail;
+
+ if(fin == m_end) {
+ push_expand(func, data);
+ return;
+ }
+
+ fin->m_func = func;
+ fin->m_data = data;
+
+ ++m_tail;
+ }
+ void push_expand(void (*func)(void*), void* data) {
+ const size_t nused = m_end - m_array;
+ size_t nnext;
+ if(nused == 0) {
+ nnext = (sizeof(finalizer) < 72/2) ?
+ 72 / sizeof(finalizer) : 8;
+ } else {
+ nnext = nused * 2;
+ }
+ finalizer* tmp =
+ static_cast<finalizer*>(::realloc(m_array, sizeof(finalizer) * nnext));
+ if(!tmp) {
+ throw std::bad_alloc();
+ }
+ m_array = tmp;
+ m_end = tmp + nnext;
+ m_tail = tmp + nused;
+ new (m_tail) finalizer(func, data);
+
+ ++m_tail;
+ }
+ finalizer_array(finalizer_array&& other) noexcept
+ :m_tail(other.m_tail), m_end(other.m_end), m_array(other.m_array)
+ {
+ other.m_tail = nullptr;
+ other.m_end = nullptr;
+ other.m_array = nullptr;
+ }
+ finalizer_array& operator=(finalizer_array&& other) noexcept
+ {
+ this->~finalizer_array();
+ new (this) finalizer_array(std::move(other));
+ return *this;
+ }
+
+ finalizer* m_tail;
+ finalizer* m_end;
+ finalizer* m_array;
+
+ private:
+ finalizer_array(const finalizer_array&);
+ finalizer_array& operator=(const finalizer_array&);
+ };
+ struct chunk {
+ chunk* m_next;
+ };
+ struct chunk_list {
+ chunk_list(size_t chunk_size)
+ {
+ chunk* c = static_cast<chunk*>(::malloc(sizeof(chunk) + chunk_size));
+ if(!c) {
+ throw std::bad_alloc();
+ }
+
+ m_head = c;
+ m_free = chunk_size;
+ m_ptr = reinterpret_cast<char*>(c) + sizeof(chunk);
+ c->m_next = nullptr;
+ }
+ ~chunk_list()
+ {
+ chunk* c = m_head;
+ while(c) {
+ chunk* n = c->m_next;
+ ::free(c);
+ c = n;
+ }
+ }
+ void clear(size_t chunk_size)
+ {
+ chunk* c = m_head;
+ while(true) {
+ chunk* n = c->m_next;
+ if(n) {
+ ::free(c);
+ c = n;
+ } else {
+ m_head = c;
+ break;
+ }
+ }
+ m_head->m_next = nullptr;
+ m_free = chunk_size;
+ m_ptr = reinterpret_cast<char*>(m_head) + sizeof(chunk);
+ }
+ chunk_list(chunk_list&& other) noexcept
+ :m_free(other.m_free), m_ptr(other.m_ptr), m_head(other.m_head)
+ {
+ other.m_head = nullptr;
+ }
+ chunk_list& operator=(chunk_list&& other) noexcept
+ {
+ this->~chunk_list();
+ new (this) chunk_list(std::move(other));
+ return *this;
+ }
+
+ size_t m_free;
+ char* m_ptr;
+ chunk* m_head;
+ private:
+ chunk_list(const chunk_list&);
+ chunk_list& operator=(const chunk_list&);
+ };
+ size_t m_chunk_size;
+ chunk_list m_chunk_list;
+ finalizer_array m_finalizer_array;
+
+public:
+ zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) noexcept;
+
+public:
+ void* allocate_align(size_t size, size_t align = MSGPACK_ZONE_ALIGN);
+ void* allocate_no_align(size_t size);
+
+ void push_finalizer(void (*func)(void*), void* data);
+
+ template <typename T>
+ void push_finalizer(clmdep_msgpack::unique_ptr<T> obj);
+
+ void clear();
+
+ void swap(zone& o);
+
+
+ static void* operator new(std::size_t size)
+ {
+ void* p = ::malloc(size);
+ if (!p) throw std::bad_alloc();
+ return p;
+ }
+ static void operator delete(void *p) noexcept
+ {
+ ::free(p);
+ }
+ static void* operator new(std::size_t /*size*/, void* mem) noexcept
+ {
+ return mem;
+ }
+ static void operator delete(void * /*p*/, void* /*mem*/) noexcept
+ {
+ }
+
+ template <typename T, typename... Args>
+ T* allocate(Args... args);
+
+ zone(zone&&) = default;
+ zone& operator=(zone&&) = default;
+ zone(const zone&) = delete;
+ zone& operator=(const zone&) = delete;
+
+private:
+ void undo_allocate(size_t size);
+
+ template <typename T>
+ static void object_destruct(void* obj);
+
+ template <typename T>
+ static void object_delete(void* obj);
+
+ void* allocate_expand(size_t size);
+};
+
+inline zone::zone(size_t chunk_size) noexcept:m_chunk_size(chunk_size), m_chunk_list(m_chunk_size)
+{
+}
+
+inline void* zone::allocate_align(size_t size, size_t align)
+{
+ char* aligned =
+ reinterpret_cast<char*>(
+ reinterpret_cast<size_t>(
+ (m_chunk_list.m_ptr + (align - 1))) / align * align);
+ size_t adjusted_size = size + (aligned - m_chunk_list.m_ptr);
+ if(m_chunk_list.m_free >= adjusted_size) {
+ m_chunk_list.m_free -= adjusted_size;
+ m_chunk_list.m_ptr += adjusted_size;
+ return aligned;
+ }
+ return reinterpret_cast<char*>(
+ reinterpret_cast<size_t>(
+ allocate_expand(size + (align - 1))) / align * align);
+}
+
+inline void* zone::allocate_no_align(size_t size)
+{
+ if(m_chunk_list.m_free < size) {
+ return allocate_expand(size);
+ }
+
+ char* ptr = m_chunk_list.m_ptr;
+ m_chunk_list.m_free -= size;
+ m_chunk_list.m_ptr += size;
+
+ return ptr;
+}
+
+inline void* zone::allocate_expand(size_t size)
+{
+ chunk_list* const cl = &m_chunk_list;
+
+ size_t sz = m_chunk_size;
+
+ while(sz < size) {
+ size_t tmp_sz = sz * 2;
+ if (tmp_sz <= sz) {
+ sz = size;
+ break;
+ }
+ sz = tmp_sz;
+ }
+
+ chunk* c = static_cast<chunk*>(::malloc(sizeof(chunk) + sz));
+ if (!c) throw std::bad_alloc();
+
+ char* ptr = reinterpret_cast<char*>(c) + sizeof(chunk);
+
+ c->m_next = cl->m_head;
+ cl->m_head = c;
+ cl->m_free = sz - size;
+ cl->m_ptr = ptr + size;
+
+ return ptr;
+}
+
+inline void zone::push_finalizer(void (*func)(void*), void* data)
+{
+ m_finalizer_array.push(func, data);
+}
+
+template <typename T>
+inline void zone::push_finalizer(clmdep_msgpack::unique_ptr<T> obj)
+{
+ m_finalizer_array.push(&zone::object_delete<T>, obj.release());
+}
+
+inline void zone::clear()
+{
+ m_finalizer_array.clear();
+ m_chunk_list.clear(m_chunk_size);
+}
+
+inline void zone::swap(zone& o)
+{
+ std::swap(*this, o);
+}
+
+template <typename T>
+void zone::object_delete(void* obj)
+{
+ delete static_cast<T*>(obj);
+}
+
+template <typename T>
+void zone::object_destruct(void* obj)
+{
+ static_cast<T*>(obj)->~T();
+}
+
+inline void zone::undo_allocate(size_t size)
+{
+ m_chunk_list.m_ptr -= size;
+ m_chunk_list.m_free += size;
+}
+
+
+template <typename T, typename... Args>
+T* zone::allocate(Args... args)
+{
+ void* x = allocate_align(sizeof(T));
+ try {
+ m_finalizer_array.push(&zone::object_destruct<T>, x);
+ } catch (...) {
+ undo_allocate(sizeof(T));
+ throw;
+ }
+ try {
+ return new (x) T(args...);
+ } catch (...) {
+ --m_finalizer_array.m_tail;
+ undo_allocate(sizeof(T));
+ throw;
+ }
+}
+
+inline std::size_t aligned_size(
+ std::size_t size,
+ std::size_t align = MSGPACK_ZONE_ALIGN) {
+ return (size + align - 1) / align * align;
+}
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_CPP11_ZONE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.h b/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.h
new file mode 100644
index 000000000..d12830e42
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.h
@@ -0,0 +1,46 @@
+/*
+ * MessagePack for C FILE* buffer adaptor
+ *
+ * Copyright (C) 2013 Vladimir Volodko
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_FBUFFER_H
+#define MSGPACK_FBUFFER_H
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_fbuffer FILE* buffer
+ * @ingroup msgpack_buffer
+ * @{
+ */
+
+static inline int msgpack_fbuffer_write(void* data, const char* buf, unsigned int len)
+{
+ return (1 == fwrite(buf, len, 1, (FILE *)data)) ? 0 : -1;
+}
+
+/** @} */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/fbuffer.h */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp
new file mode 100644
index 000000000..460fdfcde
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/fbuffer.hpp
@@ -0,0 +1,68 @@
+//
+// MessagePack for C++ FILE* buffer adaptor
+//
+// Copyright (C) 2013 Vladimir Volodko
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_FBUFFER_HPP__
+#define MSGPACK_FBUFFER_HPP__
+
+#include "rpc/msgpack/versioning.hpp"
+
+#include <cstdio>
+#include <stdexcept>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+class fbuffer {
+public:
+ explicit fbuffer(FILE* file) : m_file(file) { }
+
+public:
+ void write(const char* buf, unsigned int len)
+ {
+ if (1 != fwrite(buf, len, 1, m_file)) {
+ throw std::runtime_error("fwrite() failed");
+ }
+ }
+
+ FILE* file() const
+ {
+ return m_file;
+ }
+
+#if defined(MSGPACK_USE_CPP03)
+private:
+ fbuffer(const fbuffer&);
+ fbuffer& operator=(const fbuffer&);
+#else // defined(MSGPACK_USE_CPP03)
+ fbuffer(const fbuffer&) = delete;
+ fbuffer& operator=(const fbuffer&) = delete;
+#endif // defined(MSGPACK_USE_CPP03)
+
+private:
+ FILE* m_file;
+};
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/fbuffer.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/gcc_atomic.h b/host/lib/deps/rpclib/include/rpc/msgpack/gcc_atomic.h
new file mode 100644
index 000000000..276acdc95
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/gcc_atomic.h
@@ -0,0 +1,33 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef MSGPACK_GCC_ATOMIC_H
+#define MSGPACK_GCC_ATOMIC_H
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+typedef int _msgpack_atomic_counter_t;
+
+int _msgpack_sync_decr_and_fetch(volatile _msgpack_atomic_counter_t* ptr);
+int _msgpack_sync_incr_and_fetch(volatile _msgpack_atomic_counter_t* ptr);
+
+
+#if defined(__cplusplus)
+}
+#endif
+
+
+#endif // MSGPACK_GCC_ATOMIC_H
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/iterator.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/iterator.hpp
new file mode 100644
index 000000000..2e33eeb30
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/iterator.hpp
@@ -0,0 +1,46 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 MIZUKI Hirata
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef MSGPACK_ITERATOR_HPP
+#define MSGPACK_ITERATOR_HPP
+#if !defined(MSGPACK_USE_CPP03)
+
+#include <rpc/msgpack/object_fwd.hpp>
+
+namespace clmdep_msgpack
+{
+ /// @cond
+ MSGPACK_API_VERSION_NAMESPACE(MSGPACK_DEFAULT_API_NS)
+ {
+ /// @endcond
+ inline object_kv* begin(object_map &map) { return map.ptr; }
+ inline const object_kv* begin(const object_map &map) { return map.ptr; }
+ inline object_kv* end(object_map &map) { return map.ptr + map.size; }
+ inline const object_kv* end(const object_map &map) { return map.ptr + map.size; }
+
+ inline object* begin(object_array &array) { return array.ptr; }
+ inline const object* begin(const object_array &array) { return array.ptr; }
+ inline object* end(object_array &array) { return array.ptr + array.size; }
+ inline const object* end(const object_array &array) { return array.ptr + array.size; }
+ /// @cond
+ }
+ /// @endcond
+}
+
+#endif // !defined(MSGPACK_USE_CPP03)
+#endif // MSGPACK_ITERATOR_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/meta.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/meta.hpp
new file mode 100644
index 000000000..c6e976d42
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/meta.hpp
@@ -0,0 +1,59 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2015 KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef MSGPACK_META_HPP
+#define MSGPACK_META_HPP
+
+#if !defined(MSGPACK_USE_CPP03)
+
+#include <type_traits>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace detail {
+template<bool...> struct bool_pack;
+
+template<bool...values> struct all_of_imp
+ : std::is_same<bool_pack<values..., true>, bool_pack<true, values...>>{};
+
+} // namespace detail
+
+template<template <class> class T, class... U>
+using all_of = detail::all_of_imp<T<U>::value...>;
+
+template<std::size_t... Is> struct seq {};
+
+template<std::size_t N, std::size_t... Is>
+struct gen_seq : gen_seq<N-1, N-1, Is...> {};
+
+template<std::size_t... Is>
+struct gen_seq<0, Is...> : seq<Is...> {};
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+#endif // MSGPACK_META_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/object.h b/host/lib/deps/rpclib/include/rpc/msgpack/object.h
new file mode 100644
index 000000000..229f6b49f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/object.h
@@ -0,0 +1,119 @@
+/*
+ * MessagePack for C dynamic typing routine
+ *
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_OBJECT_H
+#define MSGPACK_OBJECT_H
+
+#include "zone.h"
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_object Dynamically typed object
+ * @ingroup msgpack
+ * @{
+ */
+
+typedef enum {
+ MSGPACK_OBJECT_NIL = 0x00,
+ MSGPACK_OBJECT_BOOLEAN = 0x01,
+ MSGPACK_OBJECT_POSITIVE_INTEGER = 0x02,
+ MSGPACK_OBJECT_NEGATIVE_INTEGER = 0x03,
+ MSGPACK_OBJECT_FLOAT = 0x04,
+#if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
+ MSGPACK_OBJECT_DOUBLE = MSGPACK_OBJECT_FLOAT, /* obsolete */
+#endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */
+ MSGPACK_OBJECT_STR = 0x05,
+ MSGPACK_OBJECT_ARRAY = 0x06,
+ MSGPACK_OBJECT_MAP = 0x07,
+ MSGPACK_OBJECT_BIN = 0x08,
+ MSGPACK_OBJECT_EXT = 0x09
+} msgpack_object_type;
+
+
+struct msgpack_object;
+struct msgpack_object_kv;
+
+typedef struct {
+ uint32_t size;
+ struct msgpack_object* ptr;
+} msgpack_object_array;
+
+typedef struct {
+ uint32_t size;
+ struct msgpack_object_kv* ptr;
+} msgpack_object_map;
+
+typedef struct {
+ uint32_t size;
+ const char* ptr;
+} msgpack_object_str;
+
+typedef struct {
+ uint32_t size;
+ const char* ptr;
+} msgpack_object_bin;
+
+typedef struct {
+ int8_t type;
+ uint32_t size;
+ const char* ptr;
+} msgpack_object_ext;
+
+typedef union {
+ bool boolean;
+ uint64_t u64;
+ int64_t i64;
+#if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
+ double dec; /* obsolete*/
+#endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */
+ double f64;
+ msgpack_object_array array;
+ msgpack_object_map map;
+ msgpack_object_str str;
+ msgpack_object_bin bin;
+ msgpack_object_ext ext;
+} msgpack_object_union;
+
+typedef struct msgpack_object {
+ msgpack_object_type type;
+ msgpack_object_union via;
+} msgpack_object;
+
+typedef struct msgpack_object_kv {
+ msgpack_object key;
+ msgpack_object val;
+} msgpack_object_kv;
+
+MSGPACK_DLLEXPORT
+void msgpack_object_print(FILE* out, msgpack_object o);
+
+MSGPACK_DLLEXPORT
+bool msgpack_object_equal(const msgpack_object x, const msgpack_object y);
+
+/** @} */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/object.h */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/object.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/object.hpp
new file mode 100644
index 000000000..5eef9fa7b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/object.hpp
@@ -0,0 +1,837 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_OBJECT_HPP
+#define MSGPACK_OBJECT_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/pack.hpp"
+#include "rpc/msgpack/zone.hpp"
+#include "rpc/msgpack/adaptor/adaptor_base.hpp"
+
+#include <cstring>
+#include <stdexcept>
+#include <typeinfo>
+#include <limits>
+#include <ostream>
+#include <typeinfo>
+#include <iomanip>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+class object_handle {
+public:
+ object_handle() {}
+
+ object_handle(clmdep_msgpack::object const& obj, clmdep_msgpack::unique_ptr<clmdep_msgpack::zone> z) :
+ m_obj(obj), m_zone(clmdep_msgpack::move(z)) { }
+
+#ifdef _MSC_VER
+ object_handle(clmdep_msgpack::object const& obj, std::unique_ptr<clmdep_msgpack::zone>&& z) :
+ m_obj(obj), m_zone(z.release()) { }
+#endif
+
+ // obsolete
+ void set(clmdep_msgpack::object const& obj)
+ { m_obj = obj; }
+
+ const clmdep_msgpack::object& get() const
+ { return m_obj; }
+
+ template<typename T>
+ T as() const { return m_obj.as<T>(); }
+
+ template <typename T>
+ void convert(T&& v) { m_obj.convert(std::forward<T>(v)); }
+
+ clmdep_msgpack::unique_ptr<clmdep_msgpack::zone>& zone()
+ { return m_zone; }
+
+ const clmdep_msgpack::unique_ptr<clmdep_msgpack::zone>& zone() const
+ { return m_zone; }
+
+#if defined(MSGPACK_USE_CPP03)
+ struct object_handle_ref {
+ object_handle_ref(object_handle* oh):m_oh(oh) {}
+ object_handle* m_oh;
+ };
+
+ object_handle(object_handle& other):
+ m_obj(other.m_obj),
+ m_zone(clmdep_msgpack::move(other.m_zone)) {
+ }
+
+ object_handle(object_handle_ref ref):
+ m_obj(ref.m_oh->m_obj),
+ m_zone(clmdep_msgpack::move(ref.m_oh->m_zone)) {
+ }
+
+ object_handle& operator=(object_handle& other) {
+ m_obj = other.m_obj;
+ m_zone = clmdep_msgpack::move(other.m_zone);
+ return *this;
+ }
+
+ object_handle& operator=(object_handle_ref ref) {
+ m_obj = ref.m_oh->m_obj;
+ m_zone = clmdep_msgpack::move(ref.m_oh->m_zone);
+ return *this;
+ }
+
+ operator object_handle_ref() {
+ return object_handle_ref(this);
+ }
+#endif // defined(MSGPACK_USE_CPP03)
+
+ object_handle& assign(object_handle&& other) {
+ m_obj = other.m_obj;
+ m_zone = clmdep_msgpack::move(other.m_zone);
+ return *this;
+ }
+
+private:
+ clmdep_msgpack::object m_obj;
+ clmdep_msgpack::unique_ptr<clmdep_msgpack::zone> m_zone;
+};
+
+namespace detail {
+
+template <std::size_t N>
+inline std::size_t add_ext_type_size(std::size_t size) {
+ return size + 1;
+}
+
+template <>
+inline std::size_t add_ext_type_size<4>(std::size_t size) {
+ return size == 0xffffffff ? size : size + 1;
+}
+
+} // namespace detail
+
+inline std::size_t aligned_zone_size(clmdep_msgpack::object const& obj) {
+ std::size_t s = 0;
+ switch (obj.type) {
+ case clmdep_msgpack::type::ARRAY:
+ s += sizeof(clmdep_msgpack::object) * obj.via.array.size;
+ for (uint32_t i = 0; i < obj.via.array.size; ++i) {
+ s += clmdep_msgpack::aligned_zone_size(obj.via.array.ptr[i]);
+ }
+ break;
+ case clmdep_msgpack::type::MAP:
+ s += sizeof(clmdep_msgpack::object_kv) * obj.via.map.size;
+ for (uint32_t i = 0; i < obj.via.map.size; ++i) {
+ s += clmdep_msgpack::aligned_zone_size(obj.via.map.ptr[i].key);
+ s += clmdep_msgpack::aligned_zone_size(obj.via.map.ptr[i].val);
+ }
+ break;
+ case clmdep_msgpack::type::EXT:
+ s += clmdep_msgpack::aligned_size(
+ detail::add_ext_type_size<sizeof(std::size_t)>(obj.via.ext.size));
+ break;
+ case clmdep_msgpack::type::STR:
+ s += clmdep_msgpack::aligned_size(obj.via.str.size);
+ break;
+ case clmdep_msgpack::type::BIN:
+ s += clmdep_msgpack::aligned_size(obj.via.bin.size);
+ break;
+ default:
+ break;
+ }
+ return s;
+}
+
+inline object_handle clone(clmdep_msgpack::object const& obj) {
+ std::size_t size = clmdep_msgpack::aligned_zone_size(obj);
+ clmdep_msgpack::unique_ptr<clmdep_msgpack::zone> z(size == 0 ? nullptr : new clmdep_msgpack::zone(size));
+ clmdep_msgpack::object newobj = z.get() ? clmdep_msgpack::object(obj, *z) : obj;
+ return object_handle(newobj, clmdep_msgpack::move(z));
+}
+
+struct object::implicit_type {
+ implicit_type(object const& o) : obj(o) { }
+ ~implicit_type() { }
+
+ template <typename T>
+ operator T() { return obj.as<T>(); }
+
+private:
+ clmdep_msgpack::object const& obj;
+};
+
+namespace detail {
+template <typename Stream, typename T>
+struct packer_serializer {
+ static clmdep_msgpack::packer<Stream>& pack(clmdep_msgpack::packer<Stream>& o, const T& v) {
+ v.msgpack_pack(o);
+ return o;
+ }
+};
+} // namespace detail
+
+// Adaptor functors' member functions definitions.
+template <typename T, typename Enabler>
+inline
+clmdep_msgpack::object const&
+clmdep_msgpack::adaptor::convert<T, Enabler>::operator()(clmdep_msgpack::object const& o, T& v) const {
+ v.msgpack_unpack(o.convert());
+ return o;
+}
+
+template <typename T, typename Enabler>
+template <typename Stream>
+inline
+clmdep_msgpack::packer<Stream>&
+clmdep_msgpack::adaptor::pack<T, Enabler>::operator()(clmdep_msgpack::packer<Stream>& o, T const& v) const {
+ return clmdep_msgpack::detail::packer_serializer<Stream, T>::pack(o, v);
+}
+
+template <typename T, typename Enabler>
+inline
+void
+clmdep_msgpack::adaptor::object_with_zone<T, Enabler>::operator()(clmdep_msgpack::object::with_zone& o, T const& v) const {
+ v.msgpack_object(static_cast<clmdep_msgpack::object*>(&o), o.zone);
+}
+
+// Adaptor functor specialization to object
+namespace adaptor {
+
+template <>
+struct convert<clmdep_msgpack::object> {
+ clmdep_msgpack::object const& operator()(clmdep_msgpack::object const& o, clmdep_msgpack::object& v) const {
+ v = o;
+ return o;
+ }
+};
+
+template <>
+struct pack<clmdep_msgpack::object> {
+ template <typename Stream>
+ clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, clmdep_msgpack::object const& v) const {
+ switch(v.type) {
+ case clmdep_msgpack::type::NIL:
+ o.pack_nil();
+ return o;
+
+ case clmdep_msgpack::type::BOOLEAN:
+ if(v.via.boolean) {
+ o.pack_true();
+ } else {
+ o.pack_false();
+ }
+ return o;
+
+ case clmdep_msgpack::type::POSITIVE_INTEGER:
+ o.pack_uint64(v.via.u64);
+ return o;
+
+ case clmdep_msgpack::type::NEGATIVE_INTEGER:
+ o.pack_int64(v.via.i64);
+ return o;
+
+ case clmdep_msgpack::type::FLOAT:
+ o.pack_double(v.via.f64);
+ return o;
+
+ case clmdep_msgpack::type::STR:
+ o.pack_str(v.via.str.size);
+ o.pack_str_body(v.via.str.ptr, v.via.str.size);
+ return o;
+
+ case clmdep_msgpack::type::BIN:
+ o.pack_bin(v.via.bin.size);
+ o.pack_bin_body(v.via.bin.ptr, v.via.bin.size);
+ return o;
+
+ case clmdep_msgpack::type::EXT:
+ o.pack_ext(v.via.ext.size, v.via.ext.type());
+ o.pack_ext_body(v.via.ext.data(), v.via.ext.size);
+ return o;
+
+ case clmdep_msgpack::type::ARRAY:
+ o.pack_array(v.via.array.size);
+ for(clmdep_msgpack::object* p(v.via.array.ptr),
+ * const pend(v.via.array.ptr + v.via.array.size);
+ p < pend; ++p) {
+ clmdep_msgpack::operator<<(o, *p);
+ }
+ return o;
+
+ case clmdep_msgpack::type::MAP:
+ o.pack_map(v.via.map.size);
+ for(clmdep_msgpack::object_kv* p(v.via.map.ptr),
+ * const pend(v.via.map.ptr + v.via.map.size);
+ p < pend; ++p) {
+ clmdep_msgpack::operator<<(o, p->key);
+ clmdep_msgpack::operator<<(o, p->val);
+ }
+ return o;
+
+ default:
+ throw clmdep_msgpack::type_error();
+ }
+ }
+};
+
+template <>
+struct object_with_zone<clmdep_msgpack::object> {
+ void operator()(clmdep_msgpack::object::with_zone& o, clmdep_msgpack::object const& v) const {
+ o.type = v.type;
+
+ switch(v.type) {
+ case clmdep_msgpack::type::NIL:
+ case clmdep_msgpack::type::BOOLEAN:
+ case clmdep_msgpack::type::POSITIVE_INTEGER:
+ case clmdep_msgpack::type::NEGATIVE_INTEGER:
+ case clmdep_msgpack::type::FLOAT:
+ std::memcpy(&o.via, &v.via, sizeof(v.via));
+ return;
+
+ case clmdep_msgpack::type::STR: {
+ char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.str.size));
+ o.via.str.ptr = ptr;
+ o.via.str.size = v.via.str.size;
+ std::memcpy(ptr, v.via.str.ptr, v.via.str.size);
+ return;
+ }
+
+ case clmdep_msgpack::type::BIN: {
+ char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.bin.size));
+ o.via.bin.ptr = ptr;
+ o.via.bin.size = v.via.bin.size;
+ std::memcpy(ptr, v.via.bin.ptr, v.via.bin.size);
+ return;
+ }
+
+ case clmdep_msgpack::type::EXT: {
+ char* ptr = static_cast<char*>(o.zone.allocate_align(v.via.ext.size + 1));
+ o.via.ext.ptr = ptr;
+ o.via.ext.size = v.via.ext.size;
+ std::memcpy(ptr, v.via.ext.ptr, v.via.ext.size + 1);
+ return;
+ }
+
+ case clmdep_msgpack::type::ARRAY:
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(o.zone.allocate_align(sizeof(clmdep_msgpack::object) * v.via.array.size));
+ o.via.array.size = v.via.array.size;
+ for (clmdep_msgpack::object
+ * po(o.via.array.ptr),
+ * pv(v.via.array.ptr),
+ * const pvend(v.via.array.ptr + v.via.array.size);
+ pv < pvend;
+ ++po, ++pv) {
+ new (po) clmdep_msgpack::object(*pv, o.zone);
+ }
+ return;
+
+ case clmdep_msgpack::type::MAP:
+ o.via.map.ptr = (clmdep_msgpack::object_kv*)o.zone.allocate_align(sizeof(clmdep_msgpack::object_kv) * v.via.map.size);
+ o.via.map.size = v.via.map.size;
+ for(clmdep_msgpack::object_kv
+ * po(o.via.map.ptr),
+ * pv(v.via.map.ptr),
+ * const pvend(v.via.map.ptr + v.via.map.size);
+ pv < pvend;
+ ++po, ++pv) {
+ clmdep_msgpack::object_kv* kv = new (po) clmdep_msgpack::object_kv;
+ new (&kv->key) clmdep_msgpack::object(pv->key, o.zone);
+ new (&kv->val) clmdep_msgpack::object(pv->val, o.zone);
+ }
+ return;
+
+ default:
+ throw clmdep_msgpack::type_error();
+ }
+
+ }
+};
+
+// Adaptor functor specialization to object::with_zone
+
+template <>
+struct object_with_zone<clmdep_msgpack::object::with_zone> {
+ void operator()(
+ clmdep_msgpack::object::with_zone& o,
+ clmdep_msgpack::object::with_zone const& v) const {
+ o << static_cast<clmdep_msgpack::object const&>(v);
+ }
+};
+
+
+} // namespace adaptor
+
+
+// obsolete
+template <typename Type>
+class define : public Type {
+public:
+ typedef Type msgpack_type;
+ typedef define<Type> define_type;
+
+ define() {}
+ define(const msgpack_type& v) : msgpack_type(v) {}
+
+ template <typename Packer>
+ void msgpack_pack(Packer& o) const
+ {
+ clmdep_msgpack::operator<<(o, static_cast<const msgpack_type&>(*this));
+ }
+
+ void msgpack_unpack(object const& o)
+ {
+ clmdep_msgpack::operator>>(o, static_cast<msgpack_type&>(*this));
+ }
+};
+
+// deconvert operator
+
+template <typename Stream>
+template <typename T>
+inline clmdep_msgpack::packer<Stream>& packer<Stream>::pack(const T& v)
+{
+ clmdep_msgpack::operator<<(*this, v);
+ return *this;
+}
+
+inline bool operator==(const clmdep_msgpack::object& x, const clmdep_msgpack::object& y)
+{
+ if(x.type != y.type) { return false; }
+
+ switch(x.type) {
+ case clmdep_msgpack::type::NIL:
+ return true;
+
+ case clmdep_msgpack::type::BOOLEAN:
+ return x.via.boolean == y.via.boolean;
+
+ case clmdep_msgpack::type::POSITIVE_INTEGER:
+ return x.via.u64 == y.via.u64;
+
+ case clmdep_msgpack::type::NEGATIVE_INTEGER:
+ return x.via.i64 == y.via.i64;
+
+ case clmdep_msgpack::type::FLOAT:
+ return x.via.f64 == y.via.f64;
+
+ case clmdep_msgpack::type::STR:
+ return x.via.str.size == y.via.str.size &&
+ std::memcmp(x.via.str.ptr, y.via.str.ptr, x.via.str.size) == 0;
+
+ case clmdep_msgpack::type::BIN:
+ return x.via.bin.size == y.via.bin.size &&
+ std::memcmp(x.via.bin.ptr, y.via.bin.ptr, x.via.bin.size) == 0;
+
+ case clmdep_msgpack::type::EXT:
+ return x.via.ext.size == y.via.ext.size &&
+ std::memcmp(x.via.ext.ptr, y.via.ext.ptr, x.via.ext.size) == 0;
+
+ case clmdep_msgpack::type::ARRAY:
+ if(x.via.array.size != y.via.array.size) {
+ return false;
+ } else if(x.via.array.size == 0) {
+ return true;
+ } else {
+ clmdep_msgpack::object* px = x.via.array.ptr;
+ clmdep_msgpack::object* const pxend = x.via.array.ptr + x.via.array.size;
+ clmdep_msgpack::object* py = y.via.array.ptr;
+ do {
+ if(!(*px == *py)) {
+ return false;
+ }
+ ++px;
+ ++py;
+ } while(px < pxend);
+ return true;
+ }
+
+ case clmdep_msgpack::type::MAP:
+ if(x.via.map.size != y.via.map.size) {
+ return false;
+ } else if(x.via.map.size == 0) {
+ return true;
+ } else {
+ clmdep_msgpack::object_kv* px = x.via.map.ptr;
+ clmdep_msgpack::object_kv* const pxend = x.via.map.ptr + x.via.map.size;
+ clmdep_msgpack::object_kv* py = y.via.map.ptr;
+ do {
+ if(!(px->key == py->key) || !(px->val == py->val)) {
+ return false;
+ }
+ ++px;
+ ++py;
+ } while(px < pxend);
+ return true;
+ }
+
+ default:
+ return false;
+ }
+}
+
+template <typename T>
+inline bool operator==(const clmdep_msgpack::object& x, const T& y)
+try {
+ return x == clmdep_msgpack::object(y);
+} catch (clmdep_msgpack::type_error&) {
+ return false;
+}
+
+inline bool operator!=(const clmdep_msgpack::object& x, const clmdep_msgpack::object& y)
+{ return !(x == y); }
+
+template <typename T>
+inline bool operator==(const T& y, const clmdep_msgpack::object& x)
+{ return x == y; }
+
+template <typename T>
+inline bool operator!=(const clmdep_msgpack::object& x, const T& y)
+{ return !(x == y); }
+
+template <typename T>
+inline bool operator!=(const T& y, const clmdep_msgpack::object& x)
+{ return x != y; }
+
+
+inline clmdep_msgpack::object::implicit_type object::convert() const
+{
+ return clmdep_msgpack::object::implicit_type(*this);
+}
+
+template <typename T>
+inline T& object::convert(T& v) const
+{
+ clmdep_msgpack::operator>>(*this, v);
+ return v;
+}
+
+template <typename T>
+inline T* object::convert(T* v) const
+{
+ convert(*v);
+ return v;
+}
+
+template <typename T>
+inline bool object::convert_if_not_nil(T& v) const
+{
+ if (is_nil()) {
+ return false;
+ }
+ convert(v);
+ return true;
+}
+
+#if defined(MSGPACK_USE_CPP03)
+
+template <typename T>
+inline T object::as() const
+{
+ T v;
+ convert(v);
+ return v;
+}
+
+#else // defined(MSGPACK_USE_CPP03)
+
+template <typename T>
+inline typename std::enable_if<clmdep_msgpack::has_as<T>::value, T>::type object::as() const {
+ return clmdep_msgpack::adaptor::as<T>()(*this);
+}
+
+template <typename T>
+inline typename std::enable_if<!clmdep_msgpack::has_as<T>::value, T>::type object::as() const {
+ T v;
+ convert(v);
+ return v;
+}
+
+#endif // defined(MSGPACK_USE_CPP03)
+
+inline object::object()
+{
+ type = clmdep_msgpack::type::NIL;
+}
+
+template <typename T>
+inline object::object(const T& v)
+{
+ clmdep_msgpack::operator<<(*this, v);
+}
+
+template <typename T>
+inline object& object::operator=(const T& v)
+{
+ *this = object(v);
+ return *this;
+}
+
+template <typename T>
+object::object(const T& v, clmdep_msgpack::zone& z)
+{
+ with_zone oz(z);
+ clmdep_msgpack::operator<<(oz, v);
+ type = oz.type;
+ via = oz.via;
+}
+
+template <typename T>
+object::object(const T& v, clmdep_msgpack::zone* z)
+{
+ with_zone oz(*z);
+ clmdep_msgpack::operator<<(oz, v);
+ type = oz.type;
+ via = oz.via;
+}
+
+
+inline object::object(const msgpack_object& o)
+{
+ // FIXME beter way?
+ std::memcpy(this, &o, sizeof(o));
+}
+
+inline void operator<< (clmdep_msgpack::object& o, const msgpack_object& v)
+{
+ // FIXME beter way?
+ std::memcpy(&o, &v, sizeof(v));
+}
+
+inline object::operator msgpack_object() const
+{
+ // FIXME beter way?
+ msgpack_object obj;
+ std::memcpy(&obj, this, sizeof(obj));
+ return obj;
+}
+
+
+// obsolete
+template <typename T>
+inline void convert(T& v, clmdep_msgpack::object const& o)
+{
+ o.convert(v);
+}
+
+// obsolete
+template <typename Stream, typename T>
+inline void pack(clmdep_msgpack::packer<Stream>& o, const T& v)
+{
+ o.pack(v);
+}
+
+// obsolete
+template <typename Stream, typename T>
+inline void pack_copy(clmdep_msgpack::packer<Stream>& o, T v)
+{
+ pack(o, v);
+}
+
+
+template <typename Stream>
+inline clmdep_msgpack::packer<Stream>& operator<< (clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::object& v)
+{
+ switch(v.type) {
+ case clmdep_msgpack::type::NIL:
+ o.pack_nil();
+ return o;
+
+ case clmdep_msgpack::type::BOOLEAN:
+ if(v.via.boolean) {
+ o.pack_true();
+ } else {
+ o.pack_false();
+ }
+ return o;
+
+ case clmdep_msgpack::type::POSITIVE_INTEGER:
+ o.pack_uint64(v.via.u64);
+ return o;
+
+ case clmdep_msgpack::type::NEGATIVE_INTEGER:
+ o.pack_int64(v.via.i64);
+ return o;
+
+ case clmdep_msgpack::type::FLOAT:
+ o.pack_double(v.via.f64);
+ return o;
+
+ case clmdep_msgpack::type::STR:
+ o.pack_str(v.via.str.size);
+ o.pack_str_body(v.via.str.ptr, v.via.str.size);
+ return o;
+
+ case clmdep_msgpack::type::BIN:
+ o.pack_bin(v.via.bin.size);
+ o.pack_bin_body(v.via.bin.ptr, v.via.bin.size);
+ return o;
+
+ case clmdep_msgpack::type::EXT:
+ o.pack_ext(v.via.ext.size, v.via.ext.type());
+ o.pack_ext_body(v.via.ext.data(), v.via.ext.size);
+ return o;
+
+ case clmdep_msgpack::type::ARRAY:
+ o.pack_array(v.via.array.size);
+ for(clmdep_msgpack::object* p(v.via.array.ptr),
+ * const pend(v.via.array.ptr + v.via.array.size);
+ p < pend; ++p) {
+ clmdep_msgpack::operator<<(o, *p);
+ }
+ return o;
+
+ case clmdep_msgpack::type::MAP:
+ o.pack_map(v.via.map.size);
+ for(clmdep_msgpack::object_kv* p(v.via.map.ptr),
+ * const pend(v.via.map.ptr + v.via.map.size);
+ p < pend; ++p) {
+ clmdep_msgpack::operator<<(o, p->key);
+ clmdep_msgpack::operator<<(o, p->val);
+ }
+ return o;
+
+ default:
+ throw clmdep_msgpack::type_error();
+ }
+}
+
+template <typename Stream>
+clmdep_msgpack::packer<Stream>& operator<< (clmdep_msgpack::packer<Stream>& o, const clmdep_msgpack::object::with_zone& v)
+{
+ return o << static_cast<clmdep_msgpack::object>(v);
+}
+
+inline std::ostream& operator<< (std::ostream& s, const clmdep_msgpack::object& o)
+{
+ switch(o.type) {
+ case clmdep_msgpack::type::NIL:
+ s << "nil";
+ break;
+
+ case clmdep_msgpack::type::BOOLEAN:
+ s << (o.via.boolean ? "true" : "false");
+ break;
+
+ case clmdep_msgpack::type::POSITIVE_INTEGER:
+ s << o.via.u64;
+ break;
+
+ case clmdep_msgpack::type::NEGATIVE_INTEGER:
+ s << o.via.i64;
+ break;
+
+ case clmdep_msgpack::type::FLOAT:
+ s << o.via.f64;
+ break;
+
+ case clmdep_msgpack::type::STR:
+ s << '"';
+ for (uint32_t i = 0; i < o.via.str.size; ++i) {
+ char c = o.via.str.ptr[i];
+ switch (c) {
+ case '\\':
+ s << "\\\\";
+ break;
+ case '"':
+ s << "\\\"";
+ break;
+ case '/':
+ s << "\\/";
+ break;
+ case '\b':
+ s << "\\b";
+ break;
+ case '\f':
+ s << "\\f";
+ break;
+ case '\n':
+ s << "\\n";
+ break;
+ case '\r':
+ s << "\\r";
+ break;
+ case '\t':
+ s << "\\t";
+ break;
+ default: {
+ unsigned int code = static_cast<unsigned int>(c);
+ if (code < 0x20 || code == 0x7f) {
+ s << "\\u" << std::hex << std::setw(4) << std::setfill('0') << (code & 0xff);
+ }
+ else {
+ s << c;
+ }
+ } break;
+ }
+ }
+ s << '"';
+ break;
+
+ case clmdep_msgpack::type::BIN:
+ (s << '"').write(o.via.bin.ptr, o.via.bin.size) << '"';
+ break;
+
+ case clmdep_msgpack::type::EXT:
+ s << "EXT";
+ break;
+
+ case clmdep_msgpack::type::ARRAY:
+ s << "[";
+ if(o.via.array.size != 0) {
+ clmdep_msgpack::object* p(o.via.array.ptr);
+ s << *p;
+ ++p;
+ for(clmdep_msgpack::object* const pend(o.via.array.ptr + o.via.array.size);
+ p < pend; ++p) {
+ s << ", " << *p;
+ }
+ }
+ s << "]";
+ break;
+
+ case clmdep_msgpack::type::MAP:
+ s << "{";
+ if(o.via.map.size != 0) {
+ clmdep_msgpack::object_kv* p(o.via.map.ptr);
+ s << p->key << ':' << p->val;
+ ++p;
+ for(clmdep_msgpack::object_kv* const pend(o.via.map.ptr + o.via.map.size);
+ p < pend; ++p) {
+ s << ", " << p->key << ':' << p->val;
+ }
+ }
+ s << "}";
+ break;
+
+ default:
+ // FIXME
+ s << "#<UNKNOWN " << static_cast<uint16_t>(o.type) << ">";
+ }
+ return s;
+}
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#include "rpc/msgpack/type.hpp"
+
+#endif /* msgpack/object.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/object_fwd.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/object_fwd.hpp
new file mode 100644
index 000000000..d76c48759
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/object_fwd.hpp
@@ -0,0 +1,203 @@
+//
+// MessagePack for C++ static resolution routine
+//
+// Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#ifndef MSGPACK_OBJECT_FWD_HPP
+#define MSGPACK_OBJECT_FWD_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/zone.hpp"
+#include "rpc/msgpack/object.h"
+
+#include <typeinfo>
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+
+namespace type {
+ enum object_type {
+ NIL = MSGPACK_OBJECT_NIL,
+ BOOLEAN = MSGPACK_OBJECT_BOOLEAN,
+ POSITIVE_INTEGER = MSGPACK_OBJECT_POSITIVE_INTEGER,
+ NEGATIVE_INTEGER = MSGPACK_OBJECT_NEGATIVE_INTEGER,
+ FLOAT = MSGPACK_OBJECT_FLOAT,
+#if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
+ DOUBLE = MSGPACK_OBJECT_DOUBLE, // obsolete
+#endif // MSGPACK_USE_LEGACY_NAME_AS_FLOAT
+ STR = MSGPACK_OBJECT_STR,
+ BIN = MSGPACK_OBJECT_BIN,
+ ARRAY = MSGPACK_OBJECT_ARRAY,
+ MAP = MSGPACK_OBJECT_MAP,
+ EXT = MSGPACK_OBJECT_EXT
+ };
+}
+
+
+struct object;
+struct object_kv;
+
+struct object_array {
+ uint32_t size;
+ clmdep_msgpack::object* ptr;
+};
+
+struct object_map {
+ uint32_t size;
+ clmdep_msgpack::object_kv* ptr;
+};
+
+struct object_str {
+ uint32_t size;
+ const char* ptr;
+};
+
+struct object_bin {
+ uint32_t size;
+ const char* ptr;
+};
+
+struct object_ext {
+ int8_t type() const { return ptr[0]; }
+ const char* data() const { return &ptr[1]; }
+ uint32_t size;
+ const char* ptr;
+};
+
+
+#if !defined(MSGPACK_USE_CPP03)
+struct object;
+
+namespace adaptor {
+template <typename T, typename Enabler = void>
+struct as;
+} // namespace adaptor
+
+template <typename T>
+struct has_as {
+private:
+ template <typename U>
+ static auto check(U*) ->
+ typename std::is_same<
+ decltype(clmdep_msgpack::adaptor::as<U>()(std::declval<clmdep_msgpack::object>())),
+ T>::type;
+ template <typename>
+ static std::false_type check(...);
+public:
+ using type = decltype(check<T>(nullptr));
+ static constexpr bool value = type::value;
+};
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+
+struct object {
+ union union_type {
+ bool boolean;
+ uint64_t u64;
+ int64_t i64;
+#if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT)
+ double dec; // obsolete
+#endif // MSGPACK_USE_LEGACY_NAME_AS_FLOAT
+ double f64;
+ clmdep_msgpack::object_array array;
+ clmdep_msgpack::object_map map;
+ clmdep_msgpack::object_str str;
+ clmdep_msgpack::object_bin bin;
+ clmdep_msgpack::object_ext ext;
+ };
+
+ clmdep_msgpack::type::object_type type;
+ union_type via;
+
+ bool is_nil() const { return type == clmdep_msgpack::type::NIL; }
+
+#if defined(MSGPACK_USE_CPP03)
+
+ template <typename T>
+ T as() const;
+
+#else // defined(MSGPACK_USE_CPP03)
+
+ template <typename T>
+ typename std::enable_if<clmdep_msgpack::has_as<T>::value, T>::type as() const;
+
+ template <typename T>
+ typename std::enable_if<!clmdep_msgpack::has_as<T>::value, T>::type as() const;
+
+#endif // defined(MSGPACK_USE_CPP03)
+
+ template <typename T>
+ T& convert(T& v) const;
+ template <typename T>
+ T* convert(T* v) const;
+
+ template <typename T>
+ bool convert_if_not_nil(T& v) const;
+
+ object();
+
+ object(const msgpack_object& o);
+
+ template <typename T>
+ explicit object(const T& v);
+
+ template <typename T>
+ object(const T& v, clmdep_msgpack::zone& z);
+
+ // obsolete
+ template <typename T>
+ object(const T& v, clmdep_msgpack::zone* z);
+
+ template <typename T>
+ object& operator=(const T& v);
+
+ operator msgpack_object() const;
+
+ struct with_zone;
+
+private:
+ struct implicit_type;
+
+public:
+ implicit_type convert() const;
+};
+
+class type_error : public std::bad_cast { };
+
+struct object_kv {
+ clmdep_msgpack::object key;
+ clmdep_msgpack::object val;
+};
+
+struct object::with_zone : object {
+ with_zone(clmdep_msgpack::zone& zone) : zone(zone) { }
+ clmdep_msgpack::zone& zone;
+private:
+ with_zone();
+};
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif // MSGPACK_OBJECT_FWD_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/pack.h b/host/lib/deps/rpclib/include/rpc/msgpack/pack.h
new file mode 100644
index 000000000..ec25bac9d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/pack.h
@@ -0,0 +1,155 @@
+/*
+ * MessagePack for C packing routine
+ *
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_PACK_H
+#define MSGPACK_PACK_H
+
+#include "pack_define.h"
+#include "object.h"
+#include <stdlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_buffer Buffers
+ * @ingroup msgpack
+ * @{
+ * @}
+ */
+
+/**
+ * @defgroup msgpack_pack Serializer
+ * @ingroup msgpack
+ * @{
+ */
+
+typedef int (*msgpack_packer_write)(void* data, const char* buf, size_t len);
+
+typedef struct msgpack_packer {
+ void* data;
+ msgpack_packer_write callback;
+} msgpack_packer;
+
+static void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback);
+
+static msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback);
+static void msgpack_packer_free(msgpack_packer* pk);
+
+static int msgpack_pack_char(msgpack_packer* pk, char d);
+
+static int msgpack_pack_signed_char(msgpack_packer* pk, signed char d);
+static int msgpack_pack_short(msgpack_packer* pk, short d);
+static int msgpack_pack_int(msgpack_packer* pk, int d);
+static int msgpack_pack_long(msgpack_packer* pk, long d);
+static int msgpack_pack_long_long(msgpack_packer* pk, long long d);
+static int msgpack_pack_unsigned_char(msgpack_packer* pk, unsigned char d);
+static int msgpack_pack_unsigned_short(msgpack_packer* pk, unsigned short d);
+static int msgpack_pack_unsigned_int(msgpack_packer* pk, unsigned int d);
+static int msgpack_pack_unsigned_long(msgpack_packer* pk, unsigned long d);
+static int msgpack_pack_unsigned_long_long(msgpack_packer* pk, unsigned long long d);
+
+static int msgpack_pack_uint8(msgpack_packer* pk, uint8_t d);
+static int msgpack_pack_uint16(msgpack_packer* pk, uint16_t d);
+static int msgpack_pack_uint32(msgpack_packer* pk, uint32_t d);
+static int msgpack_pack_uint64(msgpack_packer* pk, uint64_t d);
+static int msgpack_pack_int8(msgpack_packer* pk, int8_t d);
+static int msgpack_pack_int16(msgpack_packer* pk, int16_t d);
+static int msgpack_pack_int32(msgpack_packer* pk, int32_t d);
+static int msgpack_pack_int64(msgpack_packer* pk, int64_t d);
+
+static int msgpack_pack_fix_uint8(msgpack_packer* pk, uint8_t d);
+static int msgpack_pack_fix_uint16(msgpack_packer* pk, uint16_t d);
+static int msgpack_pack_fix_uint32(msgpack_packer* pk, uint32_t d);
+static int msgpack_pack_fix_uint64(msgpack_packer* pk, uint64_t d);
+static int msgpack_pack_fix_int8(msgpack_packer* pk, int8_t d);
+static int msgpack_pack_fix_int16(msgpack_packer* pk, int16_t d);
+static int msgpack_pack_fix_int32(msgpack_packer* pk, int32_t d);
+static int msgpack_pack_fix_int64(msgpack_packer* pk, int64_t d);
+
+static int msgpack_pack_float(msgpack_packer* pk, float d);
+static int msgpack_pack_double(msgpack_packer* pk, double d);
+
+static int msgpack_pack_nil(msgpack_packer* pk);
+static int msgpack_pack_true(msgpack_packer* pk);
+static int msgpack_pack_false(msgpack_packer* pk);
+
+static int msgpack_pack_array(msgpack_packer* pk, size_t n);
+
+static int msgpack_pack_map(msgpack_packer* pk, size_t n);
+
+static int msgpack_pack_str(msgpack_packer* pk, size_t l);
+static int msgpack_pack_str_body(msgpack_packer* pk, const void* b, size_t l);
+
+static int msgpack_pack_v4raw(msgpack_packer* pk, size_t l);
+static int msgpack_pack_v4raw_body(msgpack_packer* pk, const void* b, size_t l);
+
+static int msgpack_pack_bin(msgpack_packer* pk, size_t l);
+static int msgpack_pack_bin_body(msgpack_packer* pk, const void* b, size_t l);
+
+static int msgpack_pack_ext(msgpack_packer* pk, size_t l, int8_t type);
+static int msgpack_pack_ext_body(msgpack_packer* pk, const void* b, size_t l);
+
+int msgpack_pack_object(msgpack_packer* pk, msgpack_object d);
+
+
+/** @} */
+
+
+#define msgpack_pack_inline_func(name) \
+ inline int msgpack_pack ## name
+
+#define msgpack_pack_inline_func_cint(name) \
+ inline int msgpack_pack ## name
+
+#define msgpack_pack_inline_func_fixint(name) \
+ inline int msgpack_pack_fix ## name
+
+#define msgpack_pack_user msgpack_packer*
+
+#define msgpack_pack_append_buffer(user, buf, len) \
+ return (*(user)->callback)((user)->data, (const char*)buf, len)
+
+#include "pack_template.h"
+
+inline void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback)
+{
+ pk->data = data;
+ pk->callback = callback;
+}
+
+inline msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback)
+{
+ msgpack_packer* pk = (msgpack_packer*)calloc(1, sizeof(msgpack_packer));
+ if(!pk) { return NULL; }
+ msgpack_packer_init(pk, data, callback);
+ return pk;
+}
+
+inline void msgpack_packer_free(msgpack_packer* pk)
+{
+ free(pk);
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/pack.h */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/pack.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/pack.hpp
new file mode 100644
index 000000000..eb146f1af
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/pack.hpp
@@ -0,0 +1,1098 @@
+//
+// MessagePack for C++ serializing routine
+//
+// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_PACK_HPP
+#define MSGPACK_PACK_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "rpc/msgpack/cpp_config.hpp"
+
+#include <stdexcept>
+#include <limits>
+#include <cstring>
+#include <climits>
+
+#include "sysdep.h"
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+template <typename Stream>
+class packer {
+public:
+ packer(Stream* s);
+ packer(Stream& s);
+
+public:
+ template <typename T>
+ packer<Stream>& pack(const T& v);
+
+ packer<Stream>& pack_uint8(uint8_t d);
+ packer<Stream>& pack_uint16(uint16_t d);
+ packer<Stream>& pack_uint32(uint32_t d);
+ packer<Stream>& pack_uint64(uint64_t d);
+ packer<Stream>& pack_int8(int8_t d);
+ packer<Stream>& pack_int16(int16_t d);
+ packer<Stream>& pack_int32(int32_t d);
+ packer<Stream>& pack_int64(int64_t d);
+
+ packer<Stream>& pack_fix_uint8(uint8_t d);
+ packer<Stream>& pack_fix_uint16(uint16_t d);
+ packer<Stream>& pack_fix_uint32(uint32_t d);
+ packer<Stream>& pack_fix_uint64(uint64_t d);
+ packer<Stream>& pack_fix_int8(int8_t d);
+ packer<Stream>& pack_fix_int16(int16_t d);
+ packer<Stream>& pack_fix_int32(int32_t d);
+ packer<Stream>& pack_fix_int64(int64_t d);
+
+ packer<Stream>& pack_char(char d);
+ packer<Stream>& pack_signed_char(signed char d);
+ packer<Stream>& pack_short(short d);
+ packer<Stream>& pack_int(int d);
+ packer<Stream>& pack_long(long d);
+ packer<Stream>& pack_long_long(long long d);
+ packer<Stream>& pack_unsigned_char(unsigned char d);
+ packer<Stream>& pack_unsigned_short(unsigned short d);
+ packer<Stream>& pack_unsigned_int(unsigned int d);
+ packer<Stream>& pack_unsigned_long(unsigned long d);
+ packer<Stream>& pack_unsigned_long_long(unsigned long long d);
+
+ packer<Stream>& pack_float(float d);
+ packer<Stream>& pack_double(double d);
+
+ packer<Stream>& pack_nil();
+ packer<Stream>& pack_true();
+ packer<Stream>& pack_false();
+
+ packer<Stream>& pack_array(uint32_t n);
+
+ packer<Stream>& pack_map(uint32_t n);
+
+ packer<Stream>& pack_str(uint32_t l);
+ packer<Stream>& pack_str_body(const char* b, uint32_t l);
+
+ // v4
+ packer<Stream>& pack_v4raw(uint32_t l);
+ packer<Stream>& pack_v4raw_body(const char* b, uint32_t l);
+
+ packer<Stream>& pack_bin(uint32_t l);
+ packer<Stream>& pack_bin_body(const char* b, uint32_t l);
+
+ packer<Stream>& pack_ext(size_t l, int8_t type);
+ packer<Stream>& pack_ext_body(const char* b, uint32_t l);
+
+private:
+ template <typename T>
+ void pack_imp_uint8(T d);
+ template <typename T>
+ void pack_imp_uint16(T d);
+ template <typename T>
+ void pack_imp_uint32(T d);
+ template <typename T>
+ void pack_imp_uint64(T d);
+ template <typename T>
+ void pack_imp_int8(T d);
+ template <typename T>
+ void pack_imp_int16(T d);
+ template <typename T>
+ void pack_imp_int32(T d);
+ template <typename T>
+ void pack_imp_int64(T d);
+
+ void append_buffer(const char* buf, size_t len)
+ { m_stream.write(buf, len); }
+
+private:
+ Stream& m_stream;
+
+#if defined(MSGPACK_USE_CPP03)
+private:
+ packer(const packer&);
+ packer& operator=(const packer&);
+ packer();
+#else // defined(MSGPACK_USE_CPP03)
+public:
+ packer(const packer&) = delete;
+ packer& operator=(const packer&) = delete;
+ packer() = delete;
+#endif // defined(MSGPACK_USE_CPP03)
+};
+
+
+template <typename Stream, typename T>
+inline void pack(Stream* s, const T& v)
+{
+ packer<Stream>(*s).pack(v);
+}
+
+template <typename Stream, typename T>
+inline void pack(Stream& s, const T& v)
+{
+ packer<Stream>(s).pack(v);
+}
+
+
+#if MSGPACK_ENDIAN_LITTLE_BYTE
+template <typename T>
+inline char take8_8(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[0]);
+}
+template <typename T>
+inline char take8_16(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[0]);
+}
+template <typename T>
+inline char take8_32(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[0]);
+}
+template <typename T>
+inline char take8_64(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[0]);
+}
+
+#elif MSGPACK_ENDIAN_BIG_BYTE
+
+template <typename T>
+inline char take8_8(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[0]);
+}
+template <typename T>
+inline char take8_16(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[1]);
+}
+template <typename T>
+inline char take8_32(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[3]);
+}
+template <typename T>
+inline char take8_64(T d) {
+ return static_cast<char>(reinterpret_cast<uint8_t*>(&d)[7]);
+}
+
+#else
+#error msgpack-c supports only big endian and little endian
+#endif
+
+template <typename Stream>
+inline packer<Stream>::packer(Stream* s) : m_stream(*s) { }
+
+template <typename Stream>
+inline packer<Stream>::packer(Stream& s) : m_stream(s) { }
+
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_uint8(uint8_t d)
+{ pack_imp_uint8(d); return *this; }
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_uint16(uint16_t d)
+{ pack_imp_uint16(d); return *this; }
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_uint32(uint32_t d)
+{ pack_imp_uint32(d); return *this; }
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_uint64(uint64_t d)
+{ pack_imp_uint64(d); return *this; }
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_int8(int8_t d)
+{ pack_imp_int8(d); return *this; }
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_int16(int16_t d)
+{ pack_imp_int16(d); return *this; }
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_int32(int32_t d)
+{ pack_imp_int32(d); return *this; }
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_int64(int64_t d)
+{ pack_imp_int64(d); return *this;}
+
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_uint8(uint8_t d)
+{
+ char buf[2] = {static_cast<char>(0xccu), take8_8(d)};
+ append_buffer(buf, 2);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_uint16(uint16_t d)
+{
+ char buf[3];
+ buf[0] = static_cast<char>(0xcdu); _msgpack_store16(&buf[1], d);
+ append_buffer(buf, 3);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_uint32(uint32_t d)
+{
+ char buf[5];
+ buf[0] = static_cast<char>(0xceu); _msgpack_store32(&buf[1], d);
+ append_buffer(buf, 5);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_uint64(uint64_t d)
+{
+ char buf[9];
+ buf[0] = static_cast<char>(0xcfu); _msgpack_store64(&buf[1], d);
+ append_buffer(buf, 9);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_int8(int8_t d)
+{
+ char buf[2] = {static_cast<char>(0xd0u), take8_8(d)};
+ append_buffer(buf, 2);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_int16(int16_t d)
+{
+ char buf[3];
+ buf[0] = static_cast<char>(0xd1u); _msgpack_store16(&buf[1], d);
+ append_buffer(buf, 3);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_int32(int32_t d)
+{
+ char buf[5];
+ buf[0] = static_cast<char>(0xd2u); _msgpack_store32(&buf[1], d);
+ append_buffer(buf, 5);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_fix_int64(int64_t d)
+{
+ char buf[9];
+ buf[0] = static_cast<char>(0xd3u); _msgpack_store64(&buf[1], d);
+ append_buffer(buf, 9);
+ return *this;
+}
+
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_char(char d)
+{
+#if defined(CHAR_MIN)
+#if CHAR_MIN < 0
+ pack_imp_int8(d);
+#else
+ pack_imp_uint8(d);
+#endif
+#else
+#error CHAR_MIN is not defined
+#endif
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_signed_char(signed char d)
+{
+ pack_imp_int8(d);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_short(short d)
+{
+#if defined(SIZEOF_SHORT)
+#if SIZEOF_SHORT == 2
+ pack_imp_int16(d);
+#elif SIZEOF_SHORT == 4
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#elif defined(SHRT_MAX)
+#if SHRT_MAX == 0x7fff
+ pack_imp_int16(d);
+#elif SHRT_MAX == 0x7fffffff
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#else
+ if(sizeof(short) == 2) {
+ pack_imp_int16(d);
+ } else if(sizeof(short) == 4) {
+ pack_imp_int32(d);
+ } else {
+ pack_imp_int64(d);
+ }
+#endif
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_int(int d)
+{
+#if defined(SIZEOF_INT)
+#if SIZEOF_INT == 2
+ pack_imp_int16(d);
+#elif SIZEOF_INT == 4
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#elif defined(INT_MAX)
+#if INT_MAX == 0x7fff
+ pack_imp_int16(d);
+#elif INT_MAX == 0x7fffffff
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#else
+ if(sizeof(int) == 2) {
+ pack_imp_int16(d);
+ } else if(sizeof(int) == 4) {
+ pack_imp_int32(d);
+ } else {
+ pack_imp_int64(d);
+ }
+#endif
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_long(long d)
+{
+#if defined(SIZEOF_LONG)
+#if SIZEOF_LONG == 2
+ pack_imp_int16(d);
+#elif SIZEOF_LONG == 4
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#elif defined(LONG_MAX)
+#if LONG_MAX == 0x7fffL
+ pack_imp_int16(d);
+#elif LONG_MAX == 0x7fffffffL
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#else
+ if(sizeof(long) == 2) {
+ pack_imp_int16(d);
+ } else if(sizeof(long) == 4) {
+ pack_imp_int32(d);
+ } else {
+ pack_imp_int64(d);
+ }
+#endif
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_long_long(long long d)
+{
+#if defined(SIZEOF_LONG_LONG)
+#if SIZEOF_LONG_LONG == 2
+ pack_imp_int16(d);
+#elif SIZEOF_LONG_LONG == 4
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#elif defined(LLONG_MAX)
+#if LLONG_MAX == 0x7fffL
+ pack_imp_int16(d);
+#elif LLONG_MAX == 0x7fffffffL
+ pack_imp_int32(d);
+#else
+ pack_imp_int64(d);
+#endif
+
+#else
+ if(sizeof(long long) == 2) {
+ pack_imp_int16(d);
+ } else if(sizeof(long long) == 4) {
+ pack_imp_int32(d);
+ } else {
+ pack_imp_int64(d);
+ }
+#endif
+ return *this;
+}
+
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_unsigned_char(unsigned char d)
+{
+ pack_imp_uint8(d);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_unsigned_short(unsigned short d)
+{
+#if defined(SIZEOF_SHORT)
+#if SIZEOF_SHORT == 2
+ pack_imp_uint16(d);
+#elif SIZEOF_SHORT == 4
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#elif defined(USHRT_MAX)
+#if USHRT_MAX == 0xffffU
+ pack_imp_uint16(d);
+#elif USHRT_MAX == 0xffffffffU
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#else
+ if(sizeof(unsigned short) == 2) {
+ pack_imp_uint16(d);
+ } else if(sizeof(unsigned short) == 4) {
+ pack_imp_uint32(d);
+ } else {
+ pack_imp_uint64(d);
+ }
+#endif
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_unsigned_int(unsigned int d)
+{
+#if defined(SIZEOF_INT)
+#if SIZEOF_INT == 2
+ pack_imp_uint16(d);
+#elif SIZEOF_INT == 4
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#elif defined(UINT_MAX)
+#if UINT_MAX == 0xffffU
+ pack_imp_uint16(d);
+#elif UINT_MAX == 0xffffffffU
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#else
+ if(sizeof(unsigned int) == 2) {
+ pack_imp_uint16(d);
+ } else if(sizeof(unsigned int) == 4) {
+ pack_imp_uint32(d);
+ } else {
+ pack_imp_uint64(d);
+ }
+#endif
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_unsigned_long(unsigned long d)
+{
+#if defined(SIZEOF_LONG)
+#if SIZEOF_LONG == 2
+ pack_imp_uint16(d);
+#elif SIZEOF_LONG == 4
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#elif defined(ULONG_MAX)
+#if ULONG_MAX == 0xffffUL
+ pack_imp_uint16(d);
+#elif ULONG_MAX == 0xffffffffUL
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#else
+ if(sizeof(unsigned long) == 2) {
+ pack_imp_uint16(d);
+ } else if(sizeof(unsigned long) == 4) {
+ pack_imp_uint32(d);
+ } else {
+ pack_imp_uint64(d);
+ }
+#endif
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_unsigned_long_long(unsigned long long d)
+{
+#if defined(SIZEOF_LONG_LONG)
+#if SIZEOF_LONG_LONG == 2
+ pack_imp_uint16(d);
+#elif SIZEOF_LONG_LONG == 4
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#elif defined(ULLONG_MAX)
+#if ULLONG_MAX == 0xffffUL
+ pack_imp_uint16(d);
+#elif ULLONG_MAX == 0xffffffffUL
+ pack_imp_uint32(d);
+#else
+ pack_imp_uint64(d);
+#endif
+
+#else
+ if(sizeof(unsigned long long) == 2) {
+ pack_imp_uint16(d);
+ } else if(sizeof(unsigned long long) == 4) {
+ pack_imp_uint32(d);
+ } else {
+ pack_imp_uint64(d);
+ }
+#endif
+ return *this;
+}
+
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_float(float d)
+{
+ union { float f; uint32_t i; } mem;
+ mem.f = d;
+ char buf[5];
+ buf[0] = static_cast<char>(0xcau); _msgpack_store32(&buf[1], mem.i);
+ append_buffer(buf, 5);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_double(double d)
+{
+ union { double f; uint64_t i; } mem;
+ mem.f = d;
+ char buf[9];
+ buf[0] = static_cast<char>(0xcbu);
+
+#if defined(TARGET_OS_IPHONE)
+ // ok
+#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi
+ // https://github.com/msgpack/msgpack-perl/pull/1
+ mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL);
+#endif
+ _msgpack_store64(&buf[1], mem.i);
+ append_buffer(buf, 9);
+ return *this;
+}
+
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_nil()
+{
+ const char d = static_cast<char>(0xc0u);
+ append_buffer(&d, 1);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_true()
+{
+ const char d = static_cast<char>(0xc3u);
+ append_buffer(&d, 1);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_false()
+{
+ const char d = static_cast<char>(0xc2u);
+ append_buffer(&d, 1);
+ return *this;
+}
+
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_array(uint32_t n)
+{
+ if(n < 16) {
+ char d = static_cast<char>(0x90u | n);
+ append_buffer(&d, 1);
+ } else if(n < 65536) {
+ char buf[3];
+ buf[0] = static_cast<char>(0xdcu); _msgpack_store16(&buf[1], static_cast<uint16_t>(n));
+ append_buffer(buf, 3);
+ } else {
+ char buf[5];
+ buf[0] = static_cast<char>(0xddu); _msgpack_store32(&buf[1], static_cast<uint32_t>(n));
+ append_buffer(buf, 5);
+ }
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_map(uint32_t n)
+{
+ if(n < 16) {
+ unsigned char d = static_cast<unsigned char>(0x80u | n);
+ char buf = take8_8(d);
+ append_buffer(&buf, 1);
+ } else if(n < 65536) {
+ char buf[3];
+ buf[0] = static_cast<char>(0xdeu); _msgpack_store16(&buf[1], static_cast<uint16_t>(n));
+ append_buffer(buf, 3);
+ } else {
+ char buf[5];
+ buf[0] = static_cast<char>(0xdfu); _msgpack_store32(&buf[1], static_cast<uint32_t>(n));
+ append_buffer(buf, 5);
+ }
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_str(uint32_t l)
+{
+ if(l < 32) {
+ unsigned char d = 0xa0u | static_cast<uint8_t>(l);
+ char buf = take8_8(d);
+ append_buffer(&buf, 1);
+ } else if(l < 256) {
+ char buf[2];
+ buf[0] = static_cast<char>(0xd9u); buf[1] = static_cast<uint8_t>(l);
+ append_buffer(buf, 2);
+ } else if(l < 65536) {
+ char buf[3];
+ buf[0] = static_cast<char>(0xdau); _msgpack_store16(&buf[1], static_cast<uint16_t>(l));
+ append_buffer(buf, 3);
+ } else {
+ char buf[5];
+ buf[0] = static_cast<char>(0xdbu); _msgpack_store32(&buf[1], static_cast<uint32_t>(l));
+ append_buffer(buf, 5);
+ }
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_str_body(const char* b, uint32_t l)
+{
+ append_buffer(b, l);
+ return *this;
+}
+
+// Raw (V4)
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_v4raw(uint32_t l)
+{
+ if(l < 32) {
+ unsigned char d = 0xa0u | static_cast<uint8_t>(l);
+ char buf = take8_8(d);
+ append_buffer(&buf, 1);
+ } else if(l < 65536) {
+ char buf[3];
+ buf[0] = static_cast<char>(0xdau); _msgpack_store16(&buf[1], static_cast<uint16_t>(l));
+ append_buffer(buf, 3);
+ } else {
+ char buf[5];
+ buf[0] = static_cast<char>(0xdbu); _msgpack_store32(&buf[1], static_cast<uint32_t>(l));
+ append_buffer(buf, 5);
+ }
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_v4raw_body(const char* b, uint32_t l)
+{
+ append_buffer(b, l);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_bin(uint32_t l)
+{
+ if(l < 256) {
+ char buf[2];
+ buf[0] = static_cast<char>(0xc4u); buf[1] = static_cast<uint8_t>(l);
+ append_buffer(buf, 2);
+ } else if(l < 65536) {
+ char buf[3];
+ buf[0] = static_cast<char>(0xc5u); _msgpack_store16(&buf[1], static_cast<uint16_t>(l));
+ append_buffer(buf, 3);
+ } else {
+ char buf[5];
+ buf[0] = static_cast<char>(0xc6u); _msgpack_store32(&buf[1], static_cast<uint32_t>(l));
+ append_buffer(buf, 5);
+ }
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_bin_body(const char* b, uint32_t l)
+{
+ append_buffer(b, l);
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_ext(size_t l, int8_t type)
+{
+ switch(l) {
+ case 1: {
+ char buf[2];
+ buf[0] = static_cast<char>(0xd4u);
+ buf[1] = static_cast<char>(type);
+ append_buffer(buf, 2);
+ } break;
+ case 2: {
+ char buf[2];
+ buf[0] = static_cast<char>(0xd5u);
+ buf[1] = static_cast<char>(type);
+ append_buffer(buf, 2);
+ } break;
+ case 4: {
+ char buf[2];
+ buf[0] = static_cast<char>(0xd6u);
+ buf[1] = static_cast<char>(type);
+ append_buffer(buf, 2);
+ } break;
+ case 8: {
+ char buf[2];
+ buf[0] = static_cast<char>(0xd7u);
+ buf[1] = static_cast<char>(type);
+ append_buffer(buf, 2);
+ } break;
+ case 16: {
+ char buf[2];
+ buf[0] = static_cast<char>(0xd8u);
+ buf[1] = static_cast<char>(type);
+ append_buffer(buf, 2);
+ } break;
+ default:
+ if(l < 256) {
+ char buf[3];
+ buf[0] = static_cast<char>(0xc7u);
+ buf[1] = static_cast<char>(l);
+ buf[2] = static_cast<char>(type);
+ append_buffer(buf, 3);
+ } else if(l < 65536) {
+ char buf[4];
+ buf[0] = static_cast<char>(0xc8u);
+ _msgpack_store16(&buf[1], static_cast<uint16_t>(l));
+ buf[3] = static_cast<char>(type);
+ append_buffer(buf, 4);
+ } else {
+ char buf[6];
+ buf[0] = static_cast<char>(0xc9u);
+ _msgpack_store32(&buf[1], static_cast<uint32_t>(l));
+ buf[5] = static_cast<char>(type);
+ append_buffer(buf, 6);
+ }
+ break;
+ }
+ return *this;
+}
+
+template <typename Stream>
+inline packer<Stream>& packer<Stream>::pack_ext_body(const char* b, uint32_t l)
+{
+ append_buffer(b, l);
+ return *this;
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_uint8(T d)
+{
+ if(d < (1<<7)) {
+ /* fixnum */
+ char buf = take8_8(d);
+ append_buffer(&buf, 1);
+ } else {
+ /* unsigned 8 */
+ char buf[2] = {static_cast<char>(0xccu), take8_8(d)};
+ append_buffer(buf, 2);
+ }
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_uint16(T d)
+{
+ if(d < (1<<7)) {
+ /* fixnum */
+ char buf = take8_16(d);
+ append_buffer(&buf, 1);
+ } else if(d < (1<<8)) {
+ /* unsigned 8 */
+ char buf[2] = {static_cast<char>(0xccu), take8_16(d)};
+ append_buffer(buf, 2);
+ } else {
+ /* unsigned 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xcdu); _msgpack_store16(&buf[1], static_cast<uint16_t>(d));
+ append_buffer(buf, 3);
+ }
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_uint32(T d)
+{
+ if(d < (1<<8)) {
+ if(d < (1<<7)) {
+ /* fixnum */
+ char buf = take8_32(d);
+ append_buffer(&buf, 1);
+ } else {
+ /* unsigned 8 */
+ char buf[2] = {static_cast<char>(0xccu), take8_32(d)};
+ append_buffer(buf, 2);
+ }
+ } else {
+ if(d < (1<<16)) {
+ /* unsigned 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xcdu); _msgpack_store16(&buf[1], static_cast<uint16_t>(d));
+ append_buffer(buf, 3);
+ } else {
+ /* unsigned 32 */
+ char buf[5];
+ buf[0] = static_cast<char>(0xceu); _msgpack_store32(&buf[1], static_cast<uint32_t>(d));
+ append_buffer(buf, 5);
+ }
+ }
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_uint64(T d)
+{
+ if(d < (1ULL<<8)) {
+ if(d < (1ULL<<7)) {
+ /* fixnum */
+ char buf = take8_64(d);
+ append_buffer(&buf, 1);
+ } else {
+ /* unsigned 8 */
+ char buf[2] = {static_cast<char>(0xccu), take8_64(d)};
+ append_buffer(buf, 2);
+ }
+ } else {
+ if(d < (1ULL<<16)) {
+ /* unsigned 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xcdu); _msgpack_store16(&buf[1], static_cast<uint16_t>(d));
+ append_buffer(buf, 3);
+ } else if(d < (1ULL<<32)) {
+ /* unsigned 32 */
+ char buf[5];
+ buf[0] = static_cast<char>(0xceu); _msgpack_store32(&buf[1], static_cast<uint32_t>(d));
+ append_buffer(buf, 5);
+ } else {
+ /* unsigned 64 */
+ char buf[9];
+ buf[0] = static_cast<char>(0xcfu); _msgpack_store64(&buf[1], d);
+ append_buffer(buf, 9);
+ }
+ }
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_int8(T d)
+{
+ if(d < -(1<<5)) {
+ /* signed 8 */
+ char buf[2] = {static_cast<char>(0xd0u), take8_8(d)};
+ append_buffer(buf, 2);
+ } else {
+ /* fixnum */
+ char buf = take8_8(d);
+ append_buffer(&buf, 1);
+ }
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_int16(T d)
+{
+ if(d < -(1<<5)) {
+ if(d < -(1<<7)) {
+ /* signed 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xd1u); _msgpack_store16(&buf[1], static_cast<int16_t>(d));
+ append_buffer(buf, 3);
+ } else {
+ /* signed 8 */
+ char buf[2] = {static_cast<char>(0xd0u), take8_16(d)};
+ append_buffer(buf, 2);
+ }
+ } else if(d < (1<<7)) {
+ /* fixnum */
+ char buf = take8_16(d);
+ append_buffer(&buf, 1);
+ } else {
+ if(d < (1<<8)) {
+ /* unsigned 8 */
+ char buf[2] = {static_cast<char>(0xccu), take8_16(d)};
+ append_buffer(buf, 2);
+ } else {
+ /* unsigned 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xcdu); _msgpack_store16(&buf[1], static_cast<uint16_t>(d));
+ append_buffer(buf, 3);
+ }
+ }
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_int32(T d)
+{
+ if(d < -(1<<5)) {
+ if(d < -(1<<15)) {
+ /* signed 32 */
+ char buf[5];
+ buf[0] = static_cast<char>(0xd2u); _msgpack_store32(&buf[1], static_cast<int32_t>(d));
+ append_buffer(buf, 5);
+ } else if(d < -(1<<7)) {
+ /* signed 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xd1u); _msgpack_store16(&buf[1], static_cast<int16_t>(d));
+ append_buffer(buf, 3);
+ } else {
+ /* signed 8 */
+ char buf[2] = { static_cast<char>(0xd0u), take8_32(d)};
+ append_buffer(buf, 2);
+ }
+ } else if(d < (1<<7)) {
+ /* fixnum */
+ char buf = take8_32(d);
+ append_buffer(&buf, 1);
+ } else {
+ if(d < (1<<8)) {
+ /* unsigned 8 */
+ char buf[2] = { static_cast<char>(0xccu), take8_32(d)};
+ append_buffer(buf, 2);
+ } else if(d < (1<<16)) {
+ /* unsigned 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xcdu); _msgpack_store16(&buf[1], static_cast<uint16_t>(d));
+ append_buffer(buf, 3);
+ } else {
+ /* unsigned 32 */
+ char buf[5];
+ buf[0] = static_cast<char>(0xceu); _msgpack_store32(&buf[1], static_cast<uint32_t>(d));
+ append_buffer(buf, 5);
+ }
+ }
+}
+
+template <typename Stream>
+template <typename T>
+inline void packer<Stream>::pack_imp_int64(T d)
+{
+ if(d < -(1LL<<5)) {
+ if(d < -(1LL<<15)) {
+ if(d < -(1LL<<31)) {
+ /* signed 64 */
+ char buf[9];
+ buf[0] = static_cast<char>(0xd3u); _msgpack_store64(&buf[1], d);
+ append_buffer(buf, 9);
+ } else {
+ /* signed 32 */
+ char buf[5];
+ buf[0] = static_cast<char>(0xd2u); _msgpack_store32(&buf[1], static_cast<int32_t>(d));
+ append_buffer(buf, 5);
+ }
+ } else {
+ if(d < -(1<<7)) {
+ /* signed 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xd1u); _msgpack_store16(&buf[1], static_cast<int16_t>(d));
+ append_buffer(buf, 3);
+ } else {
+ /* signed 8 */
+ char buf[2] = {static_cast<char>(0xd0u), take8_64(d)};
+ append_buffer(buf, 2);
+ }
+ }
+ } else if(d < (1<<7)) {
+ /* fixnum */
+ char buf = take8_64(d);
+ append_buffer(&buf, 1);
+ } else {
+ if(d < (1LL<<16)) {
+ if(d < (1<<8)) {
+ /* unsigned 8 */
+ char buf[2] = {static_cast<char>(0xccu), take8_64(d)};
+ append_buffer(buf, 2);
+ } else {
+ /* unsigned 16 */
+ char buf[3];
+ buf[0] = static_cast<char>(0xcdu); _msgpack_store16(&buf[1], static_cast<uint16_t>(d));
+ append_buffer(buf, 3);
+ }
+ } else {
+ if(d < (1LL<<32)) {
+ /* unsigned 32 */
+ char buf[5];
+ buf[0] = static_cast<char>(0xceu); _msgpack_store32(&buf[1], static_cast<uint32_t>(d));
+ append_buffer(buf, 5);
+ } else {
+ /* unsigned 64 */
+ char buf[9];
+ buf[0] = static_cast<char>(0xcfu); _msgpack_store64(&buf[1], d);
+ append_buffer(buf, 9);
+ }
+ }
+ }
+}
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/pack.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/pack_define.h b/host/lib/deps/rpclib/include/rpc/msgpack/pack_define.h
new file mode 100644
index 000000000..15c1de3e6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/pack_define.h
@@ -0,0 +1,26 @@
+/*
+ * MessagePack unpacking routine template
+ *
+ * Copyright (C) 2008-2010 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_PACK_DEFINE_H
+#define MSGPACK_PACK_DEFINE_H
+
+#include "rpc/msgpack/sysdep.h"
+#include <limits.h>
+#include <string.h>
+
+#endif /* msgpack/pack_define.h */
+
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/pack_template.h b/host/lib/deps/rpclib/include/rpc/msgpack/pack_template.h
new file mode 100644
index 000000000..ff6741939
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/pack_template.h
@@ -0,0 +1,917 @@
+/*
+ * MessagePack packing routine template
+ *
+ * Copyright (C) 2008-2010 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#if MSGPACK_ENDIAN_LITTLE_BYTE
+#define TAKE8_8(d) ((uint8_t*)&d)[0]
+#define TAKE8_16(d) ((uint8_t*)&d)[0]
+#define TAKE8_32(d) ((uint8_t*)&d)[0]
+#define TAKE8_64(d) ((uint8_t*)&d)[0]
+#elif MSGPACK_ENDIAN_BIG_BYTE
+#define TAKE8_8(d) ((uint8_t*)&d)[0]
+#define TAKE8_16(d) ((uint8_t*)&d)[1]
+#define TAKE8_32(d) ((uint8_t*)&d)[3]
+#define TAKE8_64(d) ((uint8_t*)&d)[7]
+#else
+#error msgpack-c supports only big endian and little endian
+#endif
+
+#ifndef msgpack_pack_inline_func
+#error msgpack_pack_inline_func template is not defined
+#endif
+
+#ifndef msgpack_pack_user
+#error msgpack_pack_user type is not defined
+#endif
+
+#ifndef msgpack_pack_append_buffer
+#error msgpack_pack_append_buffer callback is not defined
+#endif
+
+
+/*
+ * Integer
+ */
+
+#define msgpack_pack_real_uint8(x, d) \
+do { \
+ if(d < (1<<7)) { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \
+ } else { \
+ /* unsigned 8 */ \
+ unsigned char buf[2] = {0xcc, TAKE8_8(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } \
+} while(0)
+
+#define msgpack_pack_real_uint16(x, d) \
+do { \
+ if(d < (1<<7)) { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \
+ } else if(d < (1<<8)) { \
+ /* unsigned 8 */ \
+ unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } else { \
+ /* unsigned 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } \
+} while(0)
+
+#define msgpack_pack_real_uint32(x, d) \
+do { \
+ if(d < (1<<8)) { \
+ if(d < (1<<7)) { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \
+ } else { \
+ /* unsigned 8 */ \
+ unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } \
+ } else { \
+ if(d < (1<<16)) { \
+ /* unsigned 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } else { \
+ /* unsigned 32 */ \
+ unsigned char buf[5]; \
+ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \
+ msgpack_pack_append_buffer(x, buf, 5); \
+ } \
+ } \
+} while(0)
+
+#define msgpack_pack_real_uint64(x, d) \
+do { \
+ if(d < (1ULL<<8)) { \
+ if(d < (1ULL<<7)) { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \
+ } else { \
+ /* unsigned 8 */ \
+ unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } \
+ } else { \
+ if(d < (1ULL<<16)) { \
+ /* unsigned 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } else if(d < (1ULL<<32)) { \
+ /* unsigned 32 */ \
+ unsigned char buf[5]; \
+ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \
+ msgpack_pack_append_buffer(x, buf, 5); \
+ } else { \
+ /* unsigned 64 */ \
+ unsigned char buf[9]; \
+ buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \
+ msgpack_pack_append_buffer(x, buf, 9); \
+ } \
+ } \
+} while(0)
+
+#define msgpack_pack_real_int8(x, d) \
+do { \
+ if(d < -(1<<5)) { \
+ /* signed 8 */ \
+ unsigned char buf[2] = {0xd0, TAKE8_8(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } else { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \
+ } \
+} while(0)
+
+#define msgpack_pack_real_int16(x, d) \
+do { \
+ if(d < -(1<<5)) { \
+ if(d < -(1<<7)) { \
+ /* signed 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } else { \
+ /* signed 8 */ \
+ unsigned char buf[2] = {0xd0, TAKE8_16(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } \
+ } else if(d < (1<<7)) { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \
+ } else { \
+ if(d < (1<<8)) { \
+ /* unsigned 8 */ \
+ unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } else { \
+ /* unsigned 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } \
+ } \
+} while(0)
+
+#define msgpack_pack_real_int32(x, d) \
+do { \
+ if(d < -(1<<5)) { \
+ if(d < -(1<<15)) { \
+ /* signed 32 */ \
+ unsigned char buf[5]; \
+ buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \
+ msgpack_pack_append_buffer(x, buf, 5); \
+ } else if(d < -(1<<7)) { \
+ /* signed 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } else { \
+ /* signed 8 */ \
+ unsigned char buf[2] = {0xd0, TAKE8_32(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } \
+ } else if(d < (1<<7)) { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \
+ } else { \
+ if(d < (1<<8)) { \
+ /* unsigned 8 */ \
+ unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } else if(d < (1<<16)) { \
+ /* unsigned 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } else { \
+ /* unsigned 32 */ \
+ unsigned char buf[5]; \
+ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \
+ msgpack_pack_append_buffer(x, buf, 5); \
+ } \
+ } \
+} while(0)
+
+#define msgpack_pack_real_int64(x, d) \
+do { \
+ if(d < -(1LL<<5)) { \
+ if(d < -(1LL<<15)) { \
+ if(d < -(1LL<<31)) { \
+ /* signed 64 */ \
+ unsigned char buf[9]; \
+ buf[0] = 0xd3; _msgpack_store64(&buf[1], d); \
+ msgpack_pack_append_buffer(x, buf, 9); \
+ } else { \
+ /* signed 32 */ \
+ unsigned char buf[5]; \
+ buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \
+ msgpack_pack_append_buffer(x, buf, 5); \
+ } \
+ } else { \
+ if(d < -(1<<7)) { \
+ /* signed 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } else { \
+ /* signed 8 */ \
+ unsigned char buf[2] = {0xd0, TAKE8_64(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } \
+ } \
+ } else if(d < (1<<7)) { \
+ /* fixnum */ \
+ msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \
+ } else { \
+ if(d < (1LL<<16)) { \
+ if(d < (1<<8)) { \
+ /* unsigned 8 */ \
+ unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \
+ msgpack_pack_append_buffer(x, buf, 2); \
+ } else { \
+ /* unsigned 16 */ \
+ unsigned char buf[3]; \
+ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \
+ msgpack_pack_append_buffer(x, buf, 3); \
+ } \
+ } else { \
+ if(d < (1LL<<32)) { \
+ /* unsigned 32 */ \
+ unsigned char buf[5]; \
+ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \
+ msgpack_pack_append_buffer(x, buf, 5); \
+ } else { \
+ /* unsigned 64 */ \
+ unsigned char buf[9]; \
+ buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \
+ msgpack_pack_append_buffer(x, buf, 9); \
+ } \
+ } \
+ } \
+} while(0)
+
+
+#ifdef msgpack_pack_inline_func_fixint
+
+msgpack_pack_inline_func_fixint(_uint8)(msgpack_pack_user x, uint8_t d)
+{
+ unsigned char buf[2] = {0xcc, TAKE8_8(d)};
+ msgpack_pack_append_buffer(x, buf, 2);
+}
+
+msgpack_pack_inline_func_fixint(_uint16)(msgpack_pack_user x, uint16_t d)
+{
+ unsigned char buf[3];
+ buf[0] = 0xcd; _msgpack_store16(&buf[1], d);
+ msgpack_pack_append_buffer(x, buf, 3);
+}
+
+msgpack_pack_inline_func_fixint(_uint32)(msgpack_pack_user x, uint32_t d)
+{
+ unsigned char buf[5];
+ buf[0] = 0xce; _msgpack_store32(&buf[1], d);
+ msgpack_pack_append_buffer(x, buf, 5);
+}
+
+msgpack_pack_inline_func_fixint(_uint64)(msgpack_pack_user x, uint64_t d)
+{
+ unsigned char buf[9];
+ buf[0] = 0xcf; _msgpack_store64(&buf[1], d);
+ msgpack_pack_append_buffer(x, buf, 9);
+}
+
+msgpack_pack_inline_func_fixint(_int8)(msgpack_pack_user x, int8_t d)
+{
+ unsigned char buf[2] = {0xd0, TAKE8_8(d)};
+ msgpack_pack_append_buffer(x, buf, 2);
+}
+
+msgpack_pack_inline_func_fixint(_int16)(msgpack_pack_user x, int16_t d)
+{
+ unsigned char buf[3];
+ buf[0] = 0xd1; _msgpack_store16(&buf[1], d);
+ msgpack_pack_append_buffer(x, buf, 3);
+}
+
+msgpack_pack_inline_func_fixint(_int32)(msgpack_pack_user x, int32_t d)
+{
+ unsigned char buf[5];
+ buf[0] = 0xd2; _msgpack_store32(&buf[1], d);
+ msgpack_pack_append_buffer(x, buf, 5);
+}
+
+msgpack_pack_inline_func_fixint(_int64)(msgpack_pack_user x, int64_t d)
+{
+ unsigned char buf[9];
+ buf[0] = 0xd3; _msgpack_store64(&buf[1], d);
+ msgpack_pack_append_buffer(x, buf, 9);
+}
+
+#undef msgpack_pack_inline_func_fixint
+#endif
+
+
+msgpack_pack_inline_func(_uint8)(msgpack_pack_user x, uint8_t d)
+{
+ msgpack_pack_real_uint8(x, d);
+}
+
+msgpack_pack_inline_func(_uint16)(msgpack_pack_user x, uint16_t d)
+{
+ msgpack_pack_real_uint16(x, d);
+}
+
+msgpack_pack_inline_func(_uint32)(msgpack_pack_user x, uint32_t d)
+{
+ msgpack_pack_real_uint32(x, d);
+}
+
+msgpack_pack_inline_func(_uint64)(msgpack_pack_user x, uint64_t d)
+{
+ msgpack_pack_real_uint64(x, d);
+}
+
+msgpack_pack_inline_func(_int8)(msgpack_pack_user x, int8_t d)
+{
+ msgpack_pack_real_int8(x, d);
+}
+
+msgpack_pack_inline_func(_int16)(msgpack_pack_user x, int16_t d)
+{
+ msgpack_pack_real_int16(x, d);
+}
+
+msgpack_pack_inline_func(_int32)(msgpack_pack_user x, int32_t d)
+{
+ msgpack_pack_real_int32(x, d);
+}
+
+msgpack_pack_inline_func(_int64)(msgpack_pack_user x, int64_t d)
+{
+ msgpack_pack_real_int64(x, d);
+}
+
+msgpack_pack_inline_func(_char)(msgpack_pack_user x, char d)
+{
+#if defined(CHAR_MIN)
+#if CHAR_MIN < 0
+ msgpack_pack_real_int8(x, d);
+#else
+ msgpack_pack_real_uint8(x, d);
+#endif
+#else
+#error CHAR_MIN is not defined
+#endif
+}
+
+msgpack_pack_inline_func(_signed_char)(msgpack_pack_user x, signed char d)
+{
+ msgpack_pack_real_int8(x, d);
+}
+
+msgpack_pack_inline_func(_unsigned_char)(msgpack_pack_user x, unsigned char d)
+{
+ msgpack_pack_real_uint8(x, d);
+}
+
+#ifdef msgpack_pack_inline_func_cint
+
+msgpack_pack_inline_func_cint(_short)(msgpack_pack_user x, short d)
+{
+#if defined(SIZEOF_SHORT)
+#if SIZEOF_SHORT == 2
+ msgpack_pack_real_int16(x, d);
+#elif SIZEOF_SHORT == 4
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#elif defined(SHRT_MAX)
+#if SHRT_MAX == 0x7fff
+ msgpack_pack_real_int16(x, d);
+#elif SHRT_MAX == 0x7fffffff
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#else
+if(sizeof(short) == 2) {
+ msgpack_pack_real_int16(x, d);
+} else if(sizeof(short) == 4) {
+ msgpack_pack_real_int32(x, d);
+} else {
+ msgpack_pack_real_int64(x, d);
+}
+#endif
+}
+
+msgpack_pack_inline_func_cint(_int)(msgpack_pack_user x, int d)
+{
+#if defined(SIZEOF_INT)
+#if SIZEOF_INT == 2
+ msgpack_pack_real_int16(x, d);
+#elif SIZEOF_INT == 4
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#elif defined(INT_MAX)
+#if INT_MAX == 0x7fff
+ msgpack_pack_real_int16(x, d);
+#elif INT_MAX == 0x7fffffff
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#else
+if(sizeof(int) == 2) {
+ msgpack_pack_real_int16(x, d);
+} else if(sizeof(int) == 4) {
+ msgpack_pack_real_int32(x, d);
+} else {
+ msgpack_pack_real_int64(x, d);
+}
+#endif
+}
+
+msgpack_pack_inline_func_cint(_long)(msgpack_pack_user x, long d)
+{
+#if defined(SIZEOF_LONG)
+#if SIZEOF_LONG == 2
+ msgpack_pack_real_int16(x, d);
+#elif SIZEOF_LONG == 4
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#elif defined(LONG_MAX)
+#if LONG_MAX == 0x7fffL
+ msgpack_pack_real_int16(x, d);
+#elif LONG_MAX == 0x7fffffffL
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#else
+if(sizeof(long) == 2) {
+ msgpack_pack_real_int16(x, d);
+} else if(sizeof(long) == 4) {
+ msgpack_pack_real_int32(x, d);
+} else {
+ msgpack_pack_real_int64(x, d);
+}
+#endif
+}
+
+msgpack_pack_inline_func_cint(_long_long)(msgpack_pack_user x, long long d)
+{
+#if defined(SIZEOF_LONG_LONG)
+#if SIZEOF_LONG_LONG == 2
+ msgpack_pack_real_int16(x, d);
+#elif SIZEOF_LONG_LONG == 4
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#elif defined(LLONG_MAX)
+#if LLONG_MAX == 0x7fffL
+ msgpack_pack_real_int16(x, d);
+#elif LLONG_MAX == 0x7fffffffL
+ msgpack_pack_real_int32(x, d);
+#else
+ msgpack_pack_real_int64(x, d);
+#endif
+
+#else
+if(sizeof(long long) == 2) {
+ msgpack_pack_real_int16(x, d);
+} else if(sizeof(long long) == 4) {
+ msgpack_pack_real_int32(x, d);
+} else {
+ msgpack_pack_real_int64(x, d);
+}
+#endif
+}
+
+msgpack_pack_inline_func_cint(_unsigned_short)(msgpack_pack_user x, unsigned short d)
+{
+#if defined(SIZEOF_SHORT)
+#if SIZEOF_SHORT == 2
+ msgpack_pack_real_uint16(x, d);
+#elif SIZEOF_SHORT == 4
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#elif defined(USHRT_MAX)
+#if USHRT_MAX == 0xffffU
+ msgpack_pack_real_uint16(x, d);
+#elif USHRT_MAX == 0xffffffffU
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#else
+if(sizeof(unsigned short) == 2) {
+ msgpack_pack_real_uint16(x, d);
+} else if(sizeof(unsigned short) == 4) {
+ msgpack_pack_real_uint32(x, d);
+} else {
+ msgpack_pack_real_uint64(x, d);
+}
+#endif
+}
+
+msgpack_pack_inline_func_cint(_unsigned_int)(msgpack_pack_user x, unsigned int d)
+{
+#if defined(SIZEOF_INT)
+#if SIZEOF_INT == 2
+ msgpack_pack_real_uint16(x, d);
+#elif SIZEOF_INT == 4
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#elif defined(UINT_MAX)
+#if UINT_MAX == 0xffffU
+ msgpack_pack_real_uint16(x, d);
+#elif UINT_MAX == 0xffffffffU
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#else
+if(sizeof(unsigned int) == 2) {
+ msgpack_pack_real_uint16(x, d);
+} else if(sizeof(unsigned int) == 4) {
+ msgpack_pack_real_uint32(x, d);
+} else {
+ msgpack_pack_real_uint64(x, d);
+}
+#endif
+}
+
+msgpack_pack_inline_func_cint(_unsigned_long)(msgpack_pack_user x, unsigned long d)
+{
+#if defined(SIZEOF_LONG)
+#if SIZEOF_LONG == 2
+ msgpack_pack_real_uint16(x, d);
+#elif SIZEOF_LONG == 4
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#elif defined(ULONG_MAX)
+#if ULONG_MAX == 0xffffUL
+ msgpack_pack_real_uint16(x, d);
+#elif ULONG_MAX == 0xffffffffUL
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#else
+if(sizeof(unsigned long) == 2) {
+ msgpack_pack_real_uint16(x, d);
+} else if(sizeof(unsigned long) == 4) {
+ msgpack_pack_real_uint32(x, d);
+} else {
+ msgpack_pack_real_uint64(x, d);
+}
+#endif
+}
+
+msgpack_pack_inline_func_cint(_unsigned_long_long)(msgpack_pack_user x, unsigned long long d)
+{
+#if defined(SIZEOF_LONG_LONG)
+#if SIZEOF_LONG_LONG == 2
+ msgpack_pack_real_uint16(x, d);
+#elif SIZEOF_LONG_LONG == 4
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#elif defined(ULLONG_MAX)
+#if ULLONG_MAX == 0xffffUL
+ msgpack_pack_real_uint16(x, d);
+#elif ULLONG_MAX == 0xffffffffUL
+ msgpack_pack_real_uint32(x, d);
+#else
+ msgpack_pack_real_uint64(x, d);
+#endif
+
+#else
+if(sizeof(unsigned long long) == 2) {
+ msgpack_pack_real_uint16(x, d);
+} else if(sizeof(unsigned long long) == 4) {
+ msgpack_pack_real_uint32(x, d);
+} else {
+ msgpack_pack_real_uint64(x, d);
+}
+#endif
+}
+
+#undef msgpack_pack_inline_func_cint
+#endif
+
+
+
+/*
+ * Float
+ */
+
+msgpack_pack_inline_func(_float)(msgpack_pack_user x, float d)
+{
+ unsigned char buf[5];
+ union { float f; uint32_t i; } mem;
+ mem.f = d;
+ buf[0] = 0xca; _msgpack_store32(&buf[1], mem.i);
+ msgpack_pack_append_buffer(x, buf, 5);
+}
+
+msgpack_pack_inline_func(_double)(msgpack_pack_user x, double d)
+{
+ unsigned char buf[9];
+ union { double f; uint64_t i; } mem;
+ mem.f = d;
+ buf[0] = 0xcb;
+#if defined(TARGET_OS_IPHONE)
+ // ok
+#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi
+ // https://github.com/msgpack/msgpack-perl/pull/1
+ mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL);
+#endif
+ _msgpack_store64(&buf[1], mem.i);
+ msgpack_pack_append_buffer(x, buf, 9);
+}
+
+
+/*
+ * Nil
+ */
+
+msgpack_pack_inline_func(_nil)(msgpack_pack_user x)
+{
+ static const unsigned char d = 0xc0;
+ msgpack_pack_append_buffer(x, &d, 1);
+}
+
+
+/*
+ * Boolean
+ */
+
+msgpack_pack_inline_func(_true)(msgpack_pack_user x)
+{
+ static const unsigned char d = 0xc3;
+ msgpack_pack_append_buffer(x, &d, 1);
+}
+
+msgpack_pack_inline_func(_false)(msgpack_pack_user x)
+{
+ static const unsigned char d = 0xc2;
+ msgpack_pack_append_buffer(x, &d, 1);
+}
+
+
+/*
+ * Array
+ */
+
+msgpack_pack_inline_func(_array)(msgpack_pack_user x, size_t n)
+{
+ if(n < 16) {
+ unsigned char d = 0x90 | (uint8_t)n;
+ msgpack_pack_append_buffer(x, &d, 1);
+ } else if(n < 65536) {
+ unsigned char buf[3];
+ buf[0] = 0xdc; _msgpack_store16(&buf[1], (uint16_t)n);
+ msgpack_pack_append_buffer(x, buf, 3);
+ } else {
+ unsigned char buf[5];
+ buf[0] = 0xdd; _msgpack_store32(&buf[1], (uint32_t)n);
+ msgpack_pack_append_buffer(x, buf, 5);
+ }
+}
+
+
+/*
+ * Map
+ */
+
+msgpack_pack_inline_func(_map)(msgpack_pack_user x, size_t n)
+{
+ if(n < 16) {
+ unsigned char d = 0x80 | (uint8_t)n;
+ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1);
+ } else if(n < 65536) {
+ unsigned char buf[3];
+ buf[0] = 0xde; _msgpack_store16(&buf[1], (uint16_t)n);
+ msgpack_pack_append_buffer(x, buf, 3);
+ } else {
+ unsigned char buf[5];
+ buf[0] = 0xdf; _msgpack_store32(&buf[1], (uint32_t)n);
+ msgpack_pack_append_buffer(x, buf, 5);
+ }
+}
+
+
+/*
+ * Str
+ */
+
+msgpack_pack_inline_func(_str)(msgpack_pack_user x, size_t l)
+{
+ if(l < 32) {
+ unsigned char d = 0xa0 | (uint8_t)l;
+ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1);
+ } else if(l < 256) {
+ unsigned char buf[2];
+ buf[0] = 0xd9; buf[1] = (uint8_t)l;
+ msgpack_pack_append_buffer(x, buf, 2);
+ } else if(l < 65536) {
+ unsigned char buf[3];
+ buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l);
+ msgpack_pack_append_buffer(x, buf, 3);
+ } else {
+ unsigned char buf[5];
+ buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l);
+ msgpack_pack_append_buffer(x, buf, 5);
+ }
+}
+
+msgpack_pack_inline_func(_str_body)(msgpack_pack_user x, const void* b, size_t l)
+{
+ msgpack_pack_append_buffer(x, (const unsigned char*)b, l);
+}
+
+/*
+ * Raw (V4)
+ */
+
+msgpack_pack_inline_func(_v4raw)(msgpack_pack_user x, size_t l)
+{
+ if(l < 32) {
+ unsigned char d = 0xa0 | (uint8_t)l;
+ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1);
+ } else if(l < 65536) {
+ unsigned char buf[3];
+ buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l);
+ msgpack_pack_append_buffer(x, buf, 3);
+ } else {
+ unsigned char buf[5];
+ buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l);
+ msgpack_pack_append_buffer(x, buf, 5);
+ }
+}
+
+msgpack_pack_inline_func(_v4raw_body)(msgpack_pack_user x, const void* b, size_t l)
+{
+ msgpack_pack_append_buffer(x, (const unsigned char*)b, l);
+}
+
+/*
+ * Bin
+ */
+
+msgpack_pack_inline_func(_bin)(msgpack_pack_user x, size_t l)
+{
+ if(l < 256) {
+ unsigned char buf[2];
+ buf[0] = 0xc4; buf[1] = (uint8_t)l;
+ msgpack_pack_append_buffer(x, buf, 2);
+ } else if(l < 65536) {
+ unsigned char buf[3];
+ buf[0] = 0xc5; _msgpack_store16(&buf[1], (uint16_t)l);
+ msgpack_pack_append_buffer(x, buf, 3);
+ } else {
+ unsigned char buf[5];
+ buf[0] = 0xc6; _msgpack_store32(&buf[1], (uint32_t)l);
+ msgpack_pack_append_buffer(x, buf, 5);
+ }
+}
+
+msgpack_pack_inline_func(_bin_body)(msgpack_pack_user x, const void* b, size_t l)
+{
+ msgpack_pack_append_buffer(x, (const unsigned char*)b, l);
+}
+
+/*
+ * Ext
+ */
+
+msgpack_pack_inline_func(_ext)(msgpack_pack_user x, size_t l, int8_t type)
+{
+ switch(l) {
+ case 1: {
+ unsigned char buf[2];
+ buf[0] = 0xd4;
+ buf[1] = type;
+ msgpack_pack_append_buffer(x, buf, 2);
+ } break;
+ case 2: {
+ unsigned char buf[2];
+ buf[0] = 0xd5;
+ buf[1] = type;
+ msgpack_pack_append_buffer(x, buf, 2);
+ } break;
+ case 4: {
+ unsigned char buf[2];
+ buf[0] = 0xd6;
+ buf[1] = type;
+ msgpack_pack_append_buffer(x, buf, 2);
+ } break;
+ case 8: {
+ unsigned char buf[2];
+ buf[0] = 0xd7;
+ buf[1] = type;
+ msgpack_pack_append_buffer(x, buf, 2);
+ } break;
+ case 16: {
+ unsigned char buf[2];
+ buf[0] = 0xd8;
+ buf[1] = type;
+ msgpack_pack_append_buffer(x, buf, 2);
+ } break;
+ default:
+ if(l < 256) {
+ unsigned char buf[3];
+ buf[0] = 0xc7;
+ buf[1] = (unsigned char)l;
+ buf[2] = type;
+ msgpack_pack_append_buffer(x, buf, 3);
+ } else if(l < 65536) {
+ unsigned char buf[4];
+ buf[0] = 0xc8;
+ _msgpack_store16(&buf[1], l);
+ buf[3] = type;
+ msgpack_pack_append_buffer(x, buf, 4);
+ } else {
+ unsigned char buf[6];
+ buf[0] = 0xc9;
+ _msgpack_store32(&buf[1], l);
+ buf[5] = type;
+ msgpack_pack_append_buffer(x, buf, 6);
+ }
+ break;
+ }
+}
+
+msgpack_pack_inline_func(_ext_body)(msgpack_pack_user x, const void* b, size_t l)
+{
+ msgpack_pack_append_buffer(x, (const unsigned char*)b, l);
+}
+
+#undef msgpack_pack_inline_func
+#undef msgpack_pack_user
+#undef msgpack_pack_append_buffer
+
+#undef TAKE8_8
+#undef TAKE8_16
+#undef TAKE8_32
+#undef TAKE8_64
+
+#undef msgpack_pack_real_uint8
+#undef msgpack_pack_real_uint16
+#undef msgpack_pack_real_uint32
+#undef msgpack_pack_real_uint64
+#undef msgpack_pack_real_int8
+#undef msgpack_pack_real_int16
+#undef msgpack_pack_real_int32
+#undef msgpack_pack_real_int64
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef.h
new file mode 100644
index 000000000..db2d2b584
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef.h
@@ -0,0 +1,19 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_H
+#define MSGPACK_PREDEF_H
+
+#include <rpc/msgpack/predef/language.h>
+#include <rpc/msgpack/predef/architecture.h>
+#include <rpc/msgpack/predef/compiler.h>
+#include <rpc/msgpack/predef/library.h>
+#include <rpc/msgpack/predef/os.h>
+#include <rpc/msgpack/predef/other.h>
+#include <rpc/msgpack/predef/platform.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h
new file mode 100644
index 000000000..4a0ce2749
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture.h
@@ -0,0 +1,30 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_H
+#define MSGPACK_PREDEF_ARCHITECTURE_H
+
+#include <rpc/msgpack/predef/architecture/alpha.h>
+#include <rpc/msgpack/predef/architecture/arm.h>
+#include <rpc/msgpack/predef/architecture/blackfin.h>
+#include <rpc/msgpack/predef/architecture/convex.h>
+#include <rpc/msgpack/predef/architecture/ia64.h>
+#include <rpc/msgpack/predef/architecture/m68k.h>
+#include <rpc/msgpack/predef/architecture/mips.h>
+#include <rpc/msgpack/predef/architecture/parisc.h>
+#include <rpc/msgpack/predef/architecture/ppc.h>
+#include <rpc/msgpack/predef/architecture/pyramid.h>
+#include <rpc/msgpack/predef/architecture/rs6k.h>
+#include <rpc/msgpack/predef/architecture/sparc.h>
+#include <rpc/msgpack/predef/architecture/superh.h>
+#include <rpc/msgpack/predef/architecture/sys370.h>
+#include <rpc/msgpack/predef/architecture/sys390.h>
+#include <rpc/msgpack/predef/architecture/x86.h>
+#include <rpc/msgpack/predef/architecture/z.h>
+/*#include <rpc/msgpack/predef/architecture/.h>*/
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/alpha.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/alpha.h
new file mode 100644
index 000000000..195155b25
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/alpha.h
@@ -0,0 +1,60 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_ALPHA_H
+#define MSGPACK_PREDEF_ARCHITECTURE_ALPHA_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_ALPHA`]
+
+[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+ [[`__alpha__`] [__predef_detection__]]
+ [[`__alpha`] [__predef_detection__]]
+ [[`_M_ALPHA`] [__predef_detection__]]
+
+ [[`__alpha_ev4__`] [4.0.0]]
+ [[`__alpha_ev5__`] [5.0.0]]
+ [[`__alpha_ev6__`] [6.0.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__alpha__) || defined(__alpha) || \
+ defined(_M_ALPHA)
+# undef MSGPACK_ARCH_ALPHA
+# if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev4__)
+# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(4,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev5__)
+# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(5,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev6__)
+# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(6,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_ALPHA)
+# define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_ALPHA
+# define MSGPACK_ARCH_ALPHA_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_ALPHA_NAME "DEC Alpha"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ALPHA,MSGPACK_ARCH_ALPHA_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/arm.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/arm.h
new file mode 100644
index 000000000..bfc4a3404
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/arm.h
@@ -0,0 +1,71 @@
+/*
+Copyright Rene Rivera 2008-2013
+Copyright Franz Detro 2014
+Copyright (c) Microsoft Corporation 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_ARM_H
+#define MSGPACK_PREDEF_ARCHITECTURE_ARM_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_ARM`]
+
+[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__arm__`] [__predef_detection__]]
+ [[`__arm64`] [__predef_detection__]]
+ [[`__thumb__`] [__predef_detection__]]
+ [[`__TARGET_ARCH_ARM`] [__predef_detection__]]
+ [[`__TARGET_ARCH_THUMB`] [__predef_detection__]]
+ [[`_M_ARM`] [__predef_detection__]]
+
+ [[`__arm64`] [8.0.0]]
+ [[`__TARGET_ARCH_ARM`] [V.0.0]]
+ [[`__TARGET_ARCH_THUMB`] [V.0.0]]
+ [[`_M_ARM`] [V.0.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \
+ defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \
+ defined(_M_ARM)
+# undef MSGPACK_ARCH_ARM
+# if !defined(MSGPACK_ARCH_ARM) && defined(__arm64)
+# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(8,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_ARM)
+# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_THUMB)
+# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_ARM) && defined(_M_ARM)
+# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(_M_ARM,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_ARM)
+# define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_ARM
+# define MSGPACK_ARCH_ARM_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_ARM_NAME "ARM"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ARM,MSGPACK_ARCH_ARM_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/blackfin.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/blackfin.h
new file mode 100644
index 000000000..3b4de2005
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/blackfin.h
@@ -0,0 +1,47 @@
+/*
+Copyright Rene Rivera 2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_BLACKFIN_H
+#define MSGPACK_PREDEF_ARCHITECTURE_BLACKFIN_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_BLACKFIN`]
+
+Blackfin Processors from Analog Devices.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__bfin__`] [__predef_detection__]]
+ [[`__BFIN__`] [__predef_detection__]]
+ [[`bfin`] [__predef_detection__]]
+ [[`BFIN`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__bfin__) || defined(__BFIN__) || \
+ defined(bfin) || defined(BFIN)
+# undef MSGPACK_ARCH_BLACKFIN
+# define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_BLACKFIN
+# define MSGPACK_ARCH_BLACKFIN_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_BLACKFIN_NAME "Blackfin"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_BLACKFIN,MSGPACK_ARCH_BLACKFIN_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/convex.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/convex.h
new file mode 100644
index 000000000..b04bdda70
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/convex.h
@@ -0,0 +1,67 @@
+/*
+Copyright Rene Rivera 2011-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_CONVEX_H
+#define MSGPACK_PREDEF_ARCHITECTURE_CONVEX_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_CONVEX`]
+
+[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__convex__`] [__predef_detection__]]
+
+ [[`__convex_c1__`] [1.0.0]]
+ [[`__convex_c2__`] [2.0.0]]
+ [[`__convex_c32__`] [3.2.0]]
+ [[`__convex_c34__`] [3.4.0]]
+ [[`__convex_c38__`] [3.8.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__convex__)
+# undef MSGPACK_ARCH_CONVEX
+# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c1__)
+# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(1,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c2__)
+# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(2,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c32__)
+# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,2,0)
+# endif
+# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c34__)
+# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,4,0)
+# endif
+# if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c38__)
+# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,8,0)
+# endif
+# if !defined(MSGPACK_ARCH_CONVEX)
+# define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_CONVEX
+# define MSGPACK_ARCH_CONVEX_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_CONVEX_NAME "Convex Computer"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_CONVEX,MSGPACK_ARCH_CONVEX_NAME)
+
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ia64.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ia64.h
new file mode 100644
index 000000000..7ee61db36
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ia64.h
@@ -0,0 +1,49 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_IA64_H
+#define MSGPACK_PREDEF_ARCHITECTURE_IA64_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_IA64`]
+
+[@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__ia64__`] [__predef_detection__]]
+ [[`_IA64`] [__predef_detection__]]
+ [[`__IA64__`] [__predef_detection__]]
+ [[`__ia64`] [__predef_detection__]]
+ [[`_M_IA64`] [__predef_detection__]]
+ [[`__itanium__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__ia64__) || defined(_IA64) || \
+ defined(__IA64__) || defined(__ia64) || \
+ defined(_M_IA64) || defined(__itanium__)
+# undef MSGPACK_ARCH_IA64
+# define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_IA64
+# define MSGPACK_ARCH_IA64_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_IA64_NAME "Intel Itanium 64"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_IA64,MSGPACK_ARCH_IA64_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/m68k.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/m68k.h
new file mode 100644
index 000000000..cbf8e7fd9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/m68k.h
@@ -0,0 +1,83 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_M68K_H
+#define MSGPACK_PREDEF_ARCHITECTURE_M68K_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_M68K`]
+
+[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__m68k__`] [__predef_detection__]]
+ [[`M68000`] [__predef_detection__]]
+
+ [[`__mc68060__`] [6.0.0]]
+ [[`mc68060`] [6.0.0]]
+ [[`__mc68060`] [6.0.0]]
+ [[`__mc68040__`] [4.0.0]]
+ [[`mc68040`] [4.0.0]]
+ [[`__mc68040`] [4.0.0]]
+ [[`__mc68030__`] [3.0.0]]
+ [[`mc68030`] [3.0.0]]
+ [[`__mc68030`] [3.0.0]]
+ [[`__mc68020__`] [2.0.0]]
+ [[`mc68020`] [2.0.0]]
+ [[`__mc68020`] [2.0.0]]
+ [[`__mc68010__`] [1.0.0]]
+ [[`mc68010`] [1.0.0]]
+ [[`__mc68010`] [1.0.0]]
+ [[`__mc68000__`] [0.0.1]]
+ [[`mc68000`] [0.0.1]]
+ [[`__mc68000`] [0.0.1]]
+ ]
+ */
+
+#define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__m68k__) || defined(M68000)
+# undef MSGPACK_ARCH_M68K
+# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68060__) || defined(mc68060) || defined(__mc68060))
+# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(6,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68040__) || defined(mc68040) || defined(__mc68040))
+# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(4,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68030__) || defined(mc68030) || defined(__mc68030))
+# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(3,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68020__) || defined(mc68020) || defined(__mc68020))
+# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(2,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68010__) || defined(mc68010) || defined(__mc68010))
+# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(1,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68000__) || defined(mc68000) || defined(__mc68000))
+# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# if !defined(MSGPACK_ARCH_M68K)
+# define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_M68K
+# define MSGPACK_ARCH_M68K_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_M68K_NAME "Motorola 68k"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_M68K,MSGPACK_ARCH_M68K_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/mips.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/mips.h
new file mode 100644
index 000000000..b2b401577
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/mips.h
@@ -0,0 +1,74 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_MIPS_H
+#define MSGPACK_PREDEF_ARCHITECTURE_MIPS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_MIPS`]
+
+[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__mips__`] [__predef_detection__]]
+ [[`__mips`] [__predef_detection__]]
+ [[`__MIPS__`] [__predef_detection__]]
+
+ [[`__mips`] [V.0.0]]
+ [[`_MIPS_ISA_MIPS1`] [1.0.0]]
+ [[`_R3000`] [1.0.0]]
+ [[`_MIPS_ISA_MIPS2`] [2.0.0]]
+ [[`__MIPS_ISA2__`] [2.0.0]]
+ [[`_R4000`] [2.0.0]]
+ [[`_MIPS_ISA_MIPS3`] [3.0.0]]
+ [[`__MIPS_ISA3__`] [3.0.0]]
+ [[`_MIPS_ISA_MIPS4`] [4.0.0]]
+ [[`__MIPS_ISA4__`] [4.0.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__mips__) || defined(__mips) || \
+ defined(__MIPS__)
+# undef MSGPACK_ARCH_MIPS
+# if !defined(MSGPACK_ARCH_MIPS) && (defined(__mips))
+# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(__mips,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS1) || defined(_R3000))
+# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(1,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS2) || defined(__MIPS_ISA2__) || defined(_R4000))
+# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(2,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS3) || defined(__MIPS_ISA3__))
+# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(3,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS4) || defined(__MIPS_ISA4__))
+# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(4,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_MIPS)
+# define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_MIPS
+# define MSGPACK_ARCH_MIPS_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_MIPS_NAME "MIPS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_MIPS,MSGPACK_ARCH_MIPS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/parisc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/parisc.h
new file mode 100644
index 000000000..77280cc26
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/parisc.h
@@ -0,0 +1,65 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_PARISC_H
+#define MSGPACK_PREDEF_ARCHITECTURE_PARISC_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_PARISK`]
+
+[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__hppa__`] [__predef_detection__]]
+ [[`__hppa`] [__predef_detection__]]
+ [[`__HPPA__`] [__predef_detection__]]
+
+ [[`_PA_RISC1_0`] [1.0.0]]
+ [[`_PA_RISC1_1`] [1.1.0]]
+ [[`__HPPA11__`] [1.1.0]]
+ [[`__PA7100__`] [1.1.0]]
+ [[`_PA_RISC2_0`] [2.0.0]]
+ [[`__RISC2_0__`] [2.0.0]]
+ [[`__HPPA20__`] [2.0.0]]
+ [[`__PA8000__`] [2.0.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__)
+# undef MSGPACK_ARCH_PARISC
+# if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_0))
+# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__))
+# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,1,0)
+# endif
+# if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__))
+# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(2,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_PARISC)
+# define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_PARISC
+# define MSGPACK_ARCH_PARISC_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_PARISC_NAME "HP/PA RISC"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PARISC,MSGPACK_ARCH_PARISC_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ppc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ppc.h
new file mode 100644
index 000000000..f9fda2fc2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/ppc.h
@@ -0,0 +1,73 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_PPC_H
+#define MSGPACK_PREDEF_ARCHITECTURE_PPC_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_PPC`]
+
+[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__powerpc`] [__predef_detection__]]
+ [[`__powerpc__`] [__predef_detection__]]
+ [[`__POWERPC__`] [__predef_detection__]]
+ [[`__ppc__`] [__predef_detection__]]
+ [[`_M_PPC`] [__predef_detection__]]
+ [[`_ARCH_PPC`] [__predef_detection__]]
+ [[`__PPCGECKO__`] [__predef_detection__]]
+ [[`__PPCBROADWAY__`] [__predef_detection__]]
+ [[`_XENON`] [__predef_detection__]]
+
+ [[`__ppc601__`] [6.1.0]]
+ [[`_ARCH_601`] [6.1.0]]
+ [[`__ppc603__`] [6.3.0]]
+ [[`_ARCH_603`] [6.3.0]]
+ [[`__ppc604__`] [6.4.0]]
+ [[`__ppc604__`] [6.4.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__powerpc) || defined(__powerpc__) || \
+ defined(__POWERPC__) || defined(__ppc__) || \
+ defined(_M_PPC) || defined(_ARCH_PPC) || \
+ defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \
+ defined(_XENON)
+# undef MSGPACK_ARCH_PPC
+# if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601))
+# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,1,0)
+# endif
+# if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc603__) || defined(_ARCH_603))
+# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,3,0)
+# endif
+# if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc604__) || defined(__ppc604__))
+# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,4,0)
+# endif
+# if !defined (MSGPACK_ARCH_PPC)
+# define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_PPC
+# define MSGPACK_ARCH_PPC_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_PPC_NAME "PowerPC"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PPC,MSGPACK_ARCH_PPC_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/pyramid.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/pyramid.h
new file mode 100644
index 000000000..80eced6cc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/pyramid.h
@@ -0,0 +1,43 @@
+/*
+Copyright Rene Rivera 2011-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_PYRAMID_H
+#define MSGPACK_PREDEF_ARCHITECTURE_PYRAMID_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_PYRAMID`]
+
+Pyramid 9810 architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`pyr`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(pyr)
+# undef MSGPACK_ARCH_PYRAMID
+# define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_PYRAMID
+# define MSGPACK_ARCH_PYRAMID_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_PYRAMID_NAME "Pyramid 9810"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PYRAMID,MSGPACK_ARCH_PYRAMID_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/rs6k.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/rs6k.h
new file mode 100644
index 000000000..d2a4d2871
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/rs6k.h
@@ -0,0 +1,56 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_RS6K_H
+#define MSGPACK_PREDEF_ARCHITECTURE_RS6K_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_RS6000`]
+
+[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__THW_RS6000`] [__predef_detection__]]
+ [[`_IBMR2`] [__predef_detection__]]
+ [[`_POWER`] [__predef_detection__]]
+ [[`_ARCH_PWR`] [__predef_detection__]]
+ [[`_ARCH_PWR2`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__THW_RS6000) || defined(_IBMR2) || \
+ defined(_POWER) || defined(_ARCH_PWR) || \
+ defined(_ARCH_PWR2)
+# undef MSGPACK_ARCH_RS6000
+# define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_RS6000
+# define MSGPACK_ARCH_RS6000_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_RS6000_NAME "RS/6000"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_RS6000,MSGPACK_ARCH_RS6000_NAME)
+
+#define MSGPACK_ARCH_PWR MSGPACK_ARCH_RS6000
+
+#if MSGPACK_ARCH_PWR
+# define MSGPACK_ARCH_PWR_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_PWR_NAME MSGPACK_ARCH_RS6000_NAME
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sparc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sparc.h
new file mode 100644
index 000000000..cdbccf48d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sparc.h
@@ -0,0 +1,55 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_SPARC_H
+#define MSGPACK_PREDEF_ARCHITECTURE_SPARC_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_SPARC`]
+
+[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__sparc__`] [__predef_detection__]]
+ [[`__sparc`] [__predef_detection__]]
+
+ [[`__sparcv9`] [9.0.0]]
+ [[`__sparcv8`] [8.0.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__sparc__) || defined(__sparc)
+# undef MSGPACK_ARCH_SPARC
+# if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv9)
+# define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(9,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv8)
+# define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(8,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_SPARC)
+# define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_SPARC
+# define MSGPACK_ARCH_SPARC_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_SPARC_NAME "SPARC"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SPARC,MSGPACK_ARCH_SPARC_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/superh.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/superh.h
new file mode 100644
index 000000000..7e7f2aa1d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/superh.h
@@ -0,0 +1,68 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_SUPERH_H
+#define MSGPACK_PREDEF_ARCHITECTURE_SUPERH_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_SH`]
+
+[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture:
+If available versions \[1-5\] are specifically detected.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__sh__`] [__predef_detection__]]
+
+ [[`__SH5__`] [5.0.0]]
+ [[`__SH4__`] [4.0.0]]
+ [[`__sh3__`] [3.0.0]]
+ [[`__SH3__`] [3.0.0]]
+ [[`__sh2__`] [2.0.0]]
+ [[`__sh1__`] [1.0.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__sh__)
+# undef MSGPACK_ARCH_SH
+# if !defined(MSGPACK_ARCH_SH) && (defined(__SH5__))
+# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(5,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_SH) && (defined(__SH4__))
+# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(4,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_SH) && (defined(__sh3__) || defined(__SH3__))
+# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(3,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_SH) && (defined(__sh2__))
+# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(2,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_SH) && (defined(__sh1__))
+# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(1,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_SH)
+# define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_SH
+# define MSGPACK_ARCH_SH_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_SH_NAME "SuperH"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SH,MSGPACK_ARCH_SH_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys370.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys370.h
new file mode 100644
index 000000000..9a2571c74
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys370.h
@@ -0,0 +1,44 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_SYS370_H
+#define MSGPACK_PREDEF_ARCHITECTURE_SYS370_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_SYS370`]
+
+[@http://en.wikipedia.org/wiki/System/370 System/370] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__370__`] [__predef_detection__]]
+ [[`__THW_370__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__370__) || defined(__THW_370__)
+# undef MSGPACK_ARCH_SYS370
+# define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_SYS370
+# define MSGPACK_ARCH_SYS370_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_SYS370_NAME "System/370"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS370,MSGPACK_ARCH_SYS370_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys390.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys390.h
new file mode 100644
index 000000000..d81c95b62
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/sys390.h
@@ -0,0 +1,44 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_SYS390_H
+#define MSGPACK_PREDEF_ARCHITECTURE_SYS390_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_SYS390`]
+
+[@http://en.wikipedia.org/wiki/System/390 System/390] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__s390__`] [__predef_detection__]]
+ [[`__s390x__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__s390__) || defined(__s390x__)
+# undef MSGPACK_ARCH_SYS390
+# define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_SYS390
+# define MSGPACK_ARCH_SYS390_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_SYS390_NAME "System/390"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS390,MSGPACK_ARCH_SYS390_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86.h
new file mode 100644
index 000000000..4aa690cf2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86.h
@@ -0,0 +1,38 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_H
+#define MSGPACK_PREDEF_ARCHITECTURE_X86_H
+
+#include <rpc/msgpack/predef/architecture/x86/32.h>
+#include <rpc/msgpack/predef/architecture/x86/64.h>
+
+/*`
+[heading `MSGPACK_ARCH_X86`]
+
+[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is
+a category to indicate that either `MSGPACK_ARCH_X86_32` or
+`MSGPACK_ARCH_X86_64` is detected.
+ */
+
+#define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if MSGPACK_ARCH_X86_32 || MSGPACK_ARCH_X86_64
+# undef MSGPACK_ARCH_X86
+# define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_X86
+# define MSGPACK_ARCH_X86_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_X86_NAME "Intel x86"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86,MSGPACK_ARCH_X86_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/32.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/32.h
new file mode 100644
index 000000000..d440024de
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/32.h
@@ -0,0 +1,87 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_32_H
+#define MSGPACK_PREDEF_ARCHITECTURE_X86_32_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_X86_32`]
+
+[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture:
+If available versions \[3-6\] are specifically detected.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`i386`] [__predef_detection__]]
+ [[`__i386__`] [__predef_detection__]]
+ [[`__i486__`] [__predef_detection__]]
+ [[`__i586__`] [__predef_detection__]]
+ [[`__i686__`] [__predef_detection__]]
+ [[`__i386`] [__predef_detection__]]
+ [[`_M_IX86`] [__predef_detection__]]
+ [[`_X86_`] [__predef_detection__]]
+ [[`__THW_INTEL__`] [__predef_detection__]]
+ [[`__I86__`] [__predef_detection__]]
+ [[`__INTEL__`] [__predef_detection__]]
+
+ [[`__I86__`] [V.0.0]]
+ [[`_M_IX86`] [V.0.0]]
+ [[`__i686__`] [6.0.0]]
+ [[`__i586__`] [5.0.0]]
+ [[`__i486__`] [4.0.0]]
+ [[`__i386__`] [3.0.0]]
+ ]
+ */
+
+#define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(i386) || defined(__i386__) || \
+ defined(__i486__) || defined(__i586__) || \
+ defined(__i686__) || defined(__i386) || \
+ defined(_M_IX86) || defined(_X86_) || \
+ defined(__THW_INTEL__) || defined(__I86__) || \
+ defined(__INTEL__)
+# undef MSGPACK_ARCH_X86_32
+# if !defined(MSGPACK_ARCH_X86_32) && defined(__I86__)
+# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(__I86__,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_X86_32) && defined(_M_IX86)
+# define MSGPACK_ARCH_X86_32 MSGPACK_PREDEF_MAKE_10_VV00(_M_IX86)
+# endif
+# if !defined(MSGPACK_ARCH_X86_32) && defined(__i686__)
+# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(6,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_X86_32) && defined(__i586__)
+# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(5,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_X86_32) && defined(__i486__)
+# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(4,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_X86_32) && defined(__i386__)
+# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(3,0,0)
+# endif
+# if !defined(MSGPACK_ARCH_X86_32)
+# define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_ARCH_X86_32
+# define MSGPACK_ARCH_X86_32_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_X86_32_NAME "Intel x86-32"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_32,MSGPACK_ARCH_X86_32_NAME)
+
+#include <rpc/msgpack/predef/architecture/x86.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/64.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/64.h
new file mode 100644
index 000000000..ac99a1fc9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/x86/64.h
@@ -0,0 +1,50 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_64_H
+#define MSGPACK_PREDEF_ARCHITECTURE_X86_64_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_X86_64`]
+
+[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__x86_64`] [__predef_detection__]]
+ [[`__x86_64__`] [__predef_detection__]]
+ [[`__amd64__`] [__predef_detection__]]
+ [[`__amd64`] [__predef_detection__]]
+ [[`_M_X64`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__x86_64) || defined(__x86_64__) || \
+ defined(__amd64__) || defined(__amd64) || \
+ defined(_M_X64)
+# undef MSGPACK_ARCH_X86_64
+# define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_X86_64
+# define MSGPACK_ARCH_X86_64_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_X86_64_NAME "Intel x86-64"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_64,MSGPACK_ARCH_X86_64_NAME)
+
+#include <rpc/msgpack/predef/architecture/x86.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/z.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/z.h
new file mode 100644
index 000000000..92152e46c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/architecture/z.h
@@ -0,0 +1,43 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ARCHITECTURE_Z_H
+#define MSGPACK_PREDEF_ARCHITECTURE_Z_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_ARCH_Z`]
+
+[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__SYSC_ZARCH__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__SYSC_ZARCH__)
+# undef MSGPACK_ARCH_Z
+# define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_ARCH_Z
+# define MSGPACK_ARCH_Z_AVAILABLE
+#endif
+
+#define MSGPACK_ARCH_Z_NAME "z/Architecture"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_Z,MSGPACK_ARCH_Z_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler.h
new file mode 100644
index 000000000..2fad5be77
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler.h
@@ -0,0 +1,41 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_H
+#define MSGPACK_PREDEF_COMPILER_H
+
+#include <rpc/msgpack/predef/compiler/borland.h>
+#include <rpc/msgpack/predef/compiler/clang.h>
+#include <rpc/msgpack/predef/compiler/comeau.h>
+#include <rpc/msgpack/predef/compiler/compaq.h>
+#include <rpc/msgpack/predef/compiler/diab.h>
+#include <rpc/msgpack/predef/compiler/digitalmars.h>
+#include <rpc/msgpack/predef/compiler/dignus.h>
+#include <rpc/msgpack/predef/compiler/edg.h>
+#include <rpc/msgpack/predef/compiler/ekopath.h>
+#include <rpc/msgpack/predef/compiler/gcc_xml.h>
+#include <rpc/msgpack/predef/compiler/gcc.h>
+#include <rpc/msgpack/predef/compiler/greenhills.h>
+#include <rpc/msgpack/predef/compiler/hp_acc.h>
+#include <rpc/msgpack/predef/compiler/iar.h>
+#include <rpc/msgpack/predef/compiler/ibm.h>
+#include <rpc/msgpack/predef/compiler/intel.h>
+#include <rpc/msgpack/predef/compiler/kai.h>
+#include <rpc/msgpack/predef/compiler/llvm.h>
+#include <rpc/msgpack/predef/compiler/metaware.h>
+#include <rpc/msgpack/predef/compiler/metrowerks.h>
+#include <rpc/msgpack/predef/compiler/microtec.h>
+#include <rpc/msgpack/predef/compiler/mpw.h>
+#include <rpc/msgpack/predef/compiler/palm.h>
+#include <rpc/msgpack/predef/compiler/pgi.h>
+#include <rpc/msgpack/predef/compiler/sgi_mipspro.h>
+#include <rpc/msgpack/predef/compiler/sunpro.h>
+#include <rpc/msgpack/predef/compiler/tendra.h>
+#include <rpc/msgpack/predef/compiler/visualc.h>
+#include <rpc/msgpack/predef/compiler/watcom.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/borland.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/borland.h
new file mode 100644
index 000000000..eac052651
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/borland.h
@@ -0,0 +1,64 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_BORLAND_H
+#define MSGPACK_PREDEF_COMPILER_BORLAND_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_BORLAND`]
+
+[@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__BORLANDC__`] [__predef_detection__]]
+ [[`__CODEGEARC__`] [__predef_detection__]]
+
+ [[`__BORLANDC__`] [V.R.P]]
+ [[`__CODEGEARC__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_BORLAND MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__BORLANDC__) || defined(__CODEGEARC__)
+# if !defined(MSGPACK_COMP_BORLAND_DETECTION) && (defined(__CODEGEARC__))
+# define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__CODEGEARC__)
+# endif
+# if !defined(MSGPACK_COMP_BORLAND_DETECTION)
+# define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__BORLANDC__)
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_BORLAND_DETECTION
+# define MSGPACK_COMP_BORLAND_AVAILABLE
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_BORLAND_EMULATED MSGPACK_COMP_BORLAND_DETECTION
+# else
+# undef MSGPACK_COMP_BORLAND
+# define MSGPACK_COMP_BORLAND MSGPACK_COMP_BORLAND_DETECTION
+# endif
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_BORLAND_NAME "Borland C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND,MSGPACK_COMP_BORLAND_NAME)
+
+#ifdef MSGPACK_COMP_BORLAND_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND_EMULATED,MSGPACK_COMP_BORLAND_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/clang.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/clang.h
new file mode 100644
index 000000000..5d3dbf2e6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/clang.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_CLANG_H
+#define MSGPACK_PREDEF_COMPILER_CLANG_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_CLANG`]
+
+[@http://en.wikipedia.org/wiki/Clang Clang] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__clang__`] [__predef_detection__]]
+
+ [[`__clang_major__`, `__clang_minor__`, `__clang_patchlevel__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_CLANG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__clang__)
+# define MSGPACK_COMP_CLANG_DETECTION MSGPACK_VERSION_NUMBER(__clang_major__,__clang_minor__,__clang_patchlevel__)
+#endif
+
+#ifdef MSGPACK_COMP_CLANG_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_CLANG_EMULATED MSGPACK_COMP_CLANG_DETECTION
+# else
+# undef MSGPACK_COMP_CLANG
+# define MSGPACK_COMP_CLANG MSGPACK_COMP_CLANG_DETECTION
+# endif
+# define MSGPACK_COMP_CLANG_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_CLANG_NAME "Clang"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG,MSGPACK_COMP_CLANG_NAME)
+
+#ifdef MSGPACK_COMP_CLANG_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG_EMULATED,MSGPACK_COMP_CLANG_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/comeau.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/comeau.h
new file mode 100644
index 000000000..f1badcfe9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/comeau.h
@@ -0,0 +1,62 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_COMEAU_H
+#define MSGPACK_PREDEF_COMPILER_COMEAU_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+#define MSGPACK_COMP_COMO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+/*`
+[heading `MSGPACK_COMP_COMO`]
+
+[@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__COMO__`] [__predef_detection__]]
+
+ [[`__COMO_VERSION__`] [V.R.P]]
+ ]
+ */
+
+#if defined(__COMO__)
+# if !defined(MSGPACK_COMP_COMO_DETECTION) && defined(__CONO_VERSION__)
+# define MSGPACK_COMP_COMO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__COMO_VERSION__)
+# endif
+# if !defined(MSGPACK_COMP_COMO_DETECTION)
+# define MSGPACK_COMP_COMO_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_COMO_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_COMO_EMULATED MSGPACK_COMP_COMO_DETECTION
+# else
+# undef MSGPACK_COMP_COMO
+# define MSGPACK_COMP_COMO MSGPACK_COMP_COMO_DETECTION
+# endif
+# define MSGPACK_COMP_COMO_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_COMO_NAME "Comeau C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO,MSGPACK_COMP_COMO_NAME)
+
+#ifdef MSGPACK_COMP_COMO_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO_EMULATED,MSGPACK_COMP_COMO_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/compaq.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/compaq.h
new file mode 100644
index 000000000..e6047539a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/compaq.h
@@ -0,0 +1,67 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_COMPAQ_H
+#define MSGPACK_PREDEF_COMPILER_COMPAQ_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_DEC`]
+
+[@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__DECCXX`] [__predef_detection__]]
+ [[`__DECC`] [__predef_detection__]]
+
+ [[`__DECCXX_VER`] [V.R.P]]
+ [[`__DECC_VER`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_DEC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__DECC) || defined(__DECCXX)
+# if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECCXX_VER)
+# define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECCXX_VER)
+# endif
+# if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECC_VER)
+# define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECC_VER)
+# endif
+# if !defined(MSGPACK_COMP_DEC_DETECTION)
+# define MSGPACK_COM_DEC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_DEC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_DEC_EMULATED MSGPACK_COMP_DEC_DETECTION
+# else
+# undef MSGPACK_COMP_DEC
+# define MSGPACK_COMP_DEC MSGPACK_COMP_DEC_DETECTION
+# endif
+# define MSGPACK_COMP_DEC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_DEC_NAME "Compaq C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC,MSGPACK_COMP_DEC_NAME)
+
+#ifdef MSGPACK_COMP_DEC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC_EMULATED,MSGPACK_COMP_DEC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/diab.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/diab.h
new file mode 100644
index 000000000..e346c4ffa
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/diab.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_DIAB_H
+#define MSGPACK_PREDEF_COMPILER_DIAB_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_DIAB`]
+
+[@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__DCC__`] [__predef_detection__]]
+
+ [[`__VERSION_NUMBER__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_DIAB MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__DCC__)
+# define MSGPACK_COMP_DIAB_DETECTION MSGPACK_PREDEF_MAKE_10_VRPP(__VERSION_NUMBER__)
+#endif
+
+#ifdef MSGPACK_COMP_DIAB_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_DIAB_EMULATED MSGPACK_COMP_DIAB_DETECTION
+# else
+# undef MSGPACK_COMP_DIAB
+# define MSGPACK_COMP_DIAB MSGPACK_COMP_DIAB_DETECTION
+# endif
+# define MSGPACK_COMP_DIAB_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_DIAB_NAME "Diab C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB,MSGPACK_COMP_DIAB_NAME)
+
+#ifdef MSGPACK_COMP_DIAB_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB_EMULATED,MSGPACK_COMP_DIAB_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/digitalmars.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/digitalmars.h
new file mode 100644
index 000000000..9b00d7d38
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/digitalmars.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_DIGITALMARS_H
+#define MSGPACK_PREDEF_COMPILER_DIGITALMARS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_DMC`]
+
+[@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__DMC__`] [__predef_detection__]]
+
+ [[`__DMC__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_DMC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__DMC__)
+# define MSGPACK_COMP_DMC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__DMC__)
+#endif
+
+#ifdef MSGPACK_COMP_DMC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_DMC_EMULATED MSGPACK_COMP_DMC_DETECTION
+# else
+# undef MSGPACK_COMP_DMC
+# define MSGPACK_COMP_DMC MSGPACK_COMP_DMC_DETECTION
+# endif
+# define MSGPACK_COMP_DMC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_DMC_NAME "Digital Mars"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC,MSGPACK_COMP_DMC_NAME)
+
+#ifdef MSGPACK_COMP_DMC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC_EMULATED,MSGPACK_COMP_DMC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/dignus.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/dignus.h
new file mode 100644
index 000000000..adfe747c0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/dignus.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_DIGNUS_H
+#define MSGPACK_PREDEF_COMPILER_DIGNUS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_SYSC`]
+
+[@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__SYSC__`] [__predef_detection__]]
+
+ [[`__SYSC_VER__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_SYSC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__SYSC__)
+# define MSGPACK_COMP_SYSC_DETECTION MSGPACK_PREDEF_MAKE_10_VRRPP(__SYSC_VER__)
+#endif
+
+#ifdef MSGPACK_COMP_SYSC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_SYSC_EMULATED MSGPACK_COMP_SYSC_DETECTION
+# else
+# undef MSGPACK_COMP_SYSC
+# define MSGPACK_COMP_SYSC MSGPACK_COMP_SYSC_DETECTION
+# endif
+# define MSGPACK_COMP_SYSC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_SYSC_NAME "Dignus Systems/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC,MSGPACK_COMP_SYSC_NAME)
+
+#ifdef MSGPACK_COMP_SYSC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC_EMULATED,MSGPACK_COMP_SYSC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/edg.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/edg.h
new file mode 100644
index 000000000..15500f319
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/edg.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_EDG_H
+#define MSGPACK_PREDEF_COMPILER_EDG_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_EDG`]
+
+[@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__EDG__`] [__predef_detection__]]
+
+ [[`__EDG_VERSION__`] [V.R.0]]
+ ]
+ */
+
+#define MSGPACK_COMP_EDG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__EDG__)
+# define MSGPACK_COMP_EDG_DETECTION MSGPACK_PREDEF_MAKE_10_VRR(__EDG_VERSION__)
+#endif
+
+#ifdef MSGPACK_COMP_EDG_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_EDG_EMULATED MSGPACK_COMP_EDG_DETECTION
+# else
+# undef MSGPACK_COMP_EDG
+# define MSGPACK_COMP_EDG MSGPACK_COMP_EDG_DETECTION
+# endif
+# define MSGPACK_COMP_EDG_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_EDG_NAME "EDG C++ Frontend"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG,MSGPACK_COMP_EDG_NAME)
+
+#ifdef MSGPACK_COMP_EDG_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG_EMULATED,MSGPACK_COMP_EDG_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ekopath.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ekopath.h
new file mode 100644
index 000000000..09868f8e9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ekopath.h
@@ -0,0 +1,58 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_EKOPATH_H
+#define MSGPACK_PREDEF_COMPILER_EKOPATH_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_PATH`]
+
+[@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__PATHCC__`] [__predef_detection__]]
+
+ [[`__PATHCC__`, `__PATHCC_MINOR__`, `__PATHCC_PATCHLEVEL__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_PATH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__PATHCC__)
+# define MSGPACK_COMP_PATH_DETECTION \
+ MSGPACK_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__)
+#endif
+
+#ifdef MSGPACK_COMP_PATH_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_PATH_EMULATED MSGPACK_COMP_PATH_DETECTION
+# else
+# undef MSGPACK_COMP_PATH
+# define MSGPACK_COMP_PATH MSGPACK_COMP_PATH_DETECTION
+# endif
+# define MSGPACK_COMP_PATH_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_PATH_NAME "EKOpath"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH,MSGPACK_COMP_PATH_NAME)
+
+#ifdef MSGPACK_COMP_PATH_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH_EMULATED,MSGPACK_COMP_PATH_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc.h
new file mode 100644
index 000000000..9940c8f4b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc.h
@@ -0,0 +1,69 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_GCC_H
+#define MSGPACK_PREDEF_COMPILER_GCC_H
+
+/* Other compilers that emulate this one need to be detected first. */
+
+#include <rpc/msgpack/predef/compiler/clang.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_GNUC`]
+
+[@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler.
+Version number available as major, minor, and patch (if available).
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__GNUC__`] [__predef_detection__]]
+
+ [[`__GNUC__`, `__GNUC_MINOR__`, `__GNUC_PATCHLEVEL__`] [V.R.P]]
+ [[`__GNUC__`, `__GNUC_MINOR__`] [V.R.0]]
+ ]
+ */
+
+#define MSGPACK_COMP_GNUC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__GNUC__)
+# if !defined(MSGPACK_COMP_GNUC_DETECTION) && defined(__GNUC_PATCHLEVEL__)
+# define MSGPACK_COMP_GNUC_DETECTION \
+ MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__)
+# endif
+# if !defined(MSGPACK_COMP_GNUC_DETECTION)
+# define MSGPACK_COMP_GNUC_DETECTION \
+ MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,0)
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_GNUC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_GNUC_EMULATED MSGPACK_COMP_GNUC_DETECTION
+# else
+# undef MSGPACK_COMP_GNUC
+# define MSGPACK_COMP_GNUC MSGPACK_COMP_GNUC_DETECTION
+# endif
+# define MSGPACK_COMP_GNUC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_GNUC_NAME "Gnu GCC C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC,MSGPACK_COMP_GNUC_NAME)
+
+#ifdef MSGPACK_COMP_GNUC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC_EMULATED,MSGPACK_COMP_GNUC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc_xml.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc_xml.h
new file mode 100644
index 000000000..1d7308a32
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/gcc_xml.h
@@ -0,0 +1,53 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_GCC_XML_H
+#define MSGPACK_PREDEF_COMPILER_GCC_XML_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_GCCXML`]
+
+[@http://www.gccxml.org/ GCC XML] compiler.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__GCCXML__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_COMP_GCCXML MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__GCCXML__)
+# define MSGPACK_COMP_GCCXML_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#ifdef MSGPACK_COMP_GCCXML_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_GCCXML_EMULATED MSGPACK_COMP_GCCXML_DETECTION
+# else
+# undef MSGPACK_COMP_GCCXML
+# define MSGPACK_COMP_GCCXML MSGPACK_COMP_GCCXML_DETECTION
+# endif
+# define MSGPACK_COMP_GCCXML_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_GCCXML_NAME "GCC XML"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML,MSGPACK_COMP_GCCXML_NAME)
+
+#ifdef MSGPACK_COMP_GCCXML_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML_EMULATED,MSGPACK_COMP_GCCXML_NAME)
+#endif
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/greenhills.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/greenhills.h
new file mode 100644
index 000000000..0dfab186a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/greenhills.h
@@ -0,0 +1,67 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_GREENHILLS_H
+#define MSGPACK_PREDEF_COMPILER_GREENHILLS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_GHS`]
+
+[@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__ghs`] [__predef_detection__]]
+ [[`__ghs__`] [__predef_detection__]]
+
+ [[`__GHS_VERSION_NUMBER__`] [V.R.P]]
+ [[`__ghs`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_GHS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__ghs) || defined(__ghs__)
+# if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__GHS_VERSION_NUMBER__)
+# define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__GHS_VERSION_NUMBER__)
+# endif
+# if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__ghs)
+# define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__ghs)
+# endif
+# if !defined(MSGPACK_COMP_GHS_DETECTION)
+# define MSGPACK_COMP_GHS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_GHS_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_GHS_EMULATED MSGPACK_COMP_GHS_DETECTION
+# else
+# undef MSGPACK_COMP_GHS
+# define MSGPACK_COMP_GHS MSGPACK_COMP_GHS_DETECTION
+# endif
+# define MSGPACK_COMP_GHS_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_GHS_NAME "Green Hills C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS,MSGPACK_COMP_GHS_NAME)
+
+#ifdef MSGPACK_COMP_GHS_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS_EMULATED,MSGPACK_COMP_GHS_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/hp_acc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/hp_acc.h
new file mode 100644
index 000000000..5f7b850bb
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/hp_acc.h
@@ -0,0 +1,62 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_HP_ACC_H
+#define MSGPACK_PREDEF_COMPILER_HP_ACC_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_HPACC`]
+
+HP aC++ compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__HP_aCC`] [__predef_detection__]]
+
+ [[`__HP_aCC`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_HPACC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__HP_aCC)
+# if !defined(MSGPACK_COMP_HPACC_DETECTION) && (__HP_aCC > 1)
+# define MSGPACK_COMP_HPACC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRRPP(__HP_aCC)
+# endif
+# if !defined(MSGPACK_COMP_HPACC_DETECTION)
+# define MSGPACK_COMP_HPACC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_HPACC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_HPACC_EMULATED MSGPACK_COMP_HPACC_DETECTION
+# else
+# undef MSGPACK_COMP_HPACC
+# define MSGPACK_COMP_HPACC MSGPACK_COMP_HPACC_DETECTION
+# endif
+# define MSGPACK_COMP_HPACC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_HPACC_NAME "HP aC++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC,MSGPACK_COMP_HPACC_NAME)
+
+#ifdef MSGPACK_COMP_HPACC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC_EMULATED,MSGPACK_COMP_HPACC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/iar.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/iar.h
new file mode 100644
index 000000000..69fe4133b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/iar.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_IAR_H
+#define MSGPACK_PREDEF_COMPILER_IAR_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_IAR`]
+
+IAR C/C++ compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__IAR_SYSTEMS_ICC__`] [__predef_detection__]]
+
+ [[`__VER__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_IAR MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__IAR_SYSTEMS_ICC__)
+# define MSGPACK_COMP_IAR_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__VER__)
+#endif
+
+#ifdef MSGPACK_COMP_IAR_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_IAR_EMULATED MSGPACK_COMP_IAR_DETECTION
+# else
+# undef MSGPACK_COMP_IAR
+# define MSGPACK_COMP_IAR MSGPACK_COMP_IAR_DETECTION
+# endif
+# define MSGPACK_COMP_IAR_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_IAR_NAME "IAR C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR,MSGPACK_COMP_IAR_NAME)
+
+#ifdef MSGPACK_COMP_IAR_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR_EMULATED,MSGPACK_COMP_IAR_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ibm.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ibm.h
new file mode 100644
index 000000000..a289463b8
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/ibm.h
@@ -0,0 +1,73 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_IBM_H
+#define MSGPACK_PREDEF_COMPILER_IBM_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_IBM`]
+
+[@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__IBMCPP__`] [__predef_detection__]]
+ [[`__xlC__`] [__predef_detection__]]
+ [[`__xlc__`] [__predef_detection__]]
+
+ [[`__COMPILER_VER__`] [V.R.P]]
+ [[`__xlC__`] [V.R.P]]
+ [[`__xlc__`] [V.R.P]]
+ [[`__IBMCPP__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_IBM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__)
+# if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__COMPILER_VER__)
+# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__COMPILER_VER__)
+# endif
+# if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlC__)
+# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlC__)
+# endif
+# if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlc__)
+# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlc__)
+# endif
+# if !defined(MSGPACK_COMP_IBM_DETECTION)
+# define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__IBMCPP__)
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_IBM_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_IBM_EMULATED MSGPACK_COMP_IBM_DETECTION
+# else
+# undef MSGPACK_COMP_IBM
+# define MSGPACK_COMP_IBM MSGPACK_COMP_IBM_DETECTION
+# endif
+# define MSGPACK_COMP_IBM_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_IBM_NAME "IBM XL C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM,MSGPACK_COMP_IBM_NAME)
+
+#ifdef MSGPACK_COMP_IBM_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM_EMULATED,MSGPACK_COMP_IBM_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/intel.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/intel.h
new file mode 100644
index 000000000..8aa943de4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/intel.h
@@ -0,0 +1,66 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_INTEL_H
+#define MSGPACK_PREDEF_COMPILER_INTEL_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_INTEL`]
+
+[@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__INTEL_COMPILER`] [__predef_detection__]]
+ [[`__ICL`] [__predef_detection__]]
+ [[`__ICC`] [__predef_detection__]]
+ [[`__ECC`] [__predef_detection__]]
+
+ [[`__INTEL_COMPILER`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_INTEL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \
+ defined(__ECC)
+# if !defined(MSGPACK_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER)
+# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__INTEL_COMPILER)
+# endif
+# if !defined(MSGPACK_COMP_INTEL_DETECTION)
+# define MSGPACK_COMP_INTEL_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_INTEL_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_INTEL_EMULATED MSGPACK_COMP_INTEL_DETECTION
+# else
+# undef MSGPACK_COMP_INTEL
+# define MSGPACK_COMP_INTEL MSGPACK_COMP_INTEL_DETECTION
+# endif
+# define MSGPACK_COMP_INTEL_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_INTEL_NAME "Intel C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL,MSGPACK_COMP_INTEL_NAME)
+
+#ifdef MSGPACK_COMP_INTEL_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL_EMULATED,MSGPACK_COMP_INTEL_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/kai.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/kai.h
new file mode 100644
index 000000000..d685ce16b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/kai.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_KAI_H
+#define MSGPACK_PREDEF_COMPILER_KAI_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_KCC`]
+
+Kai C++ compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__KCC`] [__predef_detection__]]
+
+ [[`__KCC_VERSION`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_KCC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__KCC)
+# define MSGPACK_COMP_KCC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__KCC_VERSION)
+#endif
+
+#ifdef MSGPACK_COMP_KCC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_KCC_EMULATED MSGPACK_COMP_KCC_DETECTION
+# else
+# undef MSGPACK_COMP_KCC
+# define MSGPACK_COMP_KCC MSGPACK_COMP_KCC_DETECTION
+# endif
+# define MSGPACK_COMP_KCC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_KCC_NAME "Kai C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC,MSGPACK_COMP_KCC_NAME)
+
+#ifdef MSGPACK_COMP_KCC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC_EMULATED,MSGPACK_COMP_KCC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/llvm.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/llvm.h
new file mode 100644
index 000000000..25e690301
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/llvm.h
@@ -0,0 +1,58 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_LLVM_H
+#define MSGPACK_PREDEF_COMPILER_LLVM_H
+
+/* Other compilers that emulate this one need to be detected first. */
+
+#include <rpc/msgpack/predef/compiler/clang.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_LLVM`]
+
+[@http://en.wikipedia.org/wiki/LLVM LLVM] compiler.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__llvm__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_COMP_LLVM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__llvm__)
+# define MSGPACK_COMP_LLVM_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#ifdef MSGPACK_COMP_LLVM_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_LLVM_EMULATED MSGPACK_COMP_LLVM_DETECTION
+# else
+# undef MSGPACK_COMP_LLVM
+# define MSGPACK_COMP_LLVM MSGPACK_COMP_LLVM_DETECTION
+# endif
+# define MSGPACK_COMP_LLVM_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_LLVM_NAME "LLVM"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM,MSGPACK_COMP_LLVM_NAME)
+
+#ifdef MSGPACK_COMP_LLVM_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM_EMULATED,MSGPACK_COMP_LLVM_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metaware.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metaware.h
new file mode 100644
index 000000000..4ebf66259
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metaware.h
@@ -0,0 +1,54 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_METAWARE_H
+#define MSGPACK_PREDEF_COMPILER_METAWARE_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_HIGHC`]
+
+MetaWare High C/C++ compiler.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__HIGHC__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_COMP_HIGHC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__HIGHC__)
+# define MSGPACK_COMP_HIGHC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#ifdef MSGPACK_COMP_HIGHC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_HIGHC_EMULATED MSGPACK_COMP_HIGHC_DETECTION
+# else
+# undef MSGPACK_COMP_HIGHC
+# define MSGPACK_COMP_HIGHC MSGPACK_COMP_HIGHC_DETECTION
+# endif
+# define MSGPACK_COMP_HIGHC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_HIGHC_NAME "MetaWare High C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC,MSGPACK_COMP_HIGHC_NAME)
+
+#ifdef MSGPACK_COMP_HIGHC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC_EMULATED,MSGPACK_COMP_HIGHC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metrowerks.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metrowerks.h
new file mode 100644
index 000000000..cb3104981
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/metrowerks.h
@@ -0,0 +1,78 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_METROWERKS_H
+#define MSGPACK_PREDEF_COMPILER_METROWERKS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_MWERKS`]
+
+[@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__MWERKS__`] [__predef_detection__]]
+ [[`__CWCC__`] [__predef_detection__]]
+
+ [[`__CWCC__`] [V.R.P]]
+ [[`__MWERKS__`] [V.R.P >= 4.2.0]]
+ [[`__MWERKS__`] [9.R.0]]
+ [[`__MWERKS__`] [8.R.0]]
+ ]
+ */
+
+#define MSGPACK_COMP_MWERKS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MWERKS__) || defined(__CWCC__)
+# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && defined(__CWCC__)
+# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__CWCC__)
+# endif
+# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x4200)
+# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__MWERKS__)
+# endif
+# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3204) // note the "skip": 04->9.3
+# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100-1,0)
+# endif
+# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3200)
+# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100,0)
+# endif
+# if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3000)
+# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(8,(__MWERKS__)%100,0)
+# endif
+# if !defined(MSGPACK_COMP_MWERKS_DETECTION)
+# define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_MWERKS_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_MWERKS_EMULATED MSGPACK_COMP_MWERKS_DETECTION
+# else
+# undef MSGPACK_COMP_MWERKS
+# define MSGPACK_COMP_MWERKS MSGPACK_COMP_MWERKS_DETECTION
+# endif
+# define MSGPACK_COMP_MWERKS_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_MWERKS_NAME "Metrowerks CodeWarrior"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS,MSGPACK_COMP_MWERKS_NAME)
+
+#ifdef MSGPACK_COMP_MWERKS_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS_EMULATED,MSGPACK_COMP_MWERKS_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/microtec.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/microtec.h
new file mode 100644
index 000000000..55f9efe22
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/microtec.h
@@ -0,0 +1,54 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_MICROTEC_H
+#define MSGPACK_PREDEF_COMPILER_MICROTEC_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_MRI`]
+
+[@http://www.mentor.com/microtec/ Microtec C/C++] compiler.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`_MRI`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_COMP_MRI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(_MRI)
+# define MSGPACK_COMP_MRI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#ifdef MSGPACK_COMP_MRI_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_MRI_EMULATED MSGPACK_COMP_MRI_DETECTION
+# else
+# undef MSGPACK_COMP_MRI
+# define MSGPACK_COMP_MRI MSGPACK_COMP_MRI_DETECTION
+# endif
+# define MSGPACK_COMP_MRI_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_MRI_NAME "Microtec C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI,MSGPACK_COMP_MRI_NAME)
+
+#ifdef MSGPACK_COMP_MRI_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI_EMULATED,MSGPACK_COMP_MRI_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/mpw.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/mpw.h
new file mode 100644
index 000000000..bc69af320
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/mpw.h
@@ -0,0 +1,64 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_MPW_H
+#define MSGPACK_PREDEF_COMPILER_MPW_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_MPW`]
+
+[@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler.
+Version number available as major, and minor.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__MRC__`] [__predef_detection__]]
+ [[`MPW_C`] [__predef_detection__]]
+ [[`MPW_CPLUS`] [__predef_detection__]]
+
+ [[`__MRC__`] [V.R.0]]
+ ]
+ */
+
+#define MSGPACK_COMP_MPW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS)
+# if !defined(MSGPACK_COMP_MPW_DETECTION) && defined(__MRC__)
+# define MSGPACK_COMP_MPW_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__MRC__)
+# endif
+# if !defined(MSGPACK_COMP_MPW_DETECTION)
+# define MSGPACK_COMP_MPW_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_MPW_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_MPW_EMULATED MSGPACK_COMP_MPW_DETECTION
+# else
+# undef MSGPACK_COMP_MPW
+# define MSGPACK_COMP_MPW MSGPACK_COMP_MPW_DETECTION
+# endif
+# define MSGPACK_COMP_MPW_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_MPW_NAME "MPW C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW,MSGPACK_COMP_MPW_NAME)
+
+#ifdef MSGPACK_COMP_MPW_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW_EMULATED,MSGPACK_COMP_MPW_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/palm.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/palm.h
new file mode 100644
index 000000000..07fe98cba
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/palm.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_PALM_H
+#define MSGPACK_PREDEF_COMPILER_PALM_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_PALM`]
+
+Palm C/C++ compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`_PACC_VER`] [__predef_detection__]]
+
+ [[`_PACC_VER`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_PALM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(_PACC_VER)
+# define MSGPACK_COMP_PALM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPP000(_PACC_VER)
+#endif
+
+#ifdef MSGPACK_COMP_PALM_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_PALM_EMULATED MSGPACK_COMP_PALM_DETECTION
+# else
+# undef MSGPACK_COMP_PALM
+# define MSGPACK_COMP_PALM MSGPACK_COMP_PALM_DETECTION
+# endif
+# define MSGPACK_COMP_PALM_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_PALM_NAME "Palm C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM,MSGPACK_COMP_PALM_NAME)
+
+#ifdef MSGPACK_COMP_PALM_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM_EMULATED,MSGPACK_COMP_PALM_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/pgi.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/pgi.h
new file mode 100644
index 000000000..e40244a1a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/pgi.h
@@ -0,0 +1,61 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_PGI_H
+#define MSGPACK_PREDEF_COMPILER_PGI_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_PGI`]
+
+[@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__PGI`] [__predef_detection__]]
+
+ [[`__PGIC__`, `__PGIC_MINOR__`, `__PGIC_PATCHLEVEL__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_PGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__PGI)
+# if !defined(MSGPACK_COMP_PGI_DETECTION) && (defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__))
+# define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER(__PGIC__,__PGIC_MINOR__,__PGIC_PATCHLEVEL__)
+# endif
+# if !defined(MSGPACK_COMP_PGI_DETECTION)
+# define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_PGI_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_PGI_EMULATED MSGPACK_COMP_PGI_DETECTION
+# else
+# undef MSGPACK_COMP_PGI
+# define MSGPACK_COMP_PGI MSGPACK_COMP_PGI_DETECTION
+# endif
+# define MSGPACK_COMP_PGI_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_PGI_NAME "Portland Group C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI,MSGPACK_COMP_PGI_NAME)
+
+#ifdef MSGPACK_COMP_PGI_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI_EMULATED,MSGPACK_COMP_PGI_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sgi_mipspro.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sgi_mipspro.h
new file mode 100644
index 000000000..c089dee78
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sgi_mipspro.h
@@ -0,0 +1,67 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_SGI_MIPSPRO_H
+#define MSGPACK_PREDEF_COMPILER_SGI_MIPSPRO_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_SGI`]
+
+[@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__sgi`] [__predef_detection__]]
+ [[`sgi`] [__predef_detection__]]
+
+ [[`_SGI_COMPILER_VERSION`] [V.R.P]]
+ [[`_COMPILER_VERSION`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_SGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__sgi) || defined(sgi)
+# if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_SGI_COMPILER_VERSION)
+# define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_SGI_COMPILER_VERSION)
+# endif
+# if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_COMPILER_VERSION)
+# define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_COMPILER_VERSION)
+# endif
+# if !defined(MSGPACK_COMP_SGI_DETECTION)
+# define MSGPACK_COMP_SGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_SGI_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_SGI_EMULATED MSGPACK_COMP_SGI_DETECTION
+# else
+# undef MSGPACK_COMP_SGI
+# define MSGPACK_COMP_SGI MSGPACK_COMP_SGI_DETECTION
+# endif
+# define MSGPACK_COMP_SGI_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_SGI_NAME "SGI MIPSpro"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI,MSGPACK_COMP_SGI_NAME)
+
+#ifdef MSGPACK_COMP_SGI_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI_EMULATED,MSGPACK_COMP_SGI_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sunpro.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sunpro.h
new file mode 100644
index 000000000..cb97ebfd5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/sunpro.h
@@ -0,0 +1,67 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_SUNPRO_H
+#define MSGPACK_PREDEF_COMPILER_SUNPRO_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_SUNPRO`]
+
+[@http://en.wikipedia.org/wiki/Sun_Studio_%28software%29 Sun Studio] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__SUNPRO_CC`] [__predef_detection__]]
+ [[`__SUNPRO_C`] [__predef_detection__]]
+
+ [[`__SUNPRO_CC`] [V.R.P]]
+ [[`__SUNPRO_C`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_SUNPRO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__SUNPRO_CC) || defined(__SUNPRO_C)
+# if !defined(MSGPACK_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_CC)
+# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__SUNPRO_CC)
+# endif
+# if !defined(MSGPACK_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_C)
+# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__SUNPRO_C)
+# endif
+# if !defined(MSGPACK_COMP_SUNPRO_DETECTION)
+# define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_SUNPRO_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_SUNPRO_EMULATED MSGPACK_COMP_SUNPRO_DETECTION
+# else
+# undef MSGPACK_COMP_SUNPRO
+# define MSGPACK_COMP_SUNPRO MSGPACK_COMP_SUNPRO_DETECTION
+# endif
+# define MSGPACK_COMP_SUNPRO_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_SUNPRO_NAME "Sun Studio"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SUNPRO,MSGPACK_COMP_SUNPRO_NAME)
+
+#ifdef MSGPACK_COMP_SUNPRO_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SUNPRO_EMULATED,MSGPACK_COMP_SUNPRO_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/tendra.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/tendra.h
new file mode 100644
index 000000000..8903bbece
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/tendra.h
@@ -0,0 +1,54 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_TENDRA_H
+#define MSGPACK_PREDEF_COMPILER_TENDRA_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_TENDRA`]
+
+[@http://en.wikipedia.org/wiki/TenDRA_Compiler TenDRA C/C++] compiler.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__TenDRA__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_COMP_TENDRA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__TenDRA__)
+# define MSGPACK_COMP_TENDRA_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#ifdef MSGPACK_COMP_TENDRA_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_TENDRA_EMULATED MSGPACK_COMP_TENDRA_DETECTION
+# else
+# undef MSGPACK_COMP_TENDRA
+# define MSGPACK_COMP_TENDRA MSGPACK_COMP_TENDRA_DETECTION
+# endif
+# define MSGPACK_COMP_TENDRA_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_TENDRA_NAME "TenDRA C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_TENDRA,MSGPACK_COMP_TENDRA_NAME)
+
+#ifdef MSGPACK_COMP_TENDRA_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_TENDRA_EMULATED,MSGPACK_COMP_TENDRA_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/visualc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/visualc.h
new file mode 100644
index 000000000..efba9c52a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/visualc.h
@@ -0,0 +1,92 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_VISUALC_H
+#define MSGPACK_PREDEF_COMPILER_VISUALC_H
+
+/* Other compilers that emulate this one need to be detected first. */
+
+#include <rpc/msgpack/predef/compiler/clang.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_MSVC`]
+
+[@http://en.wikipedia.org/wiki/Visual_studio Microsoft Visual C/C++] compiler.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`_MSC_VER`] [__predef_detection__]]
+
+ [[`_MSC_FULL_VER`] [V.R.P]]
+ [[`_MSC_VER`] [V.R.0]]
+ ]
+ */
+
+#define MSGPACK_COMP_MSVC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(_MSC_VER)
+# if !defined (_MSC_FULL_VER)
+# define MSGPACK_COMP_MSVC_BUILD 0
+# else
+ /* how many digits does the build number have? */
+# if _MSC_FULL_VER / 10000 == _MSC_VER
+ /* four digits */
+# define MSGPACK_COMP_MSVC_BUILD (_MSC_FULL_VER % 10000)
+# elif _MSC_FULL_VER / 100000 == _MSC_VER
+ /* five digits */
+# define MSGPACK_COMP_MSVC_BUILD (_MSC_FULL_VER % 100000)
+# else
+# error "Cannot determine build number from _MSC_FULL_VER"
+# endif
+# endif
+ /*
+ VS2014 was skipped in the release sequence for MS. Which
+ means that the compiler and VS product versions are no longer
+ in sync. Hence we need to use different formulas for
+ mapping from MSC version to VS product version.
+ */
+# if (_MSC_VER >= 1900)
+# define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\
+ _MSC_VER/100-5,\
+ _MSC_VER%100,\
+ MSGPACK_COMP_MSVC_BUILD)
+# else
+# define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\
+ _MSC_VER/100-6,\
+ _MSC_VER%100,\
+ MSGPACK_COMP_MSVC_BUILD)
+# endif
+#endif
+
+#ifdef MSGPACK_COMP_MSVC_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_MSVC_EMULATED MSGPACK_COMP_MSVC_DETECTION
+# else
+# undef MSGPACK_COMP_MSVC
+# define MSGPACK_COMP_MSVC MSGPACK_COMP_MSVC_DETECTION
+# endif
+# define MSGPACK_COMP_MSVC_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_MSVC_NAME "Microsoft Visual C/C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MSVC,MSGPACK_COMP_MSVC_NAME)
+
+#ifdef MSGPACK_COMP_MSVC_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MSVC_EMULATED,MSGPACK_COMP_MSVC_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/watcom.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/watcom.h
new file mode 100644
index 000000000..de499fdac
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/compiler/watcom.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_WATCOM_H
+#define MSGPACK_PREDEF_COMPILER_WATCOM_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_COMP_WATCOM`]
+
+[@http://en.wikipedia.org/wiki/Watcom Watcom C++] compiler.
+Version number available as major, and minor.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__WATCOMC__`] [__predef_detection__]]
+
+ [[`__WATCOMC__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_COMP_WATCOM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__WATCOMC__)
+# define MSGPACK_COMP_WATCOM_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__WATCOMC__)
+#endif
+
+#ifdef MSGPACK_COMP_WATCOM_DETECTION
+# if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED)
+# define MSGPACK_COMP_WATCOM_EMULATED MSGPACK_COMP_WATCOM_DETECTION
+# else
+# undef MSGPACK_COMP_WATCOM
+# define MSGPACK_COMP_WATCOM MSGPACK_COMP_WATCOM_DETECTION
+# endif
+# define MSGPACK_COMP_WATCOM_AVAILABLE
+# include <rpc/msgpack/predef/detail/comp_detected.h>
+#endif
+
+#define MSGPACK_COMP_WATCOM_NAME "Watcom C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_WATCOM,MSGPACK_COMP_WATCOM_NAME)
+
+#ifdef MSGPACK_COMP_WATCOM_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_WATCOM_EMULATED,MSGPACK_COMP_WATCOM_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_cassert.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_cassert.h
new file mode 100644
index 000000000..b1cb6bccc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_cassert.h
@@ -0,0 +1,17 @@
+/*
+Copyright Rene Rivera 2011-2012
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_DETAIL__CASSERT_H
+#define MSGPACK_PREDEF_DETAIL__CASSERT_H
+
+#if defined(__cpluplus)
+#include <cassert>
+#else
+#include <assert.h>
+#endif
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_exception.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_exception.h
new file mode 100644
index 000000000..963f37bc8
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/_exception.h
@@ -0,0 +1,15 @@
+/*
+Copyright Rene Rivera 2011-2012
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_DETAIL__EXCEPTION_H
+#define MSGPACK_PREDEF_DETAIL__EXCEPTION_H
+
+#if defined(__cpluplus)
+#include <exception>
+#endif
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/comp_detected.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/comp_detected.h
new file mode 100644
index 000000000..3996fd397
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/comp_detected.h
@@ -0,0 +1,10 @@
+/*
+Copyright Rene Rivera 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_DETAIL_COMP_DETECTED
+#define MSGPACK_PREDEF_DETAIL_COMP_DETECTED 1
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/endian_compat.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/endian_compat.h
new file mode 100644
index 000000000..49672f6d4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/endian_compat.h
@@ -0,0 +1,26 @@
+/*
+Copyright Rene Rivera 2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_DETAIL_ENDIAN_COMPAT_H
+#define MSGPACK_PREDEF_DETAIL_ENDIAN_COMPAT_H
+
+#include <rpc/msgpack/predef/other/endian.h>
+
+#if MSGPACK_ENDIAN_BIG_BYTE
+# define MSGPACK_BIG_ENDIAN
+# define MSGPACK_BYTE_ORDER 4321
+#endif
+#if MSGPACK_ENDIAN_LITTLE_BYTE
+# define MSGPACK_LITTLE_ENDIAN
+# define MSGPACK_BYTE_ORDER 1234
+#endif
+#if MSGPACK_ENDIAN_LITTLE_WORD
+# define MSGPACK_PDP_ENDIAN
+# define MSGPACK_BYTE_ORDER 2134
+#endif
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/os_detected.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/os_detected.h
new file mode 100644
index 000000000..f9f23b787
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/os_detected.h
@@ -0,0 +1,10 @@
+/*
+Copyright Rene Rivera 2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_DETAIL_OS_DETECTED
+#define MSGPACK_PREDEF_DETAIL_OS_DETECTED 1
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/platform_detected.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/platform_detected.h
new file mode 100644
index 000000000..782b3a291
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/platform_detected.h
@@ -0,0 +1,10 @@
+/*
+Copyright Rene Rivera 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_DETAIL_PLAT_DETECTED
+#define MSGPACK_PREDEF_DETAIL_PLAT_DETECTED 1
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/test.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/test.h
new file mode 100644
index 000000000..141406035
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/detail/test.h
@@ -0,0 +1,17 @@
+/*
+Copyright Rene Rivera 2011-2012
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_DETAIL_TEST_H
+#define MSGPACK_PREDEF_DETAIL_TEST_H
+
+#if !defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS)
+
+#define MSGPACK_PREDEF_DECLARE_TEST(x,s)
+
+#endif
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/language.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language.h
new file mode 100644
index 000000000..cf3ce5d6f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language.h
@@ -0,0 +1,15 @@
+/*
+Copyright Rene Rivera 2011-2012
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LANGUAGE_H
+#define MSGPACK_PREDEF_LANGUAGE_H
+
+#include <rpc/msgpack/predef/language/stdc.h>
+#include <rpc/msgpack/predef/language/stdcpp.h>
+#include <rpc/msgpack/predef/language/objc.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/objc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/objc.h
new file mode 100644
index 000000000..7edcf7df1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/objc.h
@@ -0,0 +1,43 @@
+/*
+Copyright Rene Rivera 2011-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LANGUAGE_OBJC_H
+#define MSGPACK_PREDEF_LANGUAGE_OBJC_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LANG_OBJC`]
+
+[@http://en.wikipedia.org/wiki/Objective-C Objective-C] language.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__OBJC__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_LANG_OBJC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__OBJC__)
+# undef MSGPACK_LANG_OBJC
+# define MSGPACK_LANG_OBJC MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_LANG_OBJC
+# define MSGPACK_LANG_OBJC_AVAILABLE
+#endif
+
+#define MSGPACK_LANG_OBJC_NAME "Objective-C"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_OBJC,MSGPACK_LANG_OBJC_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdc.h
new file mode 100644
index 000000000..e2a431ef6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdc.h
@@ -0,0 +1,54 @@
+/*
+Copyright Rene Rivera 2011-2012
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LANGUAGE_STDC_H
+#define MSGPACK_PREDEF_LANGUAGE_STDC_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LANG_STDC`]
+
+[@http://en.wikipedia.org/wiki/C_(programming_language) Standard C] language.
+If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__STDC__`] [__predef_detection__]]
+
+ [[`__STDC_VERSION__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__STDC__)
+# undef MSGPACK_LANG_STDC
+# if defined(__STDC_VERSION__)
+# if (__STDC_VERSION__ > 100)
+# define MSGPACK_LANG_STDC MSGPACK_PREDEF_MAKE_YYYYMM(__STDC_VERSION__)
+# else
+# define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# else
+# define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_LANG_STDC
+# define MSGPACK_LANG_STDC_AVAILABLE
+#endif
+
+#define MSGPACK_LANG_STDC_NAME "Standard C"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDC,MSGPACK_LANG_STDC_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdcpp.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdcpp.h
new file mode 100644
index 000000000..70f8bd7f0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/language/stdcpp.h
@@ -0,0 +1,124 @@
+/*
+Copyright Rene Rivera 2011-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LANGUAGE_STDCPP_H
+#define MSGPACK_PREDEF_LANGUAGE_STDCPP_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LANG_STDCPP`]
+
+[@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language.
+If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
+Because of the way the C++ standardization process works the
+defined version year will not be the commonly known year of the standard.
+Specifically the defined versions are:
+
+[table Detected Version Number vs. C++ Standard Year
+ [[Detected Version Number] [Standard Year] [C++ Standard]]
+ [[27.11.1] [1998] [ISO/IEC 14882:1998]]
+ [[41.12.1] [2011] [ISO/IEC 14882:2011]]
+]
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__cplusplus`] [__predef_detection__]]
+
+ [[`__cplusplus`] [YYYY.MM.1]]
+ ]
+ */
+
+#define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__cplusplus)
+# undef MSGPACK_LANG_STDCPP
+# if (__cplusplus > 100)
+# define MSGPACK_LANG_STDCPP MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus)
+# else
+# define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_LANG_STDCPP
+# define MSGPACK_LANG_STDCPP_AVAILABLE
+#endif
+
+#define MSGPACK_LANG_STDCPP_NAME "Standard C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPP,MSGPACK_LANG_STDCPP_NAME)
+
+
+/*`
+[heading `MSGPACK_LANG_STDCPPCLI`]
+
+[@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language.
+If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__cplusplus_cli`] [__predef_detection__]]
+
+ [[`__cplusplus_cli`] [YYYY.MM.1]]
+ ]
+ */
+
+#define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__cplusplus_cli)
+# undef MSGPACK_LANG_STDCPPCLI
+# if (__cplusplus_cli > 100)
+# define MSGPACK_LANG_STDCPPCLI MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus_cli)
+# else
+# define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_LANG_STDCPPCLI
+# define MSGPACK_LANG_STDCPPCLI_AVAILABLE
+#endif
+
+#define MSGPACK_LANG_STDCPPCLI_NAME "Standard C++/CLI"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPPCLI,MSGPACK_LANG_STDCPPCLI_NAME)
+
+
+/*`
+[heading `MSGPACK_LANG_STDECPP`]
+
+[@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__embedded_cplusplus`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__embedded_cplusplus)
+# undef MSGPACK_LANG_STDECPP
+# define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_LANG_STDECPP
+# define MSGPACK_LANG_STDECPP_AVAILABLE
+#endif
+
+#define MSGPACK_LANG_STDECPP_NAME "Standard Embedded C++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDECPP,MSGPACK_LANG_STDECPP_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library.h
new file mode 100644
index 000000000..51f545ee2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library.h
@@ -0,0 +1,14 @@
+/*
+Copyright Rene Rivera 2008-2012
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_H
+#define MSGPACK_PREDEF_LIBRARY_H
+
+#include <rpc/msgpack/predef/library/c.h>
+#include <rpc/msgpack/predef/library/std.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c.h
new file mode 100644
index 000000000..4df71a1d3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c.h
@@ -0,0 +1,18 @@
+/*
+Copyright Rene Rivera 2008-2012
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_C_H
+#define MSGPACK_PREDEF_LIBRARY_C_H
+
+#include <rpc/msgpack/predef/library/c/_prefix.h>
+
+#include <rpc/msgpack/predef/library/c/gnu.h>
+#include <rpc/msgpack/predef/library/c/uc.h>
+#include <rpc/msgpack/predef/library/c/vms.h>
+#include <rpc/msgpack/predef/library/c/zos.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/_prefix.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/_prefix.h
new file mode 100644
index 000000000..d9e62677a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/_prefix.h
@@ -0,0 +1,13 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_C__PREFIX_H
+#define MSGPACK_PREDEF_LIBRARY_C__PREFIX_H
+
+#include <rpc/msgpack/predef/detail/_cassert.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/gnu.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/gnu.h
new file mode 100644
index 000000000..ce421ec87
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/gnu.h
@@ -0,0 +1,62 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_C_GNU_H
+#define MSGPACK_PREDEF_LIBRARY_C_GNU_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+#include <rpc/msgpack/predef/library/c/_prefix.h>
+
+#if defined(__STDC__)
+#include <stddef.h>
+#elif defined(__cplusplus)
+#include <cstddef>
+#endif
+
+/*`
+[heading `MSGPACK_LIB_C_GNU`]
+
+[@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library.
+Version number available as major, and minor.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__GLIBC__`] [__predef_detection__]]
+ [[`__GNU_LIBRARY__`] [__predef_detection__]]
+
+ [[`__GLIBC__`, `__GLIBC_MINOR__`] [V.R.0]]
+ [[`__GNU_LIBRARY__`, `__GNU_LIBRARY_MINOR__`] [V.R.0]]
+ ]
+ */
+
+#define MSGPACK_LIB_C_GNU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__GLIBC__) || defined(__GNU_LIBRARY__)
+# undef MSGPACK_LIB_C_GNU
+# if defined(__GLIBC__)
+# define MSGPACK_LIB_C_GNU \
+ MSGPACK_VERSION_NUMBER(__GLIBC__,__GLIBC_MINOR__,0)
+# else
+# define MSGPACK_LIB_C_GNU \
+ MSGPACK_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0)
+# endif
+#endif
+
+#if MSGPACK_LIB_C_GNU
+# define MSGPACK_LIB_C_GNU_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_C_GNU_NAME "GNU"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_GNU,MSGPACK_LIB_C_GNU_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/uc.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/uc.h
new file mode 100644
index 000000000..3e9dd0622
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/uc.h
@@ -0,0 +1,48 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_C_UC_H
+#define MSGPACK_PREDEF_LIBRARY_C_UC_H
+
+#include <rpc/msgpack/predef/library/c/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_C_UC`]
+
+[@http://en.wikipedia.org/wiki/Uclibc uClibc] Standard C library.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__UCLIBC__`] [__predef_detection__]]
+
+ [[`__UCLIBC_MAJOR__`, `__UCLIBC_MINOR__`, `__UCLIBC_SUBLEVEL__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_C_UC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__UCLIBC__)
+# undef MSGPACK_LIB_C_UC
+# define MSGPACK_LIB_C_UC MSGPACK_VERSION_NUMBER(\
+ __UCLIBC_MAJOR__,__UCLIBC_MINOR__,__UCLIBC_SUBLEVEL__)
+#endif
+
+#if MSGPACK_LIB_C_UC
+# define MSGPACK_LIB_C_UC_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_C_UC_NAME "uClibc"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_UC,MSGPACK_LIB_C_UC_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/vms.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/vms.h
new file mode 100644
index 000000000..5203687ab
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/vms.h
@@ -0,0 +1,48 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_C_VMS_H
+#define MSGPACK_PREDEF_LIBRARY_C_VMS_H
+
+#include <rpc/msgpack/predef/library/c/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_C_VMS`]
+
+VMS libc Standard C library.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__CRTL_VER`] [__predef_detection__]]
+
+ [[`__CRTL_VER`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_C_VMS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__CRTL_VER)
+# undef MSGPACK_LIB_C_VMS
+# define MSGPACK_LIB_C_VMS MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__CRTL_VER)
+#endif
+
+#if MSGPACK_LIB_C_VMS
+# define MSGPACK_LIB_C_VMS_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_C_VMS_NAME "VMS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_VMS,MSGPACK_LIB_C_VMS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/zos.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/zos.h
new file mode 100644
index 000000000..0454c406f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/c/zos.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_C_ZOS_H
+#define MSGPACK_PREDEF_LIBRARY_C_ZOS_H
+
+#include <rpc/msgpack/predef/library/c/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_C_ZOS`]
+
+z/OS libc Standard C library.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__LIBREL__`] [__predef_detection__]]
+
+ [[`__LIBREL__`] [V.R.P]]
+ [[`__TARGET_LIB__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_C_ZOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__LIBREL__)
+# undef MSGPACK_LIB_C_ZOS
+# if !defined(MSGPACK_LIB_C_ZOS) && defined(__LIBREL__)
+# define MSGPACK_LIB_C_ZOS MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__LIBREL__)
+# endif
+# if !defined(MSGPACK_LIB_C_ZOS) && defined(__TARGET_LIB__)
+# define MSGPACK_LIB_C_ZOS MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__TARGET_LIB__)
+# endif
+# if !defined(MSGPACK_LIB_C_ZOS)
+# define MSGPACK_LIB_C_ZOS MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_LIB_C_ZOS
+# define MSGPACK_LIB_C_ZOS_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_C_ZOS_NAME "z/OS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_ZOS,MSGPACK_LIB_C_ZOS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std.h
new file mode 100644
index 000000000..666adef30
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std.h
@@ -0,0 +1,23 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_H
+#define MSGPACK_PREDEF_LIBRARY_STD_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/library/std/cxx.h>
+#include <rpc/msgpack/predef/library/std/dinkumware.h>
+#include <rpc/msgpack/predef/library/std/libcomo.h>
+#include <rpc/msgpack/predef/library/std/modena.h>
+#include <rpc/msgpack/predef/library/std/msl.h>
+#include <rpc/msgpack/predef/library/std/roguewave.h>
+#include <rpc/msgpack/predef/library/std/sgi.h>
+#include <rpc/msgpack/predef/library/std/stdcpp3.h>
+#include <rpc/msgpack/predef/library/std/stlport.h>
+#include <rpc/msgpack/predef/library/std/vacpp.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/_prefix.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/_prefix.h
new file mode 100644
index 000000000..9fbc42aa4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/_prefix.h
@@ -0,0 +1,23 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+#ifndef MSGPACK_PREDEF_LIBRARY_STD__PREFIX_H
+#define MSGPACK_PREDEF_LIBRARY_STD__PREFIX_H
+
+/*
+We need to include an STD header to gives us the context
+of which library we are using. The "smallest" code-wise header
+seems to be <exception>. Boost uses <utility> but as far
+as I can tell (RR) it's not a stand-alone header in most
+implementations. Using <exception> also has the benefit of
+being available in EC++, so we get a chance to make this work
+for embedded users. And since it's not a header impacted by TR1
+there's no magic needed for inclusion in the face of the
+Boost.TR1 library.
+*/
+#include <rpc/msgpack/predef/detail/_exception.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/cxx.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/cxx.h
new file mode 100644
index 000000000..97c56e388
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/cxx.h
@@ -0,0 +1,47 @@
+/*
+Copyright Rene Rivera 2011-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_CXX_H
+#define MSGPACK_PREDEF_LIBRARY_STD_CXX_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_CXX`]
+
+[@http://libcxx.llvm.org/ libc++] C++ Standard Library.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`_LIBCPP_VERSION`] [__predef_detection__]]
+
+ [[`_LIBCPP_VERSION`] [V.0.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_CXX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(_LIBCPP_VERSION)
+# undef MSGPACK_LIB_STD_CXX
+# define MSGPACK_LIB_STD_CXX MSGPACK_PREDEF_MAKE_10_VPPP(_LIBCPP_VERSION)
+#endif
+
+#if MSGPACK_LIB_STD_CXX
+# define MSGPACK_LIB_STD_CXX_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_CXX_NAME "libc++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_CXX,MSGPACK_LIB_STD_CXX_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/dinkumware.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/dinkumware.h
new file mode 100644
index 000000000..b06369d1d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/dinkumware.h
@@ -0,0 +1,53 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_DINKUMWARE_H
+#define MSGPACK_PREDEF_LIBRARY_STD_DINKUMWARE_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_DINKUMWARE`]
+
+[@http://en.wikipedia.org/wiki/Dinkumware Dinkumware] Standard C++ Library.
+If available version number as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`_YVALS`, `__IBMCPP__`] [__predef_detection__]]
+ [[`_CPPLIB_VER`] [__predef_detection__]]
+
+ [[`_CPPLIB_VER`] [V.R.0]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
+# undef MSGPACK_LIB_STD_DINKUMWARE
+# if defined(_CPPLIB_VER)
+# define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_PREDEF_MAKE_10_VVRR(_CPPLIB_VER)
+# else
+# define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_LIB_STD_DINKUMWARE
+# define MSGPACK_LIB_STD_DINKUMWARE_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_DINKUMWARE_NAME "Dinkumware"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_DINKUMWARE,MSGPACK_LIB_STD_DINKUMWARE_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/libcomo.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/libcomo.h
new file mode 100644
index 000000000..73ebc695b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/libcomo.h
@@ -0,0 +1,48 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_LIBCOMO_H
+#define MSGPACK_PREDEF_LIBRARY_STD_LIBCOMO_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_COMO`]
+
+[@http://www.comeaucomputing.com/libcomo/ Comeau Computing] Standard C++ Library.
+Version number available as major.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__LIBCOMO__`] [__predef_detection__]]
+
+ [[`__LIBCOMO_VERSION__`] [V.0.0]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_COMO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__LIBCOMO__)
+# undef MSGPACK_LIB_STD_COMO
+# define MSGPACK_LIB_STD_COMO MSGPACK_VERSION_NUMBER(__LIBCOMO_VERSION__,0,0)
+#endif
+
+#if MSGPACK_LIB_STD_COMO
+# define MSGPACK_LIB_STD_COMO_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_COMO_NAME "Comeau Computing"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_COMO,MSGPACK_LIB_STD_COMO_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/modena.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/modena.h
new file mode 100644
index 000000000..e774029e0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/modena.h
@@ -0,0 +1,46 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_MODENA_H
+#define MSGPACK_PREDEF_LIBRARY_STD_MODENA_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_MSIPL`]
+
+[@http://modena.us/ Modena Software Lib++] Standard C++ Library.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`MSIPL_COMPILE_H`] [__predef_detection__]]
+ [[`__MSIPL_COMPILE_H`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_MSIPL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(MSIPL_COMPILE_H) || defined(__MSIPL_COMPILE_H)
+# undef MSGPACK_LIB_STD_MSIPL
+# define MSGPACK_LIB_STD_MSIPL MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_LIB_STD_MSIPL
+# define MSGPACK_LIB_STD_MSIPL_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_MSIPL_NAME "Modena Software Lib++"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_MSIPL,MSGPACK_LIB_STD_MSIPL_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/msl.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/msl.h
new file mode 100644
index 000000000..04c5f20ed
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/msl.h
@@ -0,0 +1,54 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_MSL_H
+#define MSGPACK_PREDEF_LIBRARY_STD_MSL_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_MSL`]
+
+[@http://www.freescale.com/ Metrowerks] Standard C++ Library.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__MSL_CPP__`] [__predef_detection__]]
+ [[`__MSL__`] [__predef_detection__]]
+
+ [[`__MSL_CPP__`] [V.R.P]]
+ [[`__MSL__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_MSL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MSL_CPP__) || defined(__MSL__)
+# undef MSGPACK_LIB_STD_MSL
+# if defined(__MSL_CPP__)
+# define MSGPACK_LIB_STD_MSL MSGPACK_PREDEF_MAKE_0X_VRPP(__MSL_CPP__)
+# else
+# define MSGPACK_LIB_STD_MSL MSGPACK_PREDEF_MAKE_0X_VRPP(__MSL__)
+# endif
+#endif
+
+#if MSGPACK_LIB_STD_MSL
+# define MSGPACK_LIB_STD_MSL_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_MSL_NAME "Metrowerks"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_MSL,MSGPACK_LIB_STD_MSL_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/roguewave.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/roguewave.h
new file mode 100644
index 000000000..1f1e97723
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/roguewave.h
@@ -0,0 +1,57 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_ROGUEWAVE_H
+#define MSGPACK_PREDEF_LIBRARY_STD_ROGUEWAVE_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_RW`]
+
+[@http://stdcxx.apache.org/ Roguewave] Standard C++ library.
+If available version number as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__STD_RWCOMPILER_H__`] [__predef_detection__]]
+ [[`_RWSTD_VER`] [__predef_detection__]]
+
+ [[`_RWSTD_VER`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_RW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
+# undef MSGPACK_LIB_STD_RW
+# if defined(_RWSTD_VER)
+# if _RWSTD_VER < 0x010000
+# define MSGPACK_LIB_STD_RW MSGPACK_PREDEF_MAKE_0X_VVRRP(_RWSTD_VER)
+# else
+# define MSGPACK_LIB_STD_RW MSGPACK_PREDEF_MAKE_0X_VVRRPP(_RWSTD_VER)
+# endif
+# else
+# define MSGPACK_LIB_STD_RW MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_LIB_STD_RW
+# define MSGPACK_LIB_STD_RW_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_RW_NAME "Roguewave"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_RW,MSGPACK_LIB_STD_RW_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/sgi.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/sgi.h
new file mode 100644
index 000000000..0cde34855
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/sgi.h
@@ -0,0 +1,52 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_SGI_H
+#define MSGPACK_PREDEF_LIBRARY_STD_SGI_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_SGI`]
+
+[@http://www.sgi.com/tech/stl/ SGI] Standard C++ library.
+If available version number as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__STL_CONFIG_H`] [__predef_detection__]]
+
+ [[`__SGI_STL`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_SGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__STL_CONFIG_H)
+# undef MSGPACK_LIB_STD_SGI
+# if defined(__SGI_STL)
+# define MSGPACK_LIB_STD_SGI MSGPACK_PREDEF_MAKE_0X_VRP(__SGI_STL)
+# else
+# define MSGPACK_LIB_STD_SGI MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_LIB_STD_SGI
+# define MSGPACK_LIB_STD_SGI_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_SGI_NAME "SGI"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_SGI,MSGPACK_LIB_STD_SGI_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stdcpp3.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stdcpp3.h
new file mode 100644
index 000000000..6cc2d57c9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stdcpp3.h
@@ -0,0 +1,54 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_STDCPP3_H
+#define MSGPACK_PREDEF_LIBRARY_STD_STDCPP3_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_GNU`]
+
+[@http://gcc.gnu.org/libstdc++/ GNU libstdc++] Standard C++ library.
+Version number available as year (from 1970), month, and day.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__GLIBCXX__`] [__predef_detection__]]
+ [[`__GLIBCPP__`] [__predef_detection__]]
+
+ [[`__GLIBCXX__`] [V.R.P]]
+ [[`__GLIBCPP__`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_GNU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__GLIBCPP__) || defined(__GLIBCXX__)
+# undef MSGPACK_LIB_STD_GNU
+# if defined(__GLIBCXX__)
+# define MSGPACK_LIB_STD_GNU MSGPACK_PREDEF_MAKE_YYYYMMDD(__GLIBCXX__)
+# else
+# define MSGPACK_LIB_STD_GNU MSGPACK_PREDEF_MAKE_YYYYMMDD(__GLIBCPP__)
+# endif
+#endif
+
+#if MSGPACK_LIB_STD_GNU
+# define MSGPACK_LIB_STD_GNU_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_GNU_NAME "GNU"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_GNU,MSGPACK_LIB_STD_GNU_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stlport.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stlport.h
new file mode 100644
index 000000000..50ad82d62
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/stlport.h
@@ -0,0 +1,60 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_STLPORT_H
+#define MSGPACK_PREDEF_LIBRARY_STD_STLPORT_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_STLPORT`]
+
+[@http://sourceforge.net/projects/stlport/ STLport Standard C++] library.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__SGI_STL_PORT`] [__predef_detection__]]
+ [[`_STLPORT_VERSION`] [__predef_detection__]]
+
+ [[`_STLPORT_MAJOR`, `_STLPORT_MINOR`, `_STLPORT_PATCHLEVEL`] [V.R.P]]
+ [[`_STLPORT_VERSION`] [V.R.P]]
+ [[`__SGI_STL_PORT`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_STLPORT MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
+# undef MSGPACK_LIB_STD_STLPORT
+# if !defined(MSGPACK_LIB_STD_STLPORT) && defined(_STLPORT_MAJOR)
+# define MSGPACK_LIB_STD_STLPORT \
+ MSGPACK_VERSION_NUMBER(_STLPORT_MAJOR,_STLPORT_MINOR,_STLPORT_PATCHLEVEL)
+# endif
+# if !defined(MSGPACK_LIB_STD_STLPORT) && defined(_STLPORT_VERSION)
+# define MSGPACK_LIB_STD_STLPORT MSGPACK_PREDEF_MAKE_0X_VRP(_STLPORT_VERSION)
+# endif
+# if !defined(MSGPACK_LIB_STD_STLPORT)
+# define MSGPACK_LIB_STD_STLPORT MSGPACK_PREDEF_MAKE_0X_VRP(__SGI_STL_PORT)
+# endif
+#endif
+
+#if MSGPACK_LIB_STD_STLPORT
+# define MSGPACK_LIB_STD_STLPORT_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_STLPORT_NAME "STLport"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_STLPORT,MSGPACK_LIB_STD_STLPORT_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/vacpp.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/vacpp.h
new file mode 100644
index 000000000..adb7453ae
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/library/std/vacpp.h
@@ -0,0 +1,45 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_LIBRARY_STD_VACPP_H
+#define MSGPACK_PREDEF_LIBRARY_STD_VACPP_H
+
+#include <rpc/msgpack/predef/library/std/_prefix.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_LIB_STD_IBM`]
+
+[@http://www.ibm.com/software/awdtools/xlcpp/ IBM VACPP Standard C++] library.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__IBMCPP__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_LIB_STD_IBM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__IBMCPP__)
+# undef MSGPACK_LIB_STD_IBM
+# define MSGPACK_LIB_STD_IBM MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_LIB_STD_IBM
+# define MSGPACK_LIB_STD_IBM_AVAILABLE
+#endif
+
+#define MSGPACK_LIB_STD_IBM_NAME "IBM VACPP"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_IBM,MSGPACK_LIB_STD_IBM_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/make.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/make.h
new file mode 100644
index 000000000..8569cb7da
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/make.h
@@ -0,0 +1,89 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+#include <rpc/msgpack/predef/detail/test.h>
+
+#ifndef MSGPACK_PREDEF_MAKE_H
+#define MSGPACK_PREDEF_MAKE_H
+
+/*
+Shorthands for the common version number formats used by vendors...
+*/
+
+/*`
+[heading `MSGPACK_PREDEF_MAKE_..` macros]
+
+These set of macros decompose common vendor version number
+macros which are composed version, revision, and patch digits.
+The naming convention indicates:
+
+* The base of the specified version number. "`MSGPACK_PREDEF_MAKE_0X`" for
+ hexadecimal digits, and "`MSGPACK_PREDEF_MAKE_10`" for decimal digits.
+* The format of the vendor version number. Where "`V`" indicates the version digits,
+ "`R`" indicates the revision digits, "`P`" indicates the patch digits, and "`0`"
+ indicates an ignored digit.
+
+Macros are:
+*/
+/*` `MSGPACK_PREDEF_MAKE_0X_VRP(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VRP(V) MSGPACK_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF))
+/*` `MSGPACK_PREDEF_MAKE_0X_VVRP(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VVRP(V) MSGPACK_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF))
+/*` `MSGPACK_PREDEF_MAKE_0X_VRPP(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VRPP(V) MSGPACK_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF))
+/*` `MSGPACK_PREDEF_MAKE_0X_VVRR(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VVRR(V) MSGPACK_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0)
+/*` `MSGPACK_PREDEF_MAKE_0X_VRRPPPP(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VRRPPPP(V) MSGPACK_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF))
+/*` `MSGPACK_PREDEF_MAKE_0X_VVRRP(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VVRRP(V) MSGPACK_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF))
+/*` `MSGPACK_PREDEF_MAKE_0X_VRRPP000(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VRRPP000(V) MSGPACK_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12)
+/*` `MSGPACK_PREDEF_MAKE_0X_VVRRPP(V)` */
+#define MSGPACK_PREDEF_MAKE_0X_VVRRPP(V) MSGPACK_VERSION_NUMBER((V&0xFF0000)>>16,(V&0xFF00)>>8,(V&0xFF))
+/*` `MSGPACK_PREDEF_MAKE_10_VPPP(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VPPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000)
+/*` `MSGPACK_PREDEF_MAKE_10_VRP(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VRP(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10)
+/*` `MSGPACK_PREDEF_MAKE_10_VRP000(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VRP000(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10)
+/*` `MSGPACK_PREDEF_MAKE_10_VRPP(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VRPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100)
+/*` `MSGPACK_PREDEF_MAKE_10_VRR(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VRR(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,(V)%100,0)
+/*` `MSGPACK_PREDEF_MAKE_10_VRRPP(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VRRPP(V) MSGPACK_VERSION_NUMBER(((V)/10000)%10,((V)/100)%100,(V)%100)
+/*` `MSGPACK_PREDEF_MAKE_10_VRR000(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VRR000(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/1000)%100,0)
+/*` `MSGPACK_PREDEF_MAKE_10_VV00(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VV00(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,0,0)
+/*` `MSGPACK_PREDEF_MAKE_10_VVRR(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VVRR(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,(V)%100,0)
+/*` `MSGPACK_PREDEF_MAKE_10_VVRRPP(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VVRRPP(V) MSGPACK_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100)
+/*` `MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V) MSGPACK_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100)
+/*` `MSGPACK_PREDEF_MAKE_10_VVRR0PPPP(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VVRR0PPPP(V) MSGPACK_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,(V)%10000)
+/*` `MSGPACK_PREDEF_MAKE_10_VVRR00PP00(V)` */
+#define MSGPACK_PREDEF_MAKE_10_VVRR00PP00(V) MSGPACK_VERSION_NUMBER(((V)/100000000)%100,((V)/1000000)%100,((V)/100)%100)
+/*`
+[heading `MSGPACK_PREDEF_MAKE_*..` date macros]
+
+Date decomposition macros return a date in the relative to the 1970
+Epoch date. If the month is not available, January 1st is used as the month and day.
+If the day is not available, but the month is, the 1st of the month is used as the day.
+*/
+/*` `MSGPACK_PREDEF_MAKE_DATE(Y,M,D)` */
+#define MSGPACK_PREDEF_MAKE_DATE(Y,M,D) MSGPACK_VERSION_NUMBER((Y)%10000-1970,(M)%100,(D)%100)
+/*` `MSGPACK_PREDEF_MAKE_YYYYMMDD(V)` */
+#define MSGPACK_PREDEF_MAKE_YYYYMMDD(V) MSGPACK_PREDEF_MAKE_DATE(((V)/10000)%10000,((V)/100)%100,(V)%100)
+/*` `MSGPACK_PREDEF_MAKE_YYYY(V)` */
+#define MSGPACK_PREDEF_MAKE_YYYY(V) MSGPACK_PREDEF_MAKE_DATE(V,1,1)
+/*` `MSGPACK_PREDEF_MAKE_YYYYMM(V)` */
+#define MSGPACK_PREDEF_MAKE_YYYYMM(V) MSGPACK_PREDEF_MAKE_DATE((V)/100,(V),1)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os.h
new file mode 100644
index 000000000..8b502713f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os.h
@@ -0,0 +1,31 @@
+/*
+Copyright Rene Rivera 2008-2012
+Copyright Franz Detro 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_H
+#define MSGPACK_PREDEF_OS_H
+
+#include <rpc/msgpack/predef/os/aix.h>
+#include <rpc/msgpack/predef/os/amigaos.h>
+#include <rpc/msgpack/predef/os/android.h>
+#include <rpc/msgpack/predef/os/beos.h>
+#include <rpc/msgpack/predef/os/bsd.h>
+#include <rpc/msgpack/predef/os/cygwin.h>
+#include <rpc/msgpack/predef/os/haiku.h>
+#include <rpc/msgpack/predef/os/hpux.h>
+#include <rpc/msgpack/predef/os/irix.h>
+#include <rpc/msgpack/predef/os/ios.h>
+#include <rpc/msgpack/predef/os/linux.h>
+#include <rpc/msgpack/predef/os/macos.h>
+#include <rpc/msgpack/predef/os/os400.h>
+#include <rpc/msgpack/predef/os/qnxnto.h>
+#include <rpc/msgpack/predef/os/solaris.h>
+#include <rpc/msgpack/predef/os/unix.h>
+#include <rpc/msgpack/predef/os/vms.h>
+#include <rpc/msgpack/predef/os/windows.h>
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/aix.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/aix.h
new file mode 100644
index 000000000..382bc662f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/aix.h
@@ -0,0 +1,67 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_AIX_H
+#define MSGPACK_PREDEF_OS_AIX_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_AIX`]
+
+[@http://en.wikipedia.org/wiki/AIX_operating_system IBM AIX] operating system.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`_AIX`] [__predef_detection__]]
+ [[`__TOS_AIX__`] [__predef_detection__]]
+
+ [[`_AIX43`] [4.3.0]]
+ [[`_AIX41`] [4.1.0]]
+ [[`_AIX32`] [3.2.0]]
+ [[`_AIX3`] [3.0.0]]
+ ]
+ */
+
+#define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(_AIX) || defined(__TOS_AIX__) \
+ )
+# undef MSGPACK_OS_AIX
+# if !defined(MSGPACK_OS_AIX) && defined(_AIX43)
+# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(4,3,0)
+# endif
+# if !defined(MSGPACK_OS_AIX) && defined(_AIX41)
+# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(4,1,0)
+# endif
+# if !defined(MSGPACK_OS_AIX) && defined(_AIX32)
+# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(3,2,0)
+# endif
+# if !defined(MSGPACK_OS_AIX) && defined(_AIX3)
+# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(3,0,0)
+# endif
+# if !defined(MSGPACK_OS_AIX)
+# define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_OS_AIX
+# define MSGPACK_OS_AIX_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_AIX_NAME "IBM AIX"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_AIX,MSGPACK_OS_AIX_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/amigaos.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/amigaos.h
new file mode 100644
index 000000000..fada32808
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/amigaos.h
@@ -0,0 +1,47 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_AMIGAOS_H
+#define MSGPACK_PREDEF_OS_AMIGAOS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_AMIGAOS`]
+
+[@http://en.wikipedia.org/wiki/AmigaOS AmigaOS] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`AMIGA`] [__predef_detection__]]
+ [[`__amigaos__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_AMIGAOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(AMIGA) || defined(__amigaos__) \
+ )
+# undef MSGPACK_OS_AMIGAOS
+# define MSGPACK_OS_AMIGAOS MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_AMIGAOS
+# define MSGPACK_OS_AMIGAOS_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_AMIGAOS_NAME "AmigaOS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_AMIGAOS,MSGPACK_OS_AMIGAOS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/android.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/android.h
new file mode 100644
index 000000000..180b7e2d5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/android.h
@@ -0,0 +1,46 @@
+/*
+Copyright Rene Rivera 2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_ADROID_H
+#define MSGPACK_PREDEF_OS_ADROID_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_ANDROID`]
+
+[@http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__ANDROID__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_ANDROID MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__ANDROID__) \
+ )
+# undef MSGPACK_OS_ANDROID
+# define MSGPACK_OS_ANDROID MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_ANDROID
+# define MSGPACK_OS_ANDROID_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_ANDROID_NAME "Android"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_ANDROID,MSGPACK_OS_ANDROID_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/beos.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/beos.h
new file mode 100644
index 000000000..01b03b5ee
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/beos.h
@@ -0,0 +1,46 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_BEOS_H
+#define MSGPACK_PREDEF_OS_BEOS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_BEOS`]
+
+[@http://en.wikipedia.org/wiki/BeOS BeOS] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__BEOS__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_BEOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__BEOS__) \
+ )
+# undef MSGPACK_OS_BEOS
+# define MSGPACK_OS_BEOS MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_BEOS
+# define MSGPACK_OS_BEOS_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_BEOS_NAME "BeOS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BEOS,MSGPACK_OS_BEOS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd.h
new file mode 100644
index 000000000..0c28ce59d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd.h
@@ -0,0 +1,95 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_BSD_H
+#define MSGPACK_PREDEF_OS_BSD_H
+
+/* Special case: OSX will define BSD predefs if the sys/param.h
+ * header is included. We can guard against that, but only if we
+ * detect OSX first. Hence we will force include OSX detection
+ * before doing any BSD detection.
+ */
+#include <rpc/msgpack/predef/os/macos.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_BSD`]
+
+[@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system.
+
+BSD has various branch operating systems possible and each detected
+individually. This detects the following variations and sets a specific
+version number macro to match:
+
+* `MSGPACK_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD]
+* `MSGPACK_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD]
+* `MSGPACK_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS]
+* `MSGPACK_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD]
+* `MSGPACK_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD]
+
+[note The general `MSGPACK_OS_BSD` is set in all cases to indicate some form
+of BSD. If the above variants is detected the corresponding macro is also set.]
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`BSD`] [__predef_detection__]]
+ [[`_SYSTYPE_BSD`] [__predef_detection__]]
+
+ [[`BSD4_2`] [4.2.0]]
+ [[`BSD4_3`] [4.3.0]]
+ [[`BSD4_4`] [4.4.0]]
+ [[`BSD`] [V.R.0]]
+ ]
+ */
+
+#include <rpc/msgpack/predef/os/bsd/bsdi.h>
+#include <rpc/msgpack/predef/os/bsd/dragonfly.h>
+#include <rpc/msgpack/predef/os/bsd/free.h>
+#include <rpc/msgpack/predef/os/bsd/open.h>
+#include <rpc/msgpack/predef/os/bsd/net.h>
+
+#ifndef MSGPACK_OS_BSD
+#define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+#endif
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(BSD) || \
+ defined(_SYSTYPE_BSD) \
+ )
+# undef MSGPACK_OS_BSD
+# include <sys/param.h>
+# if !defined(MSGPACK_OS_BSD) && defined(BSD4_4)
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,4,0)
+# endif
+# if !defined(MSGPACK_OS_BSD) && defined(BSD4_3)
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,3,0)
+# endif
+# if !defined(MSGPACK_OS_BSD) && defined(BSD4_2)
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,2,0)
+# endif
+# if !defined(MSGPACK_OS_BSD) && defined(BSD)
+# define MSGPACK_OS_BSD MSGPACK_PREDEF_MAKE_10_VVRR(BSD)
+# endif
+# if !defined(MSGPACK_OS_BSD)
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_OS_BSD
+# define MSGPACK_OS_BSD_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_BSD_NAME "BSD"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD,MSGPACK_OS_BSD_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/bsdi.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/bsdi.h
new file mode 100644
index 000000000..b37e95a3c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/bsdi.h
@@ -0,0 +1,48 @@
+/*
+Copyright Rene Rivera 2012-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_BSD_BSDI_H
+#define MSGPACK_PREDEF_OS_BSD_BSDI_H
+
+#include <rpc/msgpack/predef/os/bsd.h>
+
+/*`
+[heading `MSGPACK_OS_BSD_BSDI`]
+
+[@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__bsdi__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_BSD_BSDI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__bsdi__) \
+ )
+# ifndef MSGPACK_OS_BSD_AVAILABLE
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE
+# define MSGPACK_OS_BSD_AVAILABLE
+# endif
+# undef MSGPACK_OS_BSD_BSDI
+# define MSGPACK_OS_BSD_BSDI MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_BSD_BSDI
+# define MSGPACK_OS_BSD_BSDI_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_BSD_BSDI_NAME "BSDi BSD/OS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_BSDI,MSGPACK_OS_BSD_BSDI_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/dragonfly.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/dragonfly.h
new file mode 100644
index 000000000..b870ea39a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/dragonfly.h
@@ -0,0 +1,50 @@
+/*
+Copyright Rene Rivera 2012-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_BSD_DRAGONFLY_H
+#define MSGPACK_PREDEF_OS_BSD_DRAGONFLY_H
+
+#include <rpc/msgpack/predef/os/bsd.h>
+
+/*`
+[heading `MSGPACK_OS_BSD_DRAGONFLY`]
+
+[@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__DragonFly__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_BSD_DRAGONFLY MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__DragonFly__) \
+ )
+# ifndef MSGPACK_OS_BSD_AVAILABLE
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE
+# define MSGPACK_OS_BSD_AVAILABLE
+# endif
+# undef MSGPACK_OS_BSD_DRAGONFLY
+# if defined(__DragonFly__)
+# define MSGPACK_OS_DRAGONFLY_BSD MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_OS_BSD_DRAGONFLY
+# define MSGPACK_OS_BSD_DRAGONFLY_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_BSD_DRAGONFLY_NAME "DragonFly BSD"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_DRAGONFLY,MSGPACK_OS_BSD_DRAGONFLY_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/free.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/free.h
new file mode 100644
index 000000000..e06ed1395
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/free.h
@@ -0,0 +1,60 @@
+/*
+Copyright Rene Rivera 2012-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_BSD_FREE_H
+#define MSGPACK_PREDEF_OS_BSD_FREE_H
+
+#include <rpc/msgpack/predef/os/bsd.h>
+
+/*`
+[heading `MSGPACK_OS_BSD_FREE`]
+
+[@http://en.wikipedia.org/wiki/Freebsd FreeBSD] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__FreeBSD__`] [__predef_detection__]]
+
+ [[`__FreeBSD_version`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_OS_BSD_FREE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__FreeBSD__) \
+ )
+# ifndef MSGPACK_OS_BSD_AVAILABLE
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE
+# define MSGPACK_OS_BSD_AVAILABLE
+# endif
+# undef MSGPACK_OS_BSD_FREE
+# if defined(__FreeBSD_version)
+# if __FreeBSD_version < 500000
+# define MSGPACK_OS_BSD_FREE \
+ MSGPACK_PREDEF_MAKE_10_VRP000(__FreeBSD_version)
+# else
+# define MSGPACK_OS_BSD_FREE \
+ MSGPACK_PREDEF_MAKE_10_VRR000(__FreeBSD_version)
+# endif
+# else
+# define MSGPACK_OS_BSD_FREE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_OS_BSD_FREE
+# define MSGPACK_OS_BSD_FREE_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_BSD_FREE_NAME "Free BSD"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_FREE,MSGPACK_OS_BSD_FREE_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/net.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/net.h
new file mode 100644
index 000000000..214d4a631
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/net.h
@@ -0,0 +1,84 @@
+/*
+Copyright Rene Rivera 2012-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_BSD_NET_H
+#define MSGPACK_PREDEF_OS_BSD_NET_H
+
+#include <rpc/msgpack/predef/os/bsd.h>
+
+/*`
+[heading `MSGPACK_OS_BSD_NET`]
+
+[@http://en.wikipedia.org/wiki/Netbsd NetBSD] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__NETBSD__`] [__predef_detection__]]
+ [[`__NetBSD__`] [__predef_detection__]]
+
+ [[`__NETBSD_version`] [V.R.P]]
+ [[`NetBSD0_8`] [0.8.0]]
+ [[`NetBSD0_9`] [0.9.0]]
+ [[`NetBSD1_0`] [1.0.0]]
+ [[`__NetBSD_Version`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__NETBSD__) || defined(__NetBSD__) \
+ )
+# ifndef MSGPACK_OS_BSD_AVAILABLE
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE
+# define MSGPACK_OS_BSD_AVAILABLE
+# endif
+# undef MSGPACK_OS_BSD_NET
+# if defined(__NETBSD__)
+# if defined(__NETBSD_version)
+# if __NETBSD_version < 500000
+# define MSGPACK_OS_BSD_NET \
+ MSGPACK_PREDEF_MAKE_10_VRP000(__NETBSD_version)
+# else
+# define MSGPACK_OS_BSD_NET \
+ MSGPACK_PREDEF_MAKE_10_VRR000(__NETBSD_version)
+# endif
+# else
+# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# elif defined(__NetBSD__)
+# if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD0_8)
+# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(0,8,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD0_9)
+# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(0,9,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD1_0)
+# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(1,0,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_NET) && defined(__NetBSD_Version)
+# define MSGPACK_OS_BSD_NET \
+ MSGPACK_PREDEF_MAKE_10_VVRR00PP00(__NetBSD_Version)
+# endif
+# if !defined(MSGPACK_OS_BSD_NET)
+# define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# endif
+#endif
+
+#if MSGPACK_OS_BSD_NET
+# define MSGPACK_OS_BSD_NET_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_BSD_NET_NAME "DragonFly BSD"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_NET,MSGPACK_OS_BSD_NET_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/open.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/open.h
new file mode 100644
index 000000000..a42eb3856
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/bsd/open.h
@@ -0,0 +1,171 @@
+/*
+Copyright Rene Rivera 2012-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_BSD_OPEN_H
+#define MSGPACK_PREDEF_OS_BSD_OPEN_H
+
+#include <rpc/msgpack/predef/os/bsd.h>
+
+/*`
+[heading `MSGPACK_OS_BSD_OPEN`]
+
+[@http://en.wikipedia.org/wiki/Openbsd OpenBSD] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__OpenBSD__`] [__predef_detection__]]
+
+ [[`OpenBSD2_0`] [2.0.0]]
+ [[`OpenBSD2_1`] [2.1.0]]
+ [[`OpenBSD2_2`] [2.2.0]]
+ [[`OpenBSD2_3`] [2.3.0]]
+ [[`OpenBSD2_4`] [2.4.0]]
+ [[`OpenBSD2_5`] [2.5.0]]
+ [[`OpenBSD2_6`] [2.6.0]]
+ [[`OpenBSD2_7`] [2.7.0]]
+ [[`OpenBSD2_8`] [2.8.0]]
+ [[`OpenBSD2_9`] [2.9.0]]
+ [[`OpenBSD3_0`] [3.0.0]]
+ [[`OpenBSD3_1`] [3.1.0]]
+ [[`OpenBSD3_2`] [3.2.0]]
+ [[`OpenBSD3_3`] [3.3.0]]
+ [[`OpenBSD3_4`] [3.4.0]]
+ [[`OpenBSD3_5`] [3.5.0]]
+ [[`OpenBSD3_6`] [3.6.0]]
+ [[`OpenBSD3_7`] [3.7.0]]
+ [[`OpenBSD3_8`] [3.8.0]]
+ [[`OpenBSD3_9`] [3.9.0]]
+ [[`OpenBSD4_0`] [4.0.0]]
+ [[`OpenBSD4_1`] [4.1.0]]
+ [[`OpenBSD4_2`] [4.2.0]]
+ [[`OpenBSD4_3`] [4.3.0]]
+ [[`OpenBSD4_4`] [4.4.0]]
+ [[`OpenBSD4_5`] [4.5.0]]
+ [[`OpenBSD4_6`] [4.6.0]]
+ [[`OpenBSD4_7`] [4.7.0]]
+ [[`OpenBSD4_8`] [4.8.0]]
+ [[`OpenBSD4_9`] [4.9.0]]
+ ]
+ */
+
+#define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__OpenBSD__) \
+ )
+# ifndef MSGPACK_OS_BSD_AVAILABLE
+# define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE
+# define MSGPACK_OS_BSD_AVAILABLE
+# endif
+# undef MSGPACK_OS_BSD_OPEN
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_0)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,0,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_1)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,1,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_2)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,2,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_3)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,3,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_4)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,4,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_5)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,5,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_6)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,6,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_7)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,7,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_8)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,8,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_9)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,9,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_0)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,0,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_1)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,1,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_2)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,2,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_3)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,3,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_4)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,4,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_5)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,5,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_6)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,6,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_7)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,7,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_8)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,8,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_9)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,9,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_0)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,0,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_1)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,1,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_2)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,2,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_3)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,3,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_4)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,4,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_5)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,5,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_6)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,6,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_7)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,7,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_8)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,8,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_9)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,9,0)
+# endif
+# if !defined(MSGPACK_OS_BSD_OPEN)
+# define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_OS_BSD_OPEN
+# define MSGPACK_OS_BSD_OPEN_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_BSD_OPEN_NAME "OpenBSD"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_OPEN,MSGPACK_OS_BSD_OPEN_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/cygwin.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/cygwin.h
new file mode 100644
index 000000000..6a99b8d75
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/cygwin.h
@@ -0,0 +1,46 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_CYGWIN_H
+#define MSGPACK_PREDEF_OS_CYGWIN_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_CYGWIN`]
+
+[@http://en.wikipedia.org/wiki/Cygwin Cygwin] evironment.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__CYGWIN__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_CYGWIN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__CYGWIN__) \
+ )
+# undef MSGPACK_OS_CYGWIN
+# define MSGPACK_OS_CGYWIN MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_CYGWIN
+# define MSGPACK_OS_CYGWIN_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_CYGWIN_NAME "Cygwin"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_CYGWIN,MSGPACK_OS_CYGWIN_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/haiku.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/haiku.h
new file mode 100644
index 000000000..7a103a333
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/haiku.h
@@ -0,0 +1,47 @@
+/*
+Copyright Jessica Hamilton 2014
+Copyright Rene Rivera 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_HAIKU_H
+#define MSGPACK_PREDEF_OS_HAIKU_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_HAIKU`]
+
+[@http://en.wikipedia.org/wiki/Haiku_(operating_system) Haiku] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__HAIKU__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_HAIKU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__HAIKU__) \
+ )
+# undef MSGPACK_OS_HAIKU
+# define MSGPACK_OS_HAIKU MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_HAIKU
+# define MSGPACK_OS_HAIKU_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_HAIKU_NAME "Haiku"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_HAIKU,MSGPACK_OS_HAIKU_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/hpux.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/hpux.h
new file mode 100644
index 000000000..e5b1c875d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/hpux.h
@@ -0,0 +1,48 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_HPUX_H
+#define MSGPACK_PREDEF_OS_HPUX_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_HPUX`]
+
+[@http://en.wikipedia.org/wiki/HP-UX HP-UX] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`hpux`] [__predef_detection__]]
+ [[`_hpux`] [__predef_detection__]]
+ [[`__hpux`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_HPUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(hpux) || defined(_hpux) || defined(__hpux) \
+ )
+# undef MSGPACK_OS_HPUX
+# define MSGPACK_OS_HPUX MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_HPUX
+# define MSGPACK_OS_HPUX_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_HPUX_NAME "HP-UX"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_HPUX,MSGPACK_OS_HPUX_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/ios.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/ios.h
new file mode 100644
index 000000000..bbcee5fdc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/ios.h
@@ -0,0 +1,51 @@
+/*
+Copyright Franz Detro 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_IOS_H
+#define MSGPACK_PREDEF_OS_IOS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_IOS`]
+
+[@http://en.wikipedia.org/wiki/iOS iOS] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__APPLE__`] [__predef_detection__]]
+ [[`__MACH__`] [__predef_detection__]]
+ [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__predef_detection__]]
+
+ [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000]]
+ ]
+ */
+
+#define MSGPACK_OS_IOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__APPLE__) && defined(__MACH__) && \
+ defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) \
+ )
+# undef MSGPACK_OS_IOS
+# define MSGPACK_OS_IOS (__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000)
+#endif
+
+#if MSGPACK_OS_IOS
+# define MSGPACK_OS_IOS_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_IOS_NAME "iOS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_IOS,MSGPACK_OS_IOS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/irix.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/irix.h
new file mode 100644
index 000000000..0c77f8af1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/irix.h
@@ -0,0 +1,47 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_IRIX_H
+#define MSGPACK_PREDEF_OS_IRIX_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_IRIX`]
+
+[@http://en.wikipedia.org/wiki/Irix IRIX] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`sgi`] [__predef_detection__]]
+ [[`__sgi`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_IRIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(sgi) || defined(__sgi) \
+ )
+# undef MSGPACK_OS_IRIX
+# define MSGPACK_OS_IRIX MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_IRIX
+# define MSGPACK_OS_IRIX_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_IRIX_NAME "IRIX"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_IRIX,MSGPACK_OS_IRIX_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/linux.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/linux.h
new file mode 100644
index 000000000..c4174b75d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/linux.h
@@ -0,0 +1,47 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_LINUX_H
+#define MSGPACK_PREDEF_OS_LINUX_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_LINUX`]
+
+[@http://en.wikipedia.org/wiki/Linux Linux] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`linux`] [__predef_detection__]]
+ [[`__linux`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(linux) || defined(__linux) \
+ )
+# undef MSGPACK_OS_LINUX
+# define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_LINUX
+# define MSGPACK_OS_LINUX_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_LINUX_NAME "Linux"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_LINUX,MSGPACK_OS_LINUX_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/macos.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/macos.h
new file mode 100644
index 000000000..f4d62276d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/macos.h
@@ -0,0 +1,66 @@
+/*
+Copyright Rene Rivera 2008-2013
+Copyright Franz Detro 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_MACOS_H
+#define MSGPACK_PREDEF_OS_MACOS_H
+
+/* Special case: iOS will define the same predefs as MacOS, and additionally
+ '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__'. We can guard against that,
+ but only if we detect iOS first. Hence we will force include iOS detection
+ * before doing any MacOS detection.
+ */
+#include <rpc/msgpack/predef/os/ios.h>
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_MACOS`]
+
+[@http://en.wikipedia.org/wiki/Mac_OS Mac OS] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`macintosh`] [__predef_detection__]]
+ [[`Macintosh`] [__predef_detection__]]
+ [[`__APPLE__`] [__predef_detection__]]
+ [[`__MACH__`] [__predef_detection__]]
+
+ [[`__APPLE__`, `__MACH__`] [10.0.0]]
+ [[ /otherwise/ ] [9.0.0]]
+ ]
+ */
+
+#define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(macintosh) || defined(Macintosh) || \
+ (defined(__APPLE__) && defined(__MACH__)) \
+ )
+# undef MSGPACK_OS_MACOS
+# if !defined(MSGPACK_OS_MACOS) && defined(__APPLE__) && defined(__MACH__)
+# define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER(10,0,0)
+# endif
+# if !defined(MSGPACK_OS_MACOS)
+# define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER(9,0,0)
+# endif
+#endif
+
+#if MSGPACK_OS_MACOS
+# define MSGPACK_OS_MACOS_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_MACOS_NAME "Mac OS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_MACOS,MSGPACK_OS_MACOS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/os400.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/os400.h
new file mode 100644
index 000000000..18344ced3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/os400.h
@@ -0,0 +1,46 @@
+/*
+Copyright Rene Rivera 2011-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_OS400_H
+#define MSGPACK_PREDEF_OS_OS400_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_OS400`]
+
+[@http://en.wikipedia.org/wiki/IBM_i IBM OS/400] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__OS400__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_OS400 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__OS400__) \
+ )
+# undef MSGPACK_OS_OS400
+# define MSGPACK_OS_OS400 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_OS400
+# define MSGPACK_OS_OS400_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_OS400_NAME "IBM OS/400"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_OS400,MSGPACK_OS_OS400_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/qnxnto.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/qnxnto.h
new file mode 100644
index 000000000..c0651fa39
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/qnxnto.h
@@ -0,0 +1,60 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_QNXNTO_H
+#define MSGPACK_PREDEF_OS_QNXNTO_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_QNX`]
+
+[@http://en.wikipedia.org/wiki/QNX QNX] operating system.
+Version number available as major, and minor if possible. And
+version 4 is specifically detected.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__QNX__`] [__predef_detection__]]
+ [[`__QNXNTO__`] [__predef_detection__]]
+
+ [[`_NTO_VERSION`] [V.R.0]]
+ [[`__QNX__`] [4.0.0]]
+ ]
+ */
+
+#define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(__QNX__) || defined(__QNXNTO__) \
+ )
+# undef MSGPACK_OS_QNX
+# if !defined(MSGPACK_OS_QNX) && defined(_NTO_VERSION)
+# define MSGPACK_OS_QNX MSGPACK_PREDEF_MAKE_10_VVRR(_NTO_VERSION)
+# endif
+# if !defined(MSGPACK_OS_QNX) && defined(__QNX__)
+# define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER(4,0,0)
+# endif
+# if !defined(MSGPACK_OS_QNX)
+# define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_OS_QNX
+# define MSGPACK_OS_QNX_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_QNX_NAME "QNX"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_QNX,MSGPACK_OS_QNX_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/solaris.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/solaris.h
new file mode 100644
index 000000000..5e7f5c6ea
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/solaris.h
@@ -0,0 +1,47 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_SOLARIS_H
+#define MSGPACK_PREDEF_OS_SOLARIS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_SOLARIS`]
+
+[@http://en.wikipedia.org/wiki/Solaris_Operating_Environment Solaris] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`sun`] [__predef_detection__]]
+ [[`__sun`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_SOLARIS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(sun) || defined(__sun) \
+ )
+# undef MSGPACK_OS_SOLARIS
+# define MSGPACK_OS_SOLARIS MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_SOLARIS
+# define MSGPACK_OS_SOLARIS_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_SOLARIS_NAME "Solaris"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_SOLARIS,MSGPACK_OS_SOLARIS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/unix.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/unix.h
new file mode 100644
index 000000000..149533d33
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/unix.h
@@ -0,0 +1,76 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_UNIX_H
+#define MSGPACK_PREDEF_OS_UNIX_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_UNIX`]
+
+[@http://en.wikipedia.org/wiki/Unix Unix Environment] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`unix`] [__predef_detection__]]
+ [[`__unix`] [__predef_detection__]]
+ [[`_XOPEN_SOURCE`] [__predef_detection__]]
+ [[`_POSIX_SOURCE`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(unix) || defined(__unix) || \
+ defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE)
+# undef MSGPACK_OS_UNIX
+# define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_UNIX
+# define MSGPACK_OS_UNIX_AVAILABLE
+#endif
+
+#define MSGPACK_OS_UNIX_NAME "Unix Environment"
+
+/*`
+[heading `MSGPACK_OS_SVR4`]
+
+[@http://en.wikipedia.org/wiki/UNIX_System_V SVR4 Environment] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__sysv__`] [__predef_detection__]]
+ [[`__SVR4`] [__predef_detection__]]
+ [[`__svr4__`] [__predef_detection__]]
+ [[`_SYSTYPE_SVR4`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_SVR4 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__sysv__) || defined(__SVR4) || \
+ defined(__svr4__) || defined(_SYSTYPE_SVR4)
+# undef MSGPACK_OS_SVR4
+# define MSGPACK_OS_SVR4 MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_SVR4
+# define MSGPACK_OS_SVR4_AVAILABLE
+#endif
+
+#define MSGPACK_OS_SVR4_NAME "SVR4 Environment"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_UNIX,MSGPACK_OS_UNIX_NAME)
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_SVR4,MSGPACK_OS_SVR4_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/vms.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/vms.h
new file mode 100644
index 000000000..ae4564486
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/vms.h
@@ -0,0 +1,53 @@
+/*
+Copyright Rene Rivera 2011-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_VMS_H
+#define MSGPACK_PREDEF_OS_VMS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_VMS`]
+
+[@http://en.wikipedia.org/wiki/Vms VMS] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`VMS`] [__predef_detection__]]
+ [[`__VMS`] [__predef_detection__]]
+
+ [[`__VMS_VER`] [V.R.P]]
+ ]
+ */
+
+#define MSGPACK_OS_VMS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(VMS) || defined(__VMS) \
+ )
+# undef MSGPACK_OS_VMS
+# if defined(__VMS_VER)
+# define MSGPACK_OS_VMS MSGPACK_PREDEF_MAKE_10_VVRR00PP00(__VMS_VER)
+# else
+# define MSGPACK_OS_VMS MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#if MSGPACK_OS_VMS
+# define MSGPACK_OS_VMS_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_VMS_NAME "VMS"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_VMS,MSGPACK_OS_VMS_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/windows.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/windows.h
new file mode 100644
index 000000000..6aecf0346
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/os/windows.h
@@ -0,0 +1,51 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OS_WINDOWS_H
+#define MSGPACK_PREDEF_OS_WINDOWS_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_OS_WINDOWS`]
+
+[@http://en.wikipedia.org/wiki/Category:Microsoft_Windows Microsoft Windows] operating system.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`_WIN32`] [__predef_detection__]]
+ [[`_WIN64`] [__predef_detection__]]
+ [[`__WIN32__`] [__predef_detection__]]
+ [[`__TOS_WIN__`] [__predef_detection__]]
+ [[`__WINDOWS__`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_OS_WINDOWS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \
+ defined(_WIN32) || defined(_WIN64) || \
+ defined(__WIN32__) || defined(__TOS_WIN__) || \
+ defined(__WINDOWS__) \
+ )
+# undef MSGPACK_OS_WINDOWS
+# define MSGPACK_OS_WINDOWS MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_OS_WINDOWS
+# define MSGPACK_OS_WINDOWS_AVAILABLE
+# include <rpc/msgpack/predef/detail/os_detected.h>
+#endif
+
+#define MSGPACK_OS_WINDOWS_NAME "Microsoft Windows"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_WINDOWS,MSGPACK_OS_WINDOWS_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/other.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/other.h
new file mode 100644
index 000000000..39b84b887
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/other.h
@@ -0,0 +1,14 @@
+/*
+Copyright Rene Rivera 2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_OTHER_H
+#define MSGPACK_PREDEF_OTHER_H
+
+#include <rpc/msgpack/predef/other/endian.h>
+/*#include <rpc/msgpack/predef/other/.h>*/
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h
new file mode 100644
index 000000000..3f367b3d4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/other/endian.h
@@ -0,0 +1,205 @@
+/*
+Copyright Rene Rivera 2013-2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_ENDIAN_H
+#define MSGPACK_PREDEF_ENDIAN_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+#include <rpc/msgpack/predef/library/c/gnu.h>
+#include <rpc/msgpack/predef/os/macos.h>
+#include <rpc/msgpack/predef/os/bsd.h>
+#include <rpc/msgpack/predef/os/android.h>
+
+/*`
+[heading `MSGPACK_ENDIAN_*`]
+
+Detection of endian memory ordering. There are four defined macros
+in this header that define the various generally possible endian
+memory orderings:
+
+* `MSGPACK_ENDIAN_BIG_BYTE`, byte-swapped big-endian.
+* `MSGPACK_ENDIAN_BIG_WORD`, word-swapped big-endian.
+* `MSGPACK_ENDIAN_LITTLE_BYTE`, byte-swapped little-endian.
+* `MSGPACK_ENDIAN_LITTLE_WORD`, word-swapped little-endian.
+
+The detection is conservative in that it only identifies endianness
+that it knows for certain. In particular bi-endianness is not
+indicated as is it not practically possible to determine the
+endianness from anything but an operating system provided
+header. And the currently known headers do not define that
+programatic bi-endianness is available.
+
+This implementation is a compilation of various publicly available
+information and acquired knowledge:
+
+# The indispensable documentation of "Pre-defined Compiler Macros"
+ [@http://sourceforge.net/p/predef/wiki/Endianness Endianness].
+# The various endian specifications available in the
+ [@http://wikipedia.org/ Wikipedia] computer architecture pages.
+# Generally available searches for headers that define endianness.
+ */
+
+#define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+#define MSGPACK_ENDIAN_BIG_WORD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+#define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+#define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+/* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER.
+ * And some OSs provide some for of endian header also.
+ */
+#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \
+ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD
+# if MSGPACK_LIB_C_GNU || MSGPACK_OS_ANDROID
+# include <endian.h>
+# else
+# if MSGPACK_OS_MACOS
+# include <machine/endian.h>
+# else
+# if MSGPACK_OS_BSD
+# if MSGPACK_OS_BSD_OPEN
+# include <machine/endian.h>
+# else
+# include <sys/endian.h>
+# endif
+# endif
+# endif
+# endif
+# if defined(__BYTE_ORDER)
+# if defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN)
+# undef MSGPACK_ENDIAN_BIG_BYTE
+# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN)
+# undef MSGPACK_ENDIAN_LITTLE_BYTE
+# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN)
+# undef MSGPACK_ENDIAN_LITTLE_WORD
+# define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# endif
+# if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER)
+# if defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN)
+# undef MSGPACK_ENDIAN_BIG_BYTE
+# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN)
+# undef MSGPACK_ENDIAN_LITTLE_BYTE
+# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# if defined(_PDP_ENDIAN) && (_BYTE_ORDER == _PDP_ENDIAN)
+# undef MSGPACK_ENDIAN_LITTLE_WORD
+# define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# endif
+#endif
+
+/* Built-in byte-swpped big-endian macros.
+ */
+#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \
+ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD
+# if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \
+ (defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)) || \
+ defined(__ARMEB__) || \
+ defined(__THUMBEB__) || \
+ defined(__AARCH64EB__) || \
+ defined(_MIPSEB) || \
+ defined(__MIPSEB) || \
+ defined(__MIPSEB__)
+# undef MSGPACK_ENDIAN_BIG_BYTE
+# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+/* Built-in byte-swpped little-endian macros.
+ */
+#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \
+ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD
+# if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \
+ (defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)) || \
+ defined(__ARMEL__) || \
+ defined(__THUMBEL__) || \
+ defined(__AARCH64EL__) || \
+ defined(_MIPSEL) || \
+ defined(__MIPSEL) || \
+ defined(__MIPSEL__)
+# undef MSGPACK_ENDIAN_LITTLE_BYTE
+# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+/* Some architectures are strictly one endianess (as opposed
+ * the current common bi-endianess).
+ */
+#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \
+ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD
+# include <rpc/msgpack/predef/architecture.h>
+# if MSGPACK_ARCH_M68K || \
+ MSGPACK_ARCH_PARISK || \
+ MSGPACK_ARCH_SPARC || \
+ MSGPACK_ARCH_SYS370 || \
+ MSGPACK_ARCH_SYS390 || \
+ MSGPACK_ARCH_Z
+# undef MSGPACK_ENDIAN_BIG_BYTE
+# define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# if MSGPACK_ARCH_AMD64 || \
+ MSGPACK_ARCH_IA64 || \
+ MSGPACK_ARCH_X86 || \
+ MSGPACK_ARCH_BLACKFIN
+# undef MSGPACK_ENDIAN_LITTLE_BYTE
+# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+/* Windows on ARM, if not otherwise detected/specified, is always
+ * byte-swaped little-endian.
+ */
+#if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \
+ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD
+# if MSGPACK_ARCH_ARM
+# include <rpc/msgpack/predef/os/windows.h>
+# if MSGPACK_OS_WINDOWS
+# undef MSGPACK_ENDIAN_LITTLE_BYTE
+# define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+# endif
+#endif
+
+#if MSGPACK_ENDIAN_BIG_BYTE
+# define MSGPACK_ENDIAN_BIG_BYTE_AVAILABLE
+#endif
+#if MSGPACK_ENDIAN_BIG_WORD
+# define MSGPACK_ENDIAN_BIG_WORD_BYTE_AVAILABLE
+#endif
+#if MSGPACK_ENDIAN_LITTLE_BYTE
+# define MSGPACK_ENDIAN_LITTLE_BYTE_AVAILABLE
+#endif
+#if MSGPACK_ENDIAN_LITTLE_WORD
+# define MSGPACK_ENDIAN_LITTLE_WORD_BYTE_AVAILABLE
+#endif
+
+#define MSGPACK_ENDIAN_BIG_BYTE_NAME "Byte-Swapped Big-Endian"
+#define MSGPACK_ENDIAN_BIG_WORD_NAME "Word-Swapped Big-Endian"
+#define MSGPACK_ENDIAN_LITTLE_BYTE_NAME "Byte-Swapped Little-Endian"
+#define MSGPACK_ENDIAN_LITTLE_WORD_NAME "Word-Swapped Little-Endian"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_BIG_BYTE,MSGPACK_ENDIAN_BIG_BYTE_NAME)
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_BIG_WORD,MSGPACK_ENDIAN_BIG_WORD_NAME)
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_LITTLE_BYTE,MSGPACK_ENDIAN_LITTLE_BYTE_NAME)
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_LITTLE_WORD,MSGPACK_ENDIAN_LITTLE_WORD_NAME)
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform.h
new file mode 100644
index 000000000..dde153927
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform.h
@@ -0,0 +1,19 @@
+/*
+Copyright Rene Rivera 2013
+Copyright (c) Microsoft Corporation 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_PLATFORM_H
+#define MSGPACK_PREDEF_PLATFORM_H
+
+#include <rpc/msgpack/predef/platform/mingw.h>
+#include <rpc/msgpack/predef/platform/windows_desktop.h>
+#include <rpc/msgpack/predef/platform/windows_store.h>
+#include <rpc/msgpack/predef/platform/windows_phone.h>
+#include <rpc/msgpack/predef/platform/windows_runtime.h>
+/*#include <rpc/msgpack/predef/platform/.h>*/
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/mingw.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/mingw.h
new file mode 100644
index 000000000..da17285fd
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/mingw.h
@@ -0,0 +1,70 @@
+/*
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_COMPILER_MINGW_H
+#define MSGPACK_PREDEF_COMPILER_MINGW_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+
+/*`
+[heading `MSGPACK_PLAT_MINGW`]
+
+[@http://en.wikipedia.org/wiki/MinGW MinGW] platform.
+Version number available as major, minor, and patch.
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`__MINGW32__`] [__predef_detection__]]
+ [[`__MINGW64__`] [__predef_detection__]]
+
+ [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]]
+ [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]]
+ ]
+ */
+
+#define MSGPACK_PLAT_MINGW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if defined(__MINGW32__) || defined(__MINGW64__)
+# include <_mingw.h>
+# if !defined(MSGPACK_PLAT_MINGW_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR))
+# define MSGPACK_PLAT_MINGW_DETECTION \
+ MSGPACK_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
+# endif
+# if !defined(MSGPACK_PLAT_MINGW_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR))
+# define MSGPACK_PLAT_MINGW_DETECTION \
+ MSGPACK_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
+# endif
+# if !defined(MSGPACK_PLAT_MINGW_DETECTION)
+# define MSGPACK_PLAT_MINGW_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE
+# endif
+#endif
+
+#ifdef MSGPACK_PLAT_MINGW_DETECTION
+# define MSGPACK_PLAT_MINGW_AVAILABLE
+# if defined(MSGPACK_PREDEF_DETAIL_PLAT_DETECTED)
+# define MSGPACK_PLAT_MINGW_EMULATED MSGPACK_PLAT_MINGW_DETECTION
+# else
+# undef MSGPACK_PLAT_MINGW
+# define MSGPACK_PLAT_MINGW MSGPACK_PLAT_MINGW_DETECTION
+# endif
+# include <rpc/msgpack/predef/detail/platform_detected.h>
+#endif
+
+#define MSGPACK_PLAT_MINGW_NAME "MinGW"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW,MSGPACK_PLAT_MINGW_NAME)
+
+#ifdef MSGPACK_PLAT_MINGW_EMULATED
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW_EMULATED,MSGPACK_PLAT_MINGW_NAME)
+#endif
+
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_desktop.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_desktop.h
new file mode 100644
index 000000000..58235f02d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_desktop.h
@@ -0,0 +1,44 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H
+#define MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+#include <rpc/msgpack/predef/os/windows.h>
+
+/*`
+[heading `MSGPACK_PLAT_WINDOWS_DESKTOP`]
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`!WINAPI_FAMILY`] [__predef_detection__]]
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if MSGPACK_OS_WINDOWS && \
+ ( !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) )
+# undef MSGPACK_PLAT_WINDOWS_DESKTOP
+# define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_PLAT_WINDOWS_DESKTOP
+# define MSGPACK_PLAT_WINDOWS_DESKTOP_AVALIABLE
+# include <rpc/msgpack/predef/detail/platform_detected.h>
+#endif
+
+#define MSGPACK_PLAT_WINDOWS_DESKTOP_NAME "Windows Desktop"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_DESKTOP,MSGPACK_PLAT_WINDOWS_DESKTOP_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_phone.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_phone.h
new file mode 100644
index 000000000..0b07ad059
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_phone.h
@@ -0,0 +1,42 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H
+#define MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+#include <rpc/msgpack/predef/os/windows.h>
+
+/*`
+[heading `MSGPACK_PLAT_WINDOWS_PHONE`]
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP
+# undef MSGPACK_PLAT_WINDOWS_PHONE
+# define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_PLAT_WINDOWS_PHONE
+# define MSGPACK_PLAT_WINDOWS_PHONE_AVALIABLE
+# include <rpc/msgpack/predef/detail/platform_detected.h>
+#endif
+
+#define MSGPACK_PLAT_WINDOWS_PHONE_NAME "Windows Phone"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_PHONE,MSGPACK_PLAT_WINDOWS_PHONE_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_runtime.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_runtime.h
new file mode 100644
index 000000000..bc82dbdad
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_runtime.h
@@ -0,0 +1,44 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H
+#define MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+#include <rpc/msgpack/predef/os/windows.h>
+
+/*`
+[heading `MSGPACK_PLAT_WINDOWS_RUNTIME`]
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]]
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && \
+ ( WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP )
+# undef MSGPACK_PLAT_WINDOWS_RUNTIME
+# define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_PLAT_WINDOWS_RUNTIME
+# define MSGPACK_PLAT_WINDOWS_RUNTIME_AVALIABLE
+# include <rpc/msgpack/predef/detail/platform_detected.h>
+#endif
+
+#define MSGPACK_PLAT_WINDOWS_RUNTIME_NAME "Windows Runtime"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_RUNTIME,MSGPACK_PLAT_WINDOWS_RUNTIME_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_store.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_store.h
new file mode 100644
index 000000000..0cb40acea
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/platform/windows_store.h
@@ -0,0 +1,42 @@
+/*
+Copyright (c) Microsoft Corporation 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H
+#define MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H
+
+#include <rpc/msgpack/predef/version_number.h>
+#include <rpc/msgpack/predef/make.h>
+#include <rpc/msgpack/predef/os/windows.h>
+
+/*`
+[heading `MSGPACK_PLAT_WINDOWS_STORE`]
+
+[table
+ [[__predef_symbol__] [__predef_version__]]
+
+ [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]]
+ ]
+ */
+
+#define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE
+
+#if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP
+# undef MSGPACK_PLAT_WINDOWS_STORE
+# define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_AVAILABLE
+#endif
+
+#if MSGPACK_PLAT_WINDOWS_STORE
+# define MSGPACK_PLAT_WINDOWS_STORE_AVALIABLE
+# include <rpc/msgpack/predef/detail/platform_detected.h>
+#endif
+
+#define MSGPACK_PLAT_WINDOWS_STORE_NAME "Windows Store"
+
+#include <rpc/msgpack/predef/detail/test.h>
+MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_STORE,MSGPACK_PLAT_WINDOWS_STORE_NAME)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/version.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/version.h
new file mode 100644
index 000000000..e8cc77cee
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/version.h
@@ -0,0 +1,15 @@
+/*
+Copyright Rene Rivera 2014
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_VERSION_H
+#define MSGPACK_PREDEF_VERSION_H
+
+#include <rpc/msgpack/predef/version_number.h>
+
+#define MSGPACK_PREDEF_VERSION MSGPACK_VERSION_NUMBER(1,2,0)
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/predef/version_number.h b/host/lib/deps/rpclib/include/rpc/msgpack/predef/version_number.h
new file mode 100644
index 000000000..37af5d2c9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/predef/version_number.h
@@ -0,0 +1,54 @@
+/*
+Copyright Rene Rivera 2005
+Copyright Rene Rivera 2008-2013
+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)
+*/
+
+#ifndef MSGPACK_PREDEF_VERSION_NUMBER_H
+#define MSGPACK_PREDEF_VERSION_NUMBER_H
+
+/*`
+[heading `MSGPACK_VERSION_NUMBER`]
+
+``
+MSGPACK_VERSION_NUMBER(major,minor,patch)
+``
+
+Defines standard version numbers, with these properties:
+
+* Decimal base whole numbers in the range \[0,1000000000).
+ The number range is designed to allow for a (2,2,5) triplet.
+ Which fits within a 32 bit value.
+* The `major` number can be in the \[0,99\] range.
+* The `minor` number can be in the \[0,99\] range.
+* The `patch` number can be in the \[0,99999\] range.
+* Values can be specified in any base. As the defined value
+ is an constant expression.
+* Value can be directly used in both preprocessor and compiler
+ expressions for comparison to other similarly defined values.
+* The implementation enforces the individual ranges for the
+ major, minor, and patch numbers. And values over the ranges
+ are truncated (modulo).
+
+*/
+#define MSGPACK_VERSION_NUMBER(major,minor,patch) \
+ ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) )
+
+#define MSGPACK_VERSION_NUMBER_MAX \
+ MSGPACK_VERSION_NUMBER(99,99,99999)
+
+#define MSGPACK_VERSION_NUMBER_ZERO \
+ MSGPACK_VERSION_NUMBER(0,0,0)
+
+#define MSGPACK_VERSION_NUMBER_MIN \
+ MSGPACK_VERSION_NUMBER(0,0,1)
+
+#define MSGPACK_VERSION_NUMBER_AVAILABLE \
+ MSGPACK_VERSION_NUMBER_MIN
+
+#define MSGPACK_VERSION_NUMBER_NOT_AVAILABLE \
+ MSGPACK_VERSION_NUMBER_ZERO
+
+#endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor.hpp
new file mode 100644
index 000000000..5a1b320ef
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor.hpp
@@ -0,0 +1,19 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org/libs/preprocessor for documentation. */
+#
+# ifndef MSGPACK_PREPROCESSOR_HPP
+# define MSGPACK_PREPROCESSOR_HPP
+#
+# include <rpc/msgpack/preprocessor/library.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic.hpp
new file mode 100644
index 000000000..ac72b3e53
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic.hpp
@@ -0,0 +1,25 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/add.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/div.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/mod.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/mul.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/sub.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/add.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/add.hpp
new file mode 100644
index 000000000..c2ab14da7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/add.hpp
@@ -0,0 +1,51 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_ADD_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_ADD_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ADD */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ADD(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y)))
+# else
+# define MSGPACK_PP_ADD(x, y) MSGPACK_PP_ADD_I(x, y)
+# define MSGPACK_PP_ADD_I(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y)))
+# endif
+#
+# define MSGPACK_PP_ADD_P(d, xy) MSGPACK_PP_TUPLE_ELEM(2, 1, xy)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_ADD_O(d, xy) MSGPACK_PP_ADD_O_I xy
+# else
+# define MSGPACK_PP_ADD_O(d, xy) MSGPACK_PP_ADD_O_I(MSGPACK_PP_TUPLE_ELEM(2, 0, xy), MSGPACK_PP_TUPLE_ELEM(2, 1, xy))
+# endif
+#
+# define MSGPACK_PP_ADD_O_I(x, y) (MSGPACK_PP_INC(x), MSGPACK_PP_DEC(y))
+#
+# /* MSGPACK_PP_ADD_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ADD_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y)))
+# else
+# define MSGPACK_PP_ADD_D(d, x, y) MSGPACK_PP_ADD_D_I(d, x, y)
+# define MSGPACK_PP_ADD_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ADD_P, MSGPACK_PP_ADD_O, (x, y)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/dec.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/dec.hpp
new file mode 100644
index 000000000..3b5a3ed46
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/dec.hpp
@@ -0,0 +1,288 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_DEC_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_DEC_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_DEC */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_DEC(x) MSGPACK_PP_DEC_I(x)
+# else
+# define MSGPACK_PP_DEC(x) MSGPACK_PP_DEC_OO((x))
+# define MSGPACK_PP_DEC_OO(par) MSGPACK_PP_DEC_I ## par
+# endif
+#
+# define MSGPACK_PP_DEC_I(x) MSGPACK_PP_DEC_ ## x
+#
+# define MSGPACK_PP_DEC_0 0
+# define MSGPACK_PP_DEC_1 0
+# define MSGPACK_PP_DEC_2 1
+# define MSGPACK_PP_DEC_3 2
+# define MSGPACK_PP_DEC_4 3
+# define MSGPACK_PP_DEC_5 4
+# define MSGPACK_PP_DEC_6 5
+# define MSGPACK_PP_DEC_7 6
+# define MSGPACK_PP_DEC_8 7
+# define MSGPACK_PP_DEC_9 8
+# define MSGPACK_PP_DEC_10 9
+# define MSGPACK_PP_DEC_11 10
+# define MSGPACK_PP_DEC_12 11
+# define MSGPACK_PP_DEC_13 12
+# define MSGPACK_PP_DEC_14 13
+# define MSGPACK_PP_DEC_15 14
+# define MSGPACK_PP_DEC_16 15
+# define MSGPACK_PP_DEC_17 16
+# define MSGPACK_PP_DEC_18 17
+# define MSGPACK_PP_DEC_19 18
+# define MSGPACK_PP_DEC_20 19
+# define MSGPACK_PP_DEC_21 20
+# define MSGPACK_PP_DEC_22 21
+# define MSGPACK_PP_DEC_23 22
+# define MSGPACK_PP_DEC_24 23
+# define MSGPACK_PP_DEC_25 24
+# define MSGPACK_PP_DEC_26 25
+# define MSGPACK_PP_DEC_27 26
+# define MSGPACK_PP_DEC_28 27
+# define MSGPACK_PP_DEC_29 28
+# define MSGPACK_PP_DEC_30 29
+# define MSGPACK_PP_DEC_31 30
+# define MSGPACK_PP_DEC_32 31
+# define MSGPACK_PP_DEC_33 32
+# define MSGPACK_PP_DEC_34 33
+# define MSGPACK_PP_DEC_35 34
+# define MSGPACK_PP_DEC_36 35
+# define MSGPACK_PP_DEC_37 36
+# define MSGPACK_PP_DEC_38 37
+# define MSGPACK_PP_DEC_39 38
+# define MSGPACK_PP_DEC_40 39
+# define MSGPACK_PP_DEC_41 40
+# define MSGPACK_PP_DEC_42 41
+# define MSGPACK_PP_DEC_43 42
+# define MSGPACK_PP_DEC_44 43
+# define MSGPACK_PP_DEC_45 44
+# define MSGPACK_PP_DEC_46 45
+# define MSGPACK_PP_DEC_47 46
+# define MSGPACK_PP_DEC_48 47
+# define MSGPACK_PP_DEC_49 48
+# define MSGPACK_PP_DEC_50 49
+# define MSGPACK_PP_DEC_51 50
+# define MSGPACK_PP_DEC_52 51
+# define MSGPACK_PP_DEC_53 52
+# define MSGPACK_PP_DEC_54 53
+# define MSGPACK_PP_DEC_55 54
+# define MSGPACK_PP_DEC_56 55
+# define MSGPACK_PP_DEC_57 56
+# define MSGPACK_PP_DEC_58 57
+# define MSGPACK_PP_DEC_59 58
+# define MSGPACK_PP_DEC_60 59
+# define MSGPACK_PP_DEC_61 60
+# define MSGPACK_PP_DEC_62 61
+# define MSGPACK_PP_DEC_63 62
+# define MSGPACK_PP_DEC_64 63
+# define MSGPACK_PP_DEC_65 64
+# define MSGPACK_PP_DEC_66 65
+# define MSGPACK_PP_DEC_67 66
+# define MSGPACK_PP_DEC_68 67
+# define MSGPACK_PP_DEC_69 68
+# define MSGPACK_PP_DEC_70 69
+# define MSGPACK_PP_DEC_71 70
+# define MSGPACK_PP_DEC_72 71
+# define MSGPACK_PP_DEC_73 72
+# define MSGPACK_PP_DEC_74 73
+# define MSGPACK_PP_DEC_75 74
+# define MSGPACK_PP_DEC_76 75
+# define MSGPACK_PP_DEC_77 76
+# define MSGPACK_PP_DEC_78 77
+# define MSGPACK_PP_DEC_79 78
+# define MSGPACK_PP_DEC_80 79
+# define MSGPACK_PP_DEC_81 80
+# define MSGPACK_PP_DEC_82 81
+# define MSGPACK_PP_DEC_83 82
+# define MSGPACK_PP_DEC_84 83
+# define MSGPACK_PP_DEC_85 84
+# define MSGPACK_PP_DEC_86 85
+# define MSGPACK_PP_DEC_87 86
+# define MSGPACK_PP_DEC_88 87
+# define MSGPACK_PP_DEC_89 88
+# define MSGPACK_PP_DEC_90 89
+# define MSGPACK_PP_DEC_91 90
+# define MSGPACK_PP_DEC_92 91
+# define MSGPACK_PP_DEC_93 92
+# define MSGPACK_PP_DEC_94 93
+# define MSGPACK_PP_DEC_95 94
+# define MSGPACK_PP_DEC_96 95
+# define MSGPACK_PP_DEC_97 96
+# define MSGPACK_PP_DEC_98 97
+# define MSGPACK_PP_DEC_99 98
+# define MSGPACK_PP_DEC_100 99
+# define MSGPACK_PP_DEC_101 100
+# define MSGPACK_PP_DEC_102 101
+# define MSGPACK_PP_DEC_103 102
+# define MSGPACK_PP_DEC_104 103
+# define MSGPACK_PP_DEC_105 104
+# define MSGPACK_PP_DEC_106 105
+# define MSGPACK_PP_DEC_107 106
+# define MSGPACK_PP_DEC_108 107
+# define MSGPACK_PP_DEC_109 108
+# define MSGPACK_PP_DEC_110 109
+# define MSGPACK_PP_DEC_111 110
+# define MSGPACK_PP_DEC_112 111
+# define MSGPACK_PP_DEC_113 112
+# define MSGPACK_PP_DEC_114 113
+# define MSGPACK_PP_DEC_115 114
+# define MSGPACK_PP_DEC_116 115
+# define MSGPACK_PP_DEC_117 116
+# define MSGPACK_PP_DEC_118 117
+# define MSGPACK_PP_DEC_119 118
+# define MSGPACK_PP_DEC_120 119
+# define MSGPACK_PP_DEC_121 120
+# define MSGPACK_PP_DEC_122 121
+# define MSGPACK_PP_DEC_123 122
+# define MSGPACK_PP_DEC_124 123
+# define MSGPACK_PP_DEC_125 124
+# define MSGPACK_PP_DEC_126 125
+# define MSGPACK_PP_DEC_127 126
+# define MSGPACK_PP_DEC_128 127
+# define MSGPACK_PP_DEC_129 128
+# define MSGPACK_PP_DEC_130 129
+# define MSGPACK_PP_DEC_131 130
+# define MSGPACK_PP_DEC_132 131
+# define MSGPACK_PP_DEC_133 132
+# define MSGPACK_PP_DEC_134 133
+# define MSGPACK_PP_DEC_135 134
+# define MSGPACK_PP_DEC_136 135
+# define MSGPACK_PP_DEC_137 136
+# define MSGPACK_PP_DEC_138 137
+# define MSGPACK_PP_DEC_139 138
+# define MSGPACK_PP_DEC_140 139
+# define MSGPACK_PP_DEC_141 140
+# define MSGPACK_PP_DEC_142 141
+# define MSGPACK_PP_DEC_143 142
+# define MSGPACK_PP_DEC_144 143
+# define MSGPACK_PP_DEC_145 144
+# define MSGPACK_PP_DEC_146 145
+# define MSGPACK_PP_DEC_147 146
+# define MSGPACK_PP_DEC_148 147
+# define MSGPACK_PP_DEC_149 148
+# define MSGPACK_PP_DEC_150 149
+# define MSGPACK_PP_DEC_151 150
+# define MSGPACK_PP_DEC_152 151
+# define MSGPACK_PP_DEC_153 152
+# define MSGPACK_PP_DEC_154 153
+# define MSGPACK_PP_DEC_155 154
+# define MSGPACK_PP_DEC_156 155
+# define MSGPACK_PP_DEC_157 156
+# define MSGPACK_PP_DEC_158 157
+# define MSGPACK_PP_DEC_159 158
+# define MSGPACK_PP_DEC_160 159
+# define MSGPACK_PP_DEC_161 160
+# define MSGPACK_PP_DEC_162 161
+# define MSGPACK_PP_DEC_163 162
+# define MSGPACK_PP_DEC_164 163
+# define MSGPACK_PP_DEC_165 164
+# define MSGPACK_PP_DEC_166 165
+# define MSGPACK_PP_DEC_167 166
+# define MSGPACK_PP_DEC_168 167
+# define MSGPACK_PP_DEC_169 168
+# define MSGPACK_PP_DEC_170 169
+# define MSGPACK_PP_DEC_171 170
+# define MSGPACK_PP_DEC_172 171
+# define MSGPACK_PP_DEC_173 172
+# define MSGPACK_PP_DEC_174 173
+# define MSGPACK_PP_DEC_175 174
+# define MSGPACK_PP_DEC_176 175
+# define MSGPACK_PP_DEC_177 176
+# define MSGPACK_PP_DEC_178 177
+# define MSGPACK_PP_DEC_179 178
+# define MSGPACK_PP_DEC_180 179
+# define MSGPACK_PP_DEC_181 180
+# define MSGPACK_PP_DEC_182 181
+# define MSGPACK_PP_DEC_183 182
+# define MSGPACK_PP_DEC_184 183
+# define MSGPACK_PP_DEC_185 184
+# define MSGPACK_PP_DEC_186 185
+# define MSGPACK_PP_DEC_187 186
+# define MSGPACK_PP_DEC_188 187
+# define MSGPACK_PP_DEC_189 188
+# define MSGPACK_PP_DEC_190 189
+# define MSGPACK_PP_DEC_191 190
+# define MSGPACK_PP_DEC_192 191
+# define MSGPACK_PP_DEC_193 192
+# define MSGPACK_PP_DEC_194 193
+# define MSGPACK_PP_DEC_195 194
+# define MSGPACK_PP_DEC_196 195
+# define MSGPACK_PP_DEC_197 196
+# define MSGPACK_PP_DEC_198 197
+# define MSGPACK_PP_DEC_199 198
+# define MSGPACK_PP_DEC_200 199
+# define MSGPACK_PP_DEC_201 200
+# define MSGPACK_PP_DEC_202 201
+# define MSGPACK_PP_DEC_203 202
+# define MSGPACK_PP_DEC_204 203
+# define MSGPACK_PP_DEC_205 204
+# define MSGPACK_PP_DEC_206 205
+# define MSGPACK_PP_DEC_207 206
+# define MSGPACK_PP_DEC_208 207
+# define MSGPACK_PP_DEC_209 208
+# define MSGPACK_PP_DEC_210 209
+# define MSGPACK_PP_DEC_211 210
+# define MSGPACK_PP_DEC_212 211
+# define MSGPACK_PP_DEC_213 212
+# define MSGPACK_PP_DEC_214 213
+# define MSGPACK_PP_DEC_215 214
+# define MSGPACK_PP_DEC_216 215
+# define MSGPACK_PP_DEC_217 216
+# define MSGPACK_PP_DEC_218 217
+# define MSGPACK_PP_DEC_219 218
+# define MSGPACK_PP_DEC_220 219
+# define MSGPACK_PP_DEC_221 220
+# define MSGPACK_PP_DEC_222 221
+# define MSGPACK_PP_DEC_223 222
+# define MSGPACK_PP_DEC_224 223
+# define MSGPACK_PP_DEC_225 224
+# define MSGPACK_PP_DEC_226 225
+# define MSGPACK_PP_DEC_227 226
+# define MSGPACK_PP_DEC_228 227
+# define MSGPACK_PP_DEC_229 228
+# define MSGPACK_PP_DEC_230 229
+# define MSGPACK_PP_DEC_231 230
+# define MSGPACK_PP_DEC_232 231
+# define MSGPACK_PP_DEC_233 232
+# define MSGPACK_PP_DEC_234 233
+# define MSGPACK_PP_DEC_235 234
+# define MSGPACK_PP_DEC_236 235
+# define MSGPACK_PP_DEC_237 236
+# define MSGPACK_PP_DEC_238 237
+# define MSGPACK_PP_DEC_239 238
+# define MSGPACK_PP_DEC_240 239
+# define MSGPACK_PP_DEC_241 240
+# define MSGPACK_PP_DEC_242 241
+# define MSGPACK_PP_DEC_243 242
+# define MSGPACK_PP_DEC_244 243
+# define MSGPACK_PP_DEC_245 244
+# define MSGPACK_PP_DEC_246 245
+# define MSGPACK_PP_DEC_247 246
+# define MSGPACK_PP_DEC_248 247
+# define MSGPACK_PP_DEC_249 248
+# define MSGPACK_PP_DEC_250 249
+# define MSGPACK_PP_DEC_251 250
+# define MSGPACK_PP_DEC_252 251
+# define MSGPACK_PP_DEC_253 252
+# define MSGPACK_PP_DEC_254 253
+# define MSGPACK_PP_DEC_255 254
+# define MSGPACK_PP_DEC_256 255
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/detail/div_base.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/detail/div_base.hpp
new file mode 100644
index 000000000..4751d1a37
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/detail/div_base.hpp
@@ -0,0 +1,61 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_DETAIL_DIV_BASE_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/sub.hpp>
+# include <rpc/msgpack/preprocessor/comparison/less_equal.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_DIV_BASE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_DIV_BASE(x, y) MSGPACK_PP_WHILE(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y))
+# else
+# define MSGPACK_PP_DIV_BASE(x, y) MSGPACK_PP_DIV_BASE_I(x, y)
+# define MSGPACK_PP_DIV_BASE_I(x, y) MSGPACK_PP_WHILE(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_DIV_BASE_P(d, rxy) MSGPACK_PP_DIV_BASE_P_IM(d, MSGPACK_PP_TUPLE_REM_3 rxy)
+# define MSGPACK_PP_DIV_BASE_P_IM(d, im) MSGPACK_PP_DIV_BASE_P_I(d, im)
+# else
+# define MSGPACK_PP_DIV_BASE_P(d, rxy) MSGPACK_PP_DIV_BASE_P_I(d, MSGPACK_PP_TUPLE_ELEM(3, 0, rxy), MSGPACK_PP_TUPLE_ELEM(3, 1, rxy), MSGPACK_PP_TUPLE_ELEM(3, 2, rxy))
+# endif
+#
+# define MSGPACK_PP_DIV_BASE_P_I(d, r, x, y) MSGPACK_PP_LESS_EQUAL_D(d, y, x)
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_DIV_BASE_O(d, rxy) MSGPACK_PP_DIV_BASE_O_IM(d, MSGPACK_PP_TUPLE_REM_3 rxy)
+# define MSGPACK_PP_DIV_BASE_O_IM(d, im) MSGPACK_PP_DIV_BASE_O_I(d, im)
+# else
+# define MSGPACK_PP_DIV_BASE_O(d, rxy) MSGPACK_PP_DIV_BASE_O_I(d, MSGPACK_PP_TUPLE_ELEM(3, 0, rxy), MSGPACK_PP_TUPLE_ELEM(3, 1, rxy), MSGPACK_PP_TUPLE_ELEM(3, 2, rxy))
+# endif
+#
+# define MSGPACK_PP_DIV_BASE_O_I(d, r, x, y) (MSGPACK_PP_INC(r), MSGPACK_PP_SUB_D(d, x, y), y)
+#
+# /* MSGPACK_PP_DIV_BASE_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_DIV_BASE_D(d, x, y) MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y))
+# else
+# define MSGPACK_PP_DIV_BASE_D(d, x, y) MSGPACK_PP_DIV_BASE_D_I(d, x, y)
+# define MSGPACK_PP_DIV_BASE_D_I(d, x, y) MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_DIV_BASE_P, MSGPACK_PP_DIV_BASE_O, (0, x, y))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/div.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/div.hpp
new file mode 100644
index 000000000..7019f9583
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/div.hpp
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_DIV_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_DIV_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/detail/div_base.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_DIV */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_DIV(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE(x, y))
+# else
+# define MSGPACK_PP_DIV(x, y) MSGPACK_PP_DIV_I(x, y)
+# define MSGPACK_PP_DIV_I(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE(x, y))
+# endif
+#
+# /* MSGPACK_PP_DIV_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_DIV_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE_D(d, x, y))
+# else
+# define MSGPACK_PP_DIV_D(d, x, y) MSGPACK_PP_DIV_D_I(d, x, y)
+# define MSGPACK_PP_DIV_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_DIV_BASE_D(d, x, y))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/inc.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/inc.hpp
new file mode 100644
index 000000000..9edacefdf
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/inc.hpp
@@ -0,0 +1,288 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_INC_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_INC_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_INC */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_INC(x) MSGPACK_PP_INC_I(x)
+# else
+# define MSGPACK_PP_INC(x) MSGPACK_PP_INC_OO((x))
+# define MSGPACK_PP_INC_OO(par) MSGPACK_PP_INC_I ## par
+# endif
+#
+# define MSGPACK_PP_INC_I(x) MSGPACK_PP_INC_ ## x
+#
+# define MSGPACK_PP_INC_0 1
+# define MSGPACK_PP_INC_1 2
+# define MSGPACK_PP_INC_2 3
+# define MSGPACK_PP_INC_3 4
+# define MSGPACK_PP_INC_4 5
+# define MSGPACK_PP_INC_5 6
+# define MSGPACK_PP_INC_6 7
+# define MSGPACK_PP_INC_7 8
+# define MSGPACK_PP_INC_8 9
+# define MSGPACK_PP_INC_9 10
+# define MSGPACK_PP_INC_10 11
+# define MSGPACK_PP_INC_11 12
+# define MSGPACK_PP_INC_12 13
+# define MSGPACK_PP_INC_13 14
+# define MSGPACK_PP_INC_14 15
+# define MSGPACK_PP_INC_15 16
+# define MSGPACK_PP_INC_16 17
+# define MSGPACK_PP_INC_17 18
+# define MSGPACK_PP_INC_18 19
+# define MSGPACK_PP_INC_19 20
+# define MSGPACK_PP_INC_20 21
+# define MSGPACK_PP_INC_21 22
+# define MSGPACK_PP_INC_22 23
+# define MSGPACK_PP_INC_23 24
+# define MSGPACK_PP_INC_24 25
+# define MSGPACK_PP_INC_25 26
+# define MSGPACK_PP_INC_26 27
+# define MSGPACK_PP_INC_27 28
+# define MSGPACK_PP_INC_28 29
+# define MSGPACK_PP_INC_29 30
+# define MSGPACK_PP_INC_30 31
+# define MSGPACK_PP_INC_31 32
+# define MSGPACK_PP_INC_32 33
+# define MSGPACK_PP_INC_33 34
+# define MSGPACK_PP_INC_34 35
+# define MSGPACK_PP_INC_35 36
+# define MSGPACK_PP_INC_36 37
+# define MSGPACK_PP_INC_37 38
+# define MSGPACK_PP_INC_38 39
+# define MSGPACK_PP_INC_39 40
+# define MSGPACK_PP_INC_40 41
+# define MSGPACK_PP_INC_41 42
+# define MSGPACK_PP_INC_42 43
+# define MSGPACK_PP_INC_43 44
+# define MSGPACK_PP_INC_44 45
+# define MSGPACK_PP_INC_45 46
+# define MSGPACK_PP_INC_46 47
+# define MSGPACK_PP_INC_47 48
+# define MSGPACK_PP_INC_48 49
+# define MSGPACK_PP_INC_49 50
+# define MSGPACK_PP_INC_50 51
+# define MSGPACK_PP_INC_51 52
+# define MSGPACK_PP_INC_52 53
+# define MSGPACK_PP_INC_53 54
+# define MSGPACK_PP_INC_54 55
+# define MSGPACK_PP_INC_55 56
+# define MSGPACK_PP_INC_56 57
+# define MSGPACK_PP_INC_57 58
+# define MSGPACK_PP_INC_58 59
+# define MSGPACK_PP_INC_59 60
+# define MSGPACK_PP_INC_60 61
+# define MSGPACK_PP_INC_61 62
+# define MSGPACK_PP_INC_62 63
+# define MSGPACK_PP_INC_63 64
+# define MSGPACK_PP_INC_64 65
+# define MSGPACK_PP_INC_65 66
+# define MSGPACK_PP_INC_66 67
+# define MSGPACK_PP_INC_67 68
+# define MSGPACK_PP_INC_68 69
+# define MSGPACK_PP_INC_69 70
+# define MSGPACK_PP_INC_70 71
+# define MSGPACK_PP_INC_71 72
+# define MSGPACK_PP_INC_72 73
+# define MSGPACK_PP_INC_73 74
+# define MSGPACK_PP_INC_74 75
+# define MSGPACK_PP_INC_75 76
+# define MSGPACK_PP_INC_76 77
+# define MSGPACK_PP_INC_77 78
+# define MSGPACK_PP_INC_78 79
+# define MSGPACK_PP_INC_79 80
+# define MSGPACK_PP_INC_80 81
+# define MSGPACK_PP_INC_81 82
+# define MSGPACK_PP_INC_82 83
+# define MSGPACK_PP_INC_83 84
+# define MSGPACK_PP_INC_84 85
+# define MSGPACK_PP_INC_85 86
+# define MSGPACK_PP_INC_86 87
+# define MSGPACK_PP_INC_87 88
+# define MSGPACK_PP_INC_88 89
+# define MSGPACK_PP_INC_89 90
+# define MSGPACK_PP_INC_90 91
+# define MSGPACK_PP_INC_91 92
+# define MSGPACK_PP_INC_92 93
+# define MSGPACK_PP_INC_93 94
+# define MSGPACK_PP_INC_94 95
+# define MSGPACK_PP_INC_95 96
+# define MSGPACK_PP_INC_96 97
+# define MSGPACK_PP_INC_97 98
+# define MSGPACK_PP_INC_98 99
+# define MSGPACK_PP_INC_99 100
+# define MSGPACK_PP_INC_100 101
+# define MSGPACK_PP_INC_101 102
+# define MSGPACK_PP_INC_102 103
+# define MSGPACK_PP_INC_103 104
+# define MSGPACK_PP_INC_104 105
+# define MSGPACK_PP_INC_105 106
+# define MSGPACK_PP_INC_106 107
+# define MSGPACK_PP_INC_107 108
+# define MSGPACK_PP_INC_108 109
+# define MSGPACK_PP_INC_109 110
+# define MSGPACK_PP_INC_110 111
+# define MSGPACK_PP_INC_111 112
+# define MSGPACK_PP_INC_112 113
+# define MSGPACK_PP_INC_113 114
+# define MSGPACK_PP_INC_114 115
+# define MSGPACK_PP_INC_115 116
+# define MSGPACK_PP_INC_116 117
+# define MSGPACK_PP_INC_117 118
+# define MSGPACK_PP_INC_118 119
+# define MSGPACK_PP_INC_119 120
+# define MSGPACK_PP_INC_120 121
+# define MSGPACK_PP_INC_121 122
+# define MSGPACK_PP_INC_122 123
+# define MSGPACK_PP_INC_123 124
+# define MSGPACK_PP_INC_124 125
+# define MSGPACK_PP_INC_125 126
+# define MSGPACK_PP_INC_126 127
+# define MSGPACK_PP_INC_127 128
+# define MSGPACK_PP_INC_128 129
+# define MSGPACK_PP_INC_129 130
+# define MSGPACK_PP_INC_130 131
+# define MSGPACK_PP_INC_131 132
+# define MSGPACK_PP_INC_132 133
+# define MSGPACK_PP_INC_133 134
+# define MSGPACK_PP_INC_134 135
+# define MSGPACK_PP_INC_135 136
+# define MSGPACK_PP_INC_136 137
+# define MSGPACK_PP_INC_137 138
+# define MSGPACK_PP_INC_138 139
+# define MSGPACK_PP_INC_139 140
+# define MSGPACK_PP_INC_140 141
+# define MSGPACK_PP_INC_141 142
+# define MSGPACK_PP_INC_142 143
+# define MSGPACK_PP_INC_143 144
+# define MSGPACK_PP_INC_144 145
+# define MSGPACK_PP_INC_145 146
+# define MSGPACK_PP_INC_146 147
+# define MSGPACK_PP_INC_147 148
+# define MSGPACK_PP_INC_148 149
+# define MSGPACK_PP_INC_149 150
+# define MSGPACK_PP_INC_150 151
+# define MSGPACK_PP_INC_151 152
+# define MSGPACK_PP_INC_152 153
+# define MSGPACK_PP_INC_153 154
+# define MSGPACK_PP_INC_154 155
+# define MSGPACK_PP_INC_155 156
+# define MSGPACK_PP_INC_156 157
+# define MSGPACK_PP_INC_157 158
+# define MSGPACK_PP_INC_158 159
+# define MSGPACK_PP_INC_159 160
+# define MSGPACK_PP_INC_160 161
+# define MSGPACK_PP_INC_161 162
+# define MSGPACK_PP_INC_162 163
+# define MSGPACK_PP_INC_163 164
+# define MSGPACK_PP_INC_164 165
+# define MSGPACK_PP_INC_165 166
+# define MSGPACK_PP_INC_166 167
+# define MSGPACK_PP_INC_167 168
+# define MSGPACK_PP_INC_168 169
+# define MSGPACK_PP_INC_169 170
+# define MSGPACK_PP_INC_170 171
+# define MSGPACK_PP_INC_171 172
+# define MSGPACK_PP_INC_172 173
+# define MSGPACK_PP_INC_173 174
+# define MSGPACK_PP_INC_174 175
+# define MSGPACK_PP_INC_175 176
+# define MSGPACK_PP_INC_176 177
+# define MSGPACK_PP_INC_177 178
+# define MSGPACK_PP_INC_178 179
+# define MSGPACK_PP_INC_179 180
+# define MSGPACK_PP_INC_180 181
+# define MSGPACK_PP_INC_181 182
+# define MSGPACK_PP_INC_182 183
+# define MSGPACK_PP_INC_183 184
+# define MSGPACK_PP_INC_184 185
+# define MSGPACK_PP_INC_185 186
+# define MSGPACK_PP_INC_186 187
+# define MSGPACK_PP_INC_187 188
+# define MSGPACK_PP_INC_188 189
+# define MSGPACK_PP_INC_189 190
+# define MSGPACK_PP_INC_190 191
+# define MSGPACK_PP_INC_191 192
+# define MSGPACK_PP_INC_192 193
+# define MSGPACK_PP_INC_193 194
+# define MSGPACK_PP_INC_194 195
+# define MSGPACK_PP_INC_195 196
+# define MSGPACK_PP_INC_196 197
+# define MSGPACK_PP_INC_197 198
+# define MSGPACK_PP_INC_198 199
+# define MSGPACK_PP_INC_199 200
+# define MSGPACK_PP_INC_200 201
+# define MSGPACK_PP_INC_201 202
+# define MSGPACK_PP_INC_202 203
+# define MSGPACK_PP_INC_203 204
+# define MSGPACK_PP_INC_204 205
+# define MSGPACK_PP_INC_205 206
+# define MSGPACK_PP_INC_206 207
+# define MSGPACK_PP_INC_207 208
+# define MSGPACK_PP_INC_208 209
+# define MSGPACK_PP_INC_209 210
+# define MSGPACK_PP_INC_210 211
+# define MSGPACK_PP_INC_211 212
+# define MSGPACK_PP_INC_212 213
+# define MSGPACK_PP_INC_213 214
+# define MSGPACK_PP_INC_214 215
+# define MSGPACK_PP_INC_215 216
+# define MSGPACK_PP_INC_216 217
+# define MSGPACK_PP_INC_217 218
+# define MSGPACK_PP_INC_218 219
+# define MSGPACK_PP_INC_219 220
+# define MSGPACK_PP_INC_220 221
+# define MSGPACK_PP_INC_221 222
+# define MSGPACK_PP_INC_222 223
+# define MSGPACK_PP_INC_223 224
+# define MSGPACK_PP_INC_224 225
+# define MSGPACK_PP_INC_225 226
+# define MSGPACK_PP_INC_226 227
+# define MSGPACK_PP_INC_227 228
+# define MSGPACK_PP_INC_228 229
+# define MSGPACK_PP_INC_229 230
+# define MSGPACK_PP_INC_230 231
+# define MSGPACK_PP_INC_231 232
+# define MSGPACK_PP_INC_232 233
+# define MSGPACK_PP_INC_233 234
+# define MSGPACK_PP_INC_234 235
+# define MSGPACK_PP_INC_235 236
+# define MSGPACK_PP_INC_236 237
+# define MSGPACK_PP_INC_237 238
+# define MSGPACK_PP_INC_238 239
+# define MSGPACK_PP_INC_239 240
+# define MSGPACK_PP_INC_240 241
+# define MSGPACK_PP_INC_241 242
+# define MSGPACK_PP_INC_242 243
+# define MSGPACK_PP_INC_243 244
+# define MSGPACK_PP_INC_244 245
+# define MSGPACK_PP_INC_245 246
+# define MSGPACK_PP_INC_246 247
+# define MSGPACK_PP_INC_247 248
+# define MSGPACK_PP_INC_248 249
+# define MSGPACK_PP_INC_249 250
+# define MSGPACK_PP_INC_250 251
+# define MSGPACK_PP_INC_251 252
+# define MSGPACK_PP_INC_252 253
+# define MSGPACK_PP_INC_253 254
+# define MSGPACK_PP_INC_254 255
+# define MSGPACK_PP_INC_255 256
+# define MSGPACK_PP_INC_256 256
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mod.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mod.hpp
new file mode 100644
index 000000000..4eba49982
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mod.hpp
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_MOD_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_MOD_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/detail/div_base.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_MOD */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MOD(x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE(x, y))
+# else
+# define MSGPACK_PP_MOD(x, y) MSGPACK_PP_MOD_I(x, y)
+# define MSGPACK_PP_MOD_I(x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE(x, y))
+# endif
+#
+# /* MSGPACK_PP_MOD_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MOD_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE_D(d, x, y))
+# else
+# define MSGPACK_PP_MOD_D(d, x, y) MSGPACK_PP_MOD_D_I(d, x, y)
+# define MSGPACK_PP_MOD_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 1, MSGPACK_PP_DIV_BASE_D(d, x, y))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mul.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mul.hpp
new file mode 100644
index 000000000..7a5556633
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/mul.hpp
@@ -0,0 +1,53 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_MUL_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_MUL_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/add.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_MUL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MUL(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y)))
+# else
+# define MSGPACK_PP_MUL(x, y) MSGPACK_PP_MUL_I(x, y)
+# define MSGPACK_PP_MUL_I(x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y)))
+# endif
+#
+# define MSGPACK_PP_MUL_P(d, rxy) MSGPACK_PP_TUPLE_ELEM(3, 2, rxy)
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_MUL_O(d, rxy) MSGPACK_PP_MUL_O_IM(d, MSGPACK_PP_TUPLE_REM_3 rxy)
+# define MSGPACK_PP_MUL_O_IM(d, im) MSGPACK_PP_MUL_O_I(d, im)
+# else
+# define MSGPACK_PP_MUL_O(d, rxy) MSGPACK_PP_MUL_O_I(d, MSGPACK_PP_TUPLE_ELEM(3, 0, rxy), MSGPACK_PP_TUPLE_ELEM(3, 1, rxy), MSGPACK_PP_TUPLE_ELEM(3, 2, rxy))
+# endif
+#
+# define MSGPACK_PP_MUL_O_I(d, r, x, y) (MSGPACK_PP_ADD_D(d, r, x), x, MSGPACK_PP_DEC(y))
+#
+# /* MSGPACK_PP_MUL_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MUL_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y)))
+# else
+# define MSGPACK_PP_MUL_D(d, x, y) MSGPACK_PP_MUL_D_I(d, x, y)
+# define MSGPACK_PP_MUL_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(3, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_MUL_P, MSGPACK_PP_MUL_O, (0, x, y)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/sub.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/sub.hpp
new file mode 100644
index 000000000..16ea06305
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/arithmetic/sub.hpp
@@ -0,0 +1,50 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARITHMETIC_SUB_HPP
+# define MSGPACK_PREPROCESSOR_ARITHMETIC_SUB_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_SUB */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SUB(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y)))
+# else
+# define MSGPACK_PP_SUB(x, y) MSGPACK_PP_SUB_I(x, y)
+# define MSGPACK_PP_SUB_I(x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y)))
+# endif
+#
+# define MSGPACK_PP_SUB_P(d, xy) MSGPACK_PP_TUPLE_ELEM(2, 1, xy)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SUB_O(d, xy) MSGPACK_PP_SUB_O_I xy
+# else
+# define MSGPACK_PP_SUB_O(d, xy) MSGPACK_PP_SUB_O_I(MSGPACK_PP_TUPLE_ELEM(2, 0, xy), MSGPACK_PP_TUPLE_ELEM(2, 1, xy))
+# endif
+#
+# define MSGPACK_PP_SUB_O_I(x, y) (MSGPACK_PP_DEC(x), MSGPACK_PP_DEC(y))
+#
+# /* MSGPACK_PP_SUB_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SUB_D(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y)))
+# else
+# define MSGPACK_PP_SUB_D(d, x, y) MSGPACK_PP_SUB_D_I(d, x, y)
+# define MSGPACK_PP_SUB_D_I(d, x, y) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_SUB_P, MSGPACK_PP_SUB_O, (x, y)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array.hpp
new file mode 100644
index 000000000..04ee527c2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array.hpp
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_HPP
+#
+# include <rpc/msgpack/preprocessor/array/data.hpp>
+# include <rpc/msgpack/preprocessor/array/elem.hpp>
+# include <rpc/msgpack/preprocessor/array/enum.hpp>
+# include <rpc/msgpack/preprocessor/array/insert.hpp>
+# include <rpc/msgpack/preprocessor/array/pop_back.hpp>
+# include <rpc/msgpack/preprocessor/array/pop_front.hpp>
+# include <rpc/msgpack/preprocessor/array/push_back.hpp>
+# include <rpc/msgpack/preprocessor/array/push_front.hpp>
+# include <rpc/msgpack/preprocessor/array/remove.hpp>
+# include <rpc/msgpack/preprocessor/array/replace.hpp>
+# include <rpc/msgpack/preprocessor/array/reverse.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/array/to_list.hpp>
+# include <rpc/msgpack/preprocessor/array/to_seq.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/data.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/data.hpp
new file mode 100644
index 000000000..a03f28cca
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/data.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_DATA_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_DATA_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ARRAY_DATA */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_DATA(array) MSGPACK_PP_TUPLE_ELEM(2, 1, array)
+# else
+# define MSGPACK_PP_ARRAY_DATA(array) MSGPACK_PP_ARRAY_DATA_I(array)
+# define MSGPACK_PP_ARRAY_DATA_I(array) MSGPACK_PP_ARRAY_DATA_II array
+# define MSGPACK_PP_ARRAY_DATA_II(size, data) data
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/detail/get_data.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/detail/get_data.hpp
new file mode 100644
index 000000000..823109cc3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/detail/get_data.hpp
@@ -0,0 +1,55 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/facilities/is_1.hpp>
+#
+# /* MSGPACK_PP_ARRAY_DETAIL_GET_DATA */
+#
+# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_NONE(size, data)
+
+# if MSGPACK_PP_VARIADICS && !(MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT(size, data) MSGPACK_PP_TUPLE_REM(size) data
+# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT(size, data) MSGPACK_PP_TUPLE_REM_CAT(size) data
+# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_IS_1(size), \
+ MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_CAT, \
+ MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY_VC_DEFAULT \
+ ) \
+ (size,data) \
+/**/
+# else
+# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) MSGPACK_PP_TUPLE_REM(size) data
+# endif
+# else
+# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY(size, data) MSGPACK_PP_TUPLE_REM(size) data
+# endif
+
+# define MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size, data) \
+ MSGPACK_PP_IF \
+ ( \
+ size, \
+ MSGPACK_PP_ARRAY_DETAIL_GET_DATA_ANY, \
+ MSGPACK_PP_ARRAY_DETAIL_GET_DATA_NONE \
+ ) \
+ (size,data) \
+/**/
+#
+# endif /* MSGPACK_PREPROCESSOR_ARRAY_DETAIL_GET_DATA_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/elem.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/elem.hpp
new file mode 100644
index 000000000..6a6c38a90
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/elem.hpp
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_ELEM_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_ELEM_HPP
+#
+# include <rpc/msgpack/preprocessor/array/data.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ARRAY_ELEM */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_ELEM(i, array) MSGPACK_PP_TUPLE_ELEM(MSGPACK_PP_ARRAY_SIZE(array), i, MSGPACK_PP_ARRAY_DATA(array))
+# else
+# define MSGPACK_PP_ARRAY_ELEM(i, array) MSGPACK_PP_ARRAY_ELEM_I(i, array)
+# define MSGPACK_PP_ARRAY_ELEM_I(i, array) MSGPACK_PP_TUPLE_ELEM(MSGPACK_PP_ARRAY_SIZE(array), i, MSGPACK_PP_ARRAY_DATA(array))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/enum.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/enum.hpp
new file mode 100644
index 000000000..ff1bfbdd3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/enum.hpp
@@ -0,0 +1,33 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_ENUM_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_ENUM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_ARRAY_ENUM */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_ARRAY_ENUM(array) MSGPACK_PP_ARRAY_ENUM_I(MSGPACK_PP_TUPLE_REM_CTOR, array)
+# define MSGPACK_PP_ARRAY_ENUM_I(m, args) MSGPACK_PP_ARRAY_ENUM_II(m, args)
+# define MSGPACK_PP_ARRAY_ENUM_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_ARRAY_ENUM(array) MSGPACK_PP_ARRAY_ENUM_I(array)
+# define MSGPACK_PP_ARRAY_ENUM_I(array) MSGPACK_PP_TUPLE_REM_CTOR ## array
+# else
+# define MSGPACK_PP_ARRAY_ENUM(array) MSGPACK_PP_TUPLE_REM_CTOR array
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/insert.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/insert.hpp
new file mode 100644
index 000000000..809c0710d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/insert.hpp
@@ -0,0 +1,55 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_INSERT_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_INSERT_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/array/elem.hpp>
+# include <rpc/msgpack/preprocessor/array/push_back.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/comparison/not_equal.hpp>
+# include <rpc/msgpack/preprocessor/control/deduce_d.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ARRAY_INSERT */
+#
+# define MSGPACK_PP_ARRAY_INSERT(array, i, elem) MSGPACK_PP_ARRAY_INSERT_I(MSGPACK_PP_DEDUCE_D(), array, i, elem)
+# define MSGPACK_PP_ARRAY_INSERT_I(d, array, i, elem) MSGPACK_PP_ARRAY_INSERT_D(d, array, i, elem)
+#
+# /* MSGPACK_PP_ARRAY_INSERT_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_INSERT_D(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_INSERT_P, MSGPACK_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))
+# else
+# define MSGPACK_PP_ARRAY_INSERT_D(d, array, i, elem) MSGPACK_PP_ARRAY_INSERT_D_I(d, array, i, elem)
+# define MSGPACK_PP_ARRAY_INSERT_D_I(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_INSERT_P, MSGPACK_PP_ARRAY_INSERT_O, (0, i, elem, (0, ()), array)))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ARRAY_INSERT_P(d, state) MSGPACK_PP_ARRAY_INSERT_P_I state
+# else
+# define MSGPACK_PP_ARRAY_INSERT_P(d, state) MSGPACK_PP_ARRAY_INSERT_P_I(nil, nil, nil, MSGPACK_PP_TUPLE_ELEM(5, 3, state), MSGPACK_PP_TUPLE_ELEM(5, 4, state))
+# endif
+#
+# define MSGPACK_PP_ARRAY_INSERT_P_I(_i, _ii, _iii, res, arr) MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_ARRAY_SIZE(res), MSGPACK_PP_INC(MSGPACK_PP_ARRAY_SIZE(arr)))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ARRAY_INSERT_O(d, state) MSGPACK_PP_ARRAY_INSERT_O_I state
+# else
+# define MSGPACK_PP_ARRAY_INSERT_O(d, state) MSGPACK_PP_ARRAY_INSERT_O_I(MSGPACK_PP_TUPLE_ELEM(5, 0, state), MSGPACK_PP_TUPLE_ELEM(5, 1, state), MSGPACK_PP_TUPLE_ELEM(5, 2, state), MSGPACK_PP_TUPLE_ELEM(5, 3, state), MSGPACK_PP_TUPLE_ELEM(5, 4, state))
+# endif
+#
+# define MSGPACK_PP_ARRAY_INSERT_O_I(n, i, elem, res, arr) (MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_ARRAY_SIZE(res), i), MSGPACK_PP_INC(n), n), i, elem, MSGPACK_PP_ARRAY_PUSH_BACK(res, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_ARRAY_SIZE(res), i), MSGPACK_PP_ARRAY_ELEM(n, arr), elem)), arr)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_back.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_back.hpp
new file mode 100644
index 000000000..524bb489f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_back.hpp
@@ -0,0 +1,37 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_POP_BACK_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_POP_BACK_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/array/elem.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum.hpp>
+# include <rpc/msgpack/preprocessor/repetition/deduce_z.hpp>
+#
+# /* MSGPACK_PP_ARRAY_POP_BACK */
+#
+# define MSGPACK_PP_ARRAY_POP_BACK(array) MSGPACK_PP_ARRAY_POP_BACK_Z(MSGPACK_PP_DEDUCE_Z(), array)
+#
+# /* MSGPACK_PP_ARRAY_POP_BACK_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_POP_BACK_Z(z, array) MSGPACK_PP_ARRAY_POP_BACK_I(z, MSGPACK_PP_ARRAY_SIZE(array), array)
+# else
+# define MSGPACK_PP_ARRAY_POP_BACK_Z(z, array) MSGPACK_PP_ARRAY_POP_BACK_Z_D(z, array)
+# define MSGPACK_PP_ARRAY_POP_BACK_Z_D(z, array) MSGPACK_PP_ARRAY_POP_BACK_I(z, MSGPACK_PP_ARRAY_SIZE(array), array)
+# endif
+#
+# define MSGPACK_PP_ARRAY_POP_BACK_I(z, size, array) (MSGPACK_PP_DEC(size), (MSGPACK_PP_ENUM_ ## z(MSGPACK_PP_DEC(size), MSGPACK_PP_ARRAY_POP_BACK_M, array)))
+# define MSGPACK_PP_ARRAY_POP_BACK_M(z, n, data) MSGPACK_PP_ARRAY_ELEM(n, data)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_front.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_front.hpp
new file mode 100644
index 000000000..ac2d88a94
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/pop_front.hpp
@@ -0,0 +1,38 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_POP_FRONT_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_POP_FRONT_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/array/elem.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum.hpp>
+# include <rpc/msgpack/preprocessor/repetition/deduce_z.hpp>
+#
+# /* MSGPACK_PP_ARRAY_POP_FRONT */
+#
+# define MSGPACK_PP_ARRAY_POP_FRONT(array) MSGPACK_PP_ARRAY_POP_FRONT_Z(MSGPACK_PP_DEDUCE_Z(), array)
+#
+# /* MSGPACK_PP_ARRAY_POP_FRONT_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_POP_FRONT_Z(z, array) MSGPACK_PP_ARRAY_POP_FRONT_I(z, MSGPACK_PP_ARRAY_SIZE(array), array)
+# else
+# define MSGPACK_PP_ARRAY_POP_FRONT_Z(z, array) MSGPACK_PP_ARRAY_POP_FRONT_Z_D(z, array)
+# define MSGPACK_PP_ARRAY_POP_FRONT_Z_D(z, array) MSGPACK_PP_ARRAY_POP_FRONT_I(z, MSGPACK_PP_ARRAY_SIZE(array), array)
+# endif
+#
+# define MSGPACK_PP_ARRAY_POP_FRONT_I(z, size, array) (MSGPACK_PP_DEC(size), (MSGPACK_PP_ENUM_ ## z(MSGPACK_PP_DEC(size), MSGPACK_PP_ARRAY_POP_FRONT_M, array)))
+# define MSGPACK_PP_ARRAY_POP_FRONT_M(z, n, data) MSGPACK_PP_ARRAY_ELEM(MSGPACK_PP_INC(n), data)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_back.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_back.hpp
new file mode 100644
index 000000000..78c999eac
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_back.hpp
@@ -0,0 +1,35 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_PUSH_BACK_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_PUSH_BACK_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/array/data.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# include <rpc/msgpack/preprocessor/array/detail/get_data.hpp>
+#
+# /* MSGPACK_PP_ARRAY_PUSH_BACK */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_PUSH_BACK(array, elem) MSGPACK_PP_ARRAY_PUSH_BACK_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem)
+# else
+# define MSGPACK_PP_ARRAY_PUSH_BACK(array, elem) MSGPACK_PP_ARRAY_PUSH_BACK_D(array, elem)
+# define MSGPACK_PP_ARRAY_PUSH_BACK_D(array, elem) MSGPACK_PP_ARRAY_PUSH_BACK_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem)
+# endif
+#
+# define MSGPACK_PP_ARRAY_PUSH_BACK_I(size, data, elem) (MSGPACK_PP_INC(size), (MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size,data) MSGPACK_PP_COMMA_IF(size) elem))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_front.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_front.hpp
new file mode 100644
index 000000000..0fbb8a64a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/push_front.hpp
@@ -0,0 +1,35 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002.
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_PUSH_FRONT_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/array/data.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# include <rpc/msgpack/preprocessor/array/detail/get_data.hpp>
+#
+# /* MSGPACK_PP_ARRAY_PUSH_FRONT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_PUSH_FRONT(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem)
+# else
+# define MSGPACK_PP_ARRAY_PUSH_FRONT(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_D(array, elem)
+# define MSGPACK_PP_ARRAY_PUSH_FRONT_D(array, elem) MSGPACK_PP_ARRAY_PUSH_FRONT_I(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array), elem)
+# endif
+#
+# define MSGPACK_PP_ARRAY_PUSH_FRONT_I(size, data, elem) (MSGPACK_PP_INC(size), (elem MSGPACK_PP_COMMA_IF(size) MSGPACK_PP_ARRAY_DETAIL_GET_DATA(size,data)))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/remove.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/remove.hpp
new file mode 100644
index 000000000..b1e8d2ba9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/remove.hpp
@@ -0,0 +1,54 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_REMOVE_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_REMOVE_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/array/elem.hpp>
+# include <rpc/msgpack/preprocessor/array/push_back.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/comparison/not_equal.hpp>
+# include <rpc/msgpack/preprocessor/control/deduce_d.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ARRAY_REMOVE */
+#
+# define MSGPACK_PP_ARRAY_REMOVE(array, i) MSGPACK_PP_ARRAY_REMOVE_I(MSGPACK_PP_DEDUCE_D(), array, i)
+# define MSGPACK_PP_ARRAY_REMOVE_I(d, array, i) MSGPACK_PP_ARRAY_REMOVE_D(d, array, i)
+#
+# /* MSGPACK_PP_ARRAY_REMOVE_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_REMOVE_D(d, array, i) MSGPACK_PP_TUPLE_ELEM(4, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REMOVE_P, MSGPACK_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))
+# else
+# define MSGPACK_PP_ARRAY_REMOVE_D(d, array, i) MSGPACK_PP_ARRAY_REMOVE_D_I(d, array, i)
+# define MSGPACK_PP_ARRAY_REMOVE_D_I(d, array, i) MSGPACK_PP_TUPLE_ELEM(4, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REMOVE_P, MSGPACK_PP_ARRAY_REMOVE_O, (0, i, (0, ()), array)))
+# endif
+#
+# define MSGPACK_PP_ARRAY_REMOVE_P(d, st) MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_TUPLE_ELEM(4, 0, st), MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_TUPLE_ELEM(4, 3, st)))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ARRAY_REMOVE_O(d, st) MSGPACK_PP_ARRAY_REMOVE_O_I st
+# else
+# define MSGPACK_PP_ARRAY_REMOVE_O(d, st) MSGPACK_PP_ARRAY_REMOVE_O_I(MSGPACK_PP_TUPLE_ELEM(4, 0, st), MSGPACK_PP_TUPLE_ELEM(4, 1, st), MSGPACK_PP_TUPLE_ELEM(4, 2, st), MSGPACK_PP_TUPLE_ELEM(4, 3, st))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# define MSGPACK_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (MSGPACK_PP_INC(n), i, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(n, i), MSGPACK_PP_ARRAY_PUSH_BACK, res MSGPACK_PP_TUPLE_EAT_2)(res, MSGPACK_PP_ARRAY_ELEM(n, arr)), arr)
+# else
+# define MSGPACK_PP_ARRAY_REMOVE_O_I(n, i, res, arr) (MSGPACK_PP_INC(n), i, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(n, i), MSGPACK_PP_ARRAY_PUSH_BACK, MSGPACK_PP_TUPLE_ELEM_2_0)(res, MSGPACK_PP_ARRAY_ELEM(n, arr)), arr)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/replace.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/replace.hpp
new file mode 100644
index 000000000..f1893b8bb
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/replace.hpp
@@ -0,0 +1,49 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_REPLACE_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_REPLACE_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/array/elem.hpp>
+# include <rpc/msgpack/preprocessor/array/push_back.hpp>
+# include <rpc/msgpack/preprocessor/comparison/not_equal.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/deduce_d.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ARRAY_REPLACE */
+#
+# define MSGPACK_PP_ARRAY_REPLACE(array, i, elem) MSGPACK_PP_ARRAY_REPLACE_I(MSGPACK_PP_DEDUCE_D(), array, i, elem)
+# define MSGPACK_PP_ARRAY_REPLACE_I(d, array, i, elem) MSGPACK_PP_ARRAY_REPLACE_D(d, array, i, elem)
+#
+# /* MSGPACK_PP_ARRAY_REPLACE_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_REPLACE_D(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REPLACE_P, MSGPACK_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))
+# else
+# define MSGPACK_PP_ARRAY_REPLACE_D(d, array, i, elem) MSGPACK_PP_ARRAY_REPLACE_D_I(d, array, i, elem)
+# define MSGPACK_PP_ARRAY_REPLACE_D_I(d, array, i, elem) MSGPACK_PP_TUPLE_ELEM(5, 3, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_ARRAY_REPLACE_P, MSGPACK_PP_ARRAY_REPLACE_O, (0, i, elem, (0, ()), array)))
+# endif
+#
+# define MSGPACK_PP_ARRAY_REPLACE_P(d, state) MSGPACK_PP_NOT_EQUAL(MSGPACK_PP_TUPLE_ELEM(5, 0, state), MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_TUPLE_ELEM(5, 4, state)))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ARRAY_REPLACE_O(d, state) MSGPACK_PP_ARRAY_REPLACE_O_I state
+# else
+# define MSGPACK_PP_ARRAY_REPLACE_O(d, state) MSGPACK_PP_ARRAY_REPLACE_O_I(MSGPACK_PP_TUPLE_ELEM(5, 0, state), MSGPACK_PP_TUPLE_ELEM(5, 1, state), MSGPACK_PP_TUPLE_ELEM(5, 2, state), MSGPACK_PP_TUPLE_ELEM(5, 3, state), MSGPACK_PP_TUPLE_ELEM(5, 4, state))
+# endif
+#
+# define MSGPACK_PP_ARRAY_REPLACE_O_I(n, i, elem, res, arr) (MSGPACK_PP_INC(n), i, elem, MSGPACK_PP_ARRAY_PUSH_BACK(res, MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(n, i), MSGPACK_PP_ARRAY_ELEM(n, arr), elem)), arr)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/reverse.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/reverse.hpp
new file mode 100644
index 000000000..cf589503c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/reverse.hpp
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_REVERSE_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_REVERSE_HPP
+#
+# include <rpc/msgpack/preprocessor/array/data.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/reverse.hpp>
+#
+# /* MSGPACK_PP_ARRAY_REVERSE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_REVERSE(array) (MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_TUPLE_REVERSE(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array)))
+# else
+# define MSGPACK_PP_ARRAY_REVERSE(array) MSGPACK_PP_ARRAY_REVERSE_I(array)
+# define MSGPACK_PP_ARRAY_REVERSE_I(array) (MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_TUPLE_REVERSE(MSGPACK_PP_ARRAY_SIZE(array), MSGPACK_PP_ARRAY_DATA(array)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/size.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/size.hpp
new file mode 100644
index 000000000..e11702ace
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/size.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_SIZE_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_SIZE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ARRAY_SIZE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ARRAY_SIZE(array) MSGPACK_PP_TUPLE_ELEM(2, 0, array)
+# else
+# define MSGPACK_PP_ARRAY_SIZE(array) MSGPACK_PP_ARRAY_SIZE_I(array)
+# define MSGPACK_PP_ARRAY_SIZE_I(array) MSGPACK_PP_ARRAY_SIZE_II array
+# define MSGPACK_PP_ARRAY_SIZE_II(size, data) size
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_list.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_list.hpp
new file mode 100644
index 000000000..745be5971
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_list.hpp
@@ -0,0 +1,47 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_TO_LIST_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_TO_LIST_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_list.hpp>
+#
+# /* MSGPACK_PP_ARRAY_TO_LIST */
+#
+# define MSGPACK_PP_ARRAY_TO_LIST(array) \
+ MSGPACK_PP_IF \
+ ( \
+ MSGPACK_PP_ARRAY_SIZE(array), \
+ MSGPACK_PP_ARRAY_TO_LIST_DO, \
+ MSGPACK_PP_ARRAY_TO_LIST_EMPTY \
+ ) \
+ (array) \
+/**/
+#
+# define MSGPACK_PP_ARRAY_TO_LIST_EMPTY(array) MSGPACK_PP_NIL
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_ARRAY_TO_LIST_DO(array) MSGPACK_PP_ARRAY_TO_LIST_I(MSGPACK_PP_TUPLE_TO_LIST, array)
+# define MSGPACK_PP_ARRAY_TO_LIST_I(m, args) MSGPACK_PP_ARRAY_TO_LIST_II(m, args)
+# define MSGPACK_PP_ARRAY_TO_LIST_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_ARRAY_TO_LIST_DO(array) MSGPACK_PP_ARRAY_TO_LIST_I(array)
+# define MSGPACK_PP_ARRAY_TO_LIST_I(array) MSGPACK_PP_TUPLE_TO_LIST ## array
+# else
+# define MSGPACK_PP_ARRAY_TO_LIST_DO(array) MSGPACK_PP_TUPLE_TO_LIST array
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_seq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_seq.hpp
new file mode 100644
index 000000000..f6fd1f559
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_seq.hpp
@@ -0,0 +1,46 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_TO_SEQ_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_TO_SEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_seq.hpp>
+#
+# /* MSGPACK_PP_ARRAY_TO_SEQ */
+#
+# define MSGPACK_PP_ARRAY_TO_SEQ(array) \
+ MSGPACK_PP_IF \
+ ( \
+ MSGPACK_PP_ARRAY_SIZE(array), \
+ MSGPACK_PP_ARRAY_TO_SEQ_DO, \
+ MSGPACK_PP_ARRAY_TO_SEQ_EMPTY \
+ ) \
+ (array) \
+/**/
+# define MSGPACK_PP_ARRAY_TO_SEQ_EMPTY(array)
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_ARRAY_TO_SEQ_I(MSGPACK_PP_TUPLE_TO_SEQ, array)
+# define MSGPACK_PP_ARRAY_TO_SEQ_I(m, args) MSGPACK_PP_ARRAY_TO_SEQ_II(m, args)
+# define MSGPACK_PP_ARRAY_TO_SEQ_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_ARRAY_TO_SEQ_I(array)
+# define MSGPACK_PP_ARRAY_TO_SEQ_I(array) MSGPACK_PP_TUPLE_TO_SEQ ## array
+# else
+# define MSGPACK_PP_ARRAY_TO_SEQ_DO(array) MSGPACK_PP_TUPLE_TO_SEQ array
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_tuple.hpp
new file mode 100644
index 000000000..ec4e1662d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/array/to_tuple.hpp
@@ -0,0 +1,33 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ARRAY_TO_TUPLE_HPP
+# define MSGPACK_PREPROCESSOR_ARRAY_TO_TUPLE_HPP
+#
+# include <rpc/msgpack/preprocessor/array/data.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+#
+# /* MSGPACK_PP_ARRAY_TO_TUPLE */
+#
+# define MSGPACK_PP_ARRAY_TO_TUPLE(array) \
+ MSGPACK_PP_IF \
+ ( \
+ MSGPACK_PP_ARRAY_SIZE(array), \
+ MSGPACK_PP_ARRAY_DATA, \
+ MSGPACK_PP_ARRAY_TO_TUPLE_EMPTY \
+ ) \
+ (array) \
+/**/
+# define MSGPACK_PP_ARRAY_TO_TUPLE_EMPTY(array)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/assert_msg.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/assert_msg.hpp
new file mode 100644
index 000000000..a369706ab
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/assert_msg.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ASSERT_MSG_HPP
+# define MSGPACK_PREPROCESSOR_ASSERT_MSG_HPP
+#
+# include <rpc/msgpack/preprocessor/debug/assert.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/cat.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/cat.hpp
new file mode 100644
index 000000000..f5cb1ed61
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/cat.hpp
@@ -0,0 +1,35 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CAT_HPP
+# define MSGPACK_PREPROCESSOR_CAT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_CAT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_CAT(a, b) MSGPACK_PP_CAT_I(a, b)
+# else
+# define MSGPACK_PP_CAT(a, b) MSGPACK_PP_CAT_OO((a, b))
+# define MSGPACK_PP_CAT_OO(par) MSGPACK_PP_CAT_I ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_CAT_I(a, b) a ## b
+# else
+# define MSGPACK_PP_CAT_I(a, b) MSGPACK_PP_CAT_II(~, a ## b)
+# define MSGPACK_PP_CAT_II(p, res) res
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma.hpp
new file mode 100644
index 000000000..63efbd69f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMMA_HPP
+# define MSGPACK_PREPROCESSOR_COMMA_HPP
+#
+# include <rpc/msgpack/preprocessor/punctuation/comma.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma_if.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma_if.hpp
new file mode 100644
index 000000000..3a10cc5db
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comma_if.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMMA_IF_HPP
+# define MSGPACK_PREPROCESSOR_COMMA_IF_HPP
+#
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison.hpp
new file mode 100644
index 000000000..91a49e1ac
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison.hpp
@@ -0,0 +1,24 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMPARISON_HPP
+# define MSGPACK_PREPROCESSOR_COMPARISON_HPP
+#
+# include <rpc/msgpack/preprocessor/comparison/equal.hpp>
+# include <rpc/msgpack/preprocessor/comparison/greater.hpp>
+# include <rpc/msgpack/preprocessor/comparison/greater_equal.hpp>
+# include <rpc/msgpack/preprocessor/comparison/less.hpp>
+# include <rpc/msgpack/preprocessor/comparison/less_equal.hpp>
+# include <rpc/msgpack/preprocessor/comparison/not_equal.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/equal.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/equal.hpp
new file mode 100644
index 000000000..1acf6f7f9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/equal.hpp
@@ -0,0 +1,34 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMPARISON_EQUAL_HPP
+# define MSGPACK_PREPROCESSOR_COMPARISON_EQUAL_HPP
+#
+# include <rpc/msgpack/preprocessor/comparison/not_equal.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/logical/compl.hpp>
+#
+# /* MSGPACK_PP_EQUAL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_EQUAL(x, y) MSGPACK_PP_COMPL(MSGPACK_PP_NOT_EQUAL(x, y))
+# else
+# define MSGPACK_PP_EQUAL(x, y) MSGPACK_PP_EQUAL_I(x, y)
+# define MSGPACK_PP_EQUAL_I(x, y) MSGPACK_PP_COMPL(MSGPACK_PP_NOT_EQUAL(x, y))
+# endif
+#
+# /* MSGPACK_PP_EQUAL_D */
+#
+# define MSGPACK_PP_EQUAL_D(d, x, y) MSGPACK_PP_EQUAL(x, y)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater.hpp
new file mode 100644
index 000000000..2465ebaa5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater.hpp
@@ -0,0 +1,38 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMPARISON_GREATER_HPP
+# define MSGPACK_PREPROCESSOR_COMPARISON_GREATER_HPP
+#
+# include <rpc/msgpack/preprocessor/comparison/less.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_GREATER */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_GREATER(x, y) MSGPACK_PP_LESS(y, x)
+# else
+# define MSGPACK_PP_GREATER(x, y) MSGPACK_PP_GREATER_I(x, y)
+# define MSGPACK_PP_GREATER_I(x, y) MSGPACK_PP_LESS(y, x)
+# endif
+#
+# /* MSGPACK_PP_GREATER_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_GREATER_D(d, x, y) MSGPACK_PP_LESS_D(d, y, x)
+# else
+# define MSGPACK_PP_GREATER_D(d, x, y) MSGPACK_PP_GREATER_D_I(d, x, y)
+# define MSGPACK_PP_GREATER_D_I(d, x, y) MSGPACK_PP_LESS_D(d, y, x)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater_equal.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater_equal.hpp
new file mode 100644
index 000000000..4214b8341
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/greater_equal.hpp
@@ -0,0 +1,38 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMPARISON_GREATER_EQUAL_HPP
+# define MSGPACK_PREPROCESSOR_COMPARISON_GREATER_EQUAL_HPP
+#
+# include <rpc/msgpack/preprocessor/comparison/less_equal.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_GREATER_EQUAL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_GREATER_EQUAL(x, y) MSGPACK_PP_LESS_EQUAL(y, x)
+# else
+# define MSGPACK_PP_GREATER_EQUAL(x, y) MSGPACK_PP_GREATER_EQUAL_I(x, y)
+# define MSGPACK_PP_GREATER_EQUAL_I(x, y) MSGPACK_PP_LESS_EQUAL(y, x)
+# endif
+#
+# /* MSGPACK_PP_GREATER_EQUAL_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_GREATER_EQUAL_D(d, x, y) MSGPACK_PP_LESS_EQUAL_D(d, y, x)
+# else
+# define MSGPACK_PP_GREATER_EQUAL_D(d, x, y) MSGPACK_PP_GREATER_EQUAL_D_I(d, x, y)
+# define MSGPACK_PP_GREATER_EQUAL_D_I(d, x, y) MSGPACK_PP_LESS_EQUAL_D(d, y, x)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less.hpp
new file mode 100644
index 000000000..3daf55150
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less.hpp
@@ -0,0 +1,46 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMPARISON_LESS_HPP
+# define MSGPACK_PREPROCESSOR_COMPARISON_LESS_HPP
+#
+# include <rpc/msgpack/preprocessor/comparison/less_equal.hpp>
+# include <rpc/msgpack/preprocessor/comparison/not_equal.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitand.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# /* MSGPACK_PP_LESS */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & (MSGPACK_PP_CONFIG_MWCC() | MSGPACK_PP_CONFIG_DMC())
+# define MSGPACK_PP_LESS(x, y) MSGPACK_PP_BITAND(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL(x, y))
+# elif ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LESS(x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL, 0 MSGPACK_PP_TUPLE_EAT_2)(x, y)
+# else
+# define MSGPACK_PP_LESS(x, y) MSGPACK_PP_LESS_I(x, y)
+# define MSGPACK_PP_LESS_I(x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL, 0 MSGPACK_PP_TUPLE_EAT_2)(x, y)
+# endif
+#
+# /* MSGPACK_PP_LESS_D */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & (MSGPACK_PP_CONFIG_MWCC() | MSGPACK_PP_CONFIG_DMC())
+# define MSGPACK_PP_LESS_D(d, x, y) MSGPACK_PP_BITAND(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL_D(d, x, y))
+# elif ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LESS_D(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL_D, 0 MSGPACK_PP_TUPLE_EAT_3)(d, x, y)
+# else
+# define MSGPACK_PP_LESS_D(d, x, y) MSGPACK_PP_LESS_D_I(d, x, y)
+# define MSGPACK_PP_LESS_D_I(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_NOT_EQUAL(x, y), MSGPACK_PP_LESS_EQUAL_D, 0 MSGPACK_PP_TUPLE_EAT_3)(d, x, y)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less_equal.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less_equal.hpp
new file mode 100644
index 000000000..9a3920a28
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/less_equal.hpp
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
+# define MSGPACK_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/sub.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/logical/not.hpp>
+#
+# /* MSGPACK_PP_LESS_EQUAL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LESS_EQUAL(x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB(x, y))
+# else
+# define MSGPACK_PP_LESS_EQUAL(x, y) MSGPACK_PP_LESS_EQUAL_I(x, y)
+# define MSGPACK_PP_LESS_EQUAL_I(x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB(x, y))
+# endif
+#
+# /* MSGPACK_PP_LESS_EQUAL_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LESS_EQUAL_D(d, x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB_D(d, x, y))
+# else
+# define MSGPACK_PP_LESS_EQUAL_D(d, x, y) MSGPACK_PP_LESS_EQUAL_D_I(d, x, y)
+# define MSGPACK_PP_LESS_EQUAL_D_I(d, x, y) MSGPACK_PP_NOT(MSGPACK_PP_SUB_D(d, x, y))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/not_equal.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/not_equal.hpp
new file mode 100644
index 000000000..b2184cfab
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/comparison/not_equal.hpp
@@ -0,0 +1,814 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP
+# define MSGPACK_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+#
+# /* MSGPACK_PP_NOT_EQUAL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_NOT_EQUAL(x, y) MSGPACK_PP_NOT_EQUAL_I(x, y)
+# else
+# define MSGPACK_PP_NOT_EQUAL(x, y) MSGPACK_PP_NOT_EQUAL_OO((x, y))
+# define MSGPACK_PP_NOT_EQUAL_OO(par) MSGPACK_PP_NOT_EQUAL_I ## par
+# endif
+#
+# define MSGPACK_PP_NOT_EQUAL_I(x, y) MSGPACK_PP_CAT(MSGPACK_PP_NOT_EQUAL_CHECK_, MSGPACK_PP_NOT_EQUAL_ ## x(0, MSGPACK_PP_NOT_EQUAL_ ## y))
+#
+# /* MSGPACK_PP_NOT_EQUAL_D */
+#
+# define MSGPACK_PP_NOT_EQUAL_D(d, x, y) MSGPACK_PP_NOT_EQUAL(x, y)
+#
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NIL 1
+#
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_0(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_1(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_2(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_3(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_4(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_5(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_6(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_7(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_8(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_9(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_10(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_11(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_12(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_13(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_14(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_15(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_16(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_17(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_18(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_19(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_20(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_21(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_22(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_23(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_24(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_25(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_26(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_27(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_28(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_29(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_30(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_31(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_32(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_33(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_34(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_35(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_36(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_37(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_38(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_39(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_40(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_41(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_42(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_43(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_44(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_45(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_46(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_47(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_48(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_49(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_50(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_51(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_52(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_53(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_54(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_55(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_56(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_57(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_58(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_59(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_60(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_61(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_62(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_63(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_64(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_65(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_66(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_67(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_68(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_69(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_70(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_71(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_72(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_73(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_74(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_75(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_76(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_77(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_78(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_79(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_80(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_81(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_82(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_83(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_84(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_85(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_86(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_87(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_88(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_89(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_90(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_91(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_92(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_93(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_94(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_95(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_96(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_97(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_98(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_99(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_100(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_101(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_102(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_103(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_104(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_105(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_106(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_107(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_108(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_109(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_110(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_111(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_112(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_113(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_114(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_115(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_116(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_117(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_118(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_119(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_120(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_121(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_122(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_123(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_124(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_125(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_126(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_127(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_128(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_129(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_130(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_131(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_132(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_133(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_134(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_135(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_136(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_137(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_138(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_139(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_140(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_141(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_142(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_143(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_144(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_145(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_146(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_147(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_148(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_149(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_150(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_151(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_152(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_153(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_154(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_155(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_156(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_157(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_158(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_159(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_160(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_161(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_162(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_163(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_164(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_165(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_166(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_167(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_168(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_169(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_170(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_171(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_172(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_173(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_174(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_175(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_176(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_177(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_178(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_179(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_180(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_181(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_182(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_183(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_184(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_185(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_186(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_187(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_188(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_189(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_190(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_191(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_192(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_193(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_194(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_195(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_196(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_197(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_198(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_199(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_200(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_201(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_202(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_203(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_204(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_205(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_206(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_207(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_208(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_209(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_210(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_211(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_212(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_213(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_214(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_215(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_216(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_217(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_218(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_219(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_220(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_221(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_222(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_223(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_224(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_225(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_226(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_227(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_228(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_229(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_230(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_231(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_232(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_233(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_234(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_235(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_236(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_237(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_238(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_239(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_240(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_241(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_242(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_243(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_244(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_245(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_246(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_247(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_248(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_249(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_250(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_251(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_252(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_253(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_254(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_255(c, y) 0
+# define MSGPACK_PP_NOT_EQUAL_CHECK_MSGPACK_PP_NOT_EQUAL_256(c, y) 0
+#
+#if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# define MSGPACK_PP_NOT_EQUAL_0(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_1(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_2(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_3(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_4(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_5(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_6(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_7(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_8(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_9(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_10(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_11(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_12(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_13(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_14(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_15(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_16(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_17(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_18(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_19(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_20(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_21(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_22(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_23(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_24(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_25(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_26(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_27(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_28(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_29(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_30(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_31(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_32(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_33(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_34(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_35(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_36(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_37(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_38(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_39(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_40(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_41(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_42(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_43(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_44(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_45(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_46(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_47(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_48(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_49(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_50(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_51(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_52(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_53(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_54(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_55(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_56(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_57(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_58(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_59(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_60(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_61(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_62(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_63(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_64(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_65(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_66(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_67(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_68(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_69(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_70(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_71(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_72(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_73(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_74(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_75(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_76(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_77(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_78(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_79(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_80(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_81(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_82(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_83(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_84(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_85(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_86(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_87(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_88(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_89(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_90(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_91(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_92(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_93(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_94(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_95(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_96(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_97(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_98(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_99(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_100(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_101(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_102(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_103(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_104(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_105(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_106(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_107(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_108(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_109(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_110(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_111(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_112(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_113(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_114(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_115(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_116(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_117(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_118(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_119(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_120(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_121(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_122(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_123(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_124(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_125(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_126(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_127(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_128(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_129(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_130(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_131(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_132(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_133(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_134(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_135(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_136(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_137(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_138(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_139(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_140(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_141(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_142(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_143(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_144(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_145(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_146(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_147(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_148(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_149(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_150(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_151(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_152(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_153(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_154(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_155(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_156(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_157(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_158(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_159(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_160(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_161(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_162(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_163(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_164(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_165(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_166(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_167(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_168(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_169(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_170(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_171(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_172(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_173(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_174(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_175(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_176(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_177(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_178(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_179(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_180(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_181(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_182(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_183(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_184(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_185(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_186(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_187(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_188(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_189(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_190(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_191(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_192(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_193(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_194(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_195(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_196(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_197(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_198(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_199(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_200(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_201(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_202(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_203(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_204(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_205(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_206(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_207(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_208(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_209(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_210(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_211(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_212(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_213(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_214(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_215(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_216(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_217(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_218(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_219(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_220(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_221(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_222(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_223(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_224(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_225(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_226(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_227(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_228(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_229(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_230(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_231(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_232(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_233(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_234(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_235(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_236(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_237(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_238(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_239(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_240(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_241(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_242(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_243(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_244(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_245(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_246(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_247(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_248(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_249(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_250(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_251(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_252(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_253(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_254(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_255(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_256(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y(1, MSGPACK_PP_NIL))
+# else
+# define MSGPACK_PP_NOT_EQUAL_0(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_1(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_2(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_3(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_4(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_5(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_6(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_7(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_8(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_9(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_10(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_11(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_12(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_13(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_14(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_15(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_16(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_17(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_18(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_19(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_20(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_21(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_22(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_23(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_24(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_25(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_26(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_27(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_28(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_29(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_30(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_31(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_32(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_33(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_34(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_35(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_36(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_37(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_38(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_39(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_40(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_41(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_42(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_43(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_44(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_45(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_46(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_47(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_48(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_49(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_50(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_51(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_52(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_53(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_54(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_55(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_56(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_57(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_58(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_59(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_60(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_61(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_62(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_63(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_64(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_65(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_66(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_67(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_68(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_69(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_70(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_71(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_72(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_73(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_74(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_75(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_76(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_77(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_78(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_79(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_80(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_81(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_82(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_83(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_84(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_85(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_86(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_87(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_88(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_89(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_90(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_91(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_92(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_93(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_94(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_95(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_96(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_97(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_98(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_99(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_100(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_101(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_102(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_103(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_104(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_105(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_106(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_107(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_108(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_109(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_110(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_111(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_112(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_113(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_114(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_115(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_116(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_117(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_118(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_119(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_120(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_121(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_122(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_123(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_124(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_125(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_126(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_127(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_128(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_129(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_130(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_131(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_132(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_133(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_134(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_135(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_136(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_137(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_138(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_139(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_140(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_141(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_142(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_143(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_144(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_145(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_146(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_147(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_148(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_149(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_150(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_151(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_152(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_153(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_154(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_155(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_156(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_157(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_158(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_159(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_160(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_161(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_162(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_163(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_164(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_165(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_166(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_167(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_168(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_169(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_170(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_171(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_172(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_173(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_174(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_175(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_176(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_177(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_178(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_179(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_180(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_181(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_182(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_183(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_184(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_185(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_186(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_187(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_188(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_189(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_190(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_191(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_192(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_193(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_194(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_195(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_196(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_197(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_198(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_199(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_200(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_201(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_202(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_203(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_204(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_205(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_206(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_207(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_208(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_209(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_210(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_211(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_212(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_213(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_214(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_215(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_216(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_217(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_218(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_219(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_220(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_221(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_222(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_223(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_224(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_225(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_226(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_227(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_228(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_229(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_230(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_231(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_232(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_233(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_234(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_235(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_236(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_237(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_238(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_239(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_240(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_241(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_242(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_243(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_244(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_245(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_246(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_247(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_248(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_249(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_250(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_251(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_252(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_253(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_254(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_255(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_NOT_EQUAL_256(c, y) MSGPACK_PP_IIF(c, MSGPACK_PP_NIL, y##(1, MSGPACK_PP_NIL))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/config.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/config.hpp
new file mode 100644
index 000000000..0b5f5b0c3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/config.hpp
@@ -0,0 +1,101 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP
+# define MSGPACK_PREPROCESSOR_CONFIG_CONFIG_HPP
+#
+# /* MSGPACK_PP_CONFIG_FLAGS */
+#
+# define MSGPACK_PP_CONFIG_STRICT() 0x0001
+# define MSGPACK_PP_CONFIG_IDEAL() 0x0002
+#
+# define MSGPACK_PP_CONFIG_MSVC() 0x0004
+# define MSGPACK_PP_CONFIG_MWCC() 0x0008
+# define MSGPACK_PP_CONFIG_BCC() 0x0010
+# define MSGPACK_PP_CONFIG_EDG() 0x0020
+# define MSGPACK_PP_CONFIG_DMC() 0x0040
+#
+# ifndef MSGPACK_PP_CONFIG_FLAGS
+# if defined(__GCCXML__)
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
+# elif defined(__WAVE__)
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
+# elif defined(__MWERKS__) && __MWERKS__ >= 0x3200
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
+# elif defined(__EDG__) || defined(__EDG_VERSION__)
+# if defined(_MSC_VER) && (defined(__INTELLISENSE__) || __EDG_VERSION__ >= 308)
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC())
+# else
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_EDG() | MSGPACK_PP_CONFIG_STRICT())
+# endif
+# elif defined(__MWERKS__)
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MWCC())
+# elif defined(__DMC__)
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_DMC())
+# elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
+# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_BCC())
+# elif defined(_MSC_VER) && !defined(__clang__)
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_MSVC())
+# else
+# define MSGPACK_PP_CONFIG_FLAGS() (MSGPACK_PP_CONFIG_STRICT())
+# endif
+# endif
+#
+# /* MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO */
+#
+# ifndef MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO
+# define MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO 0
+# endif
+#
+# /* MSGPACK_PP_CONFIG_ERRORS */
+#
+# ifndef MSGPACK_PP_CONFIG_ERRORS
+# ifdef NDEBUG
+# define MSGPACK_PP_CONFIG_ERRORS 0
+# else
+# define MSGPACK_PP_CONFIG_ERRORS 1
+# endif
+# endif
+#
+# /* MSGPACK_PP_VARIADICS */
+#
+# if !defined MSGPACK_PP_VARIADICS
+# /* variadic support explicitly disabled for all untested compilers */
+# if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
+# define MSGPACK_PP_VARIADICS 0
+# /* VC++ (C/C++) */
+# elif defined _MSC_VER && _MSC_VER >= 1400 && (!defined __EDG__ || defined(__INTELLISENSE__)) && !defined __clang__
+# define MSGPACK_PP_VARIADICS 1
+# define MSGPACK_PP_VARIADICS_MSVC 1
+# /* Wave (C/C++), GCC (C++) */
+# elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
+# define MSGPACK_PP_VARIADICS 1
+# /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
+# elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
+# define MSGPACK_PP_VARIADICS 1
+# else
+# define MSGPACK_PP_VARIADICS 0
+# endif
+# elif !MSGPACK_PP_VARIADICS + 1 < 2
+# undef MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_VARIADICS 1
+# if defined _MSC_VER && _MSC_VER >= 1400 && (defined(__INTELLISENSE__) || !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI))
+# define MSGPACK_PP_VARIADICS_MSVC 1
+# endif
+# else
+# undef MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_VARIADICS 0
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/limits.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/limits.hpp
new file mode 100644
index 000000000..918bacf7c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/config/limits.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONFIG_LIMITS_HPP
+# define MSGPACK_PREPROCESSOR_CONFIG_LIMITS_HPP
+#
+# define MSGPACK_PP_LIMIT_MAG 256
+# define MSGPACK_PP_LIMIT_TUPLE 64
+# define MSGPACK_PP_LIMIT_DIM 3
+# define MSGPACK_PP_LIMIT_REPEAT 256
+# define MSGPACK_PP_LIMIT_WHILE 256
+# define MSGPACK_PP_LIMIT_FOR 256
+# define MSGPACK_PP_LIMIT_ITERATION 256
+# define MSGPACK_PP_LIMIT_ITERATION_DIM 3
+# define MSGPACK_PP_LIMIT_SEQ 256
+# define MSGPACK_PP_LIMIT_SLOT_SIG 10
+# define MSGPACK_PP_LIMIT_SLOT_COUNT 5
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control.hpp
new file mode 100644
index 000000000..30135020b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control.hpp
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_HPP
+#
+# include <rpc/msgpack/preprocessor/control/deduce_d.hpp>
+# include <rpc/msgpack/preprocessor/control/expr_if.hpp>
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/deduce_d.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/deduce_d.hpp
new file mode 100644
index 000000000..80e0e7a1c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/deduce_d.hpp
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_DEDUCE_D_HPP
+#
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+#
+# /* MSGPACK_PP_DEDUCE_D */
+#
+# define MSGPACK_PP_DEDUCE_D() MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/dmc/while.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/dmc/while.hpp
new file mode 100644
index 000000000..bff38f7a2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/dmc/while.hpp
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+#
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_WHILE_1_C(MSGPACK_PP_BOOL(p##(2, s)), p, o, s)
+# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_WHILE_2_C(MSGPACK_PP_BOOL(p##(3, s)), p, o, s)
+# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_WHILE_3_C(MSGPACK_PP_BOOL(p##(4, s)), p, o, s)
+# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_WHILE_4_C(MSGPACK_PP_BOOL(p##(5, s)), p, o, s)
+# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_WHILE_5_C(MSGPACK_PP_BOOL(p##(6, s)), p, o, s)
+# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_WHILE_6_C(MSGPACK_PP_BOOL(p##(7, s)), p, o, s)
+# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_WHILE_7_C(MSGPACK_PP_BOOL(p##(8, s)), p, o, s)
+# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_WHILE_8_C(MSGPACK_PP_BOOL(p##(9, s)), p, o, s)
+# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_WHILE_9_C(MSGPACK_PP_BOOL(p##(10, s)), p, o, s)
+# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_WHILE_10_C(MSGPACK_PP_BOOL(p##(11, s)), p, o, s)
+# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_WHILE_11_C(MSGPACK_PP_BOOL(p##(12, s)), p, o, s)
+# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_WHILE_12_C(MSGPACK_PP_BOOL(p##(13, s)), p, o, s)
+# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_WHILE_13_C(MSGPACK_PP_BOOL(p##(14, s)), p, o, s)
+# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_WHILE_14_C(MSGPACK_PP_BOOL(p##(15, s)), p, o, s)
+# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_WHILE_15_C(MSGPACK_PP_BOOL(p##(16, s)), p, o, s)
+# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_WHILE_16_C(MSGPACK_PP_BOOL(p##(17, s)), p, o, s)
+# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_WHILE_17_C(MSGPACK_PP_BOOL(p##(18, s)), p, o, s)
+# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_WHILE_18_C(MSGPACK_PP_BOOL(p##(19, s)), p, o, s)
+# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_WHILE_19_C(MSGPACK_PP_BOOL(p##(20, s)), p, o, s)
+# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_WHILE_20_C(MSGPACK_PP_BOOL(p##(21, s)), p, o, s)
+# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_WHILE_21_C(MSGPACK_PP_BOOL(p##(22, s)), p, o, s)
+# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_WHILE_22_C(MSGPACK_PP_BOOL(p##(23, s)), p, o, s)
+# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_WHILE_23_C(MSGPACK_PP_BOOL(p##(24, s)), p, o, s)
+# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_WHILE_24_C(MSGPACK_PP_BOOL(p##(25, s)), p, o, s)
+# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_WHILE_25_C(MSGPACK_PP_BOOL(p##(26, s)), p, o, s)
+# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_WHILE_26_C(MSGPACK_PP_BOOL(p##(27, s)), p, o, s)
+# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_WHILE_27_C(MSGPACK_PP_BOOL(p##(28, s)), p, o, s)
+# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_WHILE_28_C(MSGPACK_PP_BOOL(p##(29, s)), p, o, s)
+# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_WHILE_29_C(MSGPACK_PP_BOOL(p##(30, s)), p, o, s)
+# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_WHILE_30_C(MSGPACK_PP_BOOL(p##(31, s)), p, o, s)
+# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_WHILE_31_C(MSGPACK_PP_BOOL(p##(32, s)), p, o, s)
+# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_WHILE_32_C(MSGPACK_PP_BOOL(p##(33, s)), p, o, s)
+# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_WHILE_33_C(MSGPACK_PP_BOOL(p##(34, s)), p, o, s)
+# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_WHILE_34_C(MSGPACK_PP_BOOL(p##(35, s)), p, o, s)
+# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_WHILE_35_C(MSGPACK_PP_BOOL(p##(36, s)), p, o, s)
+# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_WHILE_36_C(MSGPACK_PP_BOOL(p##(37, s)), p, o, s)
+# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_WHILE_37_C(MSGPACK_PP_BOOL(p##(38, s)), p, o, s)
+# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_WHILE_38_C(MSGPACK_PP_BOOL(p##(39, s)), p, o, s)
+# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_WHILE_39_C(MSGPACK_PP_BOOL(p##(40, s)), p, o, s)
+# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_WHILE_40_C(MSGPACK_PP_BOOL(p##(41, s)), p, o, s)
+# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_WHILE_41_C(MSGPACK_PP_BOOL(p##(42, s)), p, o, s)
+# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_WHILE_42_C(MSGPACK_PP_BOOL(p##(43, s)), p, o, s)
+# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_WHILE_43_C(MSGPACK_PP_BOOL(p##(44, s)), p, o, s)
+# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_WHILE_44_C(MSGPACK_PP_BOOL(p##(45, s)), p, o, s)
+# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_WHILE_45_C(MSGPACK_PP_BOOL(p##(46, s)), p, o, s)
+# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_WHILE_46_C(MSGPACK_PP_BOOL(p##(47, s)), p, o, s)
+# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_WHILE_47_C(MSGPACK_PP_BOOL(p##(48, s)), p, o, s)
+# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_WHILE_48_C(MSGPACK_PP_BOOL(p##(49, s)), p, o, s)
+# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_WHILE_49_C(MSGPACK_PP_BOOL(p##(50, s)), p, o, s)
+# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_WHILE_50_C(MSGPACK_PP_BOOL(p##(51, s)), p, o, s)
+# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_WHILE_51_C(MSGPACK_PP_BOOL(p##(52, s)), p, o, s)
+# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_WHILE_52_C(MSGPACK_PP_BOOL(p##(53, s)), p, o, s)
+# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_WHILE_53_C(MSGPACK_PP_BOOL(p##(54, s)), p, o, s)
+# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_WHILE_54_C(MSGPACK_PP_BOOL(p##(55, s)), p, o, s)
+# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_WHILE_55_C(MSGPACK_PP_BOOL(p##(56, s)), p, o, s)
+# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_WHILE_56_C(MSGPACK_PP_BOOL(p##(57, s)), p, o, s)
+# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_WHILE_57_C(MSGPACK_PP_BOOL(p##(58, s)), p, o, s)
+# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_WHILE_58_C(MSGPACK_PP_BOOL(p##(59, s)), p, o, s)
+# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_WHILE_59_C(MSGPACK_PP_BOOL(p##(60, s)), p, o, s)
+# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_WHILE_60_C(MSGPACK_PP_BOOL(p##(61, s)), p, o, s)
+# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_WHILE_61_C(MSGPACK_PP_BOOL(p##(62, s)), p, o, s)
+# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_WHILE_62_C(MSGPACK_PP_BOOL(p##(63, s)), p, o, s)
+# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_WHILE_63_C(MSGPACK_PP_BOOL(p##(64, s)), p, o, s)
+# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_WHILE_64_C(MSGPACK_PP_BOOL(p##(65, s)), p, o, s)
+# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_WHILE_65_C(MSGPACK_PP_BOOL(p##(66, s)), p, o, s)
+# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_WHILE_66_C(MSGPACK_PP_BOOL(p##(67, s)), p, o, s)
+# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_WHILE_67_C(MSGPACK_PP_BOOL(p##(68, s)), p, o, s)
+# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_WHILE_68_C(MSGPACK_PP_BOOL(p##(69, s)), p, o, s)
+# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_WHILE_69_C(MSGPACK_PP_BOOL(p##(70, s)), p, o, s)
+# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_WHILE_70_C(MSGPACK_PP_BOOL(p##(71, s)), p, o, s)
+# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_WHILE_71_C(MSGPACK_PP_BOOL(p##(72, s)), p, o, s)
+# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_WHILE_72_C(MSGPACK_PP_BOOL(p##(73, s)), p, o, s)
+# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_WHILE_73_C(MSGPACK_PP_BOOL(p##(74, s)), p, o, s)
+# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_WHILE_74_C(MSGPACK_PP_BOOL(p##(75, s)), p, o, s)
+# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_WHILE_75_C(MSGPACK_PP_BOOL(p##(76, s)), p, o, s)
+# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_WHILE_76_C(MSGPACK_PP_BOOL(p##(77, s)), p, o, s)
+# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_WHILE_77_C(MSGPACK_PP_BOOL(p##(78, s)), p, o, s)
+# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_WHILE_78_C(MSGPACK_PP_BOOL(p##(79, s)), p, o, s)
+# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_WHILE_79_C(MSGPACK_PP_BOOL(p##(80, s)), p, o, s)
+# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_WHILE_80_C(MSGPACK_PP_BOOL(p##(81, s)), p, o, s)
+# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_WHILE_81_C(MSGPACK_PP_BOOL(p##(82, s)), p, o, s)
+# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_WHILE_82_C(MSGPACK_PP_BOOL(p##(83, s)), p, o, s)
+# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_WHILE_83_C(MSGPACK_PP_BOOL(p##(84, s)), p, o, s)
+# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_WHILE_84_C(MSGPACK_PP_BOOL(p##(85, s)), p, o, s)
+# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_WHILE_85_C(MSGPACK_PP_BOOL(p##(86, s)), p, o, s)
+# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_WHILE_86_C(MSGPACK_PP_BOOL(p##(87, s)), p, o, s)
+# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_WHILE_87_C(MSGPACK_PP_BOOL(p##(88, s)), p, o, s)
+# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_WHILE_88_C(MSGPACK_PP_BOOL(p##(89, s)), p, o, s)
+# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_WHILE_89_C(MSGPACK_PP_BOOL(p##(90, s)), p, o, s)
+# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_WHILE_90_C(MSGPACK_PP_BOOL(p##(91, s)), p, o, s)
+# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_WHILE_91_C(MSGPACK_PP_BOOL(p##(92, s)), p, o, s)
+# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_WHILE_92_C(MSGPACK_PP_BOOL(p##(93, s)), p, o, s)
+# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_WHILE_93_C(MSGPACK_PP_BOOL(p##(94, s)), p, o, s)
+# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_WHILE_94_C(MSGPACK_PP_BOOL(p##(95, s)), p, o, s)
+# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_WHILE_95_C(MSGPACK_PP_BOOL(p##(96, s)), p, o, s)
+# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_WHILE_96_C(MSGPACK_PP_BOOL(p##(97, s)), p, o, s)
+# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_WHILE_97_C(MSGPACK_PP_BOOL(p##(98, s)), p, o, s)
+# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_WHILE_98_C(MSGPACK_PP_BOOL(p##(99, s)), p, o, s)
+# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_WHILE_99_C(MSGPACK_PP_BOOL(p##(100, s)), p, o, s)
+# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_WHILE_100_C(MSGPACK_PP_BOOL(p##(101, s)), p, o, s)
+# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_WHILE_101_C(MSGPACK_PP_BOOL(p##(102, s)), p, o, s)
+# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_WHILE_102_C(MSGPACK_PP_BOOL(p##(103, s)), p, o, s)
+# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_WHILE_103_C(MSGPACK_PP_BOOL(p##(104, s)), p, o, s)
+# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_WHILE_104_C(MSGPACK_PP_BOOL(p##(105, s)), p, o, s)
+# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_WHILE_105_C(MSGPACK_PP_BOOL(p##(106, s)), p, o, s)
+# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_WHILE_106_C(MSGPACK_PP_BOOL(p##(107, s)), p, o, s)
+# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_WHILE_107_C(MSGPACK_PP_BOOL(p##(108, s)), p, o, s)
+# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_WHILE_108_C(MSGPACK_PP_BOOL(p##(109, s)), p, o, s)
+# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_WHILE_109_C(MSGPACK_PP_BOOL(p##(110, s)), p, o, s)
+# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_WHILE_110_C(MSGPACK_PP_BOOL(p##(111, s)), p, o, s)
+# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_WHILE_111_C(MSGPACK_PP_BOOL(p##(112, s)), p, o, s)
+# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_WHILE_112_C(MSGPACK_PP_BOOL(p##(113, s)), p, o, s)
+# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_WHILE_113_C(MSGPACK_PP_BOOL(p##(114, s)), p, o, s)
+# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_WHILE_114_C(MSGPACK_PP_BOOL(p##(115, s)), p, o, s)
+# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_WHILE_115_C(MSGPACK_PP_BOOL(p##(116, s)), p, o, s)
+# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_WHILE_116_C(MSGPACK_PP_BOOL(p##(117, s)), p, o, s)
+# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_WHILE_117_C(MSGPACK_PP_BOOL(p##(118, s)), p, o, s)
+# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_WHILE_118_C(MSGPACK_PP_BOOL(p##(119, s)), p, o, s)
+# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_WHILE_119_C(MSGPACK_PP_BOOL(p##(120, s)), p, o, s)
+# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_WHILE_120_C(MSGPACK_PP_BOOL(p##(121, s)), p, o, s)
+# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_WHILE_121_C(MSGPACK_PP_BOOL(p##(122, s)), p, o, s)
+# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_WHILE_122_C(MSGPACK_PP_BOOL(p##(123, s)), p, o, s)
+# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_WHILE_123_C(MSGPACK_PP_BOOL(p##(124, s)), p, o, s)
+# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_WHILE_124_C(MSGPACK_PP_BOOL(p##(125, s)), p, o, s)
+# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_WHILE_125_C(MSGPACK_PP_BOOL(p##(126, s)), p, o, s)
+# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_WHILE_126_C(MSGPACK_PP_BOOL(p##(127, s)), p, o, s)
+# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_WHILE_127_C(MSGPACK_PP_BOOL(p##(128, s)), p, o, s)
+# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_WHILE_128_C(MSGPACK_PP_BOOL(p##(129, s)), p, o, s)
+# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_WHILE_129_C(MSGPACK_PP_BOOL(p##(130, s)), p, o, s)
+# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_WHILE_130_C(MSGPACK_PP_BOOL(p##(131, s)), p, o, s)
+# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_WHILE_131_C(MSGPACK_PP_BOOL(p##(132, s)), p, o, s)
+# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_WHILE_132_C(MSGPACK_PP_BOOL(p##(133, s)), p, o, s)
+# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_WHILE_133_C(MSGPACK_PP_BOOL(p##(134, s)), p, o, s)
+# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_WHILE_134_C(MSGPACK_PP_BOOL(p##(135, s)), p, o, s)
+# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_WHILE_135_C(MSGPACK_PP_BOOL(p##(136, s)), p, o, s)
+# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_WHILE_136_C(MSGPACK_PP_BOOL(p##(137, s)), p, o, s)
+# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_WHILE_137_C(MSGPACK_PP_BOOL(p##(138, s)), p, o, s)
+# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_WHILE_138_C(MSGPACK_PP_BOOL(p##(139, s)), p, o, s)
+# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_WHILE_139_C(MSGPACK_PP_BOOL(p##(140, s)), p, o, s)
+# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_WHILE_140_C(MSGPACK_PP_BOOL(p##(141, s)), p, o, s)
+# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_WHILE_141_C(MSGPACK_PP_BOOL(p##(142, s)), p, o, s)
+# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_WHILE_142_C(MSGPACK_PP_BOOL(p##(143, s)), p, o, s)
+# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_WHILE_143_C(MSGPACK_PP_BOOL(p##(144, s)), p, o, s)
+# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_WHILE_144_C(MSGPACK_PP_BOOL(p##(145, s)), p, o, s)
+# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_WHILE_145_C(MSGPACK_PP_BOOL(p##(146, s)), p, o, s)
+# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_WHILE_146_C(MSGPACK_PP_BOOL(p##(147, s)), p, o, s)
+# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_WHILE_147_C(MSGPACK_PP_BOOL(p##(148, s)), p, o, s)
+# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_WHILE_148_C(MSGPACK_PP_BOOL(p##(149, s)), p, o, s)
+# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_WHILE_149_C(MSGPACK_PP_BOOL(p##(150, s)), p, o, s)
+# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_WHILE_150_C(MSGPACK_PP_BOOL(p##(151, s)), p, o, s)
+# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_WHILE_151_C(MSGPACK_PP_BOOL(p##(152, s)), p, o, s)
+# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_WHILE_152_C(MSGPACK_PP_BOOL(p##(153, s)), p, o, s)
+# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_WHILE_153_C(MSGPACK_PP_BOOL(p##(154, s)), p, o, s)
+# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_WHILE_154_C(MSGPACK_PP_BOOL(p##(155, s)), p, o, s)
+# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_WHILE_155_C(MSGPACK_PP_BOOL(p##(156, s)), p, o, s)
+# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_WHILE_156_C(MSGPACK_PP_BOOL(p##(157, s)), p, o, s)
+# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_WHILE_157_C(MSGPACK_PP_BOOL(p##(158, s)), p, o, s)
+# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_WHILE_158_C(MSGPACK_PP_BOOL(p##(159, s)), p, o, s)
+# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_WHILE_159_C(MSGPACK_PP_BOOL(p##(160, s)), p, o, s)
+# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_WHILE_160_C(MSGPACK_PP_BOOL(p##(161, s)), p, o, s)
+# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_WHILE_161_C(MSGPACK_PP_BOOL(p##(162, s)), p, o, s)
+# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_WHILE_162_C(MSGPACK_PP_BOOL(p##(163, s)), p, o, s)
+# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_WHILE_163_C(MSGPACK_PP_BOOL(p##(164, s)), p, o, s)
+# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_WHILE_164_C(MSGPACK_PP_BOOL(p##(165, s)), p, o, s)
+# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_WHILE_165_C(MSGPACK_PP_BOOL(p##(166, s)), p, o, s)
+# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_WHILE_166_C(MSGPACK_PP_BOOL(p##(167, s)), p, o, s)
+# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_WHILE_167_C(MSGPACK_PP_BOOL(p##(168, s)), p, o, s)
+# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_WHILE_168_C(MSGPACK_PP_BOOL(p##(169, s)), p, o, s)
+# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_WHILE_169_C(MSGPACK_PP_BOOL(p##(170, s)), p, o, s)
+# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_WHILE_170_C(MSGPACK_PP_BOOL(p##(171, s)), p, o, s)
+# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_WHILE_171_C(MSGPACK_PP_BOOL(p##(172, s)), p, o, s)
+# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_WHILE_172_C(MSGPACK_PP_BOOL(p##(173, s)), p, o, s)
+# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_WHILE_173_C(MSGPACK_PP_BOOL(p##(174, s)), p, o, s)
+# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_WHILE_174_C(MSGPACK_PP_BOOL(p##(175, s)), p, o, s)
+# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_WHILE_175_C(MSGPACK_PP_BOOL(p##(176, s)), p, o, s)
+# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_WHILE_176_C(MSGPACK_PP_BOOL(p##(177, s)), p, o, s)
+# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_WHILE_177_C(MSGPACK_PP_BOOL(p##(178, s)), p, o, s)
+# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_WHILE_178_C(MSGPACK_PP_BOOL(p##(179, s)), p, o, s)
+# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_WHILE_179_C(MSGPACK_PP_BOOL(p##(180, s)), p, o, s)
+# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_WHILE_180_C(MSGPACK_PP_BOOL(p##(181, s)), p, o, s)
+# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_WHILE_181_C(MSGPACK_PP_BOOL(p##(182, s)), p, o, s)
+# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_WHILE_182_C(MSGPACK_PP_BOOL(p##(183, s)), p, o, s)
+# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_WHILE_183_C(MSGPACK_PP_BOOL(p##(184, s)), p, o, s)
+# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_WHILE_184_C(MSGPACK_PP_BOOL(p##(185, s)), p, o, s)
+# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_WHILE_185_C(MSGPACK_PP_BOOL(p##(186, s)), p, o, s)
+# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_WHILE_186_C(MSGPACK_PP_BOOL(p##(187, s)), p, o, s)
+# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_WHILE_187_C(MSGPACK_PP_BOOL(p##(188, s)), p, o, s)
+# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_WHILE_188_C(MSGPACK_PP_BOOL(p##(189, s)), p, o, s)
+# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_WHILE_189_C(MSGPACK_PP_BOOL(p##(190, s)), p, o, s)
+# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_WHILE_190_C(MSGPACK_PP_BOOL(p##(191, s)), p, o, s)
+# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_WHILE_191_C(MSGPACK_PP_BOOL(p##(192, s)), p, o, s)
+# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_WHILE_192_C(MSGPACK_PP_BOOL(p##(193, s)), p, o, s)
+# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_WHILE_193_C(MSGPACK_PP_BOOL(p##(194, s)), p, o, s)
+# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_WHILE_194_C(MSGPACK_PP_BOOL(p##(195, s)), p, o, s)
+# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_WHILE_195_C(MSGPACK_PP_BOOL(p##(196, s)), p, o, s)
+# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_WHILE_196_C(MSGPACK_PP_BOOL(p##(197, s)), p, o, s)
+# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_WHILE_197_C(MSGPACK_PP_BOOL(p##(198, s)), p, o, s)
+# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_WHILE_198_C(MSGPACK_PP_BOOL(p##(199, s)), p, o, s)
+# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_WHILE_199_C(MSGPACK_PP_BOOL(p##(200, s)), p, o, s)
+# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_WHILE_200_C(MSGPACK_PP_BOOL(p##(201, s)), p, o, s)
+# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_WHILE_201_C(MSGPACK_PP_BOOL(p##(202, s)), p, o, s)
+# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_WHILE_202_C(MSGPACK_PP_BOOL(p##(203, s)), p, o, s)
+# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_WHILE_203_C(MSGPACK_PP_BOOL(p##(204, s)), p, o, s)
+# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_WHILE_204_C(MSGPACK_PP_BOOL(p##(205, s)), p, o, s)
+# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_WHILE_205_C(MSGPACK_PP_BOOL(p##(206, s)), p, o, s)
+# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_WHILE_206_C(MSGPACK_PP_BOOL(p##(207, s)), p, o, s)
+# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_WHILE_207_C(MSGPACK_PP_BOOL(p##(208, s)), p, o, s)
+# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_WHILE_208_C(MSGPACK_PP_BOOL(p##(209, s)), p, o, s)
+# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_WHILE_209_C(MSGPACK_PP_BOOL(p##(210, s)), p, o, s)
+# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_WHILE_210_C(MSGPACK_PP_BOOL(p##(211, s)), p, o, s)
+# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_WHILE_211_C(MSGPACK_PP_BOOL(p##(212, s)), p, o, s)
+# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_WHILE_212_C(MSGPACK_PP_BOOL(p##(213, s)), p, o, s)
+# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_WHILE_213_C(MSGPACK_PP_BOOL(p##(214, s)), p, o, s)
+# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_WHILE_214_C(MSGPACK_PP_BOOL(p##(215, s)), p, o, s)
+# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_WHILE_215_C(MSGPACK_PP_BOOL(p##(216, s)), p, o, s)
+# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_WHILE_216_C(MSGPACK_PP_BOOL(p##(217, s)), p, o, s)
+# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_WHILE_217_C(MSGPACK_PP_BOOL(p##(218, s)), p, o, s)
+# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_WHILE_218_C(MSGPACK_PP_BOOL(p##(219, s)), p, o, s)
+# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_WHILE_219_C(MSGPACK_PP_BOOL(p##(220, s)), p, o, s)
+# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_WHILE_220_C(MSGPACK_PP_BOOL(p##(221, s)), p, o, s)
+# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_WHILE_221_C(MSGPACK_PP_BOOL(p##(222, s)), p, o, s)
+# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_WHILE_222_C(MSGPACK_PP_BOOL(p##(223, s)), p, o, s)
+# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_WHILE_223_C(MSGPACK_PP_BOOL(p##(224, s)), p, o, s)
+# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_WHILE_224_C(MSGPACK_PP_BOOL(p##(225, s)), p, o, s)
+# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_WHILE_225_C(MSGPACK_PP_BOOL(p##(226, s)), p, o, s)
+# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_WHILE_226_C(MSGPACK_PP_BOOL(p##(227, s)), p, o, s)
+# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_WHILE_227_C(MSGPACK_PP_BOOL(p##(228, s)), p, o, s)
+# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_WHILE_228_C(MSGPACK_PP_BOOL(p##(229, s)), p, o, s)
+# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_WHILE_229_C(MSGPACK_PP_BOOL(p##(230, s)), p, o, s)
+# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_WHILE_230_C(MSGPACK_PP_BOOL(p##(231, s)), p, o, s)
+# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_WHILE_231_C(MSGPACK_PP_BOOL(p##(232, s)), p, o, s)
+# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_WHILE_232_C(MSGPACK_PP_BOOL(p##(233, s)), p, o, s)
+# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_WHILE_233_C(MSGPACK_PP_BOOL(p##(234, s)), p, o, s)
+# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_WHILE_234_C(MSGPACK_PP_BOOL(p##(235, s)), p, o, s)
+# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_WHILE_235_C(MSGPACK_PP_BOOL(p##(236, s)), p, o, s)
+# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_WHILE_236_C(MSGPACK_PP_BOOL(p##(237, s)), p, o, s)
+# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_WHILE_237_C(MSGPACK_PP_BOOL(p##(238, s)), p, o, s)
+# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_WHILE_238_C(MSGPACK_PP_BOOL(p##(239, s)), p, o, s)
+# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_WHILE_239_C(MSGPACK_PP_BOOL(p##(240, s)), p, o, s)
+# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_WHILE_240_C(MSGPACK_PP_BOOL(p##(241, s)), p, o, s)
+# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_WHILE_241_C(MSGPACK_PP_BOOL(p##(242, s)), p, o, s)
+# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_WHILE_242_C(MSGPACK_PP_BOOL(p##(243, s)), p, o, s)
+# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_WHILE_243_C(MSGPACK_PP_BOOL(p##(244, s)), p, o, s)
+# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_WHILE_244_C(MSGPACK_PP_BOOL(p##(245, s)), p, o, s)
+# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_WHILE_245_C(MSGPACK_PP_BOOL(p##(246, s)), p, o, s)
+# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_WHILE_246_C(MSGPACK_PP_BOOL(p##(247, s)), p, o, s)
+# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_WHILE_247_C(MSGPACK_PP_BOOL(p##(248, s)), p, o, s)
+# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_WHILE_248_C(MSGPACK_PP_BOOL(p##(249, s)), p, o, s)
+# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_WHILE_249_C(MSGPACK_PP_BOOL(p##(250, s)), p, o, s)
+# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_WHILE_250_C(MSGPACK_PP_BOOL(p##(251, s)), p, o, s)
+# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_WHILE_251_C(MSGPACK_PP_BOOL(p##(252, s)), p, o, s)
+# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_WHILE_252_C(MSGPACK_PP_BOOL(p##(253, s)), p, o, s)
+# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_WHILE_253_C(MSGPACK_PP_BOOL(p##(254, s)), p, o, s)
+# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_WHILE_254_C(MSGPACK_PP_BOOL(p##(255, s)), p, o, s)
+# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_WHILE_255_C(MSGPACK_PP_BOOL(p##(256, s)), p, o, s)
+# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_WHILE_256_C(MSGPACK_PP_BOOL(p##(257, s)), p, o, s)
+#
+# define MSGPACK_PP_WHILE_1_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_2, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(2, s))
+# define MSGPACK_PP_WHILE_2_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_3, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(3, s))
+# define MSGPACK_PP_WHILE_3_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_4, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(4, s))
+# define MSGPACK_PP_WHILE_4_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_5, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(5, s))
+# define MSGPACK_PP_WHILE_5_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_6, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(6, s))
+# define MSGPACK_PP_WHILE_6_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_7, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(7, s))
+# define MSGPACK_PP_WHILE_7_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_8, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(8, s))
+# define MSGPACK_PP_WHILE_8_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_9, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(9, s))
+# define MSGPACK_PP_WHILE_9_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_10, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(10, s))
+# define MSGPACK_PP_WHILE_10_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_11, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(11, s))
+# define MSGPACK_PP_WHILE_11_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_12, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(12, s))
+# define MSGPACK_PP_WHILE_12_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_13, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(13, s))
+# define MSGPACK_PP_WHILE_13_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_14, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(14, s))
+# define MSGPACK_PP_WHILE_14_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_15, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(15, s))
+# define MSGPACK_PP_WHILE_15_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_16, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(16, s))
+# define MSGPACK_PP_WHILE_16_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_17, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(17, s))
+# define MSGPACK_PP_WHILE_17_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_18, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(18, s))
+# define MSGPACK_PP_WHILE_18_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_19, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(19, s))
+# define MSGPACK_PP_WHILE_19_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_20, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(20, s))
+# define MSGPACK_PP_WHILE_20_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_21, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(21, s))
+# define MSGPACK_PP_WHILE_21_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_22, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(22, s))
+# define MSGPACK_PP_WHILE_22_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_23, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(23, s))
+# define MSGPACK_PP_WHILE_23_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_24, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(24, s))
+# define MSGPACK_PP_WHILE_24_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_25, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(25, s))
+# define MSGPACK_PP_WHILE_25_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_26, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(26, s))
+# define MSGPACK_PP_WHILE_26_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_27, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(27, s))
+# define MSGPACK_PP_WHILE_27_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_28, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(28, s))
+# define MSGPACK_PP_WHILE_28_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_29, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(29, s))
+# define MSGPACK_PP_WHILE_29_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_30, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(30, s))
+# define MSGPACK_PP_WHILE_30_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_31, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(31, s))
+# define MSGPACK_PP_WHILE_31_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_32, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(32, s))
+# define MSGPACK_PP_WHILE_32_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_33, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(33, s))
+# define MSGPACK_PP_WHILE_33_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_34, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(34, s))
+# define MSGPACK_PP_WHILE_34_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_35, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(35, s))
+# define MSGPACK_PP_WHILE_35_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_36, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(36, s))
+# define MSGPACK_PP_WHILE_36_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_37, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(37, s))
+# define MSGPACK_PP_WHILE_37_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_38, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(38, s))
+# define MSGPACK_PP_WHILE_38_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_39, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(39, s))
+# define MSGPACK_PP_WHILE_39_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_40, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(40, s))
+# define MSGPACK_PP_WHILE_40_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_41, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(41, s))
+# define MSGPACK_PP_WHILE_41_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_42, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(42, s))
+# define MSGPACK_PP_WHILE_42_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_43, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(43, s))
+# define MSGPACK_PP_WHILE_43_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_44, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(44, s))
+# define MSGPACK_PP_WHILE_44_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_45, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(45, s))
+# define MSGPACK_PP_WHILE_45_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_46, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(46, s))
+# define MSGPACK_PP_WHILE_46_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_47, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(47, s))
+# define MSGPACK_PP_WHILE_47_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_48, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(48, s))
+# define MSGPACK_PP_WHILE_48_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_49, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(49, s))
+# define MSGPACK_PP_WHILE_49_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_50, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(50, s))
+# define MSGPACK_PP_WHILE_50_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_51, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(51, s))
+# define MSGPACK_PP_WHILE_51_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_52, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(52, s))
+# define MSGPACK_PP_WHILE_52_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_53, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(53, s))
+# define MSGPACK_PP_WHILE_53_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_54, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(54, s))
+# define MSGPACK_PP_WHILE_54_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_55, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(55, s))
+# define MSGPACK_PP_WHILE_55_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_56, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(56, s))
+# define MSGPACK_PP_WHILE_56_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_57, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(57, s))
+# define MSGPACK_PP_WHILE_57_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_58, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(58, s))
+# define MSGPACK_PP_WHILE_58_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_59, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(59, s))
+# define MSGPACK_PP_WHILE_59_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_60, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(60, s))
+# define MSGPACK_PP_WHILE_60_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_61, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(61, s))
+# define MSGPACK_PP_WHILE_61_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_62, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(62, s))
+# define MSGPACK_PP_WHILE_62_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_63, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(63, s))
+# define MSGPACK_PP_WHILE_63_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_64, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(64, s))
+# define MSGPACK_PP_WHILE_64_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_65, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(65, s))
+# define MSGPACK_PP_WHILE_65_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_66, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(66, s))
+# define MSGPACK_PP_WHILE_66_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_67, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(67, s))
+# define MSGPACK_PP_WHILE_67_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_68, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(68, s))
+# define MSGPACK_PP_WHILE_68_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_69, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(69, s))
+# define MSGPACK_PP_WHILE_69_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_70, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(70, s))
+# define MSGPACK_PP_WHILE_70_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_71, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(71, s))
+# define MSGPACK_PP_WHILE_71_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_72, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(72, s))
+# define MSGPACK_PP_WHILE_72_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_73, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(73, s))
+# define MSGPACK_PP_WHILE_73_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_74, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(74, s))
+# define MSGPACK_PP_WHILE_74_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_75, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(75, s))
+# define MSGPACK_PP_WHILE_75_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_76, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(76, s))
+# define MSGPACK_PP_WHILE_76_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_77, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(77, s))
+# define MSGPACK_PP_WHILE_77_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_78, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(78, s))
+# define MSGPACK_PP_WHILE_78_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_79, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(79, s))
+# define MSGPACK_PP_WHILE_79_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_80, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(80, s))
+# define MSGPACK_PP_WHILE_80_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_81, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(81, s))
+# define MSGPACK_PP_WHILE_81_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_82, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(82, s))
+# define MSGPACK_PP_WHILE_82_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_83, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(83, s))
+# define MSGPACK_PP_WHILE_83_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_84, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(84, s))
+# define MSGPACK_PP_WHILE_84_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_85, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(85, s))
+# define MSGPACK_PP_WHILE_85_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_86, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(86, s))
+# define MSGPACK_PP_WHILE_86_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_87, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(87, s))
+# define MSGPACK_PP_WHILE_87_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_88, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(88, s))
+# define MSGPACK_PP_WHILE_88_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_89, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(89, s))
+# define MSGPACK_PP_WHILE_89_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_90, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(90, s))
+# define MSGPACK_PP_WHILE_90_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_91, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(91, s))
+# define MSGPACK_PP_WHILE_91_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_92, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(92, s))
+# define MSGPACK_PP_WHILE_92_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_93, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(93, s))
+# define MSGPACK_PP_WHILE_93_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_94, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(94, s))
+# define MSGPACK_PP_WHILE_94_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_95, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(95, s))
+# define MSGPACK_PP_WHILE_95_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_96, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(96, s))
+# define MSGPACK_PP_WHILE_96_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_97, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(97, s))
+# define MSGPACK_PP_WHILE_97_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_98, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(98, s))
+# define MSGPACK_PP_WHILE_98_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_99, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(99, s))
+# define MSGPACK_PP_WHILE_99_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_100, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(100, s))
+# define MSGPACK_PP_WHILE_100_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_101, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(101, s))
+# define MSGPACK_PP_WHILE_101_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_102, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(102, s))
+# define MSGPACK_PP_WHILE_102_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_103, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(103, s))
+# define MSGPACK_PP_WHILE_103_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_104, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(104, s))
+# define MSGPACK_PP_WHILE_104_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_105, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(105, s))
+# define MSGPACK_PP_WHILE_105_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_106, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(106, s))
+# define MSGPACK_PP_WHILE_106_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_107, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(107, s))
+# define MSGPACK_PP_WHILE_107_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_108, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(108, s))
+# define MSGPACK_PP_WHILE_108_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_109, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(109, s))
+# define MSGPACK_PP_WHILE_109_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_110, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(110, s))
+# define MSGPACK_PP_WHILE_110_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_111, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(111, s))
+# define MSGPACK_PP_WHILE_111_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_112, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(112, s))
+# define MSGPACK_PP_WHILE_112_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_113, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(113, s))
+# define MSGPACK_PP_WHILE_113_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_114, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(114, s))
+# define MSGPACK_PP_WHILE_114_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_115, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(115, s))
+# define MSGPACK_PP_WHILE_115_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_116, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(116, s))
+# define MSGPACK_PP_WHILE_116_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_117, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(117, s))
+# define MSGPACK_PP_WHILE_117_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_118, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(118, s))
+# define MSGPACK_PP_WHILE_118_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_119, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(119, s))
+# define MSGPACK_PP_WHILE_119_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_120, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(120, s))
+# define MSGPACK_PP_WHILE_120_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_121, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(121, s))
+# define MSGPACK_PP_WHILE_121_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_122, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(122, s))
+# define MSGPACK_PP_WHILE_122_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_123, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(123, s))
+# define MSGPACK_PP_WHILE_123_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_124, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(124, s))
+# define MSGPACK_PP_WHILE_124_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_125, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(125, s))
+# define MSGPACK_PP_WHILE_125_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_126, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(126, s))
+# define MSGPACK_PP_WHILE_126_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_127, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(127, s))
+# define MSGPACK_PP_WHILE_127_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_128, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(128, s))
+# define MSGPACK_PP_WHILE_128_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_129, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(129, s))
+# define MSGPACK_PP_WHILE_129_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_130, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(130, s))
+# define MSGPACK_PP_WHILE_130_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_131, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(131, s))
+# define MSGPACK_PP_WHILE_131_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_132, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(132, s))
+# define MSGPACK_PP_WHILE_132_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_133, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(133, s))
+# define MSGPACK_PP_WHILE_133_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_134, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(134, s))
+# define MSGPACK_PP_WHILE_134_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_135, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(135, s))
+# define MSGPACK_PP_WHILE_135_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_136, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(136, s))
+# define MSGPACK_PP_WHILE_136_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_137, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(137, s))
+# define MSGPACK_PP_WHILE_137_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_138, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(138, s))
+# define MSGPACK_PP_WHILE_138_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_139, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(139, s))
+# define MSGPACK_PP_WHILE_139_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_140, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(140, s))
+# define MSGPACK_PP_WHILE_140_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_141, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(141, s))
+# define MSGPACK_PP_WHILE_141_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_142, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(142, s))
+# define MSGPACK_PP_WHILE_142_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_143, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(143, s))
+# define MSGPACK_PP_WHILE_143_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_144, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(144, s))
+# define MSGPACK_PP_WHILE_144_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_145, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(145, s))
+# define MSGPACK_PP_WHILE_145_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_146, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(146, s))
+# define MSGPACK_PP_WHILE_146_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_147, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(147, s))
+# define MSGPACK_PP_WHILE_147_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_148, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(148, s))
+# define MSGPACK_PP_WHILE_148_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_149, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(149, s))
+# define MSGPACK_PP_WHILE_149_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_150, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(150, s))
+# define MSGPACK_PP_WHILE_150_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_151, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(151, s))
+# define MSGPACK_PP_WHILE_151_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_152, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(152, s))
+# define MSGPACK_PP_WHILE_152_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_153, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(153, s))
+# define MSGPACK_PP_WHILE_153_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_154, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(154, s))
+# define MSGPACK_PP_WHILE_154_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_155, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(155, s))
+# define MSGPACK_PP_WHILE_155_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_156, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(156, s))
+# define MSGPACK_PP_WHILE_156_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_157, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(157, s))
+# define MSGPACK_PP_WHILE_157_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_158, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(158, s))
+# define MSGPACK_PP_WHILE_158_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_159, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(159, s))
+# define MSGPACK_PP_WHILE_159_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_160, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(160, s))
+# define MSGPACK_PP_WHILE_160_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_161, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(161, s))
+# define MSGPACK_PP_WHILE_161_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_162, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(162, s))
+# define MSGPACK_PP_WHILE_162_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_163, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(163, s))
+# define MSGPACK_PP_WHILE_163_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_164, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(164, s))
+# define MSGPACK_PP_WHILE_164_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_165, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(165, s))
+# define MSGPACK_PP_WHILE_165_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_166, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(166, s))
+# define MSGPACK_PP_WHILE_166_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_167, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(167, s))
+# define MSGPACK_PP_WHILE_167_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_168, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(168, s))
+# define MSGPACK_PP_WHILE_168_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_169, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(169, s))
+# define MSGPACK_PP_WHILE_169_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_170, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(170, s))
+# define MSGPACK_PP_WHILE_170_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_171, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(171, s))
+# define MSGPACK_PP_WHILE_171_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_172, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(172, s))
+# define MSGPACK_PP_WHILE_172_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_173, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(173, s))
+# define MSGPACK_PP_WHILE_173_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_174, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(174, s))
+# define MSGPACK_PP_WHILE_174_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_175, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(175, s))
+# define MSGPACK_PP_WHILE_175_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_176, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(176, s))
+# define MSGPACK_PP_WHILE_176_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_177, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(177, s))
+# define MSGPACK_PP_WHILE_177_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_178, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(178, s))
+# define MSGPACK_PP_WHILE_178_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_179, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(179, s))
+# define MSGPACK_PP_WHILE_179_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_180, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(180, s))
+# define MSGPACK_PP_WHILE_180_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_181, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(181, s))
+# define MSGPACK_PP_WHILE_181_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_182, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(182, s))
+# define MSGPACK_PP_WHILE_182_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_183, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(183, s))
+# define MSGPACK_PP_WHILE_183_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_184, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(184, s))
+# define MSGPACK_PP_WHILE_184_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_185, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(185, s))
+# define MSGPACK_PP_WHILE_185_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_186, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(186, s))
+# define MSGPACK_PP_WHILE_186_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_187, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(187, s))
+# define MSGPACK_PP_WHILE_187_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_188, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(188, s))
+# define MSGPACK_PP_WHILE_188_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_189, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(189, s))
+# define MSGPACK_PP_WHILE_189_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_190, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(190, s))
+# define MSGPACK_PP_WHILE_190_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_191, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(191, s))
+# define MSGPACK_PP_WHILE_191_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_192, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(192, s))
+# define MSGPACK_PP_WHILE_192_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_193, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(193, s))
+# define MSGPACK_PP_WHILE_193_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_194, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(194, s))
+# define MSGPACK_PP_WHILE_194_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_195, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(195, s))
+# define MSGPACK_PP_WHILE_195_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_196, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(196, s))
+# define MSGPACK_PP_WHILE_196_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_197, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(197, s))
+# define MSGPACK_PP_WHILE_197_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_198, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(198, s))
+# define MSGPACK_PP_WHILE_198_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_199, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(199, s))
+# define MSGPACK_PP_WHILE_199_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_200, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(200, s))
+# define MSGPACK_PP_WHILE_200_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_201, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(201, s))
+# define MSGPACK_PP_WHILE_201_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_202, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(202, s))
+# define MSGPACK_PP_WHILE_202_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_203, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(203, s))
+# define MSGPACK_PP_WHILE_203_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_204, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(204, s))
+# define MSGPACK_PP_WHILE_204_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_205, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(205, s))
+# define MSGPACK_PP_WHILE_205_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_206, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(206, s))
+# define MSGPACK_PP_WHILE_206_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_207, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(207, s))
+# define MSGPACK_PP_WHILE_207_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_208, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(208, s))
+# define MSGPACK_PP_WHILE_208_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_209, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(209, s))
+# define MSGPACK_PP_WHILE_209_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_210, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(210, s))
+# define MSGPACK_PP_WHILE_210_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_211, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(211, s))
+# define MSGPACK_PP_WHILE_211_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_212, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(212, s))
+# define MSGPACK_PP_WHILE_212_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_213, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(213, s))
+# define MSGPACK_PP_WHILE_213_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_214, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(214, s))
+# define MSGPACK_PP_WHILE_214_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_215, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(215, s))
+# define MSGPACK_PP_WHILE_215_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_216, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(216, s))
+# define MSGPACK_PP_WHILE_216_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_217, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(217, s))
+# define MSGPACK_PP_WHILE_217_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_218, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(218, s))
+# define MSGPACK_PP_WHILE_218_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_219, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(219, s))
+# define MSGPACK_PP_WHILE_219_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_220, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(220, s))
+# define MSGPACK_PP_WHILE_220_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_221, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(221, s))
+# define MSGPACK_PP_WHILE_221_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_222, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(222, s))
+# define MSGPACK_PP_WHILE_222_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_223, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(223, s))
+# define MSGPACK_PP_WHILE_223_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_224, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(224, s))
+# define MSGPACK_PP_WHILE_224_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_225, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(225, s))
+# define MSGPACK_PP_WHILE_225_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_226, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(226, s))
+# define MSGPACK_PP_WHILE_226_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_227, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(227, s))
+# define MSGPACK_PP_WHILE_227_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_228, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(228, s))
+# define MSGPACK_PP_WHILE_228_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_229, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(229, s))
+# define MSGPACK_PP_WHILE_229_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_230, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(230, s))
+# define MSGPACK_PP_WHILE_230_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_231, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(231, s))
+# define MSGPACK_PP_WHILE_231_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_232, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(232, s))
+# define MSGPACK_PP_WHILE_232_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_233, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(233, s))
+# define MSGPACK_PP_WHILE_233_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_234, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(234, s))
+# define MSGPACK_PP_WHILE_234_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_235, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(235, s))
+# define MSGPACK_PP_WHILE_235_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_236, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(236, s))
+# define MSGPACK_PP_WHILE_236_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_237, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(237, s))
+# define MSGPACK_PP_WHILE_237_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_238, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(238, s))
+# define MSGPACK_PP_WHILE_238_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_239, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(239, s))
+# define MSGPACK_PP_WHILE_239_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_240, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(240, s))
+# define MSGPACK_PP_WHILE_240_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_241, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(241, s))
+# define MSGPACK_PP_WHILE_241_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_242, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(242, s))
+# define MSGPACK_PP_WHILE_242_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_243, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(243, s))
+# define MSGPACK_PP_WHILE_243_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_244, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(244, s))
+# define MSGPACK_PP_WHILE_244_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_245, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(245, s))
+# define MSGPACK_PP_WHILE_245_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_246, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(246, s))
+# define MSGPACK_PP_WHILE_246_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_247, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(247, s))
+# define MSGPACK_PP_WHILE_247_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_248, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(248, s))
+# define MSGPACK_PP_WHILE_248_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_249, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(249, s))
+# define MSGPACK_PP_WHILE_249_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_250, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(250, s))
+# define MSGPACK_PP_WHILE_250_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_251, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(251, s))
+# define MSGPACK_PP_WHILE_251_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_252, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(252, s))
+# define MSGPACK_PP_WHILE_252_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_253, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(253, s))
+# define MSGPACK_PP_WHILE_253_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_254, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(254, s))
+# define MSGPACK_PP_WHILE_254_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_255, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(255, s))
+# define MSGPACK_PP_WHILE_255_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_256, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(256, s))
+# define MSGPACK_PP_WHILE_256_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_257, MSGPACK_PP_TUPLE_ELEM_3_2)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_TUPLE_ELEM_2_1)(257, s))
+#
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/edg/while.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/edg/while.hpp
new file mode 100644
index 000000000..61920e338
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/edg/while.hpp
@@ -0,0 +1,534 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
+#
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_WHILE_1_I(p, o, s)
+# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_WHILE_2_I(p, o, s)
+# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_WHILE_3_I(p, o, s)
+# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_WHILE_4_I(p, o, s)
+# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_WHILE_5_I(p, o, s)
+# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_WHILE_6_I(p, o, s)
+# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_WHILE_7_I(p, o, s)
+# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_WHILE_8_I(p, o, s)
+# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_WHILE_9_I(p, o, s)
+# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_WHILE_10_I(p, o, s)
+# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_WHILE_11_I(p, o, s)
+# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_WHILE_12_I(p, o, s)
+# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_WHILE_13_I(p, o, s)
+# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_WHILE_14_I(p, o, s)
+# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_WHILE_15_I(p, o, s)
+# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_WHILE_16_I(p, o, s)
+# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_WHILE_17_I(p, o, s)
+# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_WHILE_18_I(p, o, s)
+# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_WHILE_19_I(p, o, s)
+# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_WHILE_20_I(p, o, s)
+# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_WHILE_21_I(p, o, s)
+# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_WHILE_22_I(p, o, s)
+# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_WHILE_23_I(p, o, s)
+# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_WHILE_24_I(p, o, s)
+# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_WHILE_25_I(p, o, s)
+# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_WHILE_26_I(p, o, s)
+# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_WHILE_27_I(p, o, s)
+# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_WHILE_28_I(p, o, s)
+# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_WHILE_29_I(p, o, s)
+# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_WHILE_30_I(p, o, s)
+# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_WHILE_31_I(p, o, s)
+# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_WHILE_32_I(p, o, s)
+# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_WHILE_33_I(p, o, s)
+# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_WHILE_34_I(p, o, s)
+# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_WHILE_35_I(p, o, s)
+# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_WHILE_36_I(p, o, s)
+# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_WHILE_37_I(p, o, s)
+# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_WHILE_38_I(p, o, s)
+# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_WHILE_39_I(p, o, s)
+# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_WHILE_40_I(p, o, s)
+# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_WHILE_41_I(p, o, s)
+# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_WHILE_42_I(p, o, s)
+# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_WHILE_43_I(p, o, s)
+# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_WHILE_44_I(p, o, s)
+# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_WHILE_45_I(p, o, s)
+# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_WHILE_46_I(p, o, s)
+# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_WHILE_47_I(p, o, s)
+# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_WHILE_48_I(p, o, s)
+# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_WHILE_49_I(p, o, s)
+# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_WHILE_50_I(p, o, s)
+# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_WHILE_51_I(p, o, s)
+# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_WHILE_52_I(p, o, s)
+# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_WHILE_53_I(p, o, s)
+# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_WHILE_54_I(p, o, s)
+# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_WHILE_55_I(p, o, s)
+# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_WHILE_56_I(p, o, s)
+# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_WHILE_57_I(p, o, s)
+# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_WHILE_58_I(p, o, s)
+# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_WHILE_59_I(p, o, s)
+# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_WHILE_60_I(p, o, s)
+# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_WHILE_61_I(p, o, s)
+# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_WHILE_62_I(p, o, s)
+# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_WHILE_63_I(p, o, s)
+# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_WHILE_64_I(p, o, s)
+# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_WHILE_65_I(p, o, s)
+# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_WHILE_66_I(p, o, s)
+# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_WHILE_67_I(p, o, s)
+# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_WHILE_68_I(p, o, s)
+# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_WHILE_69_I(p, o, s)
+# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_WHILE_70_I(p, o, s)
+# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_WHILE_71_I(p, o, s)
+# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_WHILE_72_I(p, o, s)
+# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_WHILE_73_I(p, o, s)
+# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_WHILE_74_I(p, o, s)
+# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_WHILE_75_I(p, o, s)
+# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_WHILE_76_I(p, o, s)
+# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_WHILE_77_I(p, o, s)
+# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_WHILE_78_I(p, o, s)
+# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_WHILE_79_I(p, o, s)
+# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_WHILE_80_I(p, o, s)
+# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_WHILE_81_I(p, o, s)
+# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_WHILE_82_I(p, o, s)
+# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_WHILE_83_I(p, o, s)
+# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_WHILE_84_I(p, o, s)
+# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_WHILE_85_I(p, o, s)
+# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_WHILE_86_I(p, o, s)
+# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_WHILE_87_I(p, o, s)
+# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_WHILE_88_I(p, o, s)
+# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_WHILE_89_I(p, o, s)
+# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_WHILE_90_I(p, o, s)
+# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_WHILE_91_I(p, o, s)
+# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_WHILE_92_I(p, o, s)
+# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_WHILE_93_I(p, o, s)
+# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_WHILE_94_I(p, o, s)
+# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_WHILE_95_I(p, o, s)
+# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_WHILE_96_I(p, o, s)
+# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_WHILE_97_I(p, o, s)
+# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_WHILE_98_I(p, o, s)
+# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_WHILE_99_I(p, o, s)
+# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_WHILE_100_I(p, o, s)
+# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_WHILE_101_I(p, o, s)
+# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_WHILE_102_I(p, o, s)
+# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_WHILE_103_I(p, o, s)
+# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_WHILE_104_I(p, o, s)
+# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_WHILE_105_I(p, o, s)
+# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_WHILE_106_I(p, o, s)
+# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_WHILE_107_I(p, o, s)
+# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_WHILE_108_I(p, o, s)
+# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_WHILE_109_I(p, o, s)
+# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_WHILE_110_I(p, o, s)
+# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_WHILE_111_I(p, o, s)
+# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_WHILE_112_I(p, o, s)
+# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_WHILE_113_I(p, o, s)
+# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_WHILE_114_I(p, o, s)
+# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_WHILE_115_I(p, o, s)
+# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_WHILE_116_I(p, o, s)
+# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_WHILE_117_I(p, o, s)
+# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_WHILE_118_I(p, o, s)
+# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_WHILE_119_I(p, o, s)
+# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_WHILE_120_I(p, o, s)
+# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_WHILE_121_I(p, o, s)
+# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_WHILE_122_I(p, o, s)
+# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_WHILE_123_I(p, o, s)
+# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_WHILE_124_I(p, o, s)
+# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_WHILE_125_I(p, o, s)
+# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_WHILE_126_I(p, o, s)
+# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_WHILE_127_I(p, o, s)
+# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_WHILE_128_I(p, o, s)
+# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_WHILE_129_I(p, o, s)
+# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_WHILE_130_I(p, o, s)
+# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_WHILE_131_I(p, o, s)
+# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_WHILE_132_I(p, o, s)
+# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_WHILE_133_I(p, o, s)
+# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_WHILE_134_I(p, o, s)
+# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_WHILE_135_I(p, o, s)
+# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_WHILE_136_I(p, o, s)
+# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_WHILE_137_I(p, o, s)
+# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_WHILE_138_I(p, o, s)
+# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_WHILE_139_I(p, o, s)
+# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_WHILE_140_I(p, o, s)
+# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_WHILE_141_I(p, o, s)
+# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_WHILE_142_I(p, o, s)
+# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_WHILE_143_I(p, o, s)
+# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_WHILE_144_I(p, o, s)
+# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_WHILE_145_I(p, o, s)
+# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_WHILE_146_I(p, o, s)
+# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_WHILE_147_I(p, o, s)
+# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_WHILE_148_I(p, o, s)
+# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_WHILE_149_I(p, o, s)
+# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_WHILE_150_I(p, o, s)
+# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_WHILE_151_I(p, o, s)
+# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_WHILE_152_I(p, o, s)
+# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_WHILE_153_I(p, o, s)
+# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_WHILE_154_I(p, o, s)
+# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_WHILE_155_I(p, o, s)
+# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_WHILE_156_I(p, o, s)
+# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_WHILE_157_I(p, o, s)
+# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_WHILE_158_I(p, o, s)
+# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_WHILE_159_I(p, o, s)
+# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_WHILE_160_I(p, o, s)
+# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_WHILE_161_I(p, o, s)
+# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_WHILE_162_I(p, o, s)
+# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_WHILE_163_I(p, o, s)
+# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_WHILE_164_I(p, o, s)
+# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_WHILE_165_I(p, o, s)
+# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_WHILE_166_I(p, o, s)
+# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_WHILE_167_I(p, o, s)
+# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_WHILE_168_I(p, o, s)
+# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_WHILE_169_I(p, o, s)
+# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_WHILE_170_I(p, o, s)
+# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_WHILE_171_I(p, o, s)
+# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_WHILE_172_I(p, o, s)
+# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_WHILE_173_I(p, o, s)
+# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_WHILE_174_I(p, o, s)
+# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_WHILE_175_I(p, o, s)
+# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_WHILE_176_I(p, o, s)
+# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_WHILE_177_I(p, o, s)
+# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_WHILE_178_I(p, o, s)
+# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_WHILE_179_I(p, o, s)
+# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_WHILE_180_I(p, o, s)
+# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_WHILE_181_I(p, o, s)
+# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_WHILE_182_I(p, o, s)
+# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_WHILE_183_I(p, o, s)
+# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_WHILE_184_I(p, o, s)
+# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_WHILE_185_I(p, o, s)
+# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_WHILE_186_I(p, o, s)
+# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_WHILE_187_I(p, o, s)
+# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_WHILE_188_I(p, o, s)
+# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_WHILE_189_I(p, o, s)
+# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_WHILE_190_I(p, o, s)
+# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_WHILE_191_I(p, o, s)
+# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_WHILE_192_I(p, o, s)
+# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_WHILE_193_I(p, o, s)
+# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_WHILE_194_I(p, o, s)
+# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_WHILE_195_I(p, o, s)
+# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_WHILE_196_I(p, o, s)
+# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_WHILE_197_I(p, o, s)
+# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_WHILE_198_I(p, o, s)
+# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_WHILE_199_I(p, o, s)
+# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_WHILE_200_I(p, o, s)
+# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_WHILE_201_I(p, o, s)
+# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_WHILE_202_I(p, o, s)
+# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_WHILE_203_I(p, o, s)
+# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_WHILE_204_I(p, o, s)
+# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_WHILE_205_I(p, o, s)
+# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_WHILE_206_I(p, o, s)
+# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_WHILE_207_I(p, o, s)
+# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_WHILE_208_I(p, o, s)
+# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_WHILE_209_I(p, o, s)
+# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_WHILE_210_I(p, o, s)
+# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_WHILE_211_I(p, o, s)
+# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_WHILE_212_I(p, o, s)
+# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_WHILE_213_I(p, o, s)
+# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_WHILE_214_I(p, o, s)
+# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_WHILE_215_I(p, o, s)
+# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_WHILE_216_I(p, o, s)
+# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_WHILE_217_I(p, o, s)
+# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_WHILE_218_I(p, o, s)
+# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_WHILE_219_I(p, o, s)
+# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_WHILE_220_I(p, o, s)
+# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_WHILE_221_I(p, o, s)
+# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_WHILE_222_I(p, o, s)
+# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_WHILE_223_I(p, o, s)
+# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_WHILE_224_I(p, o, s)
+# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_WHILE_225_I(p, o, s)
+# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_WHILE_226_I(p, o, s)
+# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_WHILE_227_I(p, o, s)
+# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_WHILE_228_I(p, o, s)
+# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_WHILE_229_I(p, o, s)
+# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_WHILE_230_I(p, o, s)
+# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_WHILE_231_I(p, o, s)
+# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_WHILE_232_I(p, o, s)
+# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_WHILE_233_I(p, o, s)
+# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_WHILE_234_I(p, o, s)
+# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_WHILE_235_I(p, o, s)
+# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_WHILE_236_I(p, o, s)
+# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_WHILE_237_I(p, o, s)
+# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_WHILE_238_I(p, o, s)
+# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_WHILE_239_I(p, o, s)
+# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_WHILE_240_I(p, o, s)
+# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_WHILE_241_I(p, o, s)
+# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_WHILE_242_I(p, o, s)
+# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_WHILE_243_I(p, o, s)
+# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_WHILE_244_I(p, o, s)
+# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_WHILE_245_I(p, o, s)
+# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_WHILE_246_I(p, o, s)
+# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_WHILE_247_I(p, o, s)
+# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_WHILE_248_I(p, o, s)
+# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_WHILE_249_I(p, o, s)
+# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_WHILE_250_I(p, o, s)
+# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_WHILE_251_I(p, o, s)
+# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_WHILE_252_I(p, o, s)
+# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_WHILE_253_I(p, o, s)
+# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_WHILE_254_I(p, o, s)
+# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_WHILE_255_I(p, o, s)
+# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_WHILE_256_I(p, o, s)
+#
+# define MSGPACK_PP_WHILE_1_I(p, o, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_WHILE_2, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(2, s))
+# define MSGPACK_PP_WHILE_2_I(p, o, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_WHILE_3, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(3, s))
+# define MSGPACK_PP_WHILE_3_I(p, o, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_WHILE_4, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(4, s))
+# define MSGPACK_PP_WHILE_4_I(p, o, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_WHILE_5, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(5, s))
+# define MSGPACK_PP_WHILE_5_I(p, o, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_WHILE_6, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(6, s))
+# define MSGPACK_PP_WHILE_6_I(p, o, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_WHILE_7, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(7, s))
+# define MSGPACK_PP_WHILE_7_I(p, o, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_WHILE_8, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(8, s))
+# define MSGPACK_PP_WHILE_8_I(p, o, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_WHILE_9, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(9, s))
+# define MSGPACK_PP_WHILE_9_I(p, o, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_WHILE_10, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(10, s))
+# define MSGPACK_PP_WHILE_10_I(p, o, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_WHILE_11, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(11, s))
+# define MSGPACK_PP_WHILE_11_I(p, o, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_WHILE_12, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(12, s))
+# define MSGPACK_PP_WHILE_12_I(p, o, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_WHILE_13, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(13, s))
+# define MSGPACK_PP_WHILE_13_I(p, o, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_WHILE_14, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(14, s))
+# define MSGPACK_PP_WHILE_14_I(p, o, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_WHILE_15, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(15, s))
+# define MSGPACK_PP_WHILE_15_I(p, o, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_WHILE_16, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(16, s))
+# define MSGPACK_PP_WHILE_16_I(p, o, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_WHILE_17, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(17, s))
+# define MSGPACK_PP_WHILE_17_I(p, o, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_WHILE_18, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(18, s))
+# define MSGPACK_PP_WHILE_18_I(p, o, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_WHILE_19, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(19, s))
+# define MSGPACK_PP_WHILE_19_I(p, o, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_WHILE_20, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(20, s))
+# define MSGPACK_PP_WHILE_20_I(p, o, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_WHILE_21, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(21, s))
+# define MSGPACK_PP_WHILE_21_I(p, o, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_WHILE_22, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(22, s))
+# define MSGPACK_PP_WHILE_22_I(p, o, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_WHILE_23, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(23, s))
+# define MSGPACK_PP_WHILE_23_I(p, o, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_WHILE_24, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(24, s))
+# define MSGPACK_PP_WHILE_24_I(p, o, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_WHILE_25, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(25, s))
+# define MSGPACK_PP_WHILE_25_I(p, o, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_WHILE_26, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(26, s))
+# define MSGPACK_PP_WHILE_26_I(p, o, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_WHILE_27, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(27, s))
+# define MSGPACK_PP_WHILE_27_I(p, o, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_WHILE_28, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(28, s))
+# define MSGPACK_PP_WHILE_28_I(p, o, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_WHILE_29, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(29, s))
+# define MSGPACK_PP_WHILE_29_I(p, o, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_WHILE_30, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(30, s))
+# define MSGPACK_PP_WHILE_30_I(p, o, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_WHILE_31, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(31, s))
+# define MSGPACK_PP_WHILE_31_I(p, o, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_WHILE_32, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(32, s))
+# define MSGPACK_PP_WHILE_32_I(p, o, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_WHILE_33, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(33, s))
+# define MSGPACK_PP_WHILE_33_I(p, o, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_WHILE_34, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(34, s))
+# define MSGPACK_PP_WHILE_34_I(p, o, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_WHILE_35, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(35, s))
+# define MSGPACK_PP_WHILE_35_I(p, o, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_WHILE_36, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(36, s))
+# define MSGPACK_PP_WHILE_36_I(p, o, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_WHILE_37, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(37, s))
+# define MSGPACK_PP_WHILE_37_I(p, o, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_WHILE_38, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(38, s))
+# define MSGPACK_PP_WHILE_38_I(p, o, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_WHILE_39, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(39, s))
+# define MSGPACK_PP_WHILE_39_I(p, o, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_WHILE_40, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(40, s))
+# define MSGPACK_PP_WHILE_40_I(p, o, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_WHILE_41, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(41, s))
+# define MSGPACK_PP_WHILE_41_I(p, o, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_WHILE_42, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(42, s))
+# define MSGPACK_PP_WHILE_42_I(p, o, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_WHILE_43, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(43, s))
+# define MSGPACK_PP_WHILE_43_I(p, o, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_WHILE_44, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(44, s))
+# define MSGPACK_PP_WHILE_44_I(p, o, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_WHILE_45, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(45, s))
+# define MSGPACK_PP_WHILE_45_I(p, o, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_WHILE_46, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(46, s))
+# define MSGPACK_PP_WHILE_46_I(p, o, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_WHILE_47, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(47, s))
+# define MSGPACK_PP_WHILE_47_I(p, o, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_WHILE_48, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(48, s))
+# define MSGPACK_PP_WHILE_48_I(p, o, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_WHILE_49, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(49, s))
+# define MSGPACK_PP_WHILE_49_I(p, o, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_WHILE_50, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(50, s))
+# define MSGPACK_PP_WHILE_50_I(p, o, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_WHILE_51, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(51, s))
+# define MSGPACK_PP_WHILE_51_I(p, o, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_WHILE_52, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(52, s))
+# define MSGPACK_PP_WHILE_52_I(p, o, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_WHILE_53, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(53, s))
+# define MSGPACK_PP_WHILE_53_I(p, o, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_WHILE_54, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(54, s))
+# define MSGPACK_PP_WHILE_54_I(p, o, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_WHILE_55, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(55, s))
+# define MSGPACK_PP_WHILE_55_I(p, o, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_WHILE_56, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(56, s))
+# define MSGPACK_PP_WHILE_56_I(p, o, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_WHILE_57, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(57, s))
+# define MSGPACK_PP_WHILE_57_I(p, o, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_WHILE_58, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(58, s))
+# define MSGPACK_PP_WHILE_58_I(p, o, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_WHILE_59, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(59, s))
+# define MSGPACK_PP_WHILE_59_I(p, o, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_WHILE_60, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(60, s))
+# define MSGPACK_PP_WHILE_60_I(p, o, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_WHILE_61, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(61, s))
+# define MSGPACK_PP_WHILE_61_I(p, o, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_WHILE_62, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(62, s))
+# define MSGPACK_PP_WHILE_62_I(p, o, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_WHILE_63, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(63, s))
+# define MSGPACK_PP_WHILE_63_I(p, o, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_WHILE_64, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(64, s))
+# define MSGPACK_PP_WHILE_64_I(p, o, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_WHILE_65, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(65, s))
+# define MSGPACK_PP_WHILE_65_I(p, o, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_WHILE_66, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(66, s))
+# define MSGPACK_PP_WHILE_66_I(p, o, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_WHILE_67, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(67, s))
+# define MSGPACK_PP_WHILE_67_I(p, o, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_WHILE_68, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(68, s))
+# define MSGPACK_PP_WHILE_68_I(p, o, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_WHILE_69, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(69, s))
+# define MSGPACK_PP_WHILE_69_I(p, o, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_WHILE_70, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(70, s))
+# define MSGPACK_PP_WHILE_70_I(p, o, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_WHILE_71, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(71, s))
+# define MSGPACK_PP_WHILE_71_I(p, o, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_WHILE_72, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(72, s))
+# define MSGPACK_PP_WHILE_72_I(p, o, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_WHILE_73, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(73, s))
+# define MSGPACK_PP_WHILE_73_I(p, o, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_WHILE_74, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(74, s))
+# define MSGPACK_PP_WHILE_74_I(p, o, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_WHILE_75, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(75, s))
+# define MSGPACK_PP_WHILE_75_I(p, o, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_WHILE_76, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(76, s))
+# define MSGPACK_PP_WHILE_76_I(p, o, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_WHILE_77, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(77, s))
+# define MSGPACK_PP_WHILE_77_I(p, o, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_WHILE_78, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(78, s))
+# define MSGPACK_PP_WHILE_78_I(p, o, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_WHILE_79, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(79, s))
+# define MSGPACK_PP_WHILE_79_I(p, o, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_WHILE_80, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(80, s))
+# define MSGPACK_PP_WHILE_80_I(p, o, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_WHILE_81, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(81, s))
+# define MSGPACK_PP_WHILE_81_I(p, o, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_WHILE_82, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(82, s))
+# define MSGPACK_PP_WHILE_82_I(p, o, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_WHILE_83, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(83, s))
+# define MSGPACK_PP_WHILE_83_I(p, o, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_WHILE_84, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(84, s))
+# define MSGPACK_PP_WHILE_84_I(p, o, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_WHILE_85, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(85, s))
+# define MSGPACK_PP_WHILE_85_I(p, o, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_WHILE_86, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(86, s))
+# define MSGPACK_PP_WHILE_86_I(p, o, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_WHILE_87, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(87, s))
+# define MSGPACK_PP_WHILE_87_I(p, o, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_WHILE_88, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(88, s))
+# define MSGPACK_PP_WHILE_88_I(p, o, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_WHILE_89, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(89, s))
+# define MSGPACK_PP_WHILE_89_I(p, o, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_WHILE_90, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(90, s))
+# define MSGPACK_PP_WHILE_90_I(p, o, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_WHILE_91, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(91, s))
+# define MSGPACK_PP_WHILE_91_I(p, o, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_WHILE_92, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(92, s))
+# define MSGPACK_PP_WHILE_92_I(p, o, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_WHILE_93, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(93, s))
+# define MSGPACK_PP_WHILE_93_I(p, o, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_WHILE_94, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(94, s))
+# define MSGPACK_PP_WHILE_94_I(p, o, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_WHILE_95, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(95, s))
+# define MSGPACK_PP_WHILE_95_I(p, o, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_WHILE_96, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(96, s))
+# define MSGPACK_PP_WHILE_96_I(p, o, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_WHILE_97, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(97, s))
+# define MSGPACK_PP_WHILE_97_I(p, o, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_WHILE_98, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(98, s))
+# define MSGPACK_PP_WHILE_98_I(p, o, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_WHILE_99, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(99, s))
+# define MSGPACK_PP_WHILE_99_I(p, o, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_WHILE_100, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(100, s))
+# define MSGPACK_PP_WHILE_100_I(p, o, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_WHILE_101, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(101, s))
+# define MSGPACK_PP_WHILE_101_I(p, o, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_WHILE_102, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(102, s))
+# define MSGPACK_PP_WHILE_102_I(p, o, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_WHILE_103, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(103, s))
+# define MSGPACK_PP_WHILE_103_I(p, o, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_WHILE_104, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(104, s))
+# define MSGPACK_PP_WHILE_104_I(p, o, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_WHILE_105, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(105, s))
+# define MSGPACK_PP_WHILE_105_I(p, o, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_WHILE_106, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(106, s))
+# define MSGPACK_PP_WHILE_106_I(p, o, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_WHILE_107, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(107, s))
+# define MSGPACK_PP_WHILE_107_I(p, o, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_WHILE_108, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(108, s))
+# define MSGPACK_PP_WHILE_108_I(p, o, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_WHILE_109, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(109, s))
+# define MSGPACK_PP_WHILE_109_I(p, o, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_WHILE_110, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(110, s))
+# define MSGPACK_PP_WHILE_110_I(p, o, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_WHILE_111, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(111, s))
+# define MSGPACK_PP_WHILE_111_I(p, o, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_WHILE_112, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(112, s))
+# define MSGPACK_PP_WHILE_112_I(p, o, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_WHILE_113, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(113, s))
+# define MSGPACK_PP_WHILE_113_I(p, o, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_WHILE_114, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(114, s))
+# define MSGPACK_PP_WHILE_114_I(p, o, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_WHILE_115, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(115, s))
+# define MSGPACK_PP_WHILE_115_I(p, o, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_WHILE_116, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(116, s))
+# define MSGPACK_PP_WHILE_116_I(p, o, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_WHILE_117, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(117, s))
+# define MSGPACK_PP_WHILE_117_I(p, o, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_WHILE_118, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(118, s))
+# define MSGPACK_PP_WHILE_118_I(p, o, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_WHILE_119, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(119, s))
+# define MSGPACK_PP_WHILE_119_I(p, o, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_WHILE_120, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(120, s))
+# define MSGPACK_PP_WHILE_120_I(p, o, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_WHILE_121, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(121, s))
+# define MSGPACK_PP_WHILE_121_I(p, o, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_WHILE_122, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(122, s))
+# define MSGPACK_PP_WHILE_122_I(p, o, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_WHILE_123, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(123, s))
+# define MSGPACK_PP_WHILE_123_I(p, o, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_WHILE_124, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(124, s))
+# define MSGPACK_PP_WHILE_124_I(p, o, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_WHILE_125, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(125, s))
+# define MSGPACK_PP_WHILE_125_I(p, o, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_WHILE_126, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(126, s))
+# define MSGPACK_PP_WHILE_126_I(p, o, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_WHILE_127, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(127, s))
+# define MSGPACK_PP_WHILE_127_I(p, o, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_WHILE_128, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(128, s))
+# define MSGPACK_PP_WHILE_128_I(p, o, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_WHILE_129, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(129, s))
+# define MSGPACK_PP_WHILE_129_I(p, o, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_WHILE_130, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(130, s))
+# define MSGPACK_PP_WHILE_130_I(p, o, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_WHILE_131, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(131, s))
+# define MSGPACK_PP_WHILE_131_I(p, o, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_WHILE_132, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(132, s))
+# define MSGPACK_PP_WHILE_132_I(p, o, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_WHILE_133, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(133, s))
+# define MSGPACK_PP_WHILE_133_I(p, o, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_WHILE_134, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(134, s))
+# define MSGPACK_PP_WHILE_134_I(p, o, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_WHILE_135, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(135, s))
+# define MSGPACK_PP_WHILE_135_I(p, o, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_WHILE_136, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(136, s))
+# define MSGPACK_PP_WHILE_136_I(p, o, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_WHILE_137, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(137, s))
+# define MSGPACK_PP_WHILE_137_I(p, o, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_WHILE_138, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(138, s))
+# define MSGPACK_PP_WHILE_138_I(p, o, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_WHILE_139, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(139, s))
+# define MSGPACK_PP_WHILE_139_I(p, o, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_WHILE_140, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(140, s))
+# define MSGPACK_PP_WHILE_140_I(p, o, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_WHILE_141, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(141, s))
+# define MSGPACK_PP_WHILE_141_I(p, o, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_WHILE_142, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(142, s))
+# define MSGPACK_PP_WHILE_142_I(p, o, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_WHILE_143, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(143, s))
+# define MSGPACK_PP_WHILE_143_I(p, o, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_WHILE_144, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(144, s))
+# define MSGPACK_PP_WHILE_144_I(p, o, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_WHILE_145, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(145, s))
+# define MSGPACK_PP_WHILE_145_I(p, o, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_WHILE_146, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(146, s))
+# define MSGPACK_PP_WHILE_146_I(p, o, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_WHILE_147, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(147, s))
+# define MSGPACK_PP_WHILE_147_I(p, o, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_WHILE_148, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(148, s))
+# define MSGPACK_PP_WHILE_148_I(p, o, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_WHILE_149, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(149, s))
+# define MSGPACK_PP_WHILE_149_I(p, o, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_WHILE_150, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(150, s))
+# define MSGPACK_PP_WHILE_150_I(p, o, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_WHILE_151, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(151, s))
+# define MSGPACK_PP_WHILE_151_I(p, o, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_WHILE_152, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(152, s))
+# define MSGPACK_PP_WHILE_152_I(p, o, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_WHILE_153, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(153, s))
+# define MSGPACK_PP_WHILE_153_I(p, o, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_WHILE_154, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(154, s))
+# define MSGPACK_PP_WHILE_154_I(p, o, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_WHILE_155, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(155, s))
+# define MSGPACK_PP_WHILE_155_I(p, o, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_WHILE_156, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(156, s))
+# define MSGPACK_PP_WHILE_156_I(p, o, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_WHILE_157, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(157, s))
+# define MSGPACK_PP_WHILE_157_I(p, o, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_WHILE_158, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(158, s))
+# define MSGPACK_PP_WHILE_158_I(p, o, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_WHILE_159, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(159, s))
+# define MSGPACK_PP_WHILE_159_I(p, o, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_WHILE_160, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(160, s))
+# define MSGPACK_PP_WHILE_160_I(p, o, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_WHILE_161, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(161, s))
+# define MSGPACK_PP_WHILE_161_I(p, o, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_WHILE_162, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(162, s))
+# define MSGPACK_PP_WHILE_162_I(p, o, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_WHILE_163, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(163, s))
+# define MSGPACK_PP_WHILE_163_I(p, o, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_WHILE_164, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(164, s))
+# define MSGPACK_PP_WHILE_164_I(p, o, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_WHILE_165, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(165, s))
+# define MSGPACK_PP_WHILE_165_I(p, o, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_WHILE_166, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(166, s))
+# define MSGPACK_PP_WHILE_166_I(p, o, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_WHILE_167, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(167, s))
+# define MSGPACK_PP_WHILE_167_I(p, o, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_WHILE_168, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(168, s))
+# define MSGPACK_PP_WHILE_168_I(p, o, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_WHILE_169, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(169, s))
+# define MSGPACK_PP_WHILE_169_I(p, o, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_WHILE_170, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(170, s))
+# define MSGPACK_PP_WHILE_170_I(p, o, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_WHILE_171, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(171, s))
+# define MSGPACK_PP_WHILE_171_I(p, o, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_WHILE_172, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(172, s))
+# define MSGPACK_PP_WHILE_172_I(p, o, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_WHILE_173, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(173, s))
+# define MSGPACK_PP_WHILE_173_I(p, o, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_WHILE_174, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(174, s))
+# define MSGPACK_PP_WHILE_174_I(p, o, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_WHILE_175, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(175, s))
+# define MSGPACK_PP_WHILE_175_I(p, o, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_WHILE_176, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(176, s))
+# define MSGPACK_PP_WHILE_176_I(p, o, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_WHILE_177, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(177, s))
+# define MSGPACK_PP_WHILE_177_I(p, o, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_WHILE_178, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(178, s))
+# define MSGPACK_PP_WHILE_178_I(p, o, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_WHILE_179, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(179, s))
+# define MSGPACK_PP_WHILE_179_I(p, o, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_WHILE_180, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(180, s))
+# define MSGPACK_PP_WHILE_180_I(p, o, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_WHILE_181, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(181, s))
+# define MSGPACK_PP_WHILE_181_I(p, o, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_WHILE_182, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(182, s))
+# define MSGPACK_PP_WHILE_182_I(p, o, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_WHILE_183, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(183, s))
+# define MSGPACK_PP_WHILE_183_I(p, o, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_WHILE_184, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(184, s))
+# define MSGPACK_PP_WHILE_184_I(p, o, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_WHILE_185, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(185, s))
+# define MSGPACK_PP_WHILE_185_I(p, o, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_WHILE_186, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(186, s))
+# define MSGPACK_PP_WHILE_186_I(p, o, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_WHILE_187, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(187, s))
+# define MSGPACK_PP_WHILE_187_I(p, o, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_WHILE_188, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(188, s))
+# define MSGPACK_PP_WHILE_188_I(p, o, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_WHILE_189, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(189, s))
+# define MSGPACK_PP_WHILE_189_I(p, o, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_WHILE_190, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(190, s))
+# define MSGPACK_PP_WHILE_190_I(p, o, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_WHILE_191, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(191, s))
+# define MSGPACK_PP_WHILE_191_I(p, o, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_WHILE_192, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(192, s))
+# define MSGPACK_PP_WHILE_192_I(p, o, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_WHILE_193, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(193, s))
+# define MSGPACK_PP_WHILE_193_I(p, o, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_WHILE_194, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(194, s))
+# define MSGPACK_PP_WHILE_194_I(p, o, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_WHILE_195, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(195, s))
+# define MSGPACK_PP_WHILE_195_I(p, o, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_WHILE_196, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(196, s))
+# define MSGPACK_PP_WHILE_196_I(p, o, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_WHILE_197, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(197, s))
+# define MSGPACK_PP_WHILE_197_I(p, o, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_WHILE_198, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(198, s))
+# define MSGPACK_PP_WHILE_198_I(p, o, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_WHILE_199, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(199, s))
+# define MSGPACK_PP_WHILE_199_I(p, o, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_WHILE_200, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(200, s))
+# define MSGPACK_PP_WHILE_200_I(p, o, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_WHILE_201, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(201, s))
+# define MSGPACK_PP_WHILE_201_I(p, o, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_WHILE_202, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(202, s))
+# define MSGPACK_PP_WHILE_202_I(p, o, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_WHILE_203, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(203, s))
+# define MSGPACK_PP_WHILE_203_I(p, o, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_WHILE_204, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(204, s))
+# define MSGPACK_PP_WHILE_204_I(p, o, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_WHILE_205, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(205, s))
+# define MSGPACK_PP_WHILE_205_I(p, o, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_WHILE_206, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(206, s))
+# define MSGPACK_PP_WHILE_206_I(p, o, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_WHILE_207, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(207, s))
+# define MSGPACK_PP_WHILE_207_I(p, o, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_WHILE_208, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(208, s))
+# define MSGPACK_PP_WHILE_208_I(p, o, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_WHILE_209, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(209, s))
+# define MSGPACK_PP_WHILE_209_I(p, o, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_WHILE_210, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(210, s))
+# define MSGPACK_PP_WHILE_210_I(p, o, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_WHILE_211, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(211, s))
+# define MSGPACK_PP_WHILE_211_I(p, o, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_WHILE_212, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(212, s))
+# define MSGPACK_PP_WHILE_212_I(p, o, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_WHILE_213, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(213, s))
+# define MSGPACK_PP_WHILE_213_I(p, o, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_WHILE_214, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(214, s))
+# define MSGPACK_PP_WHILE_214_I(p, o, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_WHILE_215, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(215, s))
+# define MSGPACK_PP_WHILE_215_I(p, o, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_WHILE_216, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(216, s))
+# define MSGPACK_PP_WHILE_216_I(p, o, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_WHILE_217, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(217, s))
+# define MSGPACK_PP_WHILE_217_I(p, o, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_WHILE_218, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(218, s))
+# define MSGPACK_PP_WHILE_218_I(p, o, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_WHILE_219, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(219, s))
+# define MSGPACK_PP_WHILE_219_I(p, o, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_WHILE_220, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(220, s))
+# define MSGPACK_PP_WHILE_220_I(p, o, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_WHILE_221, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(221, s))
+# define MSGPACK_PP_WHILE_221_I(p, o, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_WHILE_222, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(222, s))
+# define MSGPACK_PP_WHILE_222_I(p, o, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_WHILE_223, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(223, s))
+# define MSGPACK_PP_WHILE_223_I(p, o, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_WHILE_224, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(224, s))
+# define MSGPACK_PP_WHILE_224_I(p, o, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_WHILE_225, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(225, s))
+# define MSGPACK_PP_WHILE_225_I(p, o, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_WHILE_226, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(226, s))
+# define MSGPACK_PP_WHILE_226_I(p, o, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_WHILE_227, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(227, s))
+# define MSGPACK_PP_WHILE_227_I(p, o, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_WHILE_228, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(228, s))
+# define MSGPACK_PP_WHILE_228_I(p, o, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_WHILE_229, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(229, s))
+# define MSGPACK_PP_WHILE_229_I(p, o, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_WHILE_230, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(230, s))
+# define MSGPACK_PP_WHILE_230_I(p, o, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_WHILE_231, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(231, s))
+# define MSGPACK_PP_WHILE_231_I(p, o, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_WHILE_232, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(232, s))
+# define MSGPACK_PP_WHILE_232_I(p, o, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_WHILE_233, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(233, s))
+# define MSGPACK_PP_WHILE_233_I(p, o, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_WHILE_234, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(234, s))
+# define MSGPACK_PP_WHILE_234_I(p, o, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_WHILE_235, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(235, s))
+# define MSGPACK_PP_WHILE_235_I(p, o, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_WHILE_236, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(236, s))
+# define MSGPACK_PP_WHILE_236_I(p, o, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_WHILE_237, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(237, s))
+# define MSGPACK_PP_WHILE_237_I(p, o, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_WHILE_238, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(238, s))
+# define MSGPACK_PP_WHILE_238_I(p, o, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_WHILE_239, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(239, s))
+# define MSGPACK_PP_WHILE_239_I(p, o, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_WHILE_240, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(240, s))
+# define MSGPACK_PP_WHILE_240_I(p, o, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_WHILE_241, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(241, s))
+# define MSGPACK_PP_WHILE_241_I(p, o, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_WHILE_242, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(242, s))
+# define MSGPACK_PP_WHILE_242_I(p, o, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_WHILE_243, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(243, s))
+# define MSGPACK_PP_WHILE_243_I(p, o, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_WHILE_244, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(244, s))
+# define MSGPACK_PP_WHILE_244_I(p, o, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_WHILE_245, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(245, s))
+# define MSGPACK_PP_WHILE_245_I(p, o, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_WHILE_246, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(246, s))
+# define MSGPACK_PP_WHILE_246_I(p, o, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_WHILE_247, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(247, s))
+# define MSGPACK_PP_WHILE_247_I(p, o, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_WHILE_248, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(248, s))
+# define MSGPACK_PP_WHILE_248_I(p, o, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_WHILE_249, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(249, s))
+# define MSGPACK_PP_WHILE_249_I(p, o, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_WHILE_250, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(250, s))
+# define MSGPACK_PP_WHILE_250_I(p, o, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_WHILE_251, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(251, s))
+# define MSGPACK_PP_WHILE_251_I(p, o, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_WHILE_252, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(252, s))
+# define MSGPACK_PP_WHILE_252_I(p, o, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_WHILE_253, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(253, s))
+# define MSGPACK_PP_WHILE_253_I(p, o, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_WHILE_254, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(254, s))
+# define MSGPACK_PP_WHILE_254_I(p, o, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_WHILE_255, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(255, s))
+# define MSGPACK_PP_WHILE_255_I(p, o, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_WHILE_256, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(256, s))
+# define MSGPACK_PP_WHILE_256_I(p, o, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_WHILE_257, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(257, s))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/msvc/while.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/msvc/while.hpp
new file mode 100644
index 000000000..40f9f2941
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/msvc/while.hpp
@@ -0,0 +1,277 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
+#
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_WHILE_2, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(2, s))
+# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_WHILE_3, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(3, s))
+# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_WHILE_4, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(4, s))
+# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_WHILE_5, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(5, s))
+# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_WHILE_6, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(6, s))
+# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_WHILE_7, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(7, s))
+# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_WHILE_8, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(8, s))
+# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_WHILE_9, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(9, s))
+# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_WHILE_10, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(10, s))
+# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_WHILE_11, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(11, s))
+# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_WHILE_12, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(12, s))
+# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_WHILE_13, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(13, s))
+# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_WHILE_14, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(14, s))
+# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_WHILE_15, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(15, s))
+# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_WHILE_16, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(16, s))
+# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_WHILE_17, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(17, s))
+# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_WHILE_18, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(18, s))
+# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_WHILE_19, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(19, s))
+# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_WHILE_20, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(20, s))
+# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_WHILE_21, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(21, s))
+# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_WHILE_22, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(22, s))
+# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_WHILE_23, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(23, s))
+# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_WHILE_24, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(24, s))
+# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_WHILE_25, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(25, s))
+# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_WHILE_26, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(26, s))
+# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_WHILE_27, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(27, s))
+# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_WHILE_28, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(28, s))
+# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_WHILE_29, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(29, s))
+# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_WHILE_30, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(30, s))
+# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_WHILE_31, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(31, s))
+# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_WHILE_32, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(32, s))
+# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_WHILE_33, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(33, s))
+# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_WHILE_34, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(34, s))
+# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_WHILE_35, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(35, s))
+# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_WHILE_36, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(36, s))
+# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_WHILE_37, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(37, s))
+# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_WHILE_38, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(38, s))
+# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_WHILE_39, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(39, s))
+# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_WHILE_40, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(40, s))
+# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_WHILE_41, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(41, s))
+# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_WHILE_42, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(42, s))
+# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_WHILE_43, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(43, s))
+# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_WHILE_44, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(44, s))
+# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_WHILE_45, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(45, s))
+# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_WHILE_46, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(46, s))
+# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_WHILE_47, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(47, s))
+# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_WHILE_48, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(48, s))
+# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_WHILE_49, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(49, s))
+# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_WHILE_50, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(50, s))
+# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_WHILE_51, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(51, s))
+# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_WHILE_52, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(52, s))
+# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_WHILE_53, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(53, s))
+# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_WHILE_54, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(54, s))
+# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_WHILE_55, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(55, s))
+# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_WHILE_56, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(56, s))
+# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_WHILE_57, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(57, s))
+# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_WHILE_58, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(58, s))
+# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_WHILE_59, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(59, s))
+# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_WHILE_60, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(60, s))
+# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_WHILE_61, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(61, s))
+# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_WHILE_62, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(62, s))
+# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_WHILE_63, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(63, s))
+# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_WHILE_64, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(64, s))
+# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_WHILE_65, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(65, s))
+# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_WHILE_66, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(66, s))
+# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_WHILE_67, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(67, s))
+# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_WHILE_68, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(68, s))
+# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_WHILE_69, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(69, s))
+# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_WHILE_70, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(70, s))
+# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_WHILE_71, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(71, s))
+# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_WHILE_72, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(72, s))
+# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_WHILE_73, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(73, s))
+# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_WHILE_74, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(74, s))
+# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_WHILE_75, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(75, s))
+# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_WHILE_76, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(76, s))
+# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_WHILE_77, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(77, s))
+# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_WHILE_78, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(78, s))
+# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_WHILE_79, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(79, s))
+# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_WHILE_80, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(80, s))
+# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_WHILE_81, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(81, s))
+# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_WHILE_82, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(82, s))
+# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_WHILE_83, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(83, s))
+# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_WHILE_84, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(84, s))
+# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_WHILE_85, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(85, s))
+# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_WHILE_86, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(86, s))
+# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_WHILE_87, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(87, s))
+# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_WHILE_88, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(88, s))
+# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_WHILE_89, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(89, s))
+# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_WHILE_90, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(90, s))
+# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_WHILE_91, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(91, s))
+# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_WHILE_92, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(92, s))
+# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_WHILE_93, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(93, s))
+# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_WHILE_94, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(94, s))
+# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_WHILE_95, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(95, s))
+# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_WHILE_96, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(96, s))
+# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_WHILE_97, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(97, s))
+# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_WHILE_98, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(98, s))
+# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_WHILE_99, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(99, s))
+# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_WHILE_100, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(100, s))
+# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_WHILE_101, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(101, s))
+# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_WHILE_102, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(102, s))
+# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_WHILE_103, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(103, s))
+# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_WHILE_104, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(104, s))
+# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_WHILE_105, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(105, s))
+# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_WHILE_106, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(106, s))
+# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_WHILE_107, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(107, s))
+# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_WHILE_108, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(108, s))
+# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_WHILE_109, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(109, s))
+# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_WHILE_110, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(110, s))
+# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_WHILE_111, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(111, s))
+# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_WHILE_112, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(112, s))
+# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_WHILE_113, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(113, s))
+# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_WHILE_114, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(114, s))
+# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_WHILE_115, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(115, s))
+# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_WHILE_116, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(116, s))
+# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_WHILE_117, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(117, s))
+# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_WHILE_118, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(118, s))
+# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_WHILE_119, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(119, s))
+# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_WHILE_120, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(120, s))
+# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_WHILE_121, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(121, s))
+# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_WHILE_122, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(122, s))
+# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_WHILE_123, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(123, s))
+# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_WHILE_124, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(124, s))
+# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_WHILE_125, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(125, s))
+# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_WHILE_126, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(126, s))
+# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_WHILE_127, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(127, s))
+# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_WHILE_128, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(128, s))
+# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_WHILE_129, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(129, s))
+# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_WHILE_130, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(130, s))
+# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_WHILE_131, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(131, s))
+# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_WHILE_132, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(132, s))
+# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_WHILE_133, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(133, s))
+# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_WHILE_134, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(134, s))
+# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_WHILE_135, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(135, s))
+# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_WHILE_136, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(136, s))
+# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_WHILE_137, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(137, s))
+# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_WHILE_138, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(138, s))
+# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_WHILE_139, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(139, s))
+# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_WHILE_140, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(140, s))
+# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_WHILE_141, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(141, s))
+# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_WHILE_142, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(142, s))
+# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_WHILE_143, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(143, s))
+# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_WHILE_144, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(144, s))
+# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_WHILE_145, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(145, s))
+# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_WHILE_146, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(146, s))
+# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_WHILE_147, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(147, s))
+# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_WHILE_148, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(148, s))
+# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_WHILE_149, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(149, s))
+# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_WHILE_150, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(150, s))
+# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_WHILE_151, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(151, s))
+# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_WHILE_152, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(152, s))
+# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_WHILE_153, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(153, s))
+# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_WHILE_154, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(154, s))
+# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_WHILE_155, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(155, s))
+# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_WHILE_156, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(156, s))
+# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_WHILE_157, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(157, s))
+# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_WHILE_158, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(158, s))
+# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_WHILE_159, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(159, s))
+# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_WHILE_160, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(160, s))
+# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_WHILE_161, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(161, s))
+# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_WHILE_162, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(162, s))
+# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_WHILE_163, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(163, s))
+# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_WHILE_164, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(164, s))
+# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_WHILE_165, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(165, s))
+# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_WHILE_166, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(166, s))
+# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_WHILE_167, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(167, s))
+# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_WHILE_168, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(168, s))
+# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_WHILE_169, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(169, s))
+# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_WHILE_170, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(170, s))
+# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_WHILE_171, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(171, s))
+# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_WHILE_172, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(172, s))
+# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_WHILE_173, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(173, s))
+# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_WHILE_174, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(174, s))
+# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_WHILE_175, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(175, s))
+# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_WHILE_176, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(176, s))
+# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_WHILE_177, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(177, s))
+# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_WHILE_178, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(178, s))
+# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_WHILE_179, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(179, s))
+# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_WHILE_180, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(180, s))
+# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_WHILE_181, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(181, s))
+# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_WHILE_182, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(182, s))
+# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_WHILE_183, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(183, s))
+# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_WHILE_184, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(184, s))
+# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_WHILE_185, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(185, s))
+# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_WHILE_186, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(186, s))
+# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_WHILE_187, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(187, s))
+# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_WHILE_188, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(188, s))
+# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_WHILE_189, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(189, s))
+# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_WHILE_190, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(190, s))
+# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_WHILE_191, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(191, s))
+# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_WHILE_192, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(192, s))
+# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_WHILE_193, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(193, s))
+# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_WHILE_194, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(194, s))
+# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_WHILE_195, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(195, s))
+# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_WHILE_196, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(196, s))
+# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_WHILE_197, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(197, s))
+# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_WHILE_198, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(198, s))
+# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_WHILE_199, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(199, s))
+# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_WHILE_200, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(200, s))
+# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_WHILE_201, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(201, s))
+# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_WHILE_202, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(202, s))
+# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_WHILE_203, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(203, s))
+# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_WHILE_204, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(204, s))
+# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_WHILE_205, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(205, s))
+# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_WHILE_206, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(206, s))
+# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_WHILE_207, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(207, s))
+# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_WHILE_208, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(208, s))
+# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_WHILE_209, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(209, s))
+# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_WHILE_210, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(210, s))
+# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_WHILE_211, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(211, s))
+# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_WHILE_212, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(212, s))
+# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_WHILE_213, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(213, s))
+# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_WHILE_214, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(214, s))
+# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_WHILE_215, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(215, s))
+# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_WHILE_216, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(216, s))
+# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_WHILE_217, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(217, s))
+# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_WHILE_218, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(218, s))
+# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_WHILE_219, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(219, s))
+# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_WHILE_220, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(220, s))
+# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_WHILE_221, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(221, s))
+# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_WHILE_222, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(222, s))
+# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_WHILE_223, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(223, s))
+# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_WHILE_224, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(224, s))
+# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_WHILE_225, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(225, s))
+# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_WHILE_226, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(226, s))
+# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_WHILE_227, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(227, s))
+# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_WHILE_228, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(228, s))
+# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_WHILE_229, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(229, s))
+# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_WHILE_230, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(230, s))
+# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_WHILE_231, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(231, s))
+# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_WHILE_232, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(232, s))
+# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_WHILE_233, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(233, s))
+# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_WHILE_234, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(234, s))
+# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_WHILE_235, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(235, s))
+# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_WHILE_236, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(236, s))
+# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_WHILE_237, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(237, s))
+# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_WHILE_238, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(238, s))
+# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_WHILE_239, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(239, s))
+# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_WHILE_240, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(240, s))
+# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_WHILE_241, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(241, s))
+# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_WHILE_242, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(242, s))
+# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_WHILE_243, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(243, s))
+# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_WHILE_244, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(244, s))
+# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_WHILE_245, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(245, s))
+# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_WHILE_246, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(246, s))
+# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_WHILE_247, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(247, s))
+# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_WHILE_248, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(248, s))
+# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_WHILE_249, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(249, s))
+# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_WHILE_250, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(250, s))
+# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_WHILE_251, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(251, s))
+# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_WHILE_252, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(252, s))
+# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_WHILE_253, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(253, s))
+# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_WHILE_254, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(254, s))
+# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_WHILE_255, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(255, s))
+# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_WHILE_256, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(256, s))
+# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_WHILE_257, s MSGPACK_PP_TUPLE_EAT_3)(p, o, o(257, s))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/while.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/while.hpp
new file mode 100644
index 000000000..e85727023
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/detail/while.hpp
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
+#
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_WHILE_1(p, o, s) MSGPACK_PP_WHILE_1_C(MSGPACK_PP_BOOL(p(2, s)), p, o, s)
+# define MSGPACK_PP_WHILE_2(p, o, s) MSGPACK_PP_WHILE_2_C(MSGPACK_PP_BOOL(p(3, s)), p, o, s)
+# define MSGPACK_PP_WHILE_3(p, o, s) MSGPACK_PP_WHILE_3_C(MSGPACK_PP_BOOL(p(4, s)), p, o, s)
+# define MSGPACK_PP_WHILE_4(p, o, s) MSGPACK_PP_WHILE_4_C(MSGPACK_PP_BOOL(p(5, s)), p, o, s)
+# define MSGPACK_PP_WHILE_5(p, o, s) MSGPACK_PP_WHILE_5_C(MSGPACK_PP_BOOL(p(6, s)), p, o, s)
+# define MSGPACK_PP_WHILE_6(p, o, s) MSGPACK_PP_WHILE_6_C(MSGPACK_PP_BOOL(p(7, s)), p, o, s)
+# define MSGPACK_PP_WHILE_7(p, o, s) MSGPACK_PP_WHILE_7_C(MSGPACK_PP_BOOL(p(8, s)), p, o, s)
+# define MSGPACK_PP_WHILE_8(p, o, s) MSGPACK_PP_WHILE_8_C(MSGPACK_PP_BOOL(p(9, s)), p, o, s)
+# define MSGPACK_PP_WHILE_9(p, o, s) MSGPACK_PP_WHILE_9_C(MSGPACK_PP_BOOL(p(10, s)), p, o, s)
+# define MSGPACK_PP_WHILE_10(p, o, s) MSGPACK_PP_WHILE_10_C(MSGPACK_PP_BOOL(p(11, s)), p, o, s)
+# define MSGPACK_PP_WHILE_11(p, o, s) MSGPACK_PP_WHILE_11_C(MSGPACK_PP_BOOL(p(12, s)), p, o, s)
+# define MSGPACK_PP_WHILE_12(p, o, s) MSGPACK_PP_WHILE_12_C(MSGPACK_PP_BOOL(p(13, s)), p, o, s)
+# define MSGPACK_PP_WHILE_13(p, o, s) MSGPACK_PP_WHILE_13_C(MSGPACK_PP_BOOL(p(14, s)), p, o, s)
+# define MSGPACK_PP_WHILE_14(p, o, s) MSGPACK_PP_WHILE_14_C(MSGPACK_PP_BOOL(p(15, s)), p, o, s)
+# define MSGPACK_PP_WHILE_15(p, o, s) MSGPACK_PP_WHILE_15_C(MSGPACK_PP_BOOL(p(16, s)), p, o, s)
+# define MSGPACK_PP_WHILE_16(p, o, s) MSGPACK_PP_WHILE_16_C(MSGPACK_PP_BOOL(p(17, s)), p, o, s)
+# define MSGPACK_PP_WHILE_17(p, o, s) MSGPACK_PP_WHILE_17_C(MSGPACK_PP_BOOL(p(18, s)), p, o, s)
+# define MSGPACK_PP_WHILE_18(p, o, s) MSGPACK_PP_WHILE_18_C(MSGPACK_PP_BOOL(p(19, s)), p, o, s)
+# define MSGPACK_PP_WHILE_19(p, o, s) MSGPACK_PP_WHILE_19_C(MSGPACK_PP_BOOL(p(20, s)), p, o, s)
+# define MSGPACK_PP_WHILE_20(p, o, s) MSGPACK_PP_WHILE_20_C(MSGPACK_PP_BOOL(p(21, s)), p, o, s)
+# define MSGPACK_PP_WHILE_21(p, o, s) MSGPACK_PP_WHILE_21_C(MSGPACK_PP_BOOL(p(22, s)), p, o, s)
+# define MSGPACK_PP_WHILE_22(p, o, s) MSGPACK_PP_WHILE_22_C(MSGPACK_PP_BOOL(p(23, s)), p, o, s)
+# define MSGPACK_PP_WHILE_23(p, o, s) MSGPACK_PP_WHILE_23_C(MSGPACK_PP_BOOL(p(24, s)), p, o, s)
+# define MSGPACK_PP_WHILE_24(p, o, s) MSGPACK_PP_WHILE_24_C(MSGPACK_PP_BOOL(p(25, s)), p, o, s)
+# define MSGPACK_PP_WHILE_25(p, o, s) MSGPACK_PP_WHILE_25_C(MSGPACK_PP_BOOL(p(26, s)), p, o, s)
+# define MSGPACK_PP_WHILE_26(p, o, s) MSGPACK_PP_WHILE_26_C(MSGPACK_PP_BOOL(p(27, s)), p, o, s)
+# define MSGPACK_PP_WHILE_27(p, o, s) MSGPACK_PP_WHILE_27_C(MSGPACK_PP_BOOL(p(28, s)), p, o, s)
+# define MSGPACK_PP_WHILE_28(p, o, s) MSGPACK_PP_WHILE_28_C(MSGPACK_PP_BOOL(p(29, s)), p, o, s)
+# define MSGPACK_PP_WHILE_29(p, o, s) MSGPACK_PP_WHILE_29_C(MSGPACK_PP_BOOL(p(30, s)), p, o, s)
+# define MSGPACK_PP_WHILE_30(p, o, s) MSGPACK_PP_WHILE_30_C(MSGPACK_PP_BOOL(p(31, s)), p, o, s)
+# define MSGPACK_PP_WHILE_31(p, o, s) MSGPACK_PP_WHILE_31_C(MSGPACK_PP_BOOL(p(32, s)), p, o, s)
+# define MSGPACK_PP_WHILE_32(p, o, s) MSGPACK_PP_WHILE_32_C(MSGPACK_PP_BOOL(p(33, s)), p, o, s)
+# define MSGPACK_PP_WHILE_33(p, o, s) MSGPACK_PP_WHILE_33_C(MSGPACK_PP_BOOL(p(34, s)), p, o, s)
+# define MSGPACK_PP_WHILE_34(p, o, s) MSGPACK_PP_WHILE_34_C(MSGPACK_PP_BOOL(p(35, s)), p, o, s)
+# define MSGPACK_PP_WHILE_35(p, o, s) MSGPACK_PP_WHILE_35_C(MSGPACK_PP_BOOL(p(36, s)), p, o, s)
+# define MSGPACK_PP_WHILE_36(p, o, s) MSGPACK_PP_WHILE_36_C(MSGPACK_PP_BOOL(p(37, s)), p, o, s)
+# define MSGPACK_PP_WHILE_37(p, o, s) MSGPACK_PP_WHILE_37_C(MSGPACK_PP_BOOL(p(38, s)), p, o, s)
+# define MSGPACK_PP_WHILE_38(p, o, s) MSGPACK_PP_WHILE_38_C(MSGPACK_PP_BOOL(p(39, s)), p, o, s)
+# define MSGPACK_PP_WHILE_39(p, o, s) MSGPACK_PP_WHILE_39_C(MSGPACK_PP_BOOL(p(40, s)), p, o, s)
+# define MSGPACK_PP_WHILE_40(p, o, s) MSGPACK_PP_WHILE_40_C(MSGPACK_PP_BOOL(p(41, s)), p, o, s)
+# define MSGPACK_PP_WHILE_41(p, o, s) MSGPACK_PP_WHILE_41_C(MSGPACK_PP_BOOL(p(42, s)), p, o, s)
+# define MSGPACK_PP_WHILE_42(p, o, s) MSGPACK_PP_WHILE_42_C(MSGPACK_PP_BOOL(p(43, s)), p, o, s)
+# define MSGPACK_PP_WHILE_43(p, o, s) MSGPACK_PP_WHILE_43_C(MSGPACK_PP_BOOL(p(44, s)), p, o, s)
+# define MSGPACK_PP_WHILE_44(p, o, s) MSGPACK_PP_WHILE_44_C(MSGPACK_PP_BOOL(p(45, s)), p, o, s)
+# define MSGPACK_PP_WHILE_45(p, o, s) MSGPACK_PP_WHILE_45_C(MSGPACK_PP_BOOL(p(46, s)), p, o, s)
+# define MSGPACK_PP_WHILE_46(p, o, s) MSGPACK_PP_WHILE_46_C(MSGPACK_PP_BOOL(p(47, s)), p, o, s)
+# define MSGPACK_PP_WHILE_47(p, o, s) MSGPACK_PP_WHILE_47_C(MSGPACK_PP_BOOL(p(48, s)), p, o, s)
+# define MSGPACK_PP_WHILE_48(p, o, s) MSGPACK_PP_WHILE_48_C(MSGPACK_PP_BOOL(p(49, s)), p, o, s)
+# define MSGPACK_PP_WHILE_49(p, o, s) MSGPACK_PP_WHILE_49_C(MSGPACK_PP_BOOL(p(50, s)), p, o, s)
+# define MSGPACK_PP_WHILE_50(p, o, s) MSGPACK_PP_WHILE_50_C(MSGPACK_PP_BOOL(p(51, s)), p, o, s)
+# define MSGPACK_PP_WHILE_51(p, o, s) MSGPACK_PP_WHILE_51_C(MSGPACK_PP_BOOL(p(52, s)), p, o, s)
+# define MSGPACK_PP_WHILE_52(p, o, s) MSGPACK_PP_WHILE_52_C(MSGPACK_PP_BOOL(p(53, s)), p, o, s)
+# define MSGPACK_PP_WHILE_53(p, o, s) MSGPACK_PP_WHILE_53_C(MSGPACK_PP_BOOL(p(54, s)), p, o, s)
+# define MSGPACK_PP_WHILE_54(p, o, s) MSGPACK_PP_WHILE_54_C(MSGPACK_PP_BOOL(p(55, s)), p, o, s)
+# define MSGPACK_PP_WHILE_55(p, o, s) MSGPACK_PP_WHILE_55_C(MSGPACK_PP_BOOL(p(56, s)), p, o, s)
+# define MSGPACK_PP_WHILE_56(p, o, s) MSGPACK_PP_WHILE_56_C(MSGPACK_PP_BOOL(p(57, s)), p, o, s)
+# define MSGPACK_PP_WHILE_57(p, o, s) MSGPACK_PP_WHILE_57_C(MSGPACK_PP_BOOL(p(58, s)), p, o, s)
+# define MSGPACK_PP_WHILE_58(p, o, s) MSGPACK_PP_WHILE_58_C(MSGPACK_PP_BOOL(p(59, s)), p, o, s)
+# define MSGPACK_PP_WHILE_59(p, o, s) MSGPACK_PP_WHILE_59_C(MSGPACK_PP_BOOL(p(60, s)), p, o, s)
+# define MSGPACK_PP_WHILE_60(p, o, s) MSGPACK_PP_WHILE_60_C(MSGPACK_PP_BOOL(p(61, s)), p, o, s)
+# define MSGPACK_PP_WHILE_61(p, o, s) MSGPACK_PP_WHILE_61_C(MSGPACK_PP_BOOL(p(62, s)), p, o, s)
+# define MSGPACK_PP_WHILE_62(p, o, s) MSGPACK_PP_WHILE_62_C(MSGPACK_PP_BOOL(p(63, s)), p, o, s)
+# define MSGPACK_PP_WHILE_63(p, o, s) MSGPACK_PP_WHILE_63_C(MSGPACK_PP_BOOL(p(64, s)), p, o, s)
+# define MSGPACK_PP_WHILE_64(p, o, s) MSGPACK_PP_WHILE_64_C(MSGPACK_PP_BOOL(p(65, s)), p, o, s)
+# define MSGPACK_PP_WHILE_65(p, o, s) MSGPACK_PP_WHILE_65_C(MSGPACK_PP_BOOL(p(66, s)), p, o, s)
+# define MSGPACK_PP_WHILE_66(p, o, s) MSGPACK_PP_WHILE_66_C(MSGPACK_PP_BOOL(p(67, s)), p, o, s)
+# define MSGPACK_PP_WHILE_67(p, o, s) MSGPACK_PP_WHILE_67_C(MSGPACK_PP_BOOL(p(68, s)), p, o, s)
+# define MSGPACK_PP_WHILE_68(p, o, s) MSGPACK_PP_WHILE_68_C(MSGPACK_PP_BOOL(p(69, s)), p, o, s)
+# define MSGPACK_PP_WHILE_69(p, o, s) MSGPACK_PP_WHILE_69_C(MSGPACK_PP_BOOL(p(70, s)), p, o, s)
+# define MSGPACK_PP_WHILE_70(p, o, s) MSGPACK_PP_WHILE_70_C(MSGPACK_PP_BOOL(p(71, s)), p, o, s)
+# define MSGPACK_PP_WHILE_71(p, o, s) MSGPACK_PP_WHILE_71_C(MSGPACK_PP_BOOL(p(72, s)), p, o, s)
+# define MSGPACK_PP_WHILE_72(p, o, s) MSGPACK_PP_WHILE_72_C(MSGPACK_PP_BOOL(p(73, s)), p, o, s)
+# define MSGPACK_PP_WHILE_73(p, o, s) MSGPACK_PP_WHILE_73_C(MSGPACK_PP_BOOL(p(74, s)), p, o, s)
+# define MSGPACK_PP_WHILE_74(p, o, s) MSGPACK_PP_WHILE_74_C(MSGPACK_PP_BOOL(p(75, s)), p, o, s)
+# define MSGPACK_PP_WHILE_75(p, o, s) MSGPACK_PP_WHILE_75_C(MSGPACK_PP_BOOL(p(76, s)), p, o, s)
+# define MSGPACK_PP_WHILE_76(p, o, s) MSGPACK_PP_WHILE_76_C(MSGPACK_PP_BOOL(p(77, s)), p, o, s)
+# define MSGPACK_PP_WHILE_77(p, o, s) MSGPACK_PP_WHILE_77_C(MSGPACK_PP_BOOL(p(78, s)), p, o, s)
+# define MSGPACK_PP_WHILE_78(p, o, s) MSGPACK_PP_WHILE_78_C(MSGPACK_PP_BOOL(p(79, s)), p, o, s)
+# define MSGPACK_PP_WHILE_79(p, o, s) MSGPACK_PP_WHILE_79_C(MSGPACK_PP_BOOL(p(80, s)), p, o, s)
+# define MSGPACK_PP_WHILE_80(p, o, s) MSGPACK_PP_WHILE_80_C(MSGPACK_PP_BOOL(p(81, s)), p, o, s)
+# define MSGPACK_PP_WHILE_81(p, o, s) MSGPACK_PP_WHILE_81_C(MSGPACK_PP_BOOL(p(82, s)), p, o, s)
+# define MSGPACK_PP_WHILE_82(p, o, s) MSGPACK_PP_WHILE_82_C(MSGPACK_PP_BOOL(p(83, s)), p, o, s)
+# define MSGPACK_PP_WHILE_83(p, o, s) MSGPACK_PP_WHILE_83_C(MSGPACK_PP_BOOL(p(84, s)), p, o, s)
+# define MSGPACK_PP_WHILE_84(p, o, s) MSGPACK_PP_WHILE_84_C(MSGPACK_PP_BOOL(p(85, s)), p, o, s)
+# define MSGPACK_PP_WHILE_85(p, o, s) MSGPACK_PP_WHILE_85_C(MSGPACK_PP_BOOL(p(86, s)), p, o, s)
+# define MSGPACK_PP_WHILE_86(p, o, s) MSGPACK_PP_WHILE_86_C(MSGPACK_PP_BOOL(p(87, s)), p, o, s)
+# define MSGPACK_PP_WHILE_87(p, o, s) MSGPACK_PP_WHILE_87_C(MSGPACK_PP_BOOL(p(88, s)), p, o, s)
+# define MSGPACK_PP_WHILE_88(p, o, s) MSGPACK_PP_WHILE_88_C(MSGPACK_PP_BOOL(p(89, s)), p, o, s)
+# define MSGPACK_PP_WHILE_89(p, o, s) MSGPACK_PP_WHILE_89_C(MSGPACK_PP_BOOL(p(90, s)), p, o, s)
+# define MSGPACK_PP_WHILE_90(p, o, s) MSGPACK_PP_WHILE_90_C(MSGPACK_PP_BOOL(p(91, s)), p, o, s)
+# define MSGPACK_PP_WHILE_91(p, o, s) MSGPACK_PP_WHILE_91_C(MSGPACK_PP_BOOL(p(92, s)), p, o, s)
+# define MSGPACK_PP_WHILE_92(p, o, s) MSGPACK_PP_WHILE_92_C(MSGPACK_PP_BOOL(p(93, s)), p, o, s)
+# define MSGPACK_PP_WHILE_93(p, o, s) MSGPACK_PP_WHILE_93_C(MSGPACK_PP_BOOL(p(94, s)), p, o, s)
+# define MSGPACK_PP_WHILE_94(p, o, s) MSGPACK_PP_WHILE_94_C(MSGPACK_PP_BOOL(p(95, s)), p, o, s)
+# define MSGPACK_PP_WHILE_95(p, o, s) MSGPACK_PP_WHILE_95_C(MSGPACK_PP_BOOL(p(96, s)), p, o, s)
+# define MSGPACK_PP_WHILE_96(p, o, s) MSGPACK_PP_WHILE_96_C(MSGPACK_PP_BOOL(p(97, s)), p, o, s)
+# define MSGPACK_PP_WHILE_97(p, o, s) MSGPACK_PP_WHILE_97_C(MSGPACK_PP_BOOL(p(98, s)), p, o, s)
+# define MSGPACK_PP_WHILE_98(p, o, s) MSGPACK_PP_WHILE_98_C(MSGPACK_PP_BOOL(p(99, s)), p, o, s)
+# define MSGPACK_PP_WHILE_99(p, o, s) MSGPACK_PP_WHILE_99_C(MSGPACK_PP_BOOL(p(100, s)), p, o, s)
+# define MSGPACK_PP_WHILE_100(p, o, s) MSGPACK_PP_WHILE_100_C(MSGPACK_PP_BOOL(p(101, s)), p, o, s)
+# define MSGPACK_PP_WHILE_101(p, o, s) MSGPACK_PP_WHILE_101_C(MSGPACK_PP_BOOL(p(102, s)), p, o, s)
+# define MSGPACK_PP_WHILE_102(p, o, s) MSGPACK_PP_WHILE_102_C(MSGPACK_PP_BOOL(p(103, s)), p, o, s)
+# define MSGPACK_PP_WHILE_103(p, o, s) MSGPACK_PP_WHILE_103_C(MSGPACK_PP_BOOL(p(104, s)), p, o, s)
+# define MSGPACK_PP_WHILE_104(p, o, s) MSGPACK_PP_WHILE_104_C(MSGPACK_PP_BOOL(p(105, s)), p, o, s)
+# define MSGPACK_PP_WHILE_105(p, o, s) MSGPACK_PP_WHILE_105_C(MSGPACK_PP_BOOL(p(106, s)), p, o, s)
+# define MSGPACK_PP_WHILE_106(p, o, s) MSGPACK_PP_WHILE_106_C(MSGPACK_PP_BOOL(p(107, s)), p, o, s)
+# define MSGPACK_PP_WHILE_107(p, o, s) MSGPACK_PP_WHILE_107_C(MSGPACK_PP_BOOL(p(108, s)), p, o, s)
+# define MSGPACK_PP_WHILE_108(p, o, s) MSGPACK_PP_WHILE_108_C(MSGPACK_PP_BOOL(p(109, s)), p, o, s)
+# define MSGPACK_PP_WHILE_109(p, o, s) MSGPACK_PP_WHILE_109_C(MSGPACK_PP_BOOL(p(110, s)), p, o, s)
+# define MSGPACK_PP_WHILE_110(p, o, s) MSGPACK_PP_WHILE_110_C(MSGPACK_PP_BOOL(p(111, s)), p, o, s)
+# define MSGPACK_PP_WHILE_111(p, o, s) MSGPACK_PP_WHILE_111_C(MSGPACK_PP_BOOL(p(112, s)), p, o, s)
+# define MSGPACK_PP_WHILE_112(p, o, s) MSGPACK_PP_WHILE_112_C(MSGPACK_PP_BOOL(p(113, s)), p, o, s)
+# define MSGPACK_PP_WHILE_113(p, o, s) MSGPACK_PP_WHILE_113_C(MSGPACK_PP_BOOL(p(114, s)), p, o, s)
+# define MSGPACK_PP_WHILE_114(p, o, s) MSGPACK_PP_WHILE_114_C(MSGPACK_PP_BOOL(p(115, s)), p, o, s)
+# define MSGPACK_PP_WHILE_115(p, o, s) MSGPACK_PP_WHILE_115_C(MSGPACK_PP_BOOL(p(116, s)), p, o, s)
+# define MSGPACK_PP_WHILE_116(p, o, s) MSGPACK_PP_WHILE_116_C(MSGPACK_PP_BOOL(p(117, s)), p, o, s)
+# define MSGPACK_PP_WHILE_117(p, o, s) MSGPACK_PP_WHILE_117_C(MSGPACK_PP_BOOL(p(118, s)), p, o, s)
+# define MSGPACK_PP_WHILE_118(p, o, s) MSGPACK_PP_WHILE_118_C(MSGPACK_PP_BOOL(p(119, s)), p, o, s)
+# define MSGPACK_PP_WHILE_119(p, o, s) MSGPACK_PP_WHILE_119_C(MSGPACK_PP_BOOL(p(120, s)), p, o, s)
+# define MSGPACK_PP_WHILE_120(p, o, s) MSGPACK_PP_WHILE_120_C(MSGPACK_PP_BOOL(p(121, s)), p, o, s)
+# define MSGPACK_PP_WHILE_121(p, o, s) MSGPACK_PP_WHILE_121_C(MSGPACK_PP_BOOL(p(122, s)), p, o, s)
+# define MSGPACK_PP_WHILE_122(p, o, s) MSGPACK_PP_WHILE_122_C(MSGPACK_PP_BOOL(p(123, s)), p, o, s)
+# define MSGPACK_PP_WHILE_123(p, o, s) MSGPACK_PP_WHILE_123_C(MSGPACK_PP_BOOL(p(124, s)), p, o, s)
+# define MSGPACK_PP_WHILE_124(p, o, s) MSGPACK_PP_WHILE_124_C(MSGPACK_PP_BOOL(p(125, s)), p, o, s)
+# define MSGPACK_PP_WHILE_125(p, o, s) MSGPACK_PP_WHILE_125_C(MSGPACK_PP_BOOL(p(126, s)), p, o, s)
+# define MSGPACK_PP_WHILE_126(p, o, s) MSGPACK_PP_WHILE_126_C(MSGPACK_PP_BOOL(p(127, s)), p, o, s)
+# define MSGPACK_PP_WHILE_127(p, o, s) MSGPACK_PP_WHILE_127_C(MSGPACK_PP_BOOL(p(128, s)), p, o, s)
+# define MSGPACK_PP_WHILE_128(p, o, s) MSGPACK_PP_WHILE_128_C(MSGPACK_PP_BOOL(p(129, s)), p, o, s)
+# define MSGPACK_PP_WHILE_129(p, o, s) MSGPACK_PP_WHILE_129_C(MSGPACK_PP_BOOL(p(130, s)), p, o, s)
+# define MSGPACK_PP_WHILE_130(p, o, s) MSGPACK_PP_WHILE_130_C(MSGPACK_PP_BOOL(p(131, s)), p, o, s)
+# define MSGPACK_PP_WHILE_131(p, o, s) MSGPACK_PP_WHILE_131_C(MSGPACK_PP_BOOL(p(132, s)), p, o, s)
+# define MSGPACK_PP_WHILE_132(p, o, s) MSGPACK_PP_WHILE_132_C(MSGPACK_PP_BOOL(p(133, s)), p, o, s)
+# define MSGPACK_PP_WHILE_133(p, o, s) MSGPACK_PP_WHILE_133_C(MSGPACK_PP_BOOL(p(134, s)), p, o, s)
+# define MSGPACK_PP_WHILE_134(p, o, s) MSGPACK_PP_WHILE_134_C(MSGPACK_PP_BOOL(p(135, s)), p, o, s)
+# define MSGPACK_PP_WHILE_135(p, o, s) MSGPACK_PP_WHILE_135_C(MSGPACK_PP_BOOL(p(136, s)), p, o, s)
+# define MSGPACK_PP_WHILE_136(p, o, s) MSGPACK_PP_WHILE_136_C(MSGPACK_PP_BOOL(p(137, s)), p, o, s)
+# define MSGPACK_PP_WHILE_137(p, o, s) MSGPACK_PP_WHILE_137_C(MSGPACK_PP_BOOL(p(138, s)), p, o, s)
+# define MSGPACK_PP_WHILE_138(p, o, s) MSGPACK_PP_WHILE_138_C(MSGPACK_PP_BOOL(p(139, s)), p, o, s)
+# define MSGPACK_PP_WHILE_139(p, o, s) MSGPACK_PP_WHILE_139_C(MSGPACK_PP_BOOL(p(140, s)), p, o, s)
+# define MSGPACK_PP_WHILE_140(p, o, s) MSGPACK_PP_WHILE_140_C(MSGPACK_PP_BOOL(p(141, s)), p, o, s)
+# define MSGPACK_PP_WHILE_141(p, o, s) MSGPACK_PP_WHILE_141_C(MSGPACK_PP_BOOL(p(142, s)), p, o, s)
+# define MSGPACK_PP_WHILE_142(p, o, s) MSGPACK_PP_WHILE_142_C(MSGPACK_PP_BOOL(p(143, s)), p, o, s)
+# define MSGPACK_PP_WHILE_143(p, o, s) MSGPACK_PP_WHILE_143_C(MSGPACK_PP_BOOL(p(144, s)), p, o, s)
+# define MSGPACK_PP_WHILE_144(p, o, s) MSGPACK_PP_WHILE_144_C(MSGPACK_PP_BOOL(p(145, s)), p, o, s)
+# define MSGPACK_PP_WHILE_145(p, o, s) MSGPACK_PP_WHILE_145_C(MSGPACK_PP_BOOL(p(146, s)), p, o, s)
+# define MSGPACK_PP_WHILE_146(p, o, s) MSGPACK_PP_WHILE_146_C(MSGPACK_PP_BOOL(p(147, s)), p, o, s)
+# define MSGPACK_PP_WHILE_147(p, o, s) MSGPACK_PP_WHILE_147_C(MSGPACK_PP_BOOL(p(148, s)), p, o, s)
+# define MSGPACK_PP_WHILE_148(p, o, s) MSGPACK_PP_WHILE_148_C(MSGPACK_PP_BOOL(p(149, s)), p, o, s)
+# define MSGPACK_PP_WHILE_149(p, o, s) MSGPACK_PP_WHILE_149_C(MSGPACK_PP_BOOL(p(150, s)), p, o, s)
+# define MSGPACK_PP_WHILE_150(p, o, s) MSGPACK_PP_WHILE_150_C(MSGPACK_PP_BOOL(p(151, s)), p, o, s)
+# define MSGPACK_PP_WHILE_151(p, o, s) MSGPACK_PP_WHILE_151_C(MSGPACK_PP_BOOL(p(152, s)), p, o, s)
+# define MSGPACK_PP_WHILE_152(p, o, s) MSGPACK_PP_WHILE_152_C(MSGPACK_PP_BOOL(p(153, s)), p, o, s)
+# define MSGPACK_PP_WHILE_153(p, o, s) MSGPACK_PP_WHILE_153_C(MSGPACK_PP_BOOL(p(154, s)), p, o, s)
+# define MSGPACK_PP_WHILE_154(p, o, s) MSGPACK_PP_WHILE_154_C(MSGPACK_PP_BOOL(p(155, s)), p, o, s)
+# define MSGPACK_PP_WHILE_155(p, o, s) MSGPACK_PP_WHILE_155_C(MSGPACK_PP_BOOL(p(156, s)), p, o, s)
+# define MSGPACK_PP_WHILE_156(p, o, s) MSGPACK_PP_WHILE_156_C(MSGPACK_PP_BOOL(p(157, s)), p, o, s)
+# define MSGPACK_PP_WHILE_157(p, o, s) MSGPACK_PP_WHILE_157_C(MSGPACK_PP_BOOL(p(158, s)), p, o, s)
+# define MSGPACK_PP_WHILE_158(p, o, s) MSGPACK_PP_WHILE_158_C(MSGPACK_PP_BOOL(p(159, s)), p, o, s)
+# define MSGPACK_PP_WHILE_159(p, o, s) MSGPACK_PP_WHILE_159_C(MSGPACK_PP_BOOL(p(160, s)), p, o, s)
+# define MSGPACK_PP_WHILE_160(p, o, s) MSGPACK_PP_WHILE_160_C(MSGPACK_PP_BOOL(p(161, s)), p, o, s)
+# define MSGPACK_PP_WHILE_161(p, o, s) MSGPACK_PP_WHILE_161_C(MSGPACK_PP_BOOL(p(162, s)), p, o, s)
+# define MSGPACK_PP_WHILE_162(p, o, s) MSGPACK_PP_WHILE_162_C(MSGPACK_PP_BOOL(p(163, s)), p, o, s)
+# define MSGPACK_PP_WHILE_163(p, o, s) MSGPACK_PP_WHILE_163_C(MSGPACK_PP_BOOL(p(164, s)), p, o, s)
+# define MSGPACK_PP_WHILE_164(p, o, s) MSGPACK_PP_WHILE_164_C(MSGPACK_PP_BOOL(p(165, s)), p, o, s)
+# define MSGPACK_PP_WHILE_165(p, o, s) MSGPACK_PP_WHILE_165_C(MSGPACK_PP_BOOL(p(166, s)), p, o, s)
+# define MSGPACK_PP_WHILE_166(p, o, s) MSGPACK_PP_WHILE_166_C(MSGPACK_PP_BOOL(p(167, s)), p, o, s)
+# define MSGPACK_PP_WHILE_167(p, o, s) MSGPACK_PP_WHILE_167_C(MSGPACK_PP_BOOL(p(168, s)), p, o, s)
+# define MSGPACK_PP_WHILE_168(p, o, s) MSGPACK_PP_WHILE_168_C(MSGPACK_PP_BOOL(p(169, s)), p, o, s)
+# define MSGPACK_PP_WHILE_169(p, o, s) MSGPACK_PP_WHILE_169_C(MSGPACK_PP_BOOL(p(170, s)), p, o, s)
+# define MSGPACK_PP_WHILE_170(p, o, s) MSGPACK_PP_WHILE_170_C(MSGPACK_PP_BOOL(p(171, s)), p, o, s)
+# define MSGPACK_PP_WHILE_171(p, o, s) MSGPACK_PP_WHILE_171_C(MSGPACK_PP_BOOL(p(172, s)), p, o, s)
+# define MSGPACK_PP_WHILE_172(p, o, s) MSGPACK_PP_WHILE_172_C(MSGPACK_PP_BOOL(p(173, s)), p, o, s)
+# define MSGPACK_PP_WHILE_173(p, o, s) MSGPACK_PP_WHILE_173_C(MSGPACK_PP_BOOL(p(174, s)), p, o, s)
+# define MSGPACK_PP_WHILE_174(p, o, s) MSGPACK_PP_WHILE_174_C(MSGPACK_PP_BOOL(p(175, s)), p, o, s)
+# define MSGPACK_PP_WHILE_175(p, o, s) MSGPACK_PP_WHILE_175_C(MSGPACK_PP_BOOL(p(176, s)), p, o, s)
+# define MSGPACK_PP_WHILE_176(p, o, s) MSGPACK_PP_WHILE_176_C(MSGPACK_PP_BOOL(p(177, s)), p, o, s)
+# define MSGPACK_PP_WHILE_177(p, o, s) MSGPACK_PP_WHILE_177_C(MSGPACK_PP_BOOL(p(178, s)), p, o, s)
+# define MSGPACK_PP_WHILE_178(p, o, s) MSGPACK_PP_WHILE_178_C(MSGPACK_PP_BOOL(p(179, s)), p, o, s)
+# define MSGPACK_PP_WHILE_179(p, o, s) MSGPACK_PP_WHILE_179_C(MSGPACK_PP_BOOL(p(180, s)), p, o, s)
+# define MSGPACK_PP_WHILE_180(p, o, s) MSGPACK_PP_WHILE_180_C(MSGPACK_PP_BOOL(p(181, s)), p, o, s)
+# define MSGPACK_PP_WHILE_181(p, o, s) MSGPACK_PP_WHILE_181_C(MSGPACK_PP_BOOL(p(182, s)), p, o, s)
+# define MSGPACK_PP_WHILE_182(p, o, s) MSGPACK_PP_WHILE_182_C(MSGPACK_PP_BOOL(p(183, s)), p, o, s)
+# define MSGPACK_PP_WHILE_183(p, o, s) MSGPACK_PP_WHILE_183_C(MSGPACK_PP_BOOL(p(184, s)), p, o, s)
+# define MSGPACK_PP_WHILE_184(p, o, s) MSGPACK_PP_WHILE_184_C(MSGPACK_PP_BOOL(p(185, s)), p, o, s)
+# define MSGPACK_PP_WHILE_185(p, o, s) MSGPACK_PP_WHILE_185_C(MSGPACK_PP_BOOL(p(186, s)), p, o, s)
+# define MSGPACK_PP_WHILE_186(p, o, s) MSGPACK_PP_WHILE_186_C(MSGPACK_PP_BOOL(p(187, s)), p, o, s)
+# define MSGPACK_PP_WHILE_187(p, o, s) MSGPACK_PP_WHILE_187_C(MSGPACK_PP_BOOL(p(188, s)), p, o, s)
+# define MSGPACK_PP_WHILE_188(p, o, s) MSGPACK_PP_WHILE_188_C(MSGPACK_PP_BOOL(p(189, s)), p, o, s)
+# define MSGPACK_PP_WHILE_189(p, o, s) MSGPACK_PP_WHILE_189_C(MSGPACK_PP_BOOL(p(190, s)), p, o, s)
+# define MSGPACK_PP_WHILE_190(p, o, s) MSGPACK_PP_WHILE_190_C(MSGPACK_PP_BOOL(p(191, s)), p, o, s)
+# define MSGPACK_PP_WHILE_191(p, o, s) MSGPACK_PP_WHILE_191_C(MSGPACK_PP_BOOL(p(192, s)), p, o, s)
+# define MSGPACK_PP_WHILE_192(p, o, s) MSGPACK_PP_WHILE_192_C(MSGPACK_PP_BOOL(p(193, s)), p, o, s)
+# define MSGPACK_PP_WHILE_193(p, o, s) MSGPACK_PP_WHILE_193_C(MSGPACK_PP_BOOL(p(194, s)), p, o, s)
+# define MSGPACK_PP_WHILE_194(p, o, s) MSGPACK_PP_WHILE_194_C(MSGPACK_PP_BOOL(p(195, s)), p, o, s)
+# define MSGPACK_PP_WHILE_195(p, o, s) MSGPACK_PP_WHILE_195_C(MSGPACK_PP_BOOL(p(196, s)), p, o, s)
+# define MSGPACK_PP_WHILE_196(p, o, s) MSGPACK_PP_WHILE_196_C(MSGPACK_PP_BOOL(p(197, s)), p, o, s)
+# define MSGPACK_PP_WHILE_197(p, o, s) MSGPACK_PP_WHILE_197_C(MSGPACK_PP_BOOL(p(198, s)), p, o, s)
+# define MSGPACK_PP_WHILE_198(p, o, s) MSGPACK_PP_WHILE_198_C(MSGPACK_PP_BOOL(p(199, s)), p, o, s)
+# define MSGPACK_PP_WHILE_199(p, o, s) MSGPACK_PP_WHILE_199_C(MSGPACK_PP_BOOL(p(200, s)), p, o, s)
+# define MSGPACK_PP_WHILE_200(p, o, s) MSGPACK_PP_WHILE_200_C(MSGPACK_PP_BOOL(p(201, s)), p, o, s)
+# define MSGPACK_PP_WHILE_201(p, o, s) MSGPACK_PP_WHILE_201_C(MSGPACK_PP_BOOL(p(202, s)), p, o, s)
+# define MSGPACK_PP_WHILE_202(p, o, s) MSGPACK_PP_WHILE_202_C(MSGPACK_PP_BOOL(p(203, s)), p, o, s)
+# define MSGPACK_PP_WHILE_203(p, o, s) MSGPACK_PP_WHILE_203_C(MSGPACK_PP_BOOL(p(204, s)), p, o, s)
+# define MSGPACK_PP_WHILE_204(p, o, s) MSGPACK_PP_WHILE_204_C(MSGPACK_PP_BOOL(p(205, s)), p, o, s)
+# define MSGPACK_PP_WHILE_205(p, o, s) MSGPACK_PP_WHILE_205_C(MSGPACK_PP_BOOL(p(206, s)), p, o, s)
+# define MSGPACK_PP_WHILE_206(p, o, s) MSGPACK_PP_WHILE_206_C(MSGPACK_PP_BOOL(p(207, s)), p, o, s)
+# define MSGPACK_PP_WHILE_207(p, o, s) MSGPACK_PP_WHILE_207_C(MSGPACK_PP_BOOL(p(208, s)), p, o, s)
+# define MSGPACK_PP_WHILE_208(p, o, s) MSGPACK_PP_WHILE_208_C(MSGPACK_PP_BOOL(p(209, s)), p, o, s)
+# define MSGPACK_PP_WHILE_209(p, o, s) MSGPACK_PP_WHILE_209_C(MSGPACK_PP_BOOL(p(210, s)), p, o, s)
+# define MSGPACK_PP_WHILE_210(p, o, s) MSGPACK_PP_WHILE_210_C(MSGPACK_PP_BOOL(p(211, s)), p, o, s)
+# define MSGPACK_PP_WHILE_211(p, o, s) MSGPACK_PP_WHILE_211_C(MSGPACK_PP_BOOL(p(212, s)), p, o, s)
+# define MSGPACK_PP_WHILE_212(p, o, s) MSGPACK_PP_WHILE_212_C(MSGPACK_PP_BOOL(p(213, s)), p, o, s)
+# define MSGPACK_PP_WHILE_213(p, o, s) MSGPACK_PP_WHILE_213_C(MSGPACK_PP_BOOL(p(214, s)), p, o, s)
+# define MSGPACK_PP_WHILE_214(p, o, s) MSGPACK_PP_WHILE_214_C(MSGPACK_PP_BOOL(p(215, s)), p, o, s)
+# define MSGPACK_PP_WHILE_215(p, o, s) MSGPACK_PP_WHILE_215_C(MSGPACK_PP_BOOL(p(216, s)), p, o, s)
+# define MSGPACK_PP_WHILE_216(p, o, s) MSGPACK_PP_WHILE_216_C(MSGPACK_PP_BOOL(p(217, s)), p, o, s)
+# define MSGPACK_PP_WHILE_217(p, o, s) MSGPACK_PP_WHILE_217_C(MSGPACK_PP_BOOL(p(218, s)), p, o, s)
+# define MSGPACK_PP_WHILE_218(p, o, s) MSGPACK_PP_WHILE_218_C(MSGPACK_PP_BOOL(p(219, s)), p, o, s)
+# define MSGPACK_PP_WHILE_219(p, o, s) MSGPACK_PP_WHILE_219_C(MSGPACK_PP_BOOL(p(220, s)), p, o, s)
+# define MSGPACK_PP_WHILE_220(p, o, s) MSGPACK_PP_WHILE_220_C(MSGPACK_PP_BOOL(p(221, s)), p, o, s)
+# define MSGPACK_PP_WHILE_221(p, o, s) MSGPACK_PP_WHILE_221_C(MSGPACK_PP_BOOL(p(222, s)), p, o, s)
+# define MSGPACK_PP_WHILE_222(p, o, s) MSGPACK_PP_WHILE_222_C(MSGPACK_PP_BOOL(p(223, s)), p, o, s)
+# define MSGPACK_PP_WHILE_223(p, o, s) MSGPACK_PP_WHILE_223_C(MSGPACK_PP_BOOL(p(224, s)), p, o, s)
+# define MSGPACK_PP_WHILE_224(p, o, s) MSGPACK_PP_WHILE_224_C(MSGPACK_PP_BOOL(p(225, s)), p, o, s)
+# define MSGPACK_PP_WHILE_225(p, o, s) MSGPACK_PP_WHILE_225_C(MSGPACK_PP_BOOL(p(226, s)), p, o, s)
+# define MSGPACK_PP_WHILE_226(p, o, s) MSGPACK_PP_WHILE_226_C(MSGPACK_PP_BOOL(p(227, s)), p, o, s)
+# define MSGPACK_PP_WHILE_227(p, o, s) MSGPACK_PP_WHILE_227_C(MSGPACK_PP_BOOL(p(228, s)), p, o, s)
+# define MSGPACK_PP_WHILE_228(p, o, s) MSGPACK_PP_WHILE_228_C(MSGPACK_PP_BOOL(p(229, s)), p, o, s)
+# define MSGPACK_PP_WHILE_229(p, o, s) MSGPACK_PP_WHILE_229_C(MSGPACK_PP_BOOL(p(230, s)), p, o, s)
+# define MSGPACK_PP_WHILE_230(p, o, s) MSGPACK_PP_WHILE_230_C(MSGPACK_PP_BOOL(p(231, s)), p, o, s)
+# define MSGPACK_PP_WHILE_231(p, o, s) MSGPACK_PP_WHILE_231_C(MSGPACK_PP_BOOL(p(232, s)), p, o, s)
+# define MSGPACK_PP_WHILE_232(p, o, s) MSGPACK_PP_WHILE_232_C(MSGPACK_PP_BOOL(p(233, s)), p, o, s)
+# define MSGPACK_PP_WHILE_233(p, o, s) MSGPACK_PP_WHILE_233_C(MSGPACK_PP_BOOL(p(234, s)), p, o, s)
+# define MSGPACK_PP_WHILE_234(p, o, s) MSGPACK_PP_WHILE_234_C(MSGPACK_PP_BOOL(p(235, s)), p, o, s)
+# define MSGPACK_PP_WHILE_235(p, o, s) MSGPACK_PP_WHILE_235_C(MSGPACK_PP_BOOL(p(236, s)), p, o, s)
+# define MSGPACK_PP_WHILE_236(p, o, s) MSGPACK_PP_WHILE_236_C(MSGPACK_PP_BOOL(p(237, s)), p, o, s)
+# define MSGPACK_PP_WHILE_237(p, o, s) MSGPACK_PP_WHILE_237_C(MSGPACK_PP_BOOL(p(238, s)), p, o, s)
+# define MSGPACK_PP_WHILE_238(p, o, s) MSGPACK_PP_WHILE_238_C(MSGPACK_PP_BOOL(p(239, s)), p, o, s)
+# define MSGPACK_PP_WHILE_239(p, o, s) MSGPACK_PP_WHILE_239_C(MSGPACK_PP_BOOL(p(240, s)), p, o, s)
+# define MSGPACK_PP_WHILE_240(p, o, s) MSGPACK_PP_WHILE_240_C(MSGPACK_PP_BOOL(p(241, s)), p, o, s)
+# define MSGPACK_PP_WHILE_241(p, o, s) MSGPACK_PP_WHILE_241_C(MSGPACK_PP_BOOL(p(242, s)), p, o, s)
+# define MSGPACK_PP_WHILE_242(p, o, s) MSGPACK_PP_WHILE_242_C(MSGPACK_PP_BOOL(p(243, s)), p, o, s)
+# define MSGPACK_PP_WHILE_243(p, o, s) MSGPACK_PP_WHILE_243_C(MSGPACK_PP_BOOL(p(244, s)), p, o, s)
+# define MSGPACK_PP_WHILE_244(p, o, s) MSGPACK_PP_WHILE_244_C(MSGPACK_PP_BOOL(p(245, s)), p, o, s)
+# define MSGPACK_PP_WHILE_245(p, o, s) MSGPACK_PP_WHILE_245_C(MSGPACK_PP_BOOL(p(246, s)), p, o, s)
+# define MSGPACK_PP_WHILE_246(p, o, s) MSGPACK_PP_WHILE_246_C(MSGPACK_PP_BOOL(p(247, s)), p, o, s)
+# define MSGPACK_PP_WHILE_247(p, o, s) MSGPACK_PP_WHILE_247_C(MSGPACK_PP_BOOL(p(248, s)), p, o, s)
+# define MSGPACK_PP_WHILE_248(p, o, s) MSGPACK_PP_WHILE_248_C(MSGPACK_PP_BOOL(p(249, s)), p, o, s)
+# define MSGPACK_PP_WHILE_249(p, o, s) MSGPACK_PP_WHILE_249_C(MSGPACK_PP_BOOL(p(250, s)), p, o, s)
+# define MSGPACK_PP_WHILE_250(p, o, s) MSGPACK_PP_WHILE_250_C(MSGPACK_PP_BOOL(p(251, s)), p, o, s)
+# define MSGPACK_PP_WHILE_251(p, o, s) MSGPACK_PP_WHILE_251_C(MSGPACK_PP_BOOL(p(252, s)), p, o, s)
+# define MSGPACK_PP_WHILE_252(p, o, s) MSGPACK_PP_WHILE_252_C(MSGPACK_PP_BOOL(p(253, s)), p, o, s)
+# define MSGPACK_PP_WHILE_253(p, o, s) MSGPACK_PP_WHILE_253_C(MSGPACK_PP_BOOL(p(254, s)), p, o, s)
+# define MSGPACK_PP_WHILE_254(p, o, s) MSGPACK_PP_WHILE_254_C(MSGPACK_PP_BOOL(p(255, s)), p, o, s)
+# define MSGPACK_PP_WHILE_255(p, o, s) MSGPACK_PP_WHILE_255_C(MSGPACK_PP_BOOL(p(256, s)), p, o, s)
+# define MSGPACK_PP_WHILE_256(p, o, s) MSGPACK_PP_WHILE_256_C(MSGPACK_PP_BOOL(p(257, s)), p, o, s)
+#
+# define MSGPACK_PP_WHILE_1_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_2, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(2, s))
+# define MSGPACK_PP_WHILE_2_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_3, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(3, s))
+# define MSGPACK_PP_WHILE_3_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_4, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(4, s))
+# define MSGPACK_PP_WHILE_4_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_5, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(5, s))
+# define MSGPACK_PP_WHILE_5_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_6, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(6, s))
+# define MSGPACK_PP_WHILE_6_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_7, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(7, s))
+# define MSGPACK_PP_WHILE_7_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_8, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(8, s))
+# define MSGPACK_PP_WHILE_8_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_9, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(9, s))
+# define MSGPACK_PP_WHILE_9_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_10, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(10, s))
+# define MSGPACK_PP_WHILE_10_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_11, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(11, s))
+# define MSGPACK_PP_WHILE_11_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_12, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(12, s))
+# define MSGPACK_PP_WHILE_12_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_13, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(13, s))
+# define MSGPACK_PP_WHILE_13_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_14, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(14, s))
+# define MSGPACK_PP_WHILE_14_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_15, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(15, s))
+# define MSGPACK_PP_WHILE_15_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_16, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(16, s))
+# define MSGPACK_PP_WHILE_16_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_17, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(17, s))
+# define MSGPACK_PP_WHILE_17_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_18, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(18, s))
+# define MSGPACK_PP_WHILE_18_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_19, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(19, s))
+# define MSGPACK_PP_WHILE_19_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_20, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(20, s))
+# define MSGPACK_PP_WHILE_20_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_21, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(21, s))
+# define MSGPACK_PP_WHILE_21_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_22, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(22, s))
+# define MSGPACK_PP_WHILE_22_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_23, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(23, s))
+# define MSGPACK_PP_WHILE_23_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_24, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(24, s))
+# define MSGPACK_PP_WHILE_24_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_25, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(25, s))
+# define MSGPACK_PP_WHILE_25_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_26, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(26, s))
+# define MSGPACK_PP_WHILE_26_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_27, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(27, s))
+# define MSGPACK_PP_WHILE_27_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_28, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(28, s))
+# define MSGPACK_PP_WHILE_28_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_29, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(29, s))
+# define MSGPACK_PP_WHILE_29_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_30, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(30, s))
+# define MSGPACK_PP_WHILE_30_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_31, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(31, s))
+# define MSGPACK_PP_WHILE_31_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_32, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(32, s))
+# define MSGPACK_PP_WHILE_32_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_33, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(33, s))
+# define MSGPACK_PP_WHILE_33_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_34, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(34, s))
+# define MSGPACK_PP_WHILE_34_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_35, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(35, s))
+# define MSGPACK_PP_WHILE_35_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_36, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(36, s))
+# define MSGPACK_PP_WHILE_36_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_37, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(37, s))
+# define MSGPACK_PP_WHILE_37_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_38, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(38, s))
+# define MSGPACK_PP_WHILE_38_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_39, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(39, s))
+# define MSGPACK_PP_WHILE_39_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_40, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(40, s))
+# define MSGPACK_PP_WHILE_40_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_41, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(41, s))
+# define MSGPACK_PP_WHILE_41_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_42, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(42, s))
+# define MSGPACK_PP_WHILE_42_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_43, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(43, s))
+# define MSGPACK_PP_WHILE_43_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_44, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(44, s))
+# define MSGPACK_PP_WHILE_44_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_45, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(45, s))
+# define MSGPACK_PP_WHILE_45_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_46, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(46, s))
+# define MSGPACK_PP_WHILE_46_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_47, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(47, s))
+# define MSGPACK_PP_WHILE_47_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_48, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(48, s))
+# define MSGPACK_PP_WHILE_48_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_49, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(49, s))
+# define MSGPACK_PP_WHILE_49_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_50, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(50, s))
+# define MSGPACK_PP_WHILE_50_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_51, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(51, s))
+# define MSGPACK_PP_WHILE_51_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_52, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(52, s))
+# define MSGPACK_PP_WHILE_52_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_53, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(53, s))
+# define MSGPACK_PP_WHILE_53_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_54, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(54, s))
+# define MSGPACK_PP_WHILE_54_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_55, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(55, s))
+# define MSGPACK_PP_WHILE_55_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_56, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(56, s))
+# define MSGPACK_PP_WHILE_56_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_57, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(57, s))
+# define MSGPACK_PP_WHILE_57_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_58, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(58, s))
+# define MSGPACK_PP_WHILE_58_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_59, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(59, s))
+# define MSGPACK_PP_WHILE_59_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_60, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(60, s))
+# define MSGPACK_PP_WHILE_60_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_61, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(61, s))
+# define MSGPACK_PP_WHILE_61_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_62, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(62, s))
+# define MSGPACK_PP_WHILE_62_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_63, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(63, s))
+# define MSGPACK_PP_WHILE_63_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_64, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(64, s))
+# define MSGPACK_PP_WHILE_64_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_65, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(65, s))
+# define MSGPACK_PP_WHILE_65_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_66, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(66, s))
+# define MSGPACK_PP_WHILE_66_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_67, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(67, s))
+# define MSGPACK_PP_WHILE_67_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_68, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(68, s))
+# define MSGPACK_PP_WHILE_68_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_69, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(69, s))
+# define MSGPACK_PP_WHILE_69_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_70, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(70, s))
+# define MSGPACK_PP_WHILE_70_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_71, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(71, s))
+# define MSGPACK_PP_WHILE_71_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_72, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(72, s))
+# define MSGPACK_PP_WHILE_72_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_73, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(73, s))
+# define MSGPACK_PP_WHILE_73_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_74, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(74, s))
+# define MSGPACK_PP_WHILE_74_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_75, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(75, s))
+# define MSGPACK_PP_WHILE_75_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_76, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(76, s))
+# define MSGPACK_PP_WHILE_76_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_77, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(77, s))
+# define MSGPACK_PP_WHILE_77_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_78, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(78, s))
+# define MSGPACK_PP_WHILE_78_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_79, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(79, s))
+# define MSGPACK_PP_WHILE_79_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_80, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(80, s))
+# define MSGPACK_PP_WHILE_80_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_81, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(81, s))
+# define MSGPACK_PP_WHILE_81_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_82, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(82, s))
+# define MSGPACK_PP_WHILE_82_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_83, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(83, s))
+# define MSGPACK_PP_WHILE_83_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_84, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(84, s))
+# define MSGPACK_PP_WHILE_84_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_85, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(85, s))
+# define MSGPACK_PP_WHILE_85_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_86, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(86, s))
+# define MSGPACK_PP_WHILE_86_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_87, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(87, s))
+# define MSGPACK_PP_WHILE_87_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_88, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(88, s))
+# define MSGPACK_PP_WHILE_88_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_89, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(89, s))
+# define MSGPACK_PP_WHILE_89_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_90, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(90, s))
+# define MSGPACK_PP_WHILE_90_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_91, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(91, s))
+# define MSGPACK_PP_WHILE_91_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_92, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(92, s))
+# define MSGPACK_PP_WHILE_92_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_93, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(93, s))
+# define MSGPACK_PP_WHILE_93_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_94, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(94, s))
+# define MSGPACK_PP_WHILE_94_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_95, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(95, s))
+# define MSGPACK_PP_WHILE_95_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_96, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(96, s))
+# define MSGPACK_PP_WHILE_96_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_97, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(97, s))
+# define MSGPACK_PP_WHILE_97_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_98, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(98, s))
+# define MSGPACK_PP_WHILE_98_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_99, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(99, s))
+# define MSGPACK_PP_WHILE_99_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_100, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(100, s))
+# define MSGPACK_PP_WHILE_100_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_101, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(101, s))
+# define MSGPACK_PP_WHILE_101_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_102, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(102, s))
+# define MSGPACK_PP_WHILE_102_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_103, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(103, s))
+# define MSGPACK_PP_WHILE_103_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_104, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(104, s))
+# define MSGPACK_PP_WHILE_104_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_105, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(105, s))
+# define MSGPACK_PP_WHILE_105_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_106, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(106, s))
+# define MSGPACK_PP_WHILE_106_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_107, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(107, s))
+# define MSGPACK_PP_WHILE_107_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_108, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(108, s))
+# define MSGPACK_PP_WHILE_108_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_109, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(109, s))
+# define MSGPACK_PP_WHILE_109_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_110, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(110, s))
+# define MSGPACK_PP_WHILE_110_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_111, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(111, s))
+# define MSGPACK_PP_WHILE_111_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_112, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(112, s))
+# define MSGPACK_PP_WHILE_112_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_113, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(113, s))
+# define MSGPACK_PP_WHILE_113_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_114, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(114, s))
+# define MSGPACK_PP_WHILE_114_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_115, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(115, s))
+# define MSGPACK_PP_WHILE_115_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_116, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(116, s))
+# define MSGPACK_PP_WHILE_116_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_117, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(117, s))
+# define MSGPACK_PP_WHILE_117_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_118, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(118, s))
+# define MSGPACK_PP_WHILE_118_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_119, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(119, s))
+# define MSGPACK_PP_WHILE_119_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_120, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(120, s))
+# define MSGPACK_PP_WHILE_120_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_121, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(121, s))
+# define MSGPACK_PP_WHILE_121_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_122, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(122, s))
+# define MSGPACK_PP_WHILE_122_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_123, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(123, s))
+# define MSGPACK_PP_WHILE_123_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_124, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(124, s))
+# define MSGPACK_PP_WHILE_124_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_125, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(125, s))
+# define MSGPACK_PP_WHILE_125_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_126, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(126, s))
+# define MSGPACK_PP_WHILE_126_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_127, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(127, s))
+# define MSGPACK_PP_WHILE_127_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_128, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(128, s))
+# define MSGPACK_PP_WHILE_128_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_129, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(129, s))
+# define MSGPACK_PP_WHILE_129_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_130, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(130, s))
+# define MSGPACK_PP_WHILE_130_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_131, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(131, s))
+# define MSGPACK_PP_WHILE_131_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_132, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(132, s))
+# define MSGPACK_PP_WHILE_132_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_133, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(133, s))
+# define MSGPACK_PP_WHILE_133_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_134, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(134, s))
+# define MSGPACK_PP_WHILE_134_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_135, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(135, s))
+# define MSGPACK_PP_WHILE_135_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_136, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(136, s))
+# define MSGPACK_PP_WHILE_136_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_137, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(137, s))
+# define MSGPACK_PP_WHILE_137_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_138, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(138, s))
+# define MSGPACK_PP_WHILE_138_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_139, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(139, s))
+# define MSGPACK_PP_WHILE_139_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_140, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(140, s))
+# define MSGPACK_PP_WHILE_140_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_141, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(141, s))
+# define MSGPACK_PP_WHILE_141_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_142, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(142, s))
+# define MSGPACK_PP_WHILE_142_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_143, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(143, s))
+# define MSGPACK_PP_WHILE_143_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_144, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(144, s))
+# define MSGPACK_PP_WHILE_144_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_145, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(145, s))
+# define MSGPACK_PP_WHILE_145_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_146, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(146, s))
+# define MSGPACK_PP_WHILE_146_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_147, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(147, s))
+# define MSGPACK_PP_WHILE_147_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_148, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(148, s))
+# define MSGPACK_PP_WHILE_148_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_149, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(149, s))
+# define MSGPACK_PP_WHILE_149_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_150, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(150, s))
+# define MSGPACK_PP_WHILE_150_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_151, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(151, s))
+# define MSGPACK_PP_WHILE_151_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_152, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(152, s))
+# define MSGPACK_PP_WHILE_152_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_153, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(153, s))
+# define MSGPACK_PP_WHILE_153_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_154, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(154, s))
+# define MSGPACK_PP_WHILE_154_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_155, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(155, s))
+# define MSGPACK_PP_WHILE_155_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_156, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(156, s))
+# define MSGPACK_PP_WHILE_156_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_157, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(157, s))
+# define MSGPACK_PP_WHILE_157_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_158, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(158, s))
+# define MSGPACK_PP_WHILE_158_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_159, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(159, s))
+# define MSGPACK_PP_WHILE_159_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_160, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(160, s))
+# define MSGPACK_PP_WHILE_160_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_161, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(161, s))
+# define MSGPACK_PP_WHILE_161_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_162, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(162, s))
+# define MSGPACK_PP_WHILE_162_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_163, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(163, s))
+# define MSGPACK_PP_WHILE_163_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_164, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(164, s))
+# define MSGPACK_PP_WHILE_164_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_165, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(165, s))
+# define MSGPACK_PP_WHILE_165_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_166, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(166, s))
+# define MSGPACK_PP_WHILE_166_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_167, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(167, s))
+# define MSGPACK_PP_WHILE_167_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_168, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(168, s))
+# define MSGPACK_PP_WHILE_168_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_169, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(169, s))
+# define MSGPACK_PP_WHILE_169_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_170, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(170, s))
+# define MSGPACK_PP_WHILE_170_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_171, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(171, s))
+# define MSGPACK_PP_WHILE_171_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_172, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(172, s))
+# define MSGPACK_PP_WHILE_172_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_173, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(173, s))
+# define MSGPACK_PP_WHILE_173_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_174, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(174, s))
+# define MSGPACK_PP_WHILE_174_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_175, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(175, s))
+# define MSGPACK_PP_WHILE_175_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_176, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(176, s))
+# define MSGPACK_PP_WHILE_176_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_177, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(177, s))
+# define MSGPACK_PP_WHILE_177_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_178, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(178, s))
+# define MSGPACK_PP_WHILE_178_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_179, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(179, s))
+# define MSGPACK_PP_WHILE_179_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_180, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(180, s))
+# define MSGPACK_PP_WHILE_180_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_181, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(181, s))
+# define MSGPACK_PP_WHILE_181_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_182, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(182, s))
+# define MSGPACK_PP_WHILE_182_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_183, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(183, s))
+# define MSGPACK_PP_WHILE_183_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_184, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(184, s))
+# define MSGPACK_PP_WHILE_184_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_185, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(185, s))
+# define MSGPACK_PP_WHILE_185_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_186, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(186, s))
+# define MSGPACK_PP_WHILE_186_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_187, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(187, s))
+# define MSGPACK_PP_WHILE_187_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_188, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(188, s))
+# define MSGPACK_PP_WHILE_188_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_189, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(189, s))
+# define MSGPACK_PP_WHILE_189_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_190, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(190, s))
+# define MSGPACK_PP_WHILE_190_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_191, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(191, s))
+# define MSGPACK_PP_WHILE_191_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_192, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(192, s))
+# define MSGPACK_PP_WHILE_192_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_193, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(193, s))
+# define MSGPACK_PP_WHILE_193_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_194, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(194, s))
+# define MSGPACK_PP_WHILE_194_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_195, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(195, s))
+# define MSGPACK_PP_WHILE_195_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_196, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(196, s))
+# define MSGPACK_PP_WHILE_196_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_197, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(197, s))
+# define MSGPACK_PP_WHILE_197_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_198, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(198, s))
+# define MSGPACK_PP_WHILE_198_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_199, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(199, s))
+# define MSGPACK_PP_WHILE_199_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_200, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(200, s))
+# define MSGPACK_PP_WHILE_200_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_201, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(201, s))
+# define MSGPACK_PP_WHILE_201_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_202, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(202, s))
+# define MSGPACK_PP_WHILE_202_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_203, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(203, s))
+# define MSGPACK_PP_WHILE_203_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_204, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(204, s))
+# define MSGPACK_PP_WHILE_204_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_205, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(205, s))
+# define MSGPACK_PP_WHILE_205_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_206, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(206, s))
+# define MSGPACK_PP_WHILE_206_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_207, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(207, s))
+# define MSGPACK_PP_WHILE_207_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_208, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(208, s))
+# define MSGPACK_PP_WHILE_208_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_209, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(209, s))
+# define MSGPACK_PP_WHILE_209_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_210, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(210, s))
+# define MSGPACK_PP_WHILE_210_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_211, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(211, s))
+# define MSGPACK_PP_WHILE_211_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_212, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(212, s))
+# define MSGPACK_PP_WHILE_212_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_213, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(213, s))
+# define MSGPACK_PP_WHILE_213_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_214, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(214, s))
+# define MSGPACK_PP_WHILE_214_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_215, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(215, s))
+# define MSGPACK_PP_WHILE_215_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_216, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(216, s))
+# define MSGPACK_PP_WHILE_216_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_217, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(217, s))
+# define MSGPACK_PP_WHILE_217_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_218, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(218, s))
+# define MSGPACK_PP_WHILE_218_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_219, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(219, s))
+# define MSGPACK_PP_WHILE_219_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_220, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(220, s))
+# define MSGPACK_PP_WHILE_220_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_221, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(221, s))
+# define MSGPACK_PP_WHILE_221_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_222, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(222, s))
+# define MSGPACK_PP_WHILE_222_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_223, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(223, s))
+# define MSGPACK_PP_WHILE_223_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_224, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(224, s))
+# define MSGPACK_PP_WHILE_224_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_225, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(225, s))
+# define MSGPACK_PP_WHILE_225_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_226, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(226, s))
+# define MSGPACK_PP_WHILE_226_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_227, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(227, s))
+# define MSGPACK_PP_WHILE_227_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_228, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(228, s))
+# define MSGPACK_PP_WHILE_228_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_229, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(229, s))
+# define MSGPACK_PP_WHILE_229_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_230, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(230, s))
+# define MSGPACK_PP_WHILE_230_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_231, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(231, s))
+# define MSGPACK_PP_WHILE_231_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_232, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(232, s))
+# define MSGPACK_PP_WHILE_232_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_233, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(233, s))
+# define MSGPACK_PP_WHILE_233_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_234, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(234, s))
+# define MSGPACK_PP_WHILE_234_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_235, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(235, s))
+# define MSGPACK_PP_WHILE_235_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_236, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(236, s))
+# define MSGPACK_PP_WHILE_236_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_237, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(237, s))
+# define MSGPACK_PP_WHILE_237_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_238, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(238, s))
+# define MSGPACK_PP_WHILE_238_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_239, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(239, s))
+# define MSGPACK_PP_WHILE_239_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_240, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(240, s))
+# define MSGPACK_PP_WHILE_240_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_241, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(241, s))
+# define MSGPACK_PP_WHILE_241_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_242, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(242, s))
+# define MSGPACK_PP_WHILE_242_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_243, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(243, s))
+# define MSGPACK_PP_WHILE_243_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_244, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(244, s))
+# define MSGPACK_PP_WHILE_244_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_245, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(245, s))
+# define MSGPACK_PP_WHILE_245_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_246, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(246, s))
+# define MSGPACK_PP_WHILE_246_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_247, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(247, s))
+# define MSGPACK_PP_WHILE_247_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_248, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(248, s))
+# define MSGPACK_PP_WHILE_248_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_249, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(249, s))
+# define MSGPACK_PP_WHILE_249_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_250, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(250, s))
+# define MSGPACK_PP_WHILE_250_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_251, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(251, s))
+# define MSGPACK_PP_WHILE_251_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_252, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(252, s))
+# define MSGPACK_PP_WHILE_252_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_253, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(253, s))
+# define MSGPACK_PP_WHILE_253_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_254, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(254, s))
+# define MSGPACK_PP_WHILE_254_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_255, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(255, s))
+# define MSGPACK_PP_WHILE_255_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_256, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(256, s))
+# define MSGPACK_PP_WHILE_256_C(c, p, o, s) MSGPACK_PP_IIF(c, MSGPACK_PP_WHILE_257, s MSGPACK_PP_TUPLE_EAT_3)(p, o, MSGPACK_PP_IIF(c, o, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_2)(257, s))
+#
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_if.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_if.hpp
new file mode 100644
index 000000000..eec5c66cd
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_if.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_EXPR_IF_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_EXPR_IF_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+#
+# /* MSGPACK_PP_EXPR_IF */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_EXPR_IF(cond, expr) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_BOOL(cond), expr)
+# else
+# define MSGPACK_PP_EXPR_IF(cond, expr) MSGPACK_PP_EXPR_IF_I(cond, expr)
+# define MSGPACK_PP_EXPR_IF_I(cond, expr) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_BOOL(cond), expr)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_iif.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_iif.hpp
new file mode 100644
index 000000000..593d42f0e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/expr_iif.hpp
@@ -0,0 +1,31 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_EXPR_IIF */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_EXPR_IIF(bit, expr) MSGPACK_PP_EXPR_IIF_I(bit, expr)
+# else
+# define MSGPACK_PP_EXPR_IIF(bit, expr) MSGPACK_PP_EXPR_IIF_OO((bit, expr))
+# define MSGPACK_PP_EXPR_IIF_OO(par) MSGPACK_PP_EXPR_IIF_I ## par
+# endif
+#
+# define MSGPACK_PP_EXPR_IIF_I(bit, expr) MSGPACK_PP_EXPR_IIF_ ## bit(expr)
+#
+# define MSGPACK_PP_EXPR_IIF_0(expr)
+# define MSGPACK_PP_EXPR_IIF_1(expr) expr
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/if.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/if.hpp
new file mode 100644
index 000000000..357b761b1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/if.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_IF_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_IF_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+#
+# /* MSGPACK_PP_IF */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_IF(cond, t, f) MSGPACK_PP_IIF(MSGPACK_PP_BOOL(cond), t, f)
+# else
+# define MSGPACK_PP_IF(cond, t, f) MSGPACK_PP_IF_I(cond, t, f)
+# define MSGPACK_PP_IF_I(cond, t, f) MSGPACK_PP_IIF(MSGPACK_PP_BOOL(cond), t, f)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/iif.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/iif.hpp
new file mode 100644
index 000000000..1f0e0f50b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/iif.hpp
@@ -0,0 +1,34 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_IIF_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_IIF_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_IIF(bit, t, f) MSGPACK_PP_IIF_I(bit, t, f)
+# else
+# define MSGPACK_PP_IIF(bit, t, f) MSGPACK_PP_IIF_OO((bit, t, f))
+# define MSGPACK_PP_IIF_OO(par) MSGPACK_PP_IIF_I ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_IIF_I(bit, t, f) MSGPACK_PP_IIF_ ## bit(t, f)
+# else
+# define MSGPACK_PP_IIF_I(bit, t, f) MSGPACK_PP_IIF_II(MSGPACK_PP_IIF_ ## bit(t, f))
+# define MSGPACK_PP_IIF_II(id) id
+# endif
+#
+# define MSGPACK_PP_IIF_0(t, f) f
+# define MSGPACK_PP_IIF_1(t, f) t
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/while.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/while.hpp
new file mode 100644
index 000000000..c18a4f7d3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/control/while.hpp
@@ -0,0 +1,312 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_CONTROL_WHILE_HPP
+# define MSGPACK_PREPROCESSOR_CONTROL_WHILE_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_right.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitand.hpp>
+#
+# /* MSGPACK_PP_WHILE */
+#
+# if 0
+# define MSGPACK_PP_WHILE(pred, op, state)
+# endif
+#
+# define MSGPACK_PP_WHILE MSGPACK_PP_CAT(MSGPACK_PP_WHILE_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_WHILE_P(n) MSGPACK_PP_BITAND(MSGPACK_PP_CAT(MSGPACK_PP_WHILE_CHECK_, MSGPACK_PP_WHILE_ ## n(MSGPACK_PP_WHILE_F, MSGPACK_PP_NIL, MSGPACK_PP_NIL)), MSGPACK_PP_BITAND(MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_LEFT_CHECK_, MSGPACK_PP_LIST_FOLD_LEFT_ ## n(MSGPACK_PP_NIL, MSGPACK_PP_NIL, MSGPACK_PP_NIL)), MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_, MSGPACK_PP_LIST_FOLD_RIGHT_ ## n(MSGPACK_PP_NIL, MSGPACK_PP_NIL, MSGPACK_PP_NIL))))
+# else
+# define MSGPACK_PP_WHILE_P(n) MSGPACK_PP_BITAND(MSGPACK_PP_CAT(MSGPACK_PP_WHILE_CHECK_, MSGPACK_PP_WHILE_ ## n(MSGPACK_PP_WHILE_F, MSGPACK_PP_NIL, MSGPACK_PP_NIL)), MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_LEFT_CHECK_, MSGPACK_PP_LIST_FOLD_LEFT_ ## n(MSGPACK_PP_NIL, MSGPACK_PP_NIL, MSGPACK_PP_NIL)))
+# endif
+#
+# define MSGPACK_PP_WHILE_F(d, _) 0
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# include <rpc/msgpack/preprocessor/control/detail/edg/while.hpp>
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# include <rpc/msgpack/preprocessor/control/detail/msvc/while.hpp>
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# include <rpc/msgpack/preprocessor/control/detail/dmc/while.hpp>
+# else
+# include <rpc/msgpack/preprocessor/control/detail/while.hpp>
+# endif
+#
+# define MSGPACK_PP_WHILE_257(p, o, s) MSGPACK_PP_ERROR(0x0001)
+#
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_NIL 1
+#
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_1(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_2(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_3(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_4(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_5(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_6(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_7(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_8(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_9(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_10(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_11(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_12(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_13(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_14(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_15(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_16(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_17(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_18(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_19(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_20(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_21(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_22(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_23(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_24(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_25(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_26(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_27(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_28(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_29(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_30(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_31(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_32(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_33(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_34(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_35(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_36(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_37(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_38(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_39(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_40(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_41(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_42(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_43(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_44(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_45(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_46(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_47(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_48(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_49(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_50(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_51(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_52(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_53(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_54(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_55(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_56(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_57(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_58(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_59(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_60(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_61(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_62(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_63(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_64(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_65(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_66(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_67(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_68(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_69(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_70(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_71(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_72(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_73(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_74(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_75(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_76(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_77(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_78(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_79(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_80(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_81(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_82(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_83(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_84(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_85(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_86(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_87(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_88(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_89(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_90(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_91(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_92(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_93(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_94(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_95(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_96(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_97(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_98(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_99(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_100(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_101(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_102(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_103(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_104(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_105(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_106(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_107(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_108(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_109(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_110(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_111(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_112(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_113(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_114(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_115(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_116(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_117(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_118(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_119(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_120(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_121(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_122(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_123(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_124(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_125(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_126(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_127(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_128(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_129(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_130(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_131(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_132(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_133(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_134(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_135(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_136(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_137(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_138(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_139(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_140(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_141(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_142(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_143(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_144(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_145(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_146(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_147(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_148(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_149(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_150(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_151(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_152(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_153(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_154(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_155(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_156(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_157(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_158(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_159(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_160(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_161(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_162(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_163(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_164(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_165(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_166(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_167(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_168(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_169(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_170(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_171(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_172(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_173(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_174(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_175(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_176(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_177(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_178(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_179(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_180(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_181(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_182(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_183(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_184(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_185(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_186(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_187(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_188(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_189(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_190(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_191(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_192(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_193(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_194(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_195(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_196(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_197(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_198(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_199(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_200(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_201(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_202(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_203(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_204(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_205(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_206(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_207(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_208(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_209(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_210(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_211(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_212(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_213(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_214(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_215(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_216(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_217(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_218(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_219(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_220(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_221(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_222(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_223(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_224(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_225(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_226(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_227(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_228(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_229(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_230(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_231(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_232(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_233(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_234(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_235(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_236(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_237(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_238(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_239(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_240(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_241(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_242(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_243(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_244(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_245(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_246(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_247(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_248(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_249(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_250(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_251(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_252(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_253(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_254(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_255(p, o, s) 0
+# define MSGPACK_PP_WHILE_CHECK_MSGPACK_PP_WHILE_256(p, o, s) 0
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug.hpp
new file mode 100644
index 000000000..08f74b4fc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug.hpp
@@ -0,0 +1,18 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DEBUG_HPP
+# define MSGPACK_PREPROCESSOR_DEBUG_HPP
+#
+# include <rpc/msgpack/preprocessor/debug/assert.hpp>
+# include <rpc/msgpack/preprocessor/debug/line.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/assert.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/assert.hpp
new file mode 100644
index 000000000..668316c0a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/assert.hpp
@@ -0,0 +1,44 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DEBUG_ASSERT_HPP
+# define MSGPACK_PREPROCESSOR_DEBUG_ASSERT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/not.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# /* MSGPACK_PP_ASSERT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ASSERT MSGPACK_PP_ASSERT_D
+# else
+# define MSGPACK_PP_ASSERT(cond) MSGPACK_PP_ASSERT_D(cond)
+# endif
+#
+# define MSGPACK_PP_ASSERT_D(cond) MSGPACK_PP_IIF(MSGPACK_PP_NOT(cond), MSGPACK_PP_ASSERT_ERROR, MSGPACK_PP_TUPLE_EAT_1)(...)
+# define MSGPACK_PP_ASSERT_ERROR(x, y, z)
+#
+# /* MSGPACK_PP_ASSERT_MSG */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ASSERT_MSG MSGPACK_PP_ASSERT_MSG_D
+# else
+# define MSGPACK_PP_ASSERT_MSG(cond, msg) MSGPACK_PP_ASSERT_MSG_D(cond, msg)
+# endif
+#
+# define MSGPACK_PP_ASSERT_MSG_D(cond, msg) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_NOT(cond), msg)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/error.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/error.hpp
new file mode 100644
index 000000000..9405ffed2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/error.hpp
@@ -0,0 +1,33 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DEBUG_ERROR_HPP
+# define MSGPACK_PREPROCESSOR_DEBUG_ERROR_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_ERROR */
+#
+# if MSGPACK_PP_CONFIG_ERRORS
+# define MSGPACK_PP_ERROR(code) MSGPACK_PP_CAT(MSGPACK_PP_ERROR_, code)
+# endif
+#
+# define MSGPACK_PP_ERROR_0x0000 MSGPACK_PP_ERROR(0x0000, MSGPACK_PP_INDEX_OUT_OF_BOUNDS)
+# define MSGPACK_PP_ERROR_0x0001 MSGPACK_PP_ERROR(0x0001, MSGPACK_PP_WHILE_OVERFLOW)
+# define MSGPACK_PP_ERROR_0x0002 MSGPACK_PP_ERROR(0x0002, MSGPACK_PP_FOR_OVERFLOW)
+# define MSGPACK_PP_ERROR_0x0003 MSGPACK_PP_ERROR(0x0003, MSGPACK_PP_REPEAT_OVERFLOW)
+# define MSGPACK_PP_ERROR_0x0004 MSGPACK_PP_ERROR(0x0004, MSGPACK_PP_LIST_FOLD_OVERFLOW)
+# define MSGPACK_PP_ERROR_0x0005 MSGPACK_PP_ERROR(0x0005, MSGPACK_PP_SEQ_FOLD_OVERFLOW)
+# define MSGPACK_PP_ERROR_0x0006 MSGPACK_PP_ERROR(0x0006, MSGPACK_PP_ARITHMETIC_OVERFLOW)
+# define MSGPACK_PP_ERROR_0x0007 MSGPACK_PP_ERROR(0x0007, MSGPACK_PP_DIVISION_BY_ZERO)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/line.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/line.hpp
new file mode 100644
index 000000000..aae75036e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/debug/line.hpp
@@ -0,0 +1,35 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DEBUG_LINE_HPP
+# define MSGPACK_PREPROCESSOR_DEBUG_LINE_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/iteration/iterate.hpp>
+# include <rpc/msgpack/preprocessor/stringize.hpp>
+#
+# /* MSGPACK_PP_LINE */
+#
+# if MSGPACK_PP_CONFIG_EXTENDED_LINE_INFO
+# define MSGPACK_PP_LINE(line, file) line MSGPACK_PP_CAT(MSGPACK_PP_LINE_, MSGPACK_PP_IS_ITERATING)(file)
+# define MSGPACK_PP_LINE_MSGPACK_PP_IS_ITERATING(file) #file
+# define MSGPACK_PP_LINE_1(file) MSGPACK_PP_STRINGIZE(file MSGPACK_PP_CAT(MSGPACK_PP_LINE_I_, MSGPACK_PP_ITERATION_DEPTH())())
+# define MSGPACK_PP_LINE_I_1() [MSGPACK_PP_FRAME_ITERATION(1)]
+# define MSGPACK_PP_LINE_I_2() MSGPACK_PP_LINE_I_1()[MSGPACK_PP_FRAME_ITERATION(2)]
+# define MSGPACK_PP_LINE_I_3() MSGPACK_PP_LINE_I_2()[MSGPACK_PP_FRAME_ITERATION(3)]
+# define MSGPACK_PP_LINE_I_4() MSGPACK_PP_LINE_I_3()[MSGPACK_PP_FRAME_ITERATION(4)]
+# define MSGPACK_PP_LINE_I_5() MSGPACK_PP_LINE_I_4()[MSGPACK_PP_FRAME_ITERATION(5)]
+# else
+# define MSGPACK_PP_LINE(line, file) line __FILE__
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/dec.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/dec.hpp
new file mode 100644
index 000000000..40c113f08
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/dec.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DEC_HPP
+# define MSGPACK_PREPROCESSOR_DEC_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/auto_rec.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/auto_rec.hpp
new file mode 100644
index 000000000..b06928476
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/auto_rec.hpp
@@ -0,0 +1,293 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# include <rpc/msgpack/preprocessor/detail/dmc/auto_rec.hpp>
+# else
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+#
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+#
+# /* MSGPACK_PP_AUTO_REC */
+#
+# define MSGPACK_PP_AUTO_REC(pred, n) MSGPACK_PP_NODE_ENTRY_ ## n(pred)
+#
+# define MSGPACK_PP_NODE_ENTRY_256(p) MSGPACK_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_128(p) MSGPACK_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_64(p) MSGPACK_PP_NODE_32(p)(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_32(p) MSGPACK_PP_NODE_16(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_16(p) MSGPACK_PP_NODE_8(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_8(p) MSGPACK_PP_NODE_4(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_4(p) MSGPACK_PP_NODE_2(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_2(p) MSGPACK_PP_NODE_1(p)
+#
+# define MSGPACK_PP_NODE_128(p) MSGPACK_PP_IIF(p(128), MSGPACK_PP_NODE_64, MSGPACK_PP_NODE_192)
+# define MSGPACK_PP_NODE_64(p) MSGPACK_PP_IIF(p(64), MSGPACK_PP_NODE_32, MSGPACK_PP_NODE_96)
+# define MSGPACK_PP_NODE_32(p) MSGPACK_PP_IIF(p(32), MSGPACK_PP_NODE_16, MSGPACK_PP_NODE_48)
+# define MSGPACK_PP_NODE_16(p) MSGPACK_PP_IIF(p(16), MSGPACK_PP_NODE_8, MSGPACK_PP_NODE_24)
+# define MSGPACK_PP_NODE_8(p) MSGPACK_PP_IIF(p(8), MSGPACK_PP_NODE_4, MSGPACK_PP_NODE_12)
+# define MSGPACK_PP_NODE_4(p) MSGPACK_PP_IIF(p(4), MSGPACK_PP_NODE_2, MSGPACK_PP_NODE_6)
+# define MSGPACK_PP_NODE_2(p) MSGPACK_PP_IIF(p(2), MSGPACK_PP_NODE_1, MSGPACK_PP_NODE_3)
+# define MSGPACK_PP_NODE_1(p) MSGPACK_PP_IIF(p(1), 1, 2)
+# define MSGPACK_PP_NODE_3(p) MSGPACK_PP_IIF(p(3), 3, 4)
+# define MSGPACK_PP_NODE_6(p) MSGPACK_PP_IIF(p(6), MSGPACK_PP_NODE_5, MSGPACK_PP_NODE_7)
+# define MSGPACK_PP_NODE_5(p) MSGPACK_PP_IIF(p(5), 5, 6)
+# define MSGPACK_PP_NODE_7(p) MSGPACK_PP_IIF(p(7), 7, 8)
+# define MSGPACK_PP_NODE_12(p) MSGPACK_PP_IIF(p(12), MSGPACK_PP_NODE_10, MSGPACK_PP_NODE_14)
+# define MSGPACK_PP_NODE_10(p) MSGPACK_PP_IIF(p(10), MSGPACK_PP_NODE_9, MSGPACK_PP_NODE_11)
+# define MSGPACK_PP_NODE_9(p) MSGPACK_PP_IIF(p(9), 9, 10)
+# define MSGPACK_PP_NODE_11(p) MSGPACK_PP_IIF(p(11), 11, 12)
+# define MSGPACK_PP_NODE_14(p) MSGPACK_PP_IIF(p(14), MSGPACK_PP_NODE_13, MSGPACK_PP_NODE_15)
+# define MSGPACK_PP_NODE_13(p) MSGPACK_PP_IIF(p(13), 13, 14)
+# define MSGPACK_PP_NODE_15(p) MSGPACK_PP_IIF(p(15), 15, 16)
+# define MSGPACK_PP_NODE_24(p) MSGPACK_PP_IIF(p(24), MSGPACK_PP_NODE_20, MSGPACK_PP_NODE_28)
+# define MSGPACK_PP_NODE_20(p) MSGPACK_PP_IIF(p(20), MSGPACK_PP_NODE_18, MSGPACK_PP_NODE_22)
+# define MSGPACK_PP_NODE_18(p) MSGPACK_PP_IIF(p(18), MSGPACK_PP_NODE_17, MSGPACK_PP_NODE_19)
+# define MSGPACK_PP_NODE_17(p) MSGPACK_PP_IIF(p(17), 17, 18)
+# define MSGPACK_PP_NODE_19(p) MSGPACK_PP_IIF(p(19), 19, 20)
+# define MSGPACK_PP_NODE_22(p) MSGPACK_PP_IIF(p(22), MSGPACK_PP_NODE_21, MSGPACK_PP_NODE_23)
+# define MSGPACK_PP_NODE_21(p) MSGPACK_PP_IIF(p(21), 21, 22)
+# define MSGPACK_PP_NODE_23(p) MSGPACK_PP_IIF(p(23), 23, 24)
+# define MSGPACK_PP_NODE_28(p) MSGPACK_PP_IIF(p(28), MSGPACK_PP_NODE_26, MSGPACK_PP_NODE_30)
+# define MSGPACK_PP_NODE_26(p) MSGPACK_PP_IIF(p(26), MSGPACK_PP_NODE_25, MSGPACK_PP_NODE_27)
+# define MSGPACK_PP_NODE_25(p) MSGPACK_PP_IIF(p(25), 25, 26)
+# define MSGPACK_PP_NODE_27(p) MSGPACK_PP_IIF(p(27), 27, 28)
+# define MSGPACK_PP_NODE_30(p) MSGPACK_PP_IIF(p(30), MSGPACK_PP_NODE_29, MSGPACK_PP_NODE_31)
+# define MSGPACK_PP_NODE_29(p) MSGPACK_PP_IIF(p(29), 29, 30)
+# define MSGPACK_PP_NODE_31(p) MSGPACK_PP_IIF(p(31), 31, 32)
+# define MSGPACK_PP_NODE_48(p) MSGPACK_PP_IIF(p(48), MSGPACK_PP_NODE_40, MSGPACK_PP_NODE_56)
+# define MSGPACK_PP_NODE_40(p) MSGPACK_PP_IIF(p(40), MSGPACK_PP_NODE_36, MSGPACK_PP_NODE_44)
+# define MSGPACK_PP_NODE_36(p) MSGPACK_PP_IIF(p(36), MSGPACK_PP_NODE_34, MSGPACK_PP_NODE_38)
+# define MSGPACK_PP_NODE_34(p) MSGPACK_PP_IIF(p(34), MSGPACK_PP_NODE_33, MSGPACK_PP_NODE_35)
+# define MSGPACK_PP_NODE_33(p) MSGPACK_PP_IIF(p(33), 33, 34)
+# define MSGPACK_PP_NODE_35(p) MSGPACK_PP_IIF(p(35), 35, 36)
+# define MSGPACK_PP_NODE_38(p) MSGPACK_PP_IIF(p(38), MSGPACK_PP_NODE_37, MSGPACK_PP_NODE_39)
+# define MSGPACK_PP_NODE_37(p) MSGPACK_PP_IIF(p(37), 37, 38)
+# define MSGPACK_PP_NODE_39(p) MSGPACK_PP_IIF(p(39), 39, 40)
+# define MSGPACK_PP_NODE_44(p) MSGPACK_PP_IIF(p(44), MSGPACK_PP_NODE_42, MSGPACK_PP_NODE_46)
+# define MSGPACK_PP_NODE_42(p) MSGPACK_PP_IIF(p(42), MSGPACK_PP_NODE_41, MSGPACK_PP_NODE_43)
+# define MSGPACK_PP_NODE_41(p) MSGPACK_PP_IIF(p(41), 41, 42)
+# define MSGPACK_PP_NODE_43(p) MSGPACK_PP_IIF(p(43), 43, 44)
+# define MSGPACK_PP_NODE_46(p) MSGPACK_PP_IIF(p(46), MSGPACK_PP_NODE_45, MSGPACK_PP_NODE_47)
+# define MSGPACK_PP_NODE_45(p) MSGPACK_PP_IIF(p(45), 45, 46)
+# define MSGPACK_PP_NODE_47(p) MSGPACK_PP_IIF(p(47), 47, 48)
+# define MSGPACK_PP_NODE_56(p) MSGPACK_PP_IIF(p(56), MSGPACK_PP_NODE_52, MSGPACK_PP_NODE_60)
+# define MSGPACK_PP_NODE_52(p) MSGPACK_PP_IIF(p(52), MSGPACK_PP_NODE_50, MSGPACK_PP_NODE_54)
+# define MSGPACK_PP_NODE_50(p) MSGPACK_PP_IIF(p(50), MSGPACK_PP_NODE_49, MSGPACK_PP_NODE_51)
+# define MSGPACK_PP_NODE_49(p) MSGPACK_PP_IIF(p(49), 49, 50)
+# define MSGPACK_PP_NODE_51(p) MSGPACK_PP_IIF(p(51), 51, 52)
+# define MSGPACK_PP_NODE_54(p) MSGPACK_PP_IIF(p(54), MSGPACK_PP_NODE_53, MSGPACK_PP_NODE_55)
+# define MSGPACK_PP_NODE_53(p) MSGPACK_PP_IIF(p(53), 53, 54)
+# define MSGPACK_PP_NODE_55(p) MSGPACK_PP_IIF(p(55), 55, 56)
+# define MSGPACK_PP_NODE_60(p) MSGPACK_PP_IIF(p(60), MSGPACK_PP_NODE_58, MSGPACK_PP_NODE_62)
+# define MSGPACK_PP_NODE_58(p) MSGPACK_PP_IIF(p(58), MSGPACK_PP_NODE_57, MSGPACK_PP_NODE_59)
+# define MSGPACK_PP_NODE_57(p) MSGPACK_PP_IIF(p(57), 57, 58)
+# define MSGPACK_PP_NODE_59(p) MSGPACK_PP_IIF(p(59), 59, 60)
+# define MSGPACK_PP_NODE_62(p) MSGPACK_PP_IIF(p(62), MSGPACK_PP_NODE_61, MSGPACK_PP_NODE_63)
+# define MSGPACK_PP_NODE_61(p) MSGPACK_PP_IIF(p(61), 61, 62)
+# define MSGPACK_PP_NODE_63(p) MSGPACK_PP_IIF(p(63), 63, 64)
+# define MSGPACK_PP_NODE_96(p) MSGPACK_PP_IIF(p(96), MSGPACK_PP_NODE_80, MSGPACK_PP_NODE_112)
+# define MSGPACK_PP_NODE_80(p) MSGPACK_PP_IIF(p(80), MSGPACK_PP_NODE_72, MSGPACK_PP_NODE_88)
+# define MSGPACK_PP_NODE_72(p) MSGPACK_PP_IIF(p(72), MSGPACK_PP_NODE_68, MSGPACK_PP_NODE_76)
+# define MSGPACK_PP_NODE_68(p) MSGPACK_PP_IIF(p(68), MSGPACK_PP_NODE_66, MSGPACK_PP_NODE_70)
+# define MSGPACK_PP_NODE_66(p) MSGPACK_PP_IIF(p(66), MSGPACK_PP_NODE_65, MSGPACK_PP_NODE_67)
+# define MSGPACK_PP_NODE_65(p) MSGPACK_PP_IIF(p(65), 65, 66)
+# define MSGPACK_PP_NODE_67(p) MSGPACK_PP_IIF(p(67), 67, 68)
+# define MSGPACK_PP_NODE_70(p) MSGPACK_PP_IIF(p(70), MSGPACK_PP_NODE_69, MSGPACK_PP_NODE_71)
+# define MSGPACK_PP_NODE_69(p) MSGPACK_PP_IIF(p(69), 69, 70)
+# define MSGPACK_PP_NODE_71(p) MSGPACK_PP_IIF(p(71), 71, 72)
+# define MSGPACK_PP_NODE_76(p) MSGPACK_PP_IIF(p(76), MSGPACK_PP_NODE_74, MSGPACK_PP_NODE_78)
+# define MSGPACK_PP_NODE_74(p) MSGPACK_PP_IIF(p(74), MSGPACK_PP_NODE_73, MSGPACK_PP_NODE_75)
+# define MSGPACK_PP_NODE_73(p) MSGPACK_PP_IIF(p(73), 73, 74)
+# define MSGPACK_PP_NODE_75(p) MSGPACK_PP_IIF(p(75), 75, 76)
+# define MSGPACK_PP_NODE_78(p) MSGPACK_PP_IIF(p(78), MSGPACK_PP_NODE_77, MSGPACK_PP_NODE_79)
+# define MSGPACK_PP_NODE_77(p) MSGPACK_PP_IIF(p(77), 77, 78)
+# define MSGPACK_PP_NODE_79(p) MSGPACK_PP_IIF(p(79), 79, 80)
+# define MSGPACK_PP_NODE_88(p) MSGPACK_PP_IIF(p(88), MSGPACK_PP_NODE_84, MSGPACK_PP_NODE_92)
+# define MSGPACK_PP_NODE_84(p) MSGPACK_PP_IIF(p(84), MSGPACK_PP_NODE_82, MSGPACK_PP_NODE_86)
+# define MSGPACK_PP_NODE_82(p) MSGPACK_PP_IIF(p(82), MSGPACK_PP_NODE_81, MSGPACK_PP_NODE_83)
+# define MSGPACK_PP_NODE_81(p) MSGPACK_PP_IIF(p(81), 81, 82)
+# define MSGPACK_PP_NODE_83(p) MSGPACK_PP_IIF(p(83), 83, 84)
+# define MSGPACK_PP_NODE_86(p) MSGPACK_PP_IIF(p(86), MSGPACK_PP_NODE_85, MSGPACK_PP_NODE_87)
+# define MSGPACK_PP_NODE_85(p) MSGPACK_PP_IIF(p(85), 85, 86)
+# define MSGPACK_PP_NODE_87(p) MSGPACK_PP_IIF(p(87), 87, 88)
+# define MSGPACK_PP_NODE_92(p) MSGPACK_PP_IIF(p(92), MSGPACK_PP_NODE_90, MSGPACK_PP_NODE_94)
+# define MSGPACK_PP_NODE_90(p) MSGPACK_PP_IIF(p(90), MSGPACK_PP_NODE_89, MSGPACK_PP_NODE_91)
+# define MSGPACK_PP_NODE_89(p) MSGPACK_PP_IIF(p(89), 89, 90)
+# define MSGPACK_PP_NODE_91(p) MSGPACK_PP_IIF(p(91), 91, 92)
+# define MSGPACK_PP_NODE_94(p) MSGPACK_PP_IIF(p(94), MSGPACK_PP_NODE_93, MSGPACK_PP_NODE_95)
+# define MSGPACK_PP_NODE_93(p) MSGPACK_PP_IIF(p(93), 93, 94)
+# define MSGPACK_PP_NODE_95(p) MSGPACK_PP_IIF(p(95), 95, 96)
+# define MSGPACK_PP_NODE_112(p) MSGPACK_PP_IIF(p(112), MSGPACK_PP_NODE_104, MSGPACK_PP_NODE_120)
+# define MSGPACK_PP_NODE_104(p) MSGPACK_PP_IIF(p(104), MSGPACK_PP_NODE_100, MSGPACK_PP_NODE_108)
+# define MSGPACK_PP_NODE_100(p) MSGPACK_PP_IIF(p(100), MSGPACK_PP_NODE_98, MSGPACK_PP_NODE_102)
+# define MSGPACK_PP_NODE_98(p) MSGPACK_PP_IIF(p(98), MSGPACK_PP_NODE_97, MSGPACK_PP_NODE_99)
+# define MSGPACK_PP_NODE_97(p) MSGPACK_PP_IIF(p(97), 97, 98)
+# define MSGPACK_PP_NODE_99(p) MSGPACK_PP_IIF(p(99), 99, 100)
+# define MSGPACK_PP_NODE_102(p) MSGPACK_PP_IIF(p(102), MSGPACK_PP_NODE_101, MSGPACK_PP_NODE_103)
+# define MSGPACK_PP_NODE_101(p) MSGPACK_PP_IIF(p(101), 101, 102)
+# define MSGPACK_PP_NODE_103(p) MSGPACK_PP_IIF(p(103), 103, 104)
+# define MSGPACK_PP_NODE_108(p) MSGPACK_PP_IIF(p(108), MSGPACK_PP_NODE_106, MSGPACK_PP_NODE_110)
+# define MSGPACK_PP_NODE_106(p) MSGPACK_PP_IIF(p(106), MSGPACK_PP_NODE_105, MSGPACK_PP_NODE_107)
+# define MSGPACK_PP_NODE_105(p) MSGPACK_PP_IIF(p(105), 105, 106)
+# define MSGPACK_PP_NODE_107(p) MSGPACK_PP_IIF(p(107), 107, 108)
+# define MSGPACK_PP_NODE_110(p) MSGPACK_PP_IIF(p(110), MSGPACK_PP_NODE_109, MSGPACK_PP_NODE_111)
+# define MSGPACK_PP_NODE_109(p) MSGPACK_PP_IIF(p(109), 109, 110)
+# define MSGPACK_PP_NODE_111(p) MSGPACK_PP_IIF(p(111), 111, 112)
+# define MSGPACK_PP_NODE_120(p) MSGPACK_PP_IIF(p(120), MSGPACK_PP_NODE_116, MSGPACK_PP_NODE_124)
+# define MSGPACK_PP_NODE_116(p) MSGPACK_PP_IIF(p(116), MSGPACK_PP_NODE_114, MSGPACK_PP_NODE_118)
+# define MSGPACK_PP_NODE_114(p) MSGPACK_PP_IIF(p(114), MSGPACK_PP_NODE_113, MSGPACK_PP_NODE_115)
+# define MSGPACK_PP_NODE_113(p) MSGPACK_PP_IIF(p(113), 113, 114)
+# define MSGPACK_PP_NODE_115(p) MSGPACK_PP_IIF(p(115), 115, 116)
+# define MSGPACK_PP_NODE_118(p) MSGPACK_PP_IIF(p(118), MSGPACK_PP_NODE_117, MSGPACK_PP_NODE_119)
+# define MSGPACK_PP_NODE_117(p) MSGPACK_PP_IIF(p(117), 117, 118)
+# define MSGPACK_PP_NODE_119(p) MSGPACK_PP_IIF(p(119), 119, 120)
+# define MSGPACK_PP_NODE_124(p) MSGPACK_PP_IIF(p(124), MSGPACK_PP_NODE_122, MSGPACK_PP_NODE_126)
+# define MSGPACK_PP_NODE_122(p) MSGPACK_PP_IIF(p(122), MSGPACK_PP_NODE_121, MSGPACK_PP_NODE_123)
+# define MSGPACK_PP_NODE_121(p) MSGPACK_PP_IIF(p(121), 121, 122)
+# define MSGPACK_PP_NODE_123(p) MSGPACK_PP_IIF(p(123), 123, 124)
+# define MSGPACK_PP_NODE_126(p) MSGPACK_PP_IIF(p(126), MSGPACK_PP_NODE_125, MSGPACK_PP_NODE_127)
+# define MSGPACK_PP_NODE_125(p) MSGPACK_PP_IIF(p(125), 125, 126)
+# define MSGPACK_PP_NODE_127(p) MSGPACK_PP_IIF(p(127), 127, 128)
+# define MSGPACK_PP_NODE_192(p) MSGPACK_PP_IIF(p(192), MSGPACK_PP_NODE_160, MSGPACK_PP_NODE_224)
+# define MSGPACK_PP_NODE_160(p) MSGPACK_PP_IIF(p(160), MSGPACK_PP_NODE_144, MSGPACK_PP_NODE_176)
+# define MSGPACK_PP_NODE_144(p) MSGPACK_PP_IIF(p(144), MSGPACK_PP_NODE_136, MSGPACK_PP_NODE_152)
+# define MSGPACK_PP_NODE_136(p) MSGPACK_PP_IIF(p(136), MSGPACK_PP_NODE_132, MSGPACK_PP_NODE_140)
+# define MSGPACK_PP_NODE_132(p) MSGPACK_PP_IIF(p(132), MSGPACK_PP_NODE_130, MSGPACK_PP_NODE_134)
+# define MSGPACK_PP_NODE_130(p) MSGPACK_PP_IIF(p(130), MSGPACK_PP_NODE_129, MSGPACK_PP_NODE_131)
+# define MSGPACK_PP_NODE_129(p) MSGPACK_PP_IIF(p(129), 129, 130)
+# define MSGPACK_PP_NODE_131(p) MSGPACK_PP_IIF(p(131), 131, 132)
+# define MSGPACK_PP_NODE_134(p) MSGPACK_PP_IIF(p(134), MSGPACK_PP_NODE_133, MSGPACK_PP_NODE_135)
+# define MSGPACK_PP_NODE_133(p) MSGPACK_PP_IIF(p(133), 133, 134)
+# define MSGPACK_PP_NODE_135(p) MSGPACK_PP_IIF(p(135), 135, 136)
+# define MSGPACK_PP_NODE_140(p) MSGPACK_PP_IIF(p(140), MSGPACK_PP_NODE_138, MSGPACK_PP_NODE_142)
+# define MSGPACK_PP_NODE_138(p) MSGPACK_PP_IIF(p(138), MSGPACK_PP_NODE_137, MSGPACK_PP_NODE_139)
+# define MSGPACK_PP_NODE_137(p) MSGPACK_PP_IIF(p(137), 137, 138)
+# define MSGPACK_PP_NODE_139(p) MSGPACK_PP_IIF(p(139), 139, 140)
+# define MSGPACK_PP_NODE_142(p) MSGPACK_PP_IIF(p(142), MSGPACK_PP_NODE_141, MSGPACK_PP_NODE_143)
+# define MSGPACK_PP_NODE_141(p) MSGPACK_PP_IIF(p(141), 141, 142)
+# define MSGPACK_PP_NODE_143(p) MSGPACK_PP_IIF(p(143), 143, 144)
+# define MSGPACK_PP_NODE_152(p) MSGPACK_PP_IIF(p(152), MSGPACK_PP_NODE_148, MSGPACK_PP_NODE_156)
+# define MSGPACK_PP_NODE_148(p) MSGPACK_PP_IIF(p(148), MSGPACK_PP_NODE_146, MSGPACK_PP_NODE_150)
+# define MSGPACK_PP_NODE_146(p) MSGPACK_PP_IIF(p(146), MSGPACK_PP_NODE_145, MSGPACK_PP_NODE_147)
+# define MSGPACK_PP_NODE_145(p) MSGPACK_PP_IIF(p(145), 145, 146)
+# define MSGPACK_PP_NODE_147(p) MSGPACK_PP_IIF(p(147), 147, 148)
+# define MSGPACK_PP_NODE_150(p) MSGPACK_PP_IIF(p(150), MSGPACK_PP_NODE_149, MSGPACK_PP_NODE_151)
+# define MSGPACK_PP_NODE_149(p) MSGPACK_PP_IIF(p(149), 149, 150)
+# define MSGPACK_PP_NODE_151(p) MSGPACK_PP_IIF(p(151), 151, 152)
+# define MSGPACK_PP_NODE_156(p) MSGPACK_PP_IIF(p(156), MSGPACK_PP_NODE_154, MSGPACK_PP_NODE_158)
+# define MSGPACK_PP_NODE_154(p) MSGPACK_PP_IIF(p(154), MSGPACK_PP_NODE_153, MSGPACK_PP_NODE_155)
+# define MSGPACK_PP_NODE_153(p) MSGPACK_PP_IIF(p(153), 153, 154)
+# define MSGPACK_PP_NODE_155(p) MSGPACK_PP_IIF(p(155), 155, 156)
+# define MSGPACK_PP_NODE_158(p) MSGPACK_PP_IIF(p(158), MSGPACK_PP_NODE_157, MSGPACK_PP_NODE_159)
+# define MSGPACK_PP_NODE_157(p) MSGPACK_PP_IIF(p(157), 157, 158)
+# define MSGPACK_PP_NODE_159(p) MSGPACK_PP_IIF(p(159), 159, 160)
+# define MSGPACK_PP_NODE_176(p) MSGPACK_PP_IIF(p(176), MSGPACK_PP_NODE_168, MSGPACK_PP_NODE_184)
+# define MSGPACK_PP_NODE_168(p) MSGPACK_PP_IIF(p(168), MSGPACK_PP_NODE_164, MSGPACK_PP_NODE_172)
+# define MSGPACK_PP_NODE_164(p) MSGPACK_PP_IIF(p(164), MSGPACK_PP_NODE_162, MSGPACK_PP_NODE_166)
+# define MSGPACK_PP_NODE_162(p) MSGPACK_PP_IIF(p(162), MSGPACK_PP_NODE_161, MSGPACK_PP_NODE_163)
+# define MSGPACK_PP_NODE_161(p) MSGPACK_PP_IIF(p(161), 161, 162)
+# define MSGPACK_PP_NODE_163(p) MSGPACK_PP_IIF(p(163), 163, 164)
+# define MSGPACK_PP_NODE_166(p) MSGPACK_PP_IIF(p(166), MSGPACK_PP_NODE_165, MSGPACK_PP_NODE_167)
+# define MSGPACK_PP_NODE_165(p) MSGPACK_PP_IIF(p(165), 165, 166)
+# define MSGPACK_PP_NODE_167(p) MSGPACK_PP_IIF(p(167), 167, 168)
+# define MSGPACK_PP_NODE_172(p) MSGPACK_PP_IIF(p(172), MSGPACK_PP_NODE_170, MSGPACK_PP_NODE_174)
+# define MSGPACK_PP_NODE_170(p) MSGPACK_PP_IIF(p(170), MSGPACK_PP_NODE_169, MSGPACK_PP_NODE_171)
+# define MSGPACK_PP_NODE_169(p) MSGPACK_PP_IIF(p(169), 169, 170)
+# define MSGPACK_PP_NODE_171(p) MSGPACK_PP_IIF(p(171), 171, 172)
+# define MSGPACK_PP_NODE_174(p) MSGPACK_PP_IIF(p(174), MSGPACK_PP_NODE_173, MSGPACK_PP_NODE_175)
+# define MSGPACK_PP_NODE_173(p) MSGPACK_PP_IIF(p(173), 173, 174)
+# define MSGPACK_PP_NODE_175(p) MSGPACK_PP_IIF(p(175), 175, 176)
+# define MSGPACK_PP_NODE_184(p) MSGPACK_PP_IIF(p(184), MSGPACK_PP_NODE_180, MSGPACK_PP_NODE_188)
+# define MSGPACK_PP_NODE_180(p) MSGPACK_PP_IIF(p(180), MSGPACK_PP_NODE_178, MSGPACK_PP_NODE_182)
+# define MSGPACK_PP_NODE_178(p) MSGPACK_PP_IIF(p(178), MSGPACK_PP_NODE_177, MSGPACK_PP_NODE_179)
+# define MSGPACK_PP_NODE_177(p) MSGPACK_PP_IIF(p(177), 177, 178)
+# define MSGPACK_PP_NODE_179(p) MSGPACK_PP_IIF(p(179), 179, 180)
+# define MSGPACK_PP_NODE_182(p) MSGPACK_PP_IIF(p(182), MSGPACK_PP_NODE_181, MSGPACK_PP_NODE_183)
+# define MSGPACK_PP_NODE_181(p) MSGPACK_PP_IIF(p(181), 181, 182)
+# define MSGPACK_PP_NODE_183(p) MSGPACK_PP_IIF(p(183), 183, 184)
+# define MSGPACK_PP_NODE_188(p) MSGPACK_PP_IIF(p(188), MSGPACK_PP_NODE_186, MSGPACK_PP_NODE_190)
+# define MSGPACK_PP_NODE_186(p) MSGPACK_PP_IIF(p(186), MSGPACK_PP_NODE_185, MSGPACK_PP_NODE_187)
+# define MSGPACK_PP_NODE_185(p) MSGPACK_PP_IIF(p(185), 185, 186)
+# define MSGPACK_PP_NODE_187(p) MSGPACK_PP_IIF(p(187), 187, 188)
+# define MSGPACK_PP_NODE_190(p) MSGPACK_PP_IIF(p(190), MSGPACK_PP_NODE_189, MSGPACK_PP_NODE_191)
+# define MSGPACK_PP_NODE_189(p) MSGPACK_PP_IIF(p(189), 189, 190)
+# define MSGPACK_PP_NODE_191(p) MSGPACK_PP_IIF(p(191), 191, 192)
+# define MSGPACK_PP_NODE_224(p) MSGPACK_PP_IIF(p(224), MSGPACK_PP_NODE_208, MSGPACK_PP_NODE_240)
+# define MSGPACK_PP_NODE_208(p) MSGPACK_PP_IIF(p(208), MSGPACK_PP_NODE_200, MSGPACK_PP_NODE_216)
+# define MSGPACK_PP_NODE_200(p) MSGPACK_PP_IIF(p(200), MSGPACK_PP_NODE_196, MSGPACK_PP_NODE_204)
+# define MSGPACK_PP_NODE_196(p) MSGPACK_PP_IIF(p(196), MSGPACK_PP_NODE_194, MSGPACK_PP_NODE_198)
+# define MSGPACK_PP_NODE_194(p) MSGPACK_PP_IIF(p(194), MSGPACK_PP_NODE_193, MSGPACK_PP_NODE_195)
+# define MSGPACK_PP_NODE_193(p) MSGPACK_PP_IIF(p(193), 193, 194)
+# define MSGPACK_PP_NODE_195(p) MSGPACK_PP_IIF(p(195), 195, 196)
+# define MSGPACK_PP_NODE_198(p) MSGPACK_PP_IIF(p(198), MSGPACK_PP_NODE_197, MSGPACK_PP_NODE_199)
+# define MSGPACK_PP_NODE_197(p) MSGPACK_PP_IIF(p(197), 197, 198)
+# define MSGPACK_PP_NODE_199(p) MSGPACK_PP_IIF(p(199), 199, 200)
+# define MSGPACK_PP_NODE_204(p) MSGPACK_PP_IIF(p(204), MSGPACK_PP_NODE_202, MSGPACK_PP_NODE_206)
+# define MSGPACK_PP_NODE_202(p) MSGPACK_PP_IIF(p(202), MSGPACK_PP_NODE_201, MSGPACK_PP_NODE_203)
+# define MSGPACK_PP_NODE_201(p) MSGPACK_PP_IIF(p(201), 201, 202)
+# define MSGPACK_PP_NODE_203(p) MSGPACK_PP_IIF(p(203), 203, 204)
+# define MSGPACK_PP_NODE_206(p) MSGPACK_PP_IIF(p(206), MSGPACK_PP_NODE_205, MSGPACK_PP_NODE_207)
+# define MSGPACK_PP_NODE_205(p) MSGPACK_PP_IIF(p(205), 205, 206)
+# define MSGPACK_PP_NODE_207(p) MSGPACK_PP_IIF(p(207), 207, 208)
+# define MSGPACK_PP_NODE_216(p) MSGPACK_PP_IIF(p(216), MSGPACK_PP_NODE_212, MSGPACK_PP_NODE_220)
+# define MSGPACK_PP_NODE_212(p) MSGPACK_PP_IIF(p(212), MSGPACK_PP_NODE_210, MSGPACK_PP_NODE_214)
+# define MSGPACK_PP_NODE_210(p) MSGPACK_PP_IIF(p(210), MSGPACK_PP_NODE_209, MSGPACK_PP_NODE_211)
+# define MSGPACK_PP_NODE_209(p) MSGPACK_PP_IIF(p(209), 209, 210)
+# define MSGPACK_PP_NODE_211(p) MSGPACK_PP_IIF(p(211), 211, 212)
+# define MSGPACK_PP_NODE_214(p) MSGPACK_PP_IIF(p(214), MSGPACK_PP_NODE_213, MSGPACK_PP_NODE_215)
+# define MSGPACK_PP_NODE_213(p) MSGPACK_PP_IIF(p(213), 213, 214)
+# define MSGPACK_PP_NODE_215(p) MSGPACK_PP_IIF(p(215), 215, 216)
+# define MSGPACK_PP_NODE_220(p) MSGPACK_PP_IIF(p(220), MSGPACK_PP_NODE_218, MSGPACK_PP_NODE_222)
+# define MSGPACK_PP_NODE_218(p) MSGPACK_PP_IIF(p(218), MSGPACK_PP_NODE_217, MSGPACK_PP_NODE_219)
+# define MSGPACK_PP_NODE_217(p) MSGPACK_PP_IIF(p(217), 217, 218)
+# define MSGPACK_PP_NODE_219(p) MSGPACK_PP_IIF(p(219), 219, 220)
+# define MSGPACK_PP_NODE_222(p) MSGPACK_PP_IIF(p(222), MSGPACK_PP_NODE_221, MSGPACK_PP_NODE_223)
+# define MSGPACK_PP_NODE_221(p) MSGPACK_PP_IIF(p(221), 221, 222)
+# define MSGPACK_PP_NODE_223(p) MSGPACK_PP_IIF(p(223), 223, 224)
+# define MSGPACK_PP_NODE_240(p) MSGPACK_PP_IIF(p(240), MSGPACK_PP_NODE_232, MSGPACK_PP_NODE_248)
+# define MSGPACK_PP_NODE_232(p) MSGPACK_PP_IIF(p(232), MSGPACK_PP_NODE_228, MSGPACK_PP_NODE_236)
+# define MSGPACK_PP_NODE_228(p) MSGPACK_PP_IIF(p(228), MSGPACK_PP_NODE_226, MSGPACK_PP_NODE_230)
+# define MSGPACK_PP_NODE_226(p) MSGPACK_PP_IIF(p(226), MSGPACK_PP_NODE_225, MSGPACK_PP_NODE_227)
+# define MSGPACK_PP_NODE_225(p) MSGPACK_PP_IIF(p(225), 225, 226)
+# define MSGPACK_PP_NODE_227(p) MSGPACK_PP_IIF(p(227), 227, 228)
+# define MSGPACK_PP_NODE_230(p) MSGPACK_PP_IIF(p(230), MSGPACK_PP_NODE_229, MSGPACK_PP_NODE_231)
+# define MSGPACK_PP_NODE_229(p) MSGPACK_PP_IIF(p(229), 229, 230)
+# define MSGPACK_PP_NODE_231(p) MSGPACK_PP_IIF(p(231), 231, 232)
+# define MSGPACK_PP_NODE_236(p) MSGPACK_PP_IIF(p(236), MSGPACK_PP_NODE_234, MSGPACK_PP_NODE_238)
+# define MSGPACK_PP_NODE_234(p) MSGPACK_PP_IIF(p(234), MSGPACK_PP_NODE_233, MSGPACK_PP_NODE_235)
+# define MSGPACK_PP_NODE_233(p) MSGPACK_PP_IIF(p(233), 233, 234)
+# define MSGPACK_PP_NODE_235(p) MSGPACK_PP_IIF(p(235), 235, 236)
+# define MSGPACK_PP_NODE_238(p) MSGPACK_PP_IIF(p(238), MSGPACK_PP_NODE_237, MSGPACK_PP_NODE_239)
+# define MSGPACK_PP_NODE_237(p) MSGPACK_PP_IIF(p(237), 237, 238)
+# define MSGPACK_PP_NODE_239(p) MSGPACK_PP_IIF(p(239), 239, 240)
+# define MSGPACK_PP_NODE_248(p) MSGPACK_PP_IIF(p(248), MSGPACK_PP_NODE_244, MSGPACK_PP_NODE_252)
+# define MSGPACK_PP_NODE_244(p) MSGPACK_PP_IIF(p(244), MSGPACK_PP_NODE_242, MSGPACK_PP_NODE_246)
+# define MSGPACK_PP_NODE_242(p) MSGPACK_PP_IIF(p(242), MSGPACK_PP_NODE_241, MSGPACK_PP_NODE_243)
+# define MSGPACK_PP_NODE_241(p) MSGPACK_PP_IIF(p(241), 241, 242)
+# define MSGPACK_PP_NODE_243(p) MSGPACK_PP_IIF(p(243), 243, 244)
+# define MSGPACK_PP_NODE_246(p) MSGPACK_PP_IIF(p(246), MSGPACK_PP_NODE_245, MSGPACK_PP_NODE_247)
+# define MSGPACK_PP_NODE_245(p) MSGPACK_PP_IIF(p(245), 245, 246)
+# define MSGPACK_PP_NODE_247(p) MSGPACK_PP_IIF(p(247), 247, 248)
+# define MSGPACK_PP_NODE_252(p) MSGPACK_PP_IIF(p(252), MSGPACK_PP_NODE_250, MSGPACK_PP_NODE_254)
+# define MSGPACK_PP_NODE_250(p) MSGPACK_PP_IIF(p(250), MSGPACK_PP_NODE_249, MSGPACK_PP_NODE_251)
+# define MSGPACK_PP_NODE_249(p) MSGPACK_PP_IIF(p(249), 249, 250)
+# define MSGPACK_PP_NODE_251(p) MSGPACK_PP_IIF(p(251), 251, 252)
+# define MSGPACK_PP_NODE_254(p) MSGPACK_PP_IIF(p(254), MSGPACK_PP_NODE_253, MSGPACK_PP_NODE_255)
+# define MSGPACK_PP_NODE_253(p) MSGPACK_PP_IIF(p(253), 253, 254)
+# define MSGPACK_PP_NODE_255(p) MSGPACK_PP_IIF(p(255), 255, 256)
+#
+# endif
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/check.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/check.hpp
new file mode 100644
index 000000000..126d7c136
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/check.hpp
@@ -0,0 +1,48 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_CHECK_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_CHECK_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_CHECK */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_CHECK(x, type) MSGPACK_PP_CHECK_D(x, type)
+# else
+# define MSGPACK_PP_CHECK(x, type) MSGPACK_PP_CHECK_OO((x, type))
+# define MSGPACK_PP_CHECK_OO(par) MSGPACK_PP_CHECK_D ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# define MSGPACK_PP_CHECK_D(x, type) MSGPACK_PP_CHECK_1(MSGPACK_PP_CAT(MSGPACK_PP_CHECK_RESULT_, type x))
+# define MSGPACK_PP_CHECK_1(chk) MSGPACK_PP_CHECK_2(chk)
+# define MSGPACK_PP_CHECK_2(res, _) res
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_CHECK_D(x, type) MSGPACK_PP_CHECK_1(type x)
+# define MSGPACK_PP_CHECK_1(chk) MSGPACK_PP_CHECK_2(chk)
+# define MSGPACK_PP_CHECK_2(chk) MSGPACK_PP_CHECK_3((MSGPACK_PP_CHECK_RESULT_ ## chk))
+# define MSGPACK_PP_CHECK_3(im) MSGPACK_PP_CHECK_5(MSGPACK_PP_CHECK_4 im)
+# define MSGPACK_PP_CHECK_4(res, _) res
+# define MSGPACK_PP_CHECK_5(res) res
+# else /* DMC */
+# define MSGPACK_PP_CHECK_D(x, type) MSGPACK_PP_CHECK_OO((type x))
+# define MSGPACK_PP_CHECK_OO(par) MSGPACK_PP_CHECK_0 ## par
+# define MSGPACK_PP_CHECK_0(chk) MSGPACK_PP_CHECK_1(MSGPACK_PP_CAT(MSGPACK_PP_CHECK_RESULT_, chk))
+# define MSGPACK_PP_CHECK_1(chk) MSGPACK_PP_CHECK_2(chk)
+# define MSGPACK_PP_CHECK_2(res, _) res
+# endif
+#
+# define MSGPACK_PP_CHECK_RESULT_1 1, MSGPACK_PP_NIL
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/dmc/auto_rec.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/dmc/auto_rec.hpp
new file mode 100644
index 000000000..671c9f08c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/dmc/auto_rec.hpp
@@ -0,0 +1,286 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_AUTO_REC_HPP
+#
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+#
+# /* MSGPACK_PP_AUTO_REC */
+#
+# define MSGPACK_PP_AUTO_REC(pred, n) MSGPACK_PP_NODE_ENTRY_ ## n(pred)
+#
+# define MSGPACK_PP_NODE_ENTRY_256(p) MSGPACK_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_128(p) MSGPACK_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_64(p) MSGPACK_PP_NODE_32(p)(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_32(p) MSGPACK_PP_NODE_16(p)(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_16(p) MSGPACK_PP_NODE_8(p)(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_8(p) MSGPACK_PP_NODE_4(p)(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_4(p) MSGPACK_PP_NODE_2(p)(p)
+# define MSGPACK_PP_NODE_ENTRY_2(p) MSGPACK_PP_NODE_1(p)
+#
+# define MSGPACK_PP_NODE_128(p) MSGPACK_PP_IIF(p##(128), MSGPACK_PP_NODE_64, MSGPACK_PP_NODE_192)
+# define MSGPACK_PP_NODE_64(p) MSGPACK_PP_IIF(p##(64), MSGPACK_PP_NODE_32, MSGPACK_PP_NODE_96)
+# define MSGPACK_PP_NODE_32(p) MSGPACK_PP_IIF(p##(32), MSGPACK_PP_NODE_16, MSGPACK_PP_NODE_48)
+# define MSGPACK_PP_NODE_16(p) MSGPACK_PP_IIF(p##(16), MSGPACK_PP_NODE_8, MSGPACK_PP_NODE_24)
+# define MSGPACK_PP_NODE_8(p) MSGPACK_PP_IIF(p##(8), MSGPACK_PP_NODE_4, MSGPACK_PP_NODE_12)
+# define MSGPACK_PP_NODE_4(p) MSGPACK_PP_IIF(p##(4), MSGPACK_PP_NODE_2, MSGPACK_PP_NODE_6)
+# define MSGPACK_PP_NODE_2(p) MSGPACK_PP_IIF(p##(2), MSGPACK_PP_NODE_1, MSGPACK_PP_NODE_3)
+# define MSGPACK_PP_NODE_1(p) MSGPACK_PP_IIF(p##(1), 1, 2)
+# define MSGPACK_PP_NODE_3(p) MSGPACK_PP_IIF(p##(3), 3, 4)
+# define MSGPACK_PP_NODE_6(p) MSGPACK_PP_IIF(p##(6), MSGPACK_PP_NODE_5, MSGPACK_PP_NODE_7)
+# define MSGPACK_PP_NODE_5(p) MSGPACK_PP_IIF(p##(5), 5, 6)
+# define MSGPACK_PP_NODE_7(p) MSGPACK_PP_IIF(p##(7), 7, 8)
+# define MSGPACK_PP_NODE_12(p) MSGPACK_PP_IIF(p##(12), MSGPACK_PP_NODE_10, MSGPACK_PP_NODE_14)
+# define MSGPACK_PP_NODE_10(p) MSGPACK_PP_IIF(p##(10), MSGPACK_PP_NODE_9, MSGPACK_PP_NODE_11)
+# define MSGPACK_PP_NODE_9(p) MSGPACK_PP_IIF(p##(9), 9, 10)
+# define MSGPACK_PP_NODE_11(p) MSGPACK_PP_IIF(p##(11), 11, 12)
+# define MSGPACK_PP_NODE_14(p) MSGPACK_PP_IIF(p##(14), MSGPACK_PP_NODE_13, MSGPACK_PP_NODE_15)
+# define MSGPACK_PP_NODE_13(p) MSGPACK_PP_IIF(p##(13), 13, 14)
+# define MSGPACK_PP_NODE_15(p) MSGPACK_PP_IIF(p##(15), 15, 16)
+# define MSGPACK_PP_NODE_24(p) MSGPACK_PP_IIF(p##(24), MSGPACK_PP_NODE_20, MSGPACK_PP_NODE_28)
+# define MSGPACK_PP_NODE_20(p) MSGPACK_PP_IIF(p##(20), MSGPACK_PP_NODE_18, MSGPACK_PP_NODE_22)
+# define MSGPACK_PP_NODE_18(p) MSGPACK_PP_IIF(p##(18), MSGPACK_PP_NODE_17, MSGPACK_PP_NODE_19)
+# define MSGPACK_PP_NODE_17(p) MSGPACK_PP_IIF(p##(17), 17, 18)
+# define MSGPACK_PP_NODE_19(p) MSGPACK_PP_IIF(p##(19), 19, 20)
+# define MSGPACK_PP_NODE_22(p) MSGPACK_PP_IIF(p##(22), MSGPACK_PP_NODE_21, MSGPACK_PP_NODE_23)
+# define MSGPACK_PP_NODE_21(p) MSGPACK_PP_IIF(p##(21), 21, 22)
+# define MSGPACK_PP_NODE_23(p) MSGPACK_PP_IIF(p##(23), 23, 24)
+# define MSGPACK_PP_NODE_28(p) MSGPACK_PP_IIF(p##(28), MSGPACK_PP_NODE_26, MSGPACK_PP_NODE_30)
+# define MSGPACK_PP_NODE_26(p) MSGPACK_PP_IIF(p##(26), MSGPACK_PP_NODE_25, MSGPACK_PP_NODE_27)
+# define MSGPACK_PP_NODE_25(p) MSGPACK_PP_IIF(p##(25), 25, 26)
+# define MSGPACK_PP_NODE_27(p) MSGPACK_PP_IIF(p##(27), 27, 28)
+# define MSGPACK_PP_NODE_30(p) MSGPACK_PP_IIF(p##(30), MSGPACK_PP_NODE_29, MSGPACK_PP_NODE_31)
+# define MSGPACK_PP_NODE_29(p) MSGPACK_PP_IIF(p##(29), 29, 30)
+# define MSGPACK_PP_NODE_31(p) MSGPACK_PP_IIF(p##(31), 31, 32)
+# define MSGPACK_PP_NODE_48(p) MSGPACK_PP_IIF(p##(48), MSGPACK_PP_NODE_40, MSGPACK_PP_NODE_56)
+# define MSGPACK_PP_NODE_40(p) MSGPACK_PP_IIF(p##(40), MSGPACK_PP_NODE_36, MSGPACK_PP_NODE_44)
+# define MSGPACK_PP_NODE_36(p) MSGPACK_PP_IIF(p##(36), MSGPACK_PP_NODE_34, MSGPACK_PP_NODE_38)
+# define MSGPACK_PP_NODE_34(p) MSGPACK_PP_IIF(p##(34), MSGPACK_PP_NODE_33, MSGPACK_PP_NODE_35)
+# define MSGPACK_PP_NODE_33(p) MSGPACK_PP_IIF(p##(33), 33, 34)
+# define MSGPACK_PP_NODE_35(p) MSGPACK_PP_IIF(p##(35), 35, 36)
+# define MSGPACK_PP_NODE_38(p) MSGPACK_PP_IIF(p##(38), MSGPACK_PP_NODE_37, MSGPACK_PP_NODE_39)
+# define MSGPACK_PP_NODE_37(p) MSGPACK_PP_IIF(p##(37), 37, 38)
+# define MSGPACK_PP_NODE_39(p) MSGPACK_PP_IIF(p##(39), 39, 40)
+# define MSGPACK_PP_NODE_44(p) MSGPACK_PP_IIF(p##(44), MSGPACK_PP_NODE_42, MSGPACK_PP_NODE_46)
+# define MSGPACK_PP_NODE_42(p) MSGPACK_PP_IIF(p##(42), MSGPACK_PP_NODE_41, MSGPACK_PP_NODE_43)
+# define MSGPACK_PP_NODE_41(p) MSGPACK_PP_IIF(p##(41), 41, 42)
+# define MSGPACK_PP_NODE_43(p) MSGPACK_PP_IIF(p##(43), 43, 44)
+# define MSGPACK_PP_NODE_46(p) MSGPACK_PP_IIF(p##(46), MSGPACK_PP_NODE_45, MSGPACK_PP_NODE_47)
+# define MSGPACK_PP_NODE_45(p) MSGPACK_PP_IIF(p##(45), 45, 46)
+# define MSGPACK_PP_NODE_47(p) MSGPACK_PP_IIF(p##(47), 47, 48)
+# define MSGPACK_PP_NODE_56(p) MSGPACK_PP_IIF(p##(56), MSGPACK_PP_NODE_52, MSGPACK_PP_NODE_60)
+# define MSGPACK_PP_NODE_52(p) MSGPACK_PP_IIF(p##(52), MSGPACK_PP_NODE_50, MSGPACK_PP_NODE_54)
+# define MSGPACK_PP_NODE_50(p) MSGPACK_PP_IIF(p##(50), MSGPACK_PP_NODE_49, MSGPACK_PP_NODE_51)
+# define MSGPACK_PP_NODE_49(p) MSGPACK_PP_IIF(p##(49), 49, 50)
+# define MSGPACK_PP_NODE_51(p) MSGPACK_PP_IIF(p##(51), 51, 52)
+# define MSGPACK_PP_NODE_54(p) MSGPACK_PP_IIF(p##(54), MSGPACK_PP_NODE_53, MSGPACK_PP_NODE_55)
+# define MSGPACK_PP_NODE_53(p) MSGPACK_PP_IIF(p##(53), 53, 54)
+# define MSGPACK_PP_NODE_55(p) MSGPACK_PP_IIF(p##(55), 55, 56)
+# define MSGPACK_PP_NODE_60(p) MSGPACK_PP_IIF(p##(60), MSGPACK_PP_NODE_58, MSGPACK_PP_NODE_62)
+# define MSGPACK_PP_NODE_58(p) MSGPACK_PP_IIF(p##(58), MSGPACK_PP_NODE_57, MSGPACK_PP_NODE_59)
+# define MSGPACK_PP_NODE_57(p) MSGPACK_PP_IIF(p##(57), 57, 58)
+# define MSGPACK_PP_NODE_59(p) MSGPACK_PP_IIF(p##(59), 59, 60)
+# define MSGPACK_PP_NODE_62(p) MSGPACK_PP_IIF(p##(62), MSGPACK_PP_NODE_61, MSGPACK_PP_NODE_63)
+# define MSGPACK_PP_NODE_61(p) MSGPACK_PP_IIF(p##(61), 61, 62)
+# define MSGPACK_PP_NODE_63(p) MSGPACK_PP_IIF(p##(63), 63, 64)
+# define MSGPACK_PP_NODE_96(p) MSGPACK_PP_IIF(p##(96), MSGPACK_PP_NODE_80, MSGPACK_PP_NODE_112)
+# define MSGPACK_PP_NODE_80(p) MSGPACK_PP_IIF(p##(80), MSGPACK_PP_NODE_72, MSGPACK_PP_NODE_88)
+# define MSGPACK_PP_NODE_72(p) MSGPACK_PP_IIF(p##(72), MSGPACK_PP_NODE_68, MSGPACK_PP_NODE_76)
+# define MSGPACK_PP_NODE_68(p) MSGPACK_PP_IIF(p##(68), MSGPACK_PP_NODE_66, MSGPACK_PP_NODE_70)
+# define MSGPACK_PP_NODE_66(p) MSGPACK_PP_IIF(p##(66), MSGPACK_PP_NODE_65, MSGPACK_PP_NODE_67)
+# define MSGPACK_PP_NODE_65(p) MSGPACK_PP_IIF(p##(65), 65, 66)
+# define MSGPACK_PP_NODE_67(p) MSGPACK_PP_IIF(p##(67), 67, 68)
+# define MSGPACK_PP_NODE_70(p) MSGPACK_PP_IIF(p##(70), MSGPACK_PP_NODE_69, MSGPACK_PP_NODE_71)
+# define MSGPACK_PP_NODE_69(p) MSGPACK_PP_IIF(p##(69), 69, 70)
+# define MSGPACK_PP_NODE_71(p) MSGPACK_PP_IIF(p##(71), 71, 72)
+# define MSGPACK_PP_NODE_76(p) MSGPACK_PP_IIF(p##(76), MSGPACK_PP_NODE_74, MSGPACK_PP_NODE_78)
+# define MSGPACK_PP_NODE_74(p) MSGPACK_PP_IIF(p##(74), MSGPACK_PP_NODE_73, MSGPACK_PP_NODE_75)
+# define MSGPACK_PP_NODE_73(p) MSGPACK_PP_IIF(p##(73), 73, 74)
+# define MSGPACK_PP_NODE_75(p) MSGPACK_PP_IIF(p##(75), 75, 76)
+# define MSGPACK_PP_NODE_78(p) MSGPACK_PP_IIF(p##(78), MSGPACK_PP_NODE_77, MSGPACK_PP_NODE_79)
+# define MSGPACK_PP_NODE_77(p) MSGPACK_PP_IIF(p##(77), 77, 78)
+# define MSGPACK_PP_NODE_79(p) MSGPACK_PP_IIF(p##(79), 79, 80)
+# define MSGPACK_PP_NODE_88(p) MSGPACK_PP_IIF(p##(88), MSGPACK_PP_NODE_84, MSGPACK_PP_NODE_92)
+# define MSGPACK_PP_NODE_84(p) MSGPACK_PP_IIF(p##(84), MSGPACK_PP_NODE_82, MSGPACK_PP_NODE_86)
+# define MSGPACK_PP_NODE_82(p) MSGPACK_PP_IIF(p##(82), MSGPACK_PP_NODE_81, MSGPACK_PP_NODE_83)
+# define MSGPACK_PP_NODE_81(p) MSGPACK_PP_IIF(p##(81), 81, 82)
+# define MSGPACK_PP_NODE_83(p) MSGPACK_PP_IIF(p##(83), 83, 84)
+# define MSGPACK_PP_NODE_86(p) MSGPACK_PP_IIF(p##(86), MSGPACK_PP_NODE_85, MSGPACK_PP_NODE_87)
+# define MSGPACK_PP_NODE_85(p) MSGPACK_PP_IIF(p##(85), 85, 86)
+# define MSGPACK_PP_NODE_87(p) MSGPACK_PP_IIF(p##(87), 87, 88)
+# define MSGPACK_PP_NODE_92(p) MSGPACK_PP_IIF(p##(92), MSGPACK_PP_NODE_90, MSGPACK_PP_NODE_94)
+# define MSGPACK_PP_NODE_90(p) MSGPACK_PP_IIF(p##(90), MSGPACK_PP_NODE_89, MSGPACK_PP_NODE_91)
+# define MSGPACK_PP_NODE_89(p) MSGPACK_PP_IIF(p##(89), 89, 90)
+# define MSGPACK_PP_NODE_91(p) MSGPACK_PP_IIF(p##(91), 91, 92)
+# define MSGPACK_PP_NODE_94(p) MSGPACK_PP_IIF(p##(94), MSGPACK_PP_NODE_93, MSGPACK_PP_NODE_95)
+# define MSGPACK_PP_NODE_93(p) MSGPACK_PP_IIF(p##(93), 93, 94)
+# define MSGPACK_PP_NODE_95(p) MSGPACK_PP_IIF(p##(95), 95, 96)
+# define MSGPACK_PP_NODE_112(p) MSGPACK_PP_IIF(p##(112), MSGPACK_PP_NODE_104, MSGPACK_PP_NODE_120)
+# define MSGPACK_PP_NODE_104(p) MSGPACK_PP_IIF(p##(104), MSGPACK_PP_NODE_100, MSGPACK_PP_NODE_108)
+# define MSGPACK_PP_NODE_100(p) MSGPACK_PP_IIF(p##(100), MSGPACK_PP_NODE_98, MSGPACK_PP_NODE_102)
+# define MSGPACK_PP_NODE_98(p) MSGPACK_PP_IIF(p##(98), MSGPACK_PP_NODE_97, MSGPACK_PP_NODE_99)
+# define MSGPACK_PP_NODE_97(p) MSGPACK_PP_IIF(p##(97), 97, 98)
+# define MSGPACK_PP_NODE_99(p) MSGPACK_PP_IIF(p##(99), 99, 100)
+# define MSGPACK_PP_NODE_102(p) MSGPACK_PP_IIF(p##(102), MSGPACK_PP_NODE_101, MSGPACK_PP_NODE_103)
+# define MSGPACK_PP_NODE_101(p) MSGPACK_PP_IIF(p##(101), 101, 102)
+# define MSGPACK_PP_NODE_103(p) MSGPACK_PP_IIF(p##(103), 103, 104)
+# define MSGPACK_PP_NODE_108(p) MSGPACK_PP_IIF(p##(108), MSGPACK_PP_NODE_106, MSGPACK_PP_NODE_110)
+# define MSGPACK_PP_NODE_106(p) MSGPACK_PP_IIF(p##(106), MSGPACK_PP_NODE_105, MSGPACK_PP_NODE_107)
+# define MSGPACK_PP_NODE_105(p) MSGPACK_PP_IIF(p##(105), 105, 106)
+# define MSGPACK_PP_NODE_107(p) MSGPACK_PP_IIF(p##(107), 107, 108)
+# define MSGPACK_PP_NODE_110(p) MSGPACK_PP_IIF(p##(110), MSGPACK_PP_NODE_109, MSGPACK_PP_NODE_111)
+# define MSGPACK_PP_NODE_109(p) MSGPACK_PP_IIF(p##(109), 109, 110)
+# define MSGPACK_PP_NODE_111(p) MSGPACK_PP_IIF(p##(111), 111, 112)
+# define MSGPACK_PP_NODE_120(p) MSGPACK_PP_IIF(p##(120), MSGPACK_PP_NODE_116, MSGPACK_PP_NODE_124)
+# define MSGPACK_PP_NODE_116(p) MSGPACK_PP_IIF(p##(116), MSGPACK_PP_NODE_114, MSGPACK_PP_NODE_118)
+# define MSGPACK_PP_NODE_114(p) MSGPACK_PP_IIF(p##(114), MSGPACK_PP_NODE_113, MSGPACK_PP_NODE_115)
+# define MSGPACK_PP_NODE_113(p) MSGPACK_PP_IIF(p##(113), 113, 114)
+# define MSGPACK_PP_NODE_115(p) MSGPACK_PP_IIF(p##(115), 115, 116)
+# define MSGPACK_PP_NODE_118(p) MSGPACK_PP_IIF(p##(118), MSGPACK_PP_NODE_117, MSGPACK_PP_NODE_119)
+# define MSGPACK_PP_NODE_117(p) MSGPACK_PP_IIF(p##(117), 117, 118)
+# define MSGPACK_PP_NODE_119(p) MSGPACK_PP_IIF(p##(119), 119, 120)
+# define MSGPACK_PP_NODE_124(p) MSGPACK_PP_IIF(p##(124), MSGPACK_PP_NODE_122, MSGPACK_PP_NODE_126)
+# define MSGPACK_PP_NODE_122(p) MSGPACK_PP_IIF(p##(122), MSGPACK_PP_NODE_121, MSGPACK_PP_NODE_123)
+# define MSGPACK_PP_NODE_121(p) MSGPACK_PP_IIF(p##(121), 121, 122)
+# define MSGPACK_PP_NODE_123(p) MSGPACK_PP_IIF(p##(123), 123, 124)
+# define MSGPACK_PP_NODE_126(p) MSGPACK_PP_IIF(p##(126), MSGPACK_PP_NODE_125, MSGPACK_PP_NODE_127)
+# define MSGPACK_PP_NODE_125(p) MSGPACK_PP_IIF(p##(125), 125, 126)
+# define MSGPACK_PP_NODE_127(p) MSGPACK_PP_IIF(p##(127), 127, 128)
+# define MSGPACK_PP_NODE_192(p) MSGPACK_PP_IIF(p##(192), MSGPACK_PP_NODE_160, MSGPACK_PP_NODE_224)
+# define MSGPACK_PP_NODE_160(p) MSGPACK_PP_IIF(p##(160), MSGPACK_PP_NODE_144, MSGPACK_PP_NODE_176)
+# define MSGPACK_PP_NODE_144(p) MSGPACK_PP_IIF(p##(144), MSGPACK_PP_NODE_136, MSGPACK_PP_NODE_152)
+# define MSGPACK_PP_NODE_136(p) MSGPACK_PP_IIF(p##(136), MSGPACK_PP_NODE_132, MSGPACK_PP_NODE_140)
+# define MSGPACK_PP_NODE_132(p) MSGPACK_PP_IIF(p##(132), MSGPACK_PP_NODE_130, MSGPACK_PP_NODE_134)
+# define MSGPACK_PP_NODE_130(p) MSGPACK_PP_IIF(p##(130), MSGPACK_PP_NODE_129, MSGPACK_PP_NODE_131)
+# define MSGPACK_PP_NODE_129(p) MSGPACK_PP_IIF(p##(129), 129, 130)
+# define MSGPACK_PP_NODE_131(p) MSGPACK_PP_IIF(p##(131), 131, 132)
+# define MSGPACK_PP_NODE_134(p) MSGPACK_PP_IIF(p##(134), MSGPACK_PP_NODE_133, MSGPACK_PP_NODE_135)
+# define MSGPACK_PP_NODE_133(p) MSGPACK_PP_IIF(p##(133), 133, 134)
+# define MSGPACK_PP_NODE_135(p) MSGPACK_PP_IIF(p##(135), 135, 136)
+# define MSGPACK_PP_NODE_140(p) MSGPACK_PP_IIF(p##(140), MSGPACK_PP_NODE_138, MSGPACK_PP_NODE_142)
+# define MSGPACK_PP_NODE_138(p) MSGPACK_PP_IIF(p##(138), MSGPACK_PP_NODE_137, MSGPACK_PP_NODE_139)
+# define MSGPACK_PP_NODE_137(p) MSGPACK_PP_IIF(p##(137), 137, 138)
+# define MSGPACK_PP_NODE_139(p) MSGPACK_PP_IIF(p##(139), 139, 140)
+# define MSGPACK_PP_NODE_142(p) MSGPACK_PP_IIF(p##(142), MSGPACK_PP_NODE_141, MSGPACK_PP_NODE_143)
+# define MSGPACK_PP_NODE_141(p) MSGPACK_PP_IIF(p##(141), 141, 142)
+# define MSGPACK_PP_NODE_143(p) MSGPACK_PP_IIF(p##(143), 143, 144)
+# define MSGPACK_PP_NODE_152(p) MSGPACK_PP_IIF(p##(152), MSGPACK_PP_NODE_148, MSGPACK_PP_NODE_156)
+# define MSGPACK_PP_NODE_148(p) MSGPACK_PP_IIF(p##(148), MSGPACK_PP_NODE_146, MSGPACK_PP_NODE_150)
+# define MSGPACK_PP_NODE_146(p) MSGPACK_PP_IIF(p##(146), MSGPACK_PP_NODE_145, MSGPACK_PP_NODE_147)
+# define MSGPACK_PP_NODE_145(p) MSGPACK_PP_IIF(p##(145), 145, 146)
+# define MSGPACK_PP_NODE_147(p) MSGPACK_PP_IIF(p##(147), 147, 148)
+# define MSGPACK_PP_NODE_150(p) MSGPACK_PP_IIF(p##(150), MSGPACK_PP_NODE_149, MSGPACK_PP_NODE_151)
+# define MSGPACK_PP_NODE_149(p) MSGPACK_PP_IIF(p##(149), 149, 150)
+# define MSGPACK_PP_NODE_151(p) MSGPACK_PP_IIF(p##(151), 151, 152)
+# define MSGPACK_PP_NODE_156(p) MSGPACK_PP_IIF(p##(156), MSGPACK_PP_NODE_154, MSGPACK_PP_NODE_158)
+# define MSGPACK_PP_NODE_154(p) MSGPACK_PP_IIF(p##(154), MSGPACK_PP_NODE_153, MSGPACK_PP_NODE_155)
+# define MSGPACK_PP_NODE_153(p) MSGPACK_PP_IIF(p##(153), 153, 154)
+# define MSGPACK_PP_NODE_155(p) MSGPACK_PP_IIF(p##(155), 155, 156)
+# define MSGPACK_PP_NODE_158(p) MSGPACK_PP_IIF(p##(158), MSGPACK_PP_NODE_157, MSGPACK_PP_NODE_159)
+# define MSGPACK_PP_NODE_157(p) MSGPACK_PP_IIF(p##(157), 157, 158)
+# define MSGPACK_PP_NODE_159(p) MSGPACK_PP_IIF(p##(159), 159, 160)
+# define MSGPACK_PP_NODE_176(p) MSGPACK_PP_IIF(p##(176), MSGPACK_PP_NODE_168, MSGPACK_PP_NODE_184)
+# define MSGPACK_PP_NODE_168(p) MSGPACK_PP_IIF(p##(168), MSGPACK_PP_NODE_164, MSGPACK_PP_NODE_172)
+# define MSGPACK_PP_NODE_164(p) MSGPACK_PP_IIF(p##(164), MSGPACK_PP_NODE_162, MSGPACK_PP_NODE_166)
+# define MSGPACK_PP_NODE_162(p) MSGPACK_PP_IIF(p##(162), MSGPACK_PP_NODE_161, MSGPACK_PP_NODE_163)
+# define MSGPACK_PP_NODE_161(p) MSGPACK_PP_IIF(p##(161), 161, 162)
+# define MSGPACK_PP_NODE_163(p) MSGPACK_PP_IIF(p##(163), 163, 164)
+# define MSGPACK_PP_NODE_166(p) MSGPACK_PP_IIF(p##(166), MSGPACK_PP_NODE_165, MSGPACK_PP_NODE_167)
+# define MSGPACK_PP_NODE_165(p) MSGPACK_PP_IIF(p##(165), 165, 166)
+# define MSGPACK_PP_NODE_167(p) MSGPACK_PP_IIF(p##(167), 167, 168)
+# define MSGPACK_PP_NODE_172(p) MSGPACK_PP_IIF(p##(172), MSGPACK_PP_NODE_170, MSGPACK_PP_NODE_174)
+# define MSGPACK_PP_NODE_170(p) MSGPACK_PP_IIF(p##(170), MSGPACK_PP_NODE_169, MSGPACK_PP_NODE_171)
+# define MSGPACK_PP_NODE_169(p) MSGPACK_PP_IIF(p##(169), 169, 170)
+# define MSGPACK_PP_NODE_171(p) MSGPACK_PP_IIF(p##(171), 171, 172)
+# define MSGPACK_PP_NODE_174(p) MSGPACK_PP_IIF(p##(174), MSGPACK_PP_NODE_173, MSGPACK_PP_NODE_175)
+# define MSGPACK_PP_NODE_173(p) MSGPACK_PP_IIF(p##(173), 173, 174)
+# define MSGPACK_PP_NODE_175(p) MSGPACK_PP_IIF(p##(175), 175, 176)
+# define MSGPACK_PP_NODE_184(p) MSGPACK_PP_IIF(p##(184), MSGPACK_PP_NODE_180, MSGPACK_PP_NODE_188)
+# define MSGPACK_PP_NODE_180(p) MSGPACK_PP_IIF(p##(180), MSGPACK_PP_NODE_178, MSGPACK_PP_NODE_182)
+# define MSGPACK_PP_NODE_178(p) MSGPACK_PP_IIF(p##(178), MSGPACK_PP_NODE_177, MSGPACK_PP_NODE_179)
+# define MSGPACK_PP_NODE_177(p) MSGPACK_PP_IIF(p##(177), 177, 178)
+# define MSGPACK_PP_NODE_179(p) MSGPACK_PP_IIF(p##(179), 179, 180)
+# define MSGPACK_PP_NODE_182(p) MSGPACK_PP_IIF(p##(182), MSGPACK_PP_NODE_181, MSGPACK_PP_NODE_183)
+# define MSGPACK_PP_NODE_181(p) MSGPACK_PP_IIF(p##(181), 181, 182)
+# define MSGPACK_PP_NODE_183(p) MSGPACK_PP_IIF(p##(183), 183, 184)
+# define MSGPACK_PP_NODE_188(p) MSGPACK_PP_IIF(p##(188), MSGPACK_PP_NODE_186, MSGPACK_PP_NODE_190)
+# define MSGPACK_PP_NODE_186(p) MSGPACK_PP_IIF(p##(186), MSGPACK_PP_NODE_185, MSGPACK_PP_NODE_187)
+# define MSGPACK_PP_NODE_185(p) MSGPACK_PP_IIF(p##(185), 185, 186)
+# define MSGPACK_PP_NODE_187(p) MSGPACK_PP_IIF(p##(187), 187, 188)
+# define MSGPACK_PP_NODE_190(p) MSGPACK_PP_IIF(p##(190), MSGPACK_PP_NODE_189, MSGPACK_PP_NODE_191)
+# define MSGPACK_PP_NODE_189(p) MSGPACK_PP_IIF(p##(189), 189, 190)
+# define MSGPACK_PP_NODE_191(p) MSGPACK_PP_IIF(p##(191), 191, 192)
+# define MSGPACK_PP_NODE_224(p) MSGPACK_PP_IIF(p##(224), MSGPACK_PP_NODE_208, MSGPACK_PP_NODE_240)
+# define MSGPACK_PP_NODE_208(p) MSGPACK_PP_IIF(p##(208), MSGPACK_PP_NODE_200, MSGPACK_PP_NODE_216)
+# define MSGPACK_PP_NODE_200(p) MSGPACK_PP_IIF(p##(200), MSGPACK_PP_NODE_196, MSGPACK_PP_NODE_204)
+# define MSGPACK_PP_NODE_196(p) MSGPACK_PP_IIF(p##(196), MSGPACK_PP_NODE_194, MSGPACK_PP_NODE_198)
+# define MSGPACK_PP_NODE_194(p) MSGPACK_PP_IIF(p##(194), MSGPACK_PP_NODE_193, MSGPACK_PP_NODE_195)
+# define MSGPACK_PP_NODE_193(p) MSGPACK_PP_IIF(p##(193), 193, 194)
+# define MSGPACK_PP_NODE_195(p) MSGPACK_PP_IIF(p##(195), 195, 196)
+# define MSGPACK_PP_NODE_198(p) MSGPACK_PP_IIF(p##(198), MSGPACK_PP_NODE_197, MSGPACK_PP_NODE_199)
+# define MSGPACK_PP_NODE_197(p) MSGPACK_PP_IIF(p##(197), 197, 198)
+# define MSGPACK_PP_NODE_199(p) MSGPACK_PP_IIF(p##(199), 199, 200)
+# define MSGPACK_PP_NODE_204(p) MSGPACK_PP_IIF(p##(204), MSGPACK_PP_NODE_202, MSGPACK_PP_NODE_206)
+# define MSGPACK_PP_NODE_202(p) MSGPACK_PP_IIF(p##(202), MSGPACK_PP_NODE_201, MSGPACK_PP_NODE_203)
+# define MSGPACK_PP_NODE_201(p) MSGPACK_PP_IIF(p##(201), 201, 202)
+# define MSGPACK_PP_NODE_203(p) MSGPACK_PP_IIF(p##(203), 203, 204)
+# define MSGPACK_PP_NODE_206(p) MSGPACK_PP_IIF(p##(206), MSGPACK_PP_NODE_205, MSGPACK_PP_NODE_207)
+# define MSGPACK_PP_NODE_205(p) MSGPACK_PP_IIF(p##(205), 205, 206)
+# define MSGPACK_PP_NODE_207(p) MSGPACK_PP_IIF(p##(207), 207, 208)
+# define MSGPACK_PP_NODE_216(p) MSGPACK_PP_IIF(p##(216), MSGPACK_PP_NODE_212, MSGPACK_PP_NODE_220)
+# define MSGPACK_PP_NODE_212(p) MSGPACK_PP_IIF(p##(212), MSGPACK_PP_NODE_210, MSGPACK_PP_NODE_214)
+# define MSGPACK_PP_NODE_210(p) MSGPACK_PP_IIF(p##(210), MSGPACK_PP_NODE_209, MSGPACK_PP_NODE_211)
+# define MSGPACK_PP_NODE_209(p) MSGPACK_PP_IIF(p##(209), 209, 210)
+# define MSGPACK_PP_NODE_211(p) MSGPACK_PP_IIF(p##(211), 211, 212)
+# define MSGPACK_PP_NODE_214(p) MSGPACK_PP_IIF(p##(214), MSGPACK_PP_NODE_213, MSGPACK_PP_NODE_215)
+# define MSGPACK_PP_NODE_213(p) MSGPACK_PP_IIF(p##(213), 213, 214)
+# define MSGPACK_PP_NODE_215(p) MSGPACK_PP_IIF(p##(215), 215, 216)
+# define MSGPACK_PP_NODE_220(p) MSGPACK_PP_IIF(p##(220), MSGPACK_PP_NODE_218, MSGPACK_PP_NODE_222)
+# define MSGPACK_PP_NODE_218(p) MSGPACK_PP_IIF(p##(218), MSGPACK_PP_NODE_217, MSGPACK_PP_NODE_219)
+# define MSGPACK_PP_NODE_217(p) MSGPACK_PP_IIF(p##(217), 217, 218)
+# define MSGPACK_PP_NODE_219(p) MSGPACK_PP_IIF(p##(219), 219, 220)
+# define MSGPACK_PP_NODE_222(p) MSGPACK_PP_IIF(p##(222), MSGPACK_PP_NODE_221, MSGPACK_PP_NODE_223)
+# define MSGPACK_PP_NODE_221(p) MSGPACK_PP_IIF(p##(221), 221, 222)
+# define MSGPACK_PP_NODE_223(p) MSGPACK_PP_IIF(p##(223), 223, 224)
+# define MSGPACK_PP_NODE_240(p) MSGPACK_PP_IIF(p##(240), MSGPACK_PP_NODE_232, MSGPACK_PP_NODE_248)
+# define MSGPACK_PP_NODE_232(p) MSGPACK_PP_IIF(p##(232), MSGPACK_PP_NODE_228, MSGPACK_PP_NODE_236)
+# define MSGPACK_PP_NODE_228(p) MSGPACK_PP_IIF(p##(228), MSGPACK_PP_NODE_226, MSGPACK_PP_NODE_230)
+# define MSGPACK_PP_NODE_226(p) MSGPACK_PP_IIF(p##(226), MSGPACK_PP_NODE_225, MSGPACK_PP_NODE_227)
+# define MSGPACK_PP_NODE_225(p) MSGPACK_PP_IIF(p##(225), 225, 226)
+# define MSGPACK_PP_NODE_227(p) MSGPACK_PP_IIF(p##(227), 227, 228)
+# define MSGPACK_PP_NODE_230(p) MSGPACK_PP_IIF(p##(230), MSGPACK_PP_NODE_229, MSGPACK_PP_NODE_231)
+# define MSGPACK_PP_NODE_229(p) MSGPACK_PP_IIF(p##(229), 229, 230)
+# define MSGPACK_PP_NODE_231(p) MSGPACK_PP_IIF(p##(231), 231, 232)
+# define MSGPACK_PP_NODE_236(p) MSGPACK_PP_IIF(p##(236), MSGPACK_PP_NODE_234, MSGPACK_PP_NODE_238)
+# define MSGPACK_PP_NODE_234(p) MSGPACK_PP_IIF(p##(234), MSGPACK_PP_NODE_233, MSGPACK_PP_NODE_235)
+# define MSGPACK_PP_NODE_233(p) MSGPACK_PP_IIF(p##(233), 233, 234)
+# define MSGPACK_PP_NODE_235(p) MSGPACK_PP_IIF(p##(235), 235, 236)
+# define MSGPACK_PP_NODE_238(p) MSGPACK_PP_IIF(p##(238), MSGPACK_PP_NODE_237, MSGPACK_PP_NODE_239)
+# define MSGPACK_PP_NODE_237(p) MSGPACK_PP_IIF(p##(237), 237, 238)
+# define MSGPACK_PP_NODE_239(p) MSGPACK_PP_IIF(p##(239), 239, 240)
+# define MSGPACK_PP_NODE_248(p) MSGPACK_PP_IIF(p##(248), MSGPACK_PP_NODE_244, MSGPACK_PP_NODE_252)
+# define MSGPACK_PP_NODE_244(p) MSGPACK_PP_IIF(p##(244), MSGPACK_PP_NODE_242, MSGPACK_PP_NODE_246)
+# define MSGPACK_PP_NODE_242(p) MSGPACK_PP_IIF(p##(242), MSGPACK_PP_NODE_241, MSGPACK_PP_NODE_243)
+# define MSGPACK_PP_NODE_241(p) MSGPACK_PP_IIF(p##(241), 241, 242)
+# define MSGPACK_PP_NODE_243(p) MSGPACK_PP_IIF(p##(243), 243, 244)
+# define MSGPACK_PP_NODE_246(p) MSGPACK_PP_IIF(p##(246), MSGPACK_PP_NODE_245, MSGPACK_PP_NODE_247)
+# define MSGPACK_PP_NODE_245(p) MSGPACK_PP_IIF(p##(245), 245, 246)
+# define MSGPACK_PP_NODE_247(p) MSGPACK_PP_IIF(p##(247), 247, 248)
+# define MSGPACK_PP_NODE_252(p) MSGPACK_PP_IIF(p##(252), MSGPACK_PP_NODE_250, MSGPACK_PP_NODE_254)
+# define MSGPACK_PP_NODE_250(p) MSGPACK_PP_IIF(p##(250), MSGPACK_PP_NODE_249, MSGPACK_PP_NODE_251)
+# define MSGPACK_PP_NODE_249(p) MSGPACK_PP_IIF(p##(249), 249, 250)
+# define MSGPACK_PP_NODE_251(p) MSGPACK_PP_IIF(p##(251), 251, 252)
+# define MSGPACK_PP_NODE_254(p) MSGPACK_PP_IIF(p##(254), MSGPACK_PP_NODE_253, MSGPACK_PP_NODE_255)
+# define MSGPACK_PP_NODE_253(p) MSGPACK_PP_IIF(p##(253), 253, 254)
+# define MSGPACK_PP_NODE_255(p) MSGPACK_PP_IIF(p##(255), 255, 256)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_binary.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_binary.hpp
new file mode 100644
index 000000000..ec77a00d5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_binary.hpp
@@ -0,0 +1,30 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_BINARY_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_IS_BINARY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/detail/check.hpp>
+#
+# /* MSGPACK_PP_IS_BINARY */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_IS_BINARY(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_BINARY_CHECK)
+# else
+# define MSGPACK_PP_IS_BINARY(x) MSGPACK_PP_IS_BINARY_I(x)
+# define MSGPACK_PP_IS_BINARY_I(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_BINARY_CHECK)
+# endif
+#
+# define MSGPACK_PP_IS_BINARY_CHECK(a, b) 1
+# define MSGPACK_PP_CHECK_RESULT_MSGPACK_PP_IS_BINARY_CHECK 0, MSGPACK_PP_NIL
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_nullary.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_nullary.hpp
new file mode 100644
index 000000000..72451776a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_nullary.hpp
@@ -0,0 +1,30 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_NULLARY_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_IS_NULLARY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/detail/check.hpp>
+#
+# /* MSGPACK_PP_IS_NULLARY */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_IS_NULLARY(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_NULLARY_CHECK)
+# else
+# define MSGPACK_PP_IS_NULLARY(x) MSGPACK_PP_IS_NULLARY_I(x)
+# define MSGPACK_PP_IS_NULLARY_I(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_NULLARY_CHECK)
+# endif
+#
+# define MSGPACK_PP_IS_NULLARY_CHECK() 1
+# define MSGPACK_PP_CHECK_RESULT_MSGPACK_PP_IS_NULLARY_CHECK 0, MSGPACK_PP_NIL
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_unary.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_unary.hpp
new file mode 100644
index 000000000..db749639e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/is_unary.hpp
@@ -0,0 +1,30 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_UNARY_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_IS_UNARY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/detail/check.hpp>
+#
+# /* MSGPACK_PP_IS_UNARY */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_IS_UNARY(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_UNARY_CHECK)
+# else
+# define MSGPACK_PP_IS_UNARY(x) MSGPACK_PP_IS_UNARY_I(x)
+# define MSGPACK_PP_IS_UNARY_I(x) MSGPACK_PP_CHECK(x, MSGPACK_PP_IS_UNARY_CHECK)
+# endif
+#
+# define MSGPACK_PP_IS_UNARY_CHECK(a) 1
+# define MSGPACK_PP_CHECK_RESULT_MSGPACK_PP_IS_UNARY_CHECK 0, MSGPACK_PP_NIL
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/null.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/null.hpp
new file mode 100644
index 000000000..a4ffe2aba
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/null.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_NULL_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_NULL_HPP
+#
+# /* empty file */
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/split.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/split.hpp
new file mode 100644
index 000000000..81e209475
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/detail/split.hpp
@@ -0,0 +1,35 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# ifndef MSGPACK_PREPROCESSOR_DETAIL_SPLIT_HPP
+# define MSGPACK_PREPROCESSOR_DETAIL_SPLIT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_SPLIT */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SPLIT(n, im) MSGPACK_PP_SPLIT_I((n, im))
+# define MSGPACK_PP_SPLIT_I(par) MSGPACK_PP_SPLIT_II ## par
+# define MSGPACK_PP_SPLIT_II(n, a, b) MSGPACK_PP_SPLIT_ ## n(a, b)
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_SPLIT(n, im) MSGPACK_PP_SPLIT_I(n((im)))
+# define MSGPACK_PP_SPLIT_I(n) MSGPACK_PP_SPLIT_ID(MSGPACK_PP_SPLIT_II_ ## n)
+# define MSGPACK_PP_SPLIT_II_0(s) MSGPACK_PP_SPLIT_ID(MSGPACK_PP_SPLIT_0 s)
+# define MSGPACK_PP_SPLIT_II_1(s) MSGPACK_PP_SPLIT_ID(MSGPACK_PP_SPLIT_1 s)
+# define MSGPACK_PP_SPLIT_ID(id) id
+# else
+# define MSGPACK_PP_SPLIT(n, im) MSGPACK_PP_SPLIT_I(n)(im)
+# define MSGPACK_PP_SPLIT_I(n) MSGPACK_PP_SPLIT_ ## n
+# endif
+#
+# define MSGPACK_PP_SPLIT_0(a, b) a
+# define MSGPACK_PP_SPLIT_1(a, b) b
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/empty.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/empty.hpp
new file mode 100644
index 000000000..c238cfd50
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/empty.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_EMPTY_HPP
+# define MSGPACK_PREPROCESSOR_EMPTY_HPP
+#
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum.hpp
new file mode 100644
index 000000000..3d1c4211d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ENUM_HPP
+# define MSGPACK_PREPROCESSOR_ENUM_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/enum.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params.hpp
new file mode 100644
index 000000000..c904de789
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ENUM_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_ENUM_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/enum_params.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_a_default.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_a_default.hpp
new file mode 100644
index 000000000..f63f3e631
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_a_default.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+# define MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_defaults.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_defaults.hpp
new file mode 100644
index 000000000..ea173f8fb
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_params_with_defaults.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP
+# define MSGPACK_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted.hpp
new file mode 100644
index 000000000..442a08d84
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ENUM_SHIFTED_HPP
+# define MSGPACK_PREPROCESSOR_ENUM_SHIFTED_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/enum_shifted.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted_params.hpp
new file mode 100644
index 000000000..9b81277cf
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/enum_shifted_params.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/enum_shifted_params.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expand.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expand.hpp
new file mode 100644
index 000000000..0d913d7ff
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expand.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_EXPAND_HPP
+# define MSGPACK_PREPROCESSOR_EXPAND_HPP
+#
+# include <rpc/msgpack/preprocessor/facilities/expand.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expr_if.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expr_if.hpp
new file mode 100644
index 000000000..3bc31973c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/expr_if.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_EXPR_IF_HPP
+# define MSGPACK_PREPROCESSOR_EXPR_IF_HPP
+#
+# include <rpc/msgpack/preprocessor/control/expr_if.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities.hpp
new file mode 100644
index 000000000..20856b229
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities.hpp
@@ -0,0 +1,23 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_HPP
+#
+# include <rpc/msgpack/preprocessor/facilities/apply.hpp>
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+# include <rpc/msgpack/preprocessor/facilities/expand.hpp>
+# include <rpc/msgpack/preprocessor/facilities/identity.hpp>
+# include <rpc/msgpack/preprocessor/facilities/intercept.hpp>
+# include <rpc/msgpack/preprocessor/facilities/overload.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/apply.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/apply.hpp
new file mode 100644
index 000000000..529f41da1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/apply.hpp
@@ -0,0 +1,34 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_APPLY_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_APPLY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/detail/is_unary.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_APPLY */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_APPLY(x) MSGPACK_PP_APPLY_I(x)
+# define MSGPACK_PP_APPLY_I(x) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_IS_UNARY(x), MSGPACK_PP_TUPLE_REM_1 x)
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC()
+# define MSGPACK_PP_APPLY(x) MSGPACK_PP_APPLY_I(x)
+# define MSGPACK_PP_APPLY_I(x) MSGPACK_PP_APPLY_ ## x
+# define MSGPACK_PP_APPLY_(x) x
+# define MSGPACK_PP_APPLY_MSGPACK_PP_NIL
+# else
+# define MSGPACK_PP_APPLY(x) MSGPACK_PP_EXPR_IIF(MSGPACK_PP_IS_UNARY(x), MSGPACK_PP_TUPLE_REM_1 x)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/detail/is_empty.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/detail/is_empty.hpp
new file mode 100644
index 000000000..fa8f8b79a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/detail/is_empty.hpp
@@ -0,0 +1,55 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+#ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_EMPTY_HPP
+#define MSGPACK_PREPROCESSOR_DETAIL_IS_EMPTY_HPP
+
+#include <rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp>
+
+#if MSGPACK_PP_VARIADICS_MSVC
+
+# pragma warning(once:4002)
+
+#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_0(t, b) b
+#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_1(t, b) t
+
+#else
+
+#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_0(t, ...) __VA_ARGS__
+#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF_1(t, ...) t
+
+#endif
+
+#if MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400
+
+#define MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS(param) \
+ MSGPACK_PP_IS_BEGIN_PARENS \
+ ( \
+ MSGPACK_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C param () \
+ ) \
+/**/
+
+#else
+
+#define MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS(...) \
+ MSGPACK_PP_IS_BEGIN_PARENS \
+ ( \
+ MSGPACK_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C __VA_ARGS__ () \
+ ) \
+/**/
+
+#endif
+
+#define MSGPACK_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(a, b) a ## b
+#define MSGPACK_PP_DETAIL_IS_EMPTY_IIF(bit) MSGPACK_PP_DETAIL_IS_EMPTY_PRIMITIVE_CAT(MSGPACK_PP_DETAIL_IS_EMPTY_IIF_,bit)
+#define MSGPACK_PP_DETAIL_IS_EMPTY_NON_FUNCTION_C(...) ()
+
+#endif /* MSGPACK_PREPROCESSOR_DETAIL_IS_EMPTY_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/empty.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/empty.hpp
new file mode 100644
index 000000000..c57e465a5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/empty.hpp
@@ -0,0 +1,23 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_EMPTY_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_EMPTY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_EMPTY */
+#
+# define MSGPACK_PP_EMPTY()
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/expand.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/expand.hpp
new file mode 100644
index 000000000..c5f9f584e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/expand.hpp
@@ -0,0 +1,28 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_EXPAND_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_EXPAND_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# define MSGPACK_PP_EXPAND(x) MSGPACK_PP_EXPAND_I(x)
+# else
+# define MSGPACK_PP_EXPAND(x) MSGPACK_PP_EXPAND_OO((x))
+# define MSGPACK_PP_EXPAND_OO(par) MSGPACK_PP_EXPAND_I ## par
+# endif
+#
+# define MSGPACK_PP_EXPAND_I(x) x
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/identity.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/identity.hpp
new file mode 100644
index 000000000..889b48eae
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/identity.hpp
@@ -0,0 +1,23 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IDENTITY_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_IDENTITY_HPP
+#
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+#
+# /* MSGPACK_PP_IDENTITY */
+#
+# define MSGPACK_PP_IDENTITY(item) item MSGPACK_PP_EMPTY
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/intercept.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/intercept.hpp
new file mode 100644
index 000000000..048d86176
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/intercept.hpp
@@ -0,0 +1,277 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
+#
+# /* MSGPACK_PP_INTERCEPT */
+#
+# define MSGPACK_PP_INTERCEPT MSGPACK_PP_INTERCEPT_
+#
+# define MSGPACK_PP_INTERCEPT_0
+# define MSGPACK_PP_INTERCEPT_1
+# define MSGPACK_PP_INTERCEPT_2
+# define MSGPACK_PP_INTERCEPT_3
+# define MSGPACK_PP_INTERCEPT_4
+# define MSGPACK_PP_INTERCEPT_5
+# define MSGPACK_PP_INTERCEPT_6
+# define MSGPACK_PP_INTERCEPT_7
+# define MSGPACK_PP_INTERCEPT_8
+# define MSGPACK_PP_INTERCEPT_9
+# define MSGPACK_PP_INTERCEPT_10
+# define MSGPACK_PP_INTERCEPT_11
+# define MSGPACK_PP_INTERCEPT_12
+# define MSGPACK_PP_INTERCEPT_13
+# define MSGPACK_PP_INTERCEPT_14
+# define MSGPACK_PP_INTERCEPT_15
+# define MSGPACK_PP_INTERCEPT_16
+# define MSGPACK_PP_INTERCEPT_17
+# define MSGPACK_PP_INTERCEPT_18
+# define MSGPACK_PP_INTERCEPT_19
+# define MSGPACK_PP_INTERCEPT_20
+# define MSGPACK_PP_INTERCEPT_21
+# define MSGPACK_PP_INTERCEPT_22
+# define MSGPACK_PP_INTERCEPT_23
+# define MSGPACK_PP_INTERCEPT_24
+# define MSGPACK_PP_INTERCEPT_25
+# define MSGPACK_PP_INTERCEPT_26
+# define MSGPACK_PP_INTERCEPT_27
+# define MSGPACK_PP_INTERCEPT_28
+# define MSGPACK_PP_INTERCEPT_29
+# define MSGPACK_PP_INTERCEPT_30
+# define MSGPACK_PP_INTERCEPT_31
+# define MSGPACK_PP_INTERCEPT_32
+# define MSGPACK_PP_INTERCEPT_33
+# define MSGPACK_PP_INTERCEPT_34
+# define MSGPACK_PP_INTERCEPT_35
+# define MSGPACK_PP_INTERCEPT_36
+# define MSGPACK_PP_INTERCEPT_37
+# define MSGPACK_PP_INTERCEPT_38
+# define MSGPACK_PP_INTERCEPT_39
+# define MSGPACK_PP_INTERCEPT_40
+# define MSGPACK_PP_INTERCEPT_41
+# define MSGPACK_PP_INTERCEPT_42
+# define MSGPACK_PP_INTERCEPT_43
+# define MSGPACK_PP_INTERCEPT_44
+# define MSGPACK_PP_INTERCEPT_45
+# define MSGPACK_PP_INTERCEPT_46
+# define MSGPACK_PP_INTERCEPT_47
+# define MSGPACK_PP_INTERCEPT_48
+# define MSGPACK_PP_INTERCEPT_49
+# define MSGPACK_PP_INTERCEPT_50
+# define MSGPACK_PP_INTERCEPT_51
+# define MSGPACK_PP_INTERCEPT_52
+# define MSGPACK_PP_INTERCEPT_53
+# define MSGPACK_PP_INTERCEPT_54
+# define MSGPACK_PP_INTERCEPT_55
+# define MSGPACK_PP_INTERCEPT_56
+# define MSGPACK_PP_INTERCEPT_57
+# define MSGPACK_PP_INTERCEPT_58
+# define MSGPACK_PP_INTERCEPT_59
+# define MSGPACK_PP_INTERCEPT_60
+# define MSGPACK_PP_INTERCEPT_61
+# define MSGPACK_PP_INTERCEPT_62
+# define MSGPACK_PP_INTERCEPT_63
+# define MSGPACK_PP_INTERCEPT_64
+# define MSGPACK_PP_INTERCEPT_65
+# define MSGPACK_PP_INTERCEPT_66
+# define MSGPACK_PP_INTERCEPT_67
+# define MSGPACK_PP_INTERCEPT_68
+# define MSGPACK_PP_INTERCEPT_69
+# define MSGPACK_PP_INTERCEPT_70
+# define MSGPACK_PP_INTERCEPT_71
+# define MSGPACK_PP_INTERCEPT_72
+# define MSGPACK_PP_INTERCEPT_73
+# define MSGPACK_PP_INTERCEPT_74
+# define MSGPACK_PP_INTERCEPT_75
+# define MSGPACK_PP_INTERCEPT_76
+# define MSGPACK_PP_INTERCEPT_77
+# define MSGPACK_PP_INTERCEPT_78
+# define MSGPACK_PP_INTERCEPT_79
+# define MSGPACK_PP_INTERCEPT_80
+# define MSGPACK_PP_INTERCEPT_81
+# define MSGPACK_PP_INTERCEPT_82
+# define MSGPACK_PP_INTERCEPT_83
+# define MSGPACK_PP_INTERCEPT_84
+# define MSGPACK_PP_INTERCEPT_85
+# define MSGPACK_PP_INTERCEPT_86
+# define MSGPACK_PP_INTERCEPT_87
+# define MSGPACK_PP_INTERCEPT_88
+# define MSGPACK_PP_INTERCEPT_89
+# define MSGPACK_PP_INTERCEPT_90
+# define MSGPACK_PP_INTERCEPT_91
+# define MSGPACK_PP_INTERCEPT_92
+# define MSGPACK_PP_INTERCEPT_93
+# define MSGPACK_PP_INTERCEPT_94
+# define MSGPACK_PP_INTERCEPT_95
+# define MSGPACK_PP_INTERCEPT_96
+# define MSGPACK_PP_INTERCEPT_97
+# define MSGPACK_PP_INTERCEPT_98
+# define MSGPACK_PP_INTERCEPT_99
+# define MSGPACK_PP_INTERCEPT_100
+# define MSGPACK_PP_INTERCEPT_101
+# define MSGPACK_PP_INTERCEPT_102
+# define MSGPACK_PP_INTERCEPT_103
+# define MSGPACK_PP_INTERCEPT_104
+# define MSGPACK_PP_INTERCEPT_105
+# define MSGPACK_PP_INTERCEPT_106
+# define MSGPACK_PP_INTERCEPT_107
+# define MSGPACK_PP_INTERCEPT_108
+# define MSGPACK_PP_INTERCEPT_109
+# define MSGPACK_PP_INTERCEPT_110
+# define MSGPACK_PP_INTERCEPT_111
+# define MSGPACK_PP_INTERCEPT_112
+# define MSGPACK_PP_INTERCEPT_113
+# define MSGPACK_PP_INTERCEPT_114
+# define MSGPACK_PP_INTERCEPT_115
+# define MSGPACK_PP_INTERCEPT_116
+# define MSGPACK_PP_INTERCEPT_117
+# define MSGPACK_PP_INTERCEPT_118
+# define MSGPACK_PP_INTERCEPT_119
+# define MSGPACK_PP_INTERCEPT_120
+# define MSGPACK_PP_INTERCEPT_121
+# define MSGPACK_PP_INTERCEPT_122
+# define MSGPACK_PP_INTERCEPT_123
+# define MSGPACK_PP_INTERCEPT_124
+# define MSGPACK_PP_INTERCEPT_125
+# define MSGPACK_PP_INTERCEPT_126
+# define MSGPACK_PP_INTERCEPT_127
+# define MSGPACK_PP_INTERCEPT_128
+# define MSGPACK_PP_INTERCEPT_129
+# define MSGPACK_PP_INTERCEPT_130
+# define MSGPACK_PP_INTERCEPT_131
+# define MSGPACK_PP_INTERCEPT_132
+# define MSGPACK_PP_INTERCEPT_133
+# define MSGPACK_PP_INTERCEPT_134
+# define MSGPACK_PP_INTERCEPT_135
+# define MSGPACK_PP_INTERCEPT_136
+# define MSGPACK_PP_INTERCEPT_137
+# define MSGPACK_PP_INTERCEPT_138
+# define MSGPACK_PP_INTERCEPT_139
+# define MSGPACK_PP_INTERCEPT_140
+# define MSGPACK_PP_INTERCEPT_141
+# define MSGPACK_PP_INTERCEPT_142
+# define MSGPACK_PP_INTERCEPT_143
+# define MSGPACK_PP_INTERCEPT_144
+# define MSGPACK_PP_INTERCEPT_145
+# define MSGPACK_PP_INTERCEPT_146
+# define MSGPACK_PP_INTERCEPT_147
+# define MSGPACK_PP_INTERCEPT_148
+# define MSGPACK_PP_INTERCEPT_149
+# define MSGPACK_PP_INTERCEPT_150
+# define MSGPACK_PP_INTERCEPT_151
+# define MSGPACK_PP_INTERCEPT_152
+# define MSGPACK_PP_INTERCEPT_153
+# define MSGPACK_PP_INTERCEPT_154
+# define MSGPACK_PP_INTERCEPT_155
+# define MSGPACK_PP_INTERCEPT_156
+# define MSGPACK_PP_INTERCEPT_157
+# define MSGPACK_PP_INTERCEPT_158
+# define MSGPACK_PP_INTERCEPT_159
+# define MSGPACK_PP_INTERCEPT_160
+# define MSGPACK_PP_INTERCEPT_161
+# define MSGPACK_PP_INTERCEPT_162
+# define MSGPACK_PP_INTERCEPT_163
+# define MSGPACK_PP_INTERCEPT_164
+# define MSGPACK_PP_INTERCEPT_165
+# define MSGPACK_PP_INTERCEPT_166
+# define MSGPACK_PP_INTERCEPT_167
+# define MSGPACK_PP_INTERCEPT_168
+# define MSGPACK_PP_INTERCEPT_169
+# define MSGPACK_PP_INTERCEPT_170
+# define MSGPACK_PP_INTERCEPT_171
+# define MSGPACK_PP_INTERCEPT_172
+# define MSGPACK_PP_INTERCEPT_173
+# define MSGPACK_PP_INTERCEPT_174
+# define MSGPACK_PP_INTERCEPT_175
+# define MSGPACK_PP_INTERCEPT_176
+# define MSGPACK_PP_INTERCEPT_177
+# define MSGPACK_PP_INTERCEPT_178
+# define MSGPACK_PP_INTERCEPT_179
+# define MSGPACK_PP_INTERCEPT_180
+# define MSGPACK_PP_INTERCEPT_181
+# define MSGPACK_PP_INTERCEPT_182
+# define MSGPACK_PP_INTERCEPT_183
+# define MSGPACK_PP_INTERCEPT_184
+# define MSGPACK_PP_INTERCEPT_185
+# define MSGPACK_PP_INTERCEPT_186
+# define MSGPACK_PP_INTERCEPT_187
+# define MSGPACK_PP_INTERCEPT_188
+# define MSGPACK_PP_INTERCEPT_189
+# define MSGPACK_PP_INTERCEPT_190
+# define MSGPACK_PP_INTERCEPT_191
+# define MSGPACK_PP_INTERCEPT_192
+# define MSGPACK_PP_INTERCEPT_193
+# define MSGPACK_PP_INTERCEPT_194
+# define MSGPACK_PP_INTERCEPT_195
+# define MSGPACK_PP_INTERCEPT_196
+# define MSGPACK_PP_INTERCEPT_197
+# define MSGPACK_PP_INTERCEPT_198
+# define MSGPACK_PP_INTERCEPT_199
+# define MSGPACK_PP_INTERCEPT_200
+# define MSGPACK_PP_INTERCEPT_201
+# define MSGPACK_PP_INTERCEPT_202
+# define MSGPACK_PP_INTERCEPT_203
+# define MSGPACK_PP_INTERCEPT_204
+# define MSGPACK_PP_INTERCEPT_205
+# define MSGPACK_PP_INTERCEPT_206
+# define MSGPACK_PP_INTERCEPT_207
+# define MSGPACK_PP_INTERCEPT_208
+# define MSGPACK_PP_INTERCEPT_209
+# define MSGPACK_PP_INTERCEPT_210
+# define MSGPACK_PP_INTERCEPT_211
+# define MSGPACK_PP_INTERCEPT_212
+# define MSGPACK_PP_INTERCEPT_213
+# define MSGPACK_PP_INTERCEPT_214
+# define MSGPACK_PP_INTERCEPT_215
+# define MSGPACK_PP_INTERCEPT_216
+# define MSGPACK_PP_INTERCEPT_217
+# define MSGPACK_PP_INTERCEPT_218
+# define MSGPACK_PP_INTERCEPT_219
+# define MSGPACK_PP_INTERCEPT_220
+# define MSGPACK_PP_INTERCEPT_221
+# define MSGPACK_PP_INTERCEPT_222
+# define MSGPACK_PP_INTERCEPT_223
+# define MSGPACK_PP_INTERCEPT_224
+# define MSGPACK_PP_INTERCEPT_225
+# define MSGPACK_PP_INTERCEPT_226
+# define MSGPACK_PP_INTERCEPT_227
+# define MSGPACK_PP_INTERCEPT_228
+# define MSGPACK_PP_INTERCEPT_229
+# define MSGPACK_PP_INTERCEPT_230
+# define MSGPACK_PP_INTERCEPT_231
+# define MSGPACK_PP_INTERCEPT_232
+# define MSGPACK_PP_INTERCEPT_233
+# define MSGPACK_PP_INTERCEPT_234
+# define MSGPACK_PP_INTERCEPT_235
+# define MSGPACK_PP_INTERCEPT_236
+# define MSGPACK_PP_INTERCEPT_237
+# define MSGPACK_PP_INTERCEPT_238
+# define MSGPACK_PP_INTERCEPT_239
+# define MSGPACK_PP_INTERCEPT_240
+# define MSGPACK_PP_INTERCEPT_241
+# define MSGPACK_PP_INTERCEPT_242
+# define MSGPACK_PP_INTERCEPT_243
+# define MSGPACK_PP_INTERCEPT_244
+# define MSGPACK_PP_INTERCEPT_245
+# define MSGPACK_PP_INTERCEPT_246
+# define MSGPACK_PP_INTERCEPT_247
+# define MSGPACK_PP_INTERCEPT_248
+# define MSGPACK_PP_INTERCEPT_249
+# define MSGPACK_PP_INTERCEPT_250
+# define MSGPACK_PP_INTERCEPT_251
+# define MSGPACK_PP_INTERCEPT_252
+# define MSGPACK_PP_INTERCEPT_253
+# define MSGPACK_PP_INTERCEPT_254
+# define MSGPACK_PP_INTERCEPT_255
+# define MSGPACK_PP_INTERCEPT_256
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_1.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_1.hpp
new file mode 100644
index 000000000..51bbf50df
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_1.hpp
@@ -0,0 +1,23 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2003.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_1_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_IS_1_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/facilities/is_empty.hpp>
+#
+# /* MSGPACK_PP_IS_1 */
+#
+# define MSGPACK_PP_IS_1(x) MSGPACK_PP_IS_EMPTY(MSGPACK_PP_CAT(MSGPACK_PP_IS_1_HELPER_, x))
+# define MSGPACK_PP_IS_1_HELPER_1
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty.hpp
new file mode 100644
index 000000000..9aff6a932
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty.hpp
@@ -0,0 +1,56 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2003.
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/facilities/is_empty_variadic.hpp>
+#
+# else
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/facilities/identity.hpp>
+# else
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/detail/split.hpp>
+# endif
+#
+# /* MSGPACK_PP_IS_EMPTY */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I(x MSGPACK_PP_IS_EMPTY_HELPER)
+# define MSGPACK_PP_IS_EMPTY_I(contents) MSGPACK_PP_TUPLE_ELEM(2, 1, (MSGPACK_PP_IS_EMPTY_DEF_ ## contents()))
+# define MSGPACK_PP_IS_EMPTY_DEF_MSGPACK_PP_IS_EMPTY_HELPER 1, MSGPACK_PP_IDENTITY(1)
+# define MSGPACK_PP_IS_EMPTY_HELPER() , 0
+# else
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I(MSGPACK_PP_IS_EMPTY_HELPER x ())
+# define MSGPACK_PP_IS_EMPTY_I(test) MSGPACK_PP_IS_EMPTY_II(MSGPACK_PP_SPLIT(0, MSGPACK_PP_CAT(MSGPACK_PP_IS_EMPTY_DEF_, test)))
+# define MSGPACK_PP_IS_EMPTY_II(id) id
+# else
+# define MSGPACK_PP_IS_EMPTY(x) MSGPACK_PP_IS_EMPTY_I((MSGPACK_PP_IS_EMPTY_HELPER x ()))
+# define MSGPACK_PP_IS_EMPTY_I(par) MSGPACK_PP_IS_EMPTY_II ## par
+# define MSGPACK_PP_IS_EMPTY_II(test) MSGPACK_PP_SPLIT(0, MSGPACK_PP_CAT(MSGPACK_PP_IS_EMPTY_DEF_, test))
+# endif
+# define MSGPACK_PP_IS_EMPTY_HELPER() 1
+# define MSGPACK_PP_IS_EMPTY_DEF_1 1, MSGPACK_PP_NIL
+# define MSGPACK_PP_IS_EMPTY_DEF_MSGPACK_PP_IS_EMPTY_HELPER 0, MSGPACK_PP_NIL
+# endif
+#
+# endif /* MSGPACK_PP_VARIADICS */
+#
+# endif /* MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_or_1.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_or_1.hpp
new file mode 100644
index 000000000..b87e0e317
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_or_1.hpp
@@ -0,0 +1,31 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2003.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_OR_1_HPP
+#
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+# include <rpc/msgpack/preprocessor/facilities/identity.hpp>
+# include <rpc/msgpack/preprocessor/facilities/is_1.hpp>
+# include <rpc/msgpack/preprocessor/facilities/is_empty.hpp>
+#
+# /* MSGPACK_PP_IS_EMPTY_OR_1 */
+#
+# define MSGPACK_PP_IS_EMPTY_OR_1(x) \
+ MSGPACK_PP_IIF( \
+ MSGPACK_PP_IS_EMPTY(x MSGPACK_PP_EMPTY()), \
+ MSGPACK_PP_IDENTITY(1), \
+ MSGPACK_PP_IS_1 \
+ )(x) \
+ /**/
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_variadic.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_variadic.hpp
new file mode 100644
index 000000000..e59b6e63a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/is_empty_variadic.hpp
@@ -0,0 +1,57 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp>
+# include <rpc/msgpack/preprocessor/facilities/detail/is_empty.hpp>
+#
+#if MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400
+#
+#define MSGPACK_PP_IS_EMPTY(param) \
+ MSGPACK_PP_DETAIL_IS_EMPTY_IIF \
+ ( \
+ MSGPACK_PP_IS_BEGIN_PARENS \
+ ( \
+ param \
+ ) \
+ ) \
+ ( \
+ MSGPACK_PP_IS_EMPTY_ZERO, \
+ MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS \
+ ) \
+ (param) \
+/**/
+#define MSGPACK_PP_IS_EMPTY_ZERO(param) 0
+# else
+#define MSGPACK_PP_IS_EMPTY(...) \
+ MSGPACK_PP_DETAIL_IS_EMPTY_IIF \
+ ( \
+ MSGPACK_PP_IS_BEGIN_PARENS \
+ ( \
+ __VA_ARGS__ \
+ ) \
+ ) \
+ ( \
+ MSGPACK_PP_IS_EMPTY_ZERO, \
+ MSGPACK_PP_DETAIL_IS_EMPTY_PROCESS \
+ ) \
+ (__VA_ARGS__) \
+/**/
+#define MSGPACK_PP_IS_EMPTY_ZERO(...) 0
+# endif /* MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */
+# endif /* MSGPACK_PP_VARIADICS */
+# endif /* MSGPACK_PREPROCESSOR_FACILITIES_IS_EMPTY_VARIADIC_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/overload.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/overload.hpp
new file mode 100644
index 000000000..a86f6fae9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/facilities/overload.hpp
@@ -0,0 +1,25 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
+# define MSGPACK_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+#
+# /* MSGPACK_PP_OVERLOAD */
+#
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_OVERLOAD(prefix, ...) MSGPACK_PP_CAT(prefix, MSGPACK_PP_VARIADIC_SIZE(__VA_ARGS__))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/for.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/for.hpp
new file mode 100644
index 000000000..46e3d19be
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/for.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_FOR_HPP
+# define MSGPACK_PREPROCESSOR_FOR_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/identity.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/identity.hpp
new file mode 100644
index 000000000..53a07eb11
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/identity.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_IDENTITY_HPP
+# define MSGPACK_PREPROCESSOR_IDENTITY_HPP
+#
+# include <rpc/msgpack/preprocessor/facilities/identity.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/if.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/if.hpp
new file mode 100644
index 000000000..150aa5957
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/if.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_IF_HPP
+# define MSGPACK_PREPROCESSOR_IF_HPP
+#
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/inc.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/inc.hpp
new file mode 100644
index 000000000..db55ad68e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/inc.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_INC_HPP
+# define MSGPACK_PREPROCESSOR_INC_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iterate.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iterate.hpp
new file mode 100644
index 000000000..bd9add763
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iterate.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ITERATE_HPP
+# define MSGPACK_PREPROCESSOR_ITERATE_HPP
+#
+# include <rpc/msgpack/preprocessor/iteration/iterate.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration.hpp
new file mode 100644
index 000000000..f98e60253
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration.hpp
@@ -0,0 +1,19 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ITERATION_HPP
+# define MSGPACK_PREPROCESSOR_ITERATION_HPP
+#
+# include <rpc/msgpack/preprocessor/iteration/iterate.hpp>
+# include <rpc/msgpack/preprocessor/iteration/local.hpp>
+# include <rpc/msgpack/preprocessor/iteration/self.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp
new file mode 100644
index 000000000..65624e121
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_START_1
+#
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_1
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_2
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_3
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_4
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_5
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_6
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_7
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_8
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_9
+# undef MSGPACK_PP_ITERATION_START_1_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_START_1_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_START_1_DIGIT_3
+# define MSGPACK_PP_ITERATION_START_1 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_1_DIGIT_3, MSGPACK_PP_ITERATION_START_1_DIGIT_2, MSGPACK_PP_ITERATION_START_1_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_START_1_DIGIT_2
+# define MSGPACK_PP_ITERATION_START_1 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_1_DIGIT_2, MSGPACK_PP_ITERATION_START_1_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_START_1 MSGPACK_PP_ITERATION_START_1_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp
new file mode 100644
index 000000000..9c6621d51
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_START_2
+#
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_1
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_2
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_3
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_4
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_5
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_6
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_7
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_8
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_9
+# undef MSGPACK_PP_ITERATION_START_2_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_START_2_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_START_2_DIGIT_3
+# define MSGPACK_PP_ITERATION_START_2 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_2_DIGIT_3, MSGPACK_PP_ITERATION_START_2_DIGIT_2, MSGPACK_PP_ITERATION_START_2_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_START_2_DIGIT_2
+# define MSGPACK_PP_ITERATION_START_2 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_2_DIGIT_2, MSGPACK_PP_ITERATION_START_2_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_START_2 MSGPACK_PP_ITERATION_START_2_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp
new file mode 100644
index 000000000..26ff2dac0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_START_3
+#
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_1
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_2
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_3
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_4
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_5
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_6
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_7
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_8
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_9
+# undef MSGPACK_PP_ITERATION_START_3_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_START_3_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_START_3_DIGIT_3
+# define MSGPACK_PP_ITERATION_START_3 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_3_DIGIT_3, MSGPACK_PP_ITERATION_START_3_DIGIT_2, MSGPACK_PP_ITERATION_START_3_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_START_3_DIGIT_2
+# define MSGPACK_PP_ITERATION_START_3 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_3_DIGIT_2, MSGPACK_PP_ITERATION_START_3_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_START_3 MSGPACK_PP_ITERATION_START_3_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp
new file mode 100644
index 000000000..11999d50b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_START_4
+#
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_1
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_2
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_3
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_4
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_5
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_6
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_7
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_8
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_9
+# undef MSGPACK_PP_ITERATION_START_4_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_START_4_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_START_4_DIGIT_3
+# define MSGPACK_PP_ITERATION_START_4 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_4_DIGIT_3, MSGPACK_PP_ITERATION_START_4_DIGIT_2, MSGPACK_PP_ITERATION_START_4_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_START_4_DIGIT_2
+# define MSGPACK_PP_ITERATION_START_4 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_4_DIGIT_2, MSGPACK_PP_ITERATION_START_4_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_START_4 MSGPACK_PP_ITERATION_START_4_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp
new file mode 100644
index 000000000..0e804f282
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_START_5
+#
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_1
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_2
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_3
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_4
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_5
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_6
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_7
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_8
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_9
+# undef MSGPACK_PP_ITERATION_START_5_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_START_5_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_START_5_DIGIT_3
+# define MSGPACK_PP_ITERATION_START_5 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_START_5_DIGIT_3, MSGPACK_PP_ITERATION_START_5_DIGIT_2, MSGPACK_PP_ITERATION_START_5_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_START_5_DIGIT_2
+# define MSGPACK_PP_ITERATION_START_5 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_START_5_DIGIT_2, MSGPACK_PP_ITERATION_START_5_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_START_5 MSGPACK_PP_ITERATION_START_5_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp
new file mode 100644
index 000000000..ad29a5a44
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_FINISH_1
+#
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_4
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_5
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_6
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_7
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_8
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_9
+# undef MSGPACK_PP_ITERATION_FINISH_1_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3
+# define MSGPACK_PP_ITERATION_FINISH_1 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_1_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2
+# define MSGPACK_PP_ITERATION_FINISH_1 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_1_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_FINISH_1 MSGPACK_PP_ITERATION_FINISH_1_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp
new file mode 100644
index 000000000..0e717bb3e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_FINISH_2
+#
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_4
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_5
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_6
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_7
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_8
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_9
+# undef MSGPACK_PP_ITERATION_FINISH_2_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3
+# define MSGPACK_PP_ITERATION_FINISH_2 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_2_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2
+# define MSGPACK_PP_ITERATION_FINISH_2 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_2_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_FINISH_2 MSGPACK_PP_ITERATION_FINISH_2_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp
new file mode 100644
index 000000000..2675125fa
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_FINISH_3
+#
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_4
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_5
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_6
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_7
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_8
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_9
+# undef MSGPACK_PP_ITERATION_FINISH_3_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3
+# define MSGPACK_PP_ITERATION_FINISH_3 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_3_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2
+# define MSGPACK_PP_ITERATION_FINISH_3 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_3_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_FINISH_3 MSGPACK_PP_ITERATION_FINISH_3_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp
new file mode 100644
index 000000000..609e42c39
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_FINISH_4
+#
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_4
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_5
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_6
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_7
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_8
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_9
+# undef MSGPACK_PP_ITERATION_FINISH_4_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3
+# define MSGPACK_PP_ITERATION_FINISH_4 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_4_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2
+# define MSGPACK_PP_ITERATION_FINISH_4 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_4_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_FINISH_4 MSGPACK_PP_ITERATION_FINISH_4_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp
new file mode 100644
index 000000000..9ca36b76a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_ITERATION_FINISH_5
+#
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_4
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_5
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_6
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_7
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_8
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_9
+# undef MSGPACK_PP_ITERATION_FINISH_5_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3
+# define MSGPACK_PP_ITERATION_FINISH_5 MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_ITERATION_FINISH_5_DIGIT_3, MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1)
+# elif MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2
+# define MSGPACK_PP_ITERATION_FINISH_5 MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_ITERATION_FINISH_5_DIGIT_2, MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1)
+# else
+# define MSGPACK_PP_ITERATION_FINISH_5 MSGPACK_PP_ITERATION_FINISH_5_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/finish.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/finish.hpp
new file mode 100644
index 000000000..90cc28170
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/finish.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_LOCAL_FE
+#
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_1
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_2
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_3
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_4
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_5
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_6
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_7
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_8
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_9
+# undef MSGPACK_PP_LOCAL_FE_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_LOCAL_FE_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_LOCAL_FE_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_LOCAL_FE_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_LOCAL_FE_DIGIT_3
+# define MSGPACK_PP_LOCAL_FE() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_LOCAL_FE_DIGIT_3, MSGPACK_PP_LOCAL_FE_DIGIT_2, MSGPACK_PP_LOCAL_FE_DIGIT_1)
+# elif MSGPACK_PP_LOCAL_FE_DIGIT_2
+# define MSGPACK_PP_LOCAL_FE() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_LOCAL_FE_DIGIT_2, MSGPACK_PP_LOCAL_FE_DIGIT_1)
+# else
+# define MSGPACK_PP_LOCAL_FE() MSGPACK_PP_LOCAL_FE_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward1.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward1.hpp
new file mode 100644
index 000000000..bc28bc0ab
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward1.hpp
@@ -0,0 +1,1342 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if defined(MSGPACK_PP_ITERATION_LIMITS)
+# if !defined(MSGPACK_PP_FILENAME_1)
+# error MSGPACK_PP_ERROR: depth #1 filename is not defined
+# endif
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp>
+# define MSGPACK_PP_ITERATION_FLAGS_1() 0
+# undef MSGPACK_PP_ITERATION_LIMITS
+# elif defined(MSGPACK_PP_ITERATION_PARAMS_1)
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_1)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower1.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_1)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper1.hpp>
+# define MSGPACK_PP_FILENAME_1 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_1)
+# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_1) >= 4
+# define MSGPACK_PP_ITERATION_FLAGS_1() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_1)
+# else
+# define MSGPACK_PP_ITERATION_FLAGS_1() 0
+# endif
+# else
+# error MSGPACK_PP_ERROR: depth #1 iteration boundaries or filename not defined
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 1
+#
+# define MSGPACK_PP_IS_ITERATING 1
+#
+# if (MSGPACK_PP_ITERATION_START_1) > (MSGPACK_PP_ITERATION_FINISH_1)
+# include <rpc/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp>
+# else
+# if MSGPACK_PP_ITERATION_START_1 <= 0 && MSGPACK_PP_ITERATION_FINISH_1 >= 0
+# define MSGPACK_PP_ITERATION_1 0
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 1 && MSGPACK_PP_ITERATION_FINISH_1 >= 1
+# define MSGPACK_PP_ITERATION_1 1
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 2 && MSGPACK_PP_ITERATION_FINISH_1 >= 2
+# define MSGPACK_PP_ITERATION_1 2
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 3 && MSGPACK_PP_ITERATION_FINISH_1 >= 3
+# define MSGPACK_PP_ITERATION_1 3
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 4 && MSGPACK_PP_ITERATION_FINISH_1 >= 4
+# define MSGPACK_PP_ITERATION_1 4
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 5 && MSGPACK_PP_ITERATION_FINISH_1 >= 5
+# define MSGPACK_PP_ITERATION_1 5
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 6 && MSGPACK_PP_ITERATION_FINISH_1 >= 6
+# define MSGPACK_PP_ITERATION_1 6
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 7 && MSGPACK_PP_ITERATION_FINISH_1 >= 7
+# define MSGPACK_PP_ITERATION_1 7
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 8 && MSGPACK_PP_ITERATION_FINISH_1 >= 8
+# define MSGPACK_PP_ITERATION_1 8
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 9 && MSGPACK_PP_ITERATION_FINISH_1 >= 9
+# define MSGPACK_PP_ITERATION_1 9
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 10 && MSGPACK_PP_ITERATION_FINISH_1 >= 10
+# define MSGPACK_PP_ITERATION_1 10
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 11 && MSGPACK_PP_ITERATION_FINISH_1 >= 11
+# define MSGPACK_PP_ITERATION_1 11
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 12 && MSGPACK_PP_ITERATION_FINISH_1 >= 12
+# define MSGPACK_PP_ITERATION_1 12
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 13 && MSGPACK_PP_ITERATION_FINISH_1 >= 13
+# define MSGPACK_PP_ITERATION_1 13
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 14 && MSGPACK_PP_ITERATION_FINISH_1 >= 14
+# define MSGPACK_PP_ITERATION_1 14
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 15 && MSGPACK_PP_ITERATION_FINISH_1 >= 15
+# define MSGPACK_PP_ITERATION_1 15
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 16 && MSGPACK_PP_ITERATION_FINISH_1 >= 16
+# define MSGPACK_PP_ITERATION_1 16
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 17 && MSGPACK_PP_ITERATION_FINISH_1 >= 17
+# define MSGPACK_PP_ITERATION_1 17
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 18 && MSGPACK_PP_ITERATION_FINISH_1 >= 18
+# define MSGPACK_PP_ITERATION_1 18
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 19 && MSGPACK_PP_ITERATION_FINISH_1 >= 19
+# define MSGPACK_PP_ITERATION_1 19
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 20 && MSGPACK_PP_ITERATION_FINISH_1 >= 20
+# define MSGPACK_PP_ITERATION_1 20
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 21 && MSGPACK_PP_ITERATION_FINISH_1 >= 21
+# define MSGPACK_PP_ITERATION_1 21
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 22 && MSGPACK_PP_ITERATION_FINISH_1 >= 22
+# define MSGPACK_PP_ITERATION_1 22
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 23 && MSGPACK_PP_ITERATION_FINISH_1 >= 23
+# define MSGPACK_PP_ITERATION_1 23
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 24 && MSGPACK_PP_ITERATION_FINISH_1 >= 24
+# define MSGPACK_PP_ITERATION_1 24
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 25 && MSGPACK_PP_ITERATION_FINISH_1 >= 25
+# define MSGPACK_PP_ITERATION_1 25
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 26 && MSGPACK_PP_ITERATION_FINISH_1 >= 26
+# define MSGPACK_PP_ITERATION_1 26
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 27 && MSGPACK_PP_ITERATION_FINISH_1 >= 27
+# define MSGPACK_PP_ITERATION_1 27
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 28 && MSGPACK_PP_ITERATION_FINISH_1 >= 28
+# define MSGPACK_PP_ITERATION_1 28
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 29 && MSGPACK_PP_ITERATION_FINISH_1 >= 29
+# define MSGPACK_PP_ITERATION_1 29
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 30 && MSGPACK_PP_ITERATION_FINISH_1 >= 30
+# define MSGPACK_PP_ITERATION_1 30
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 31 && MSGPACK_PP_ITERATION_FINISH_1 >= 31
+# define MSGPACK_PP_ITERATION_1 31
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 32 && MSGPACK_PP_ITERATION_FINISH_1 >= 32
+# define MSGPACK_PP_ITERATION_1 32
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 33 && MSGPACK_PP_ITERATION_FINISH_1 >= 33
+# define MSGPACK_PP_ITERATION_1 33
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 34 && MSGPACK_PP_ITERATION_FINISH_1 >= 34
+# define MSGPACK_PP_ITERATION_1 34
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 35 && MSGPACK_PP_ITERATION_FINISH_1 >= 35
+# define MSGPACK_PP_ITERATION_1 35
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 36 && MSGPACK_PP_ITERATION_FINISH_1 >= 36
+# define MSGPACK_PP_ITERATION_1 36
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 37 && MSGPACK_PP_ITERATION_FINISH_1 >= 37
+# define MSGPACK_PP_ITERATION_1 37
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 38 && MSGPACK_PP_ITERATION_FINISH_1 >= 38
+# define MSGPACK_PP_ITERATION_1 38
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 39 && MSGPACK_PP_ITERATION_FINISH_1 >= 39
+# define MSGPACK_PP_ITERATION_1 39
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 40 && MSGPACK_PP_ITERATION_FINISH_1 >= 40
+# define MSGPACK_PP_ITERATION_1 40
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 41 && MSGPACK_PP_ITERATION_FINISH_1 >= 41
+# define MSGPACK_PP_ITERATION_1 41
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 42 && MSGPACK_PP_ITERATION_FINISH_1 >= 42
+# define MSGPACK_PP_ITERATION_1 42
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 43 && MSGPACK_PP_ITERATION_FINISH_1 >= 43
+# define MSGPACK_PP_ITERATION_1 43
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 44 && MSGPACK_PP_ITERATION_FINISH_1 >= 44
+# define MSGPACK_PP_ITERATION_1 44
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 45 && MSGPACK_PP_ITERATION_FINISH_1 >= 45
+# define MSGPACK_PP_ITERATION_1 45
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 46 && MSGPACK_PP_ITERATION_FINISH_1 >= 46
+# define MSGPACK_PP_ITERATION_1 46
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 47 && MSGPACK_PP_ITERATION_FINISH_1 >= 47
+# define MSGPACK_PP_ITERATION_1 47
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 48 && MSGPACK_PP_ITERATION_FINISH_1 >= 48
+# define MSGPACK_PP_ITERATION_1 48
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 49 && MSGPACK_PP_ITERATION_FINISH_1 >= 49
+# define MSGPACK_PP_ITERATION_1 49
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 50 && MSGPACK_PP_ITERATION_FINISH_1 >= 50
+# define MSGPACK_PP_ITERATION_1 50
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 51 && MSGPACK_PP_ITERATION_FINISH_1 >= 51
+# define MSGPACK_PP_ITERATION_1 51
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 52 && MSGPACK_PP_ITERATION_FINISH_1 >= 52
+# define MSGPACK_PP_ITERATION_1 52
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 53 && MSGPACK_PP_ITERATION_FINISH_1 >= 53
+# define MSGPACK_PP_ITERATION_1 53
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 54 && MSGPACK_PP_ITERATION_FINISH_1 >= 54
+# define MSGPACK_PP_ITERATION_1 54
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 55 && MSGPACK_PP_ITERATION_FINISH_1 >= 55
+# define MSGPACK_PP_ITERATION_1 55
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 56 && MSGPACK_PP_ITERATION_FINISH_1 >= 56
+# define MSGPACK_PP_ITERATION_1 56
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 57 && MSGPACK_PP_ITERATION_FINISH_1 >= 57
+# define MSGPACK_PP_ITERATION_1 57
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 58 && MSGPACK_PP_ITERATION_FINISH_1 >= 58
+# define MSGPACK_PP_ITERATION_1 58
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 59 && MSGPACK_PP_ITERATION_FINISH_1 >= 59
+# define MSGPACK_PP_ITERATION_1 59
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 60 && MSGPACK_PP_ITERATION_FINISH_1 >= 60
+# define MSGPACK_PP_ITERATION_1 60
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 61 && MSGPACK_PP_ITERATION_FINISH_1 >= 61
+# define MSGPACK_PP_ITERATION_1 61
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 62 && MSGPACK_PP_ITERATION_FINISH_1 >= 62
+# define MSGPACK_PP_ITERATION_1 62
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 63 && MSGPACK_PP_ITERATION_FINISH_1 >= 63
+# define MSGPACK_PP_ITERATION_1 63
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 64 && MSGPACK_PP_ITERATION_FINISH_1 >= 64
+# define MSGPACK_PP_ITERATION_1 64
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 65 && MSGPACK_PP_ITERATION_FINISH_1 >= 65
+# define MSGPACK_PP_ITERATION_1 65
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 66 && MSGPACK_PP_ITERATION_FINISH_1 >= 66
+# define MSGPACK_PP_ITERATION_1 66
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 67 && MSGPACK_PP_ITERATION_FINISH_1 >= 67
+# define MSGPACK_PP_ITERATION_1 67
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 68 && MSGPACK_PP_ITERATION_FINISH_1 >= 68
+# define MSGPACK_PP_ITERATION_1 68
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 69 && MSGPACK_PP_ITERATION_FINISH_1 >= 69
+# define MSGPACK_PP_ITERATION_1 69
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 70 && MSGPACK_PP_ITERATION_FINISH_1 >= 70
+# define MSGPACK_PP_ITERATION_1 70
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 71 && MSGPACK_PP_ITERATION_FINISH_1 >= 71
+# define MSGPACK_PP_ITERATION_1 71
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 72 && MSGPACK_PP_ITERATION_FINISH_1 >= 72
+# define MSGPACK_PP_ITERATION_1 72
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 73 && MSGPACK_PP_ITERATION_FINISH_1 >= 73
+# define MSGPACK_PP_ITERATION_1 73
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 74 && MSGPACK_PP_ITERATION_FINISH_1 >= 74
+# define MSGPACK_PP_ITERATION_1 74
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 75 && MSGPACK_PP_ITERATION_FINISH_1 >= 75
+# define MSGPACK_PP_ITERATION_1 75
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 76 && MSGPACK_PP_ITERATION_FINISH_1 >= 76
+# define MSGPACK_PP_ITERATION_1 76
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 77 && MSGPACK_PP_ITERATION_FINISH_1 >= 77
+# define MSGPACK_PP_ITERATION_1 77
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 78 && MSGPACK_PP_ITERATION_FINISH_1 >= 78
+# define MSGPACK_PP_ITERATION_1 78
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 79 && MSGPACK_PP_ITERATION_FINISH_1 >= 79
+# define MSGPACK_PP_ITERATION_1 79
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 80 && MSGPACK_PP_ITERATION_FINISH_1 >= 80
+# define MSGPACK_PP_ITERATION_1 80
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 81 && MSGPACK_PP_ITERATION_FINISH_1 >= 81
+# define MSGPACK_PP_ITERATION_1 81
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 82 && MSGPACK_PP_ITERATION_FINISH_1 >= 82
+# define MSGPACK_PP_ITERATION_1 82
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 83 && MSGPACK_PP_ITERATION_FINISH_1 >= 83
+# define MSGPACK_PP_ITERATION_1 83
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 84 && MSGPACK_PP_ITERATION_FINISH_1 >= 84
+# define MSGPACK_PP_ITERATION_1 84
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 85 && MSGPACK_PP_ITERATION_FINISH_1 >= 85
+# define MSGPACK_PP_ITERATION_1 85
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 86 && MSGPACK_PP_ITERATION_FINISH_1 >= 86
+# define MSGPACK_PP_ITERATION_1 86
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 87 && MSGPACK_PP_ITERATION_FINISH_1 >= 87
+# define MSGPACK_PP_ITERATION_1 87
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 88 && MSGPACK_PP_ITERATION_FINISH_1 >= 88
+# define MSGPACK_PP_ITERATION_1 88
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 89 && MSGPACK_PP_ITERATION_FINISH_1 >= 89
+# define MSGPACK_PP_ITERATION_1 89
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 90 && MSGPACK_PP_ITERATION_FINISH_1 >= 90
+# define MSGPACK_PP_ITERATION_1 90
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 91 && MSGPACK_PP_ITERATION_FINISH_1 >= 91
+# define MSGPACK_PP_ITERATION_1 91
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 92 && MSGPACK_PP_ITERATION_FINISH_1 >= 92
+# define MSGPACK_PP_ITERATION_1 92
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 93 && MSGPACK_PP_ITERATION_FINISH_1 >= 93
+# define MSGPACK_PP_ITERATION_1 93
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 94 && MSGPACK_PP_ITERATION_FINISH_1 >= 94
+# define MSGPACK_PP_ITERATION_1 94
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 95 && MSGPACK_PP_ITERATION_FINISH_1 >= 95
+# define MSGPACK_PP_ITERATION_1 95
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 96 && MSGPACK_PP_ITERATION_FINISH_1 >= 96
+# define MSGPACK_PP_ITERATION_1 96
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 97 && MSGPACK_PP_ITERATION_FINISH_1 >= 97
+# define MSGPACK_PP_ITERATION_1 97
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 98 && MSGPACK_PP_ITERATION_FINISH_1 >= 98
+# define MSGPACK_PP_ITERATION_1 98
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 99 && MSGPACK_PP_ITERATION_FINISH_1 >= 99
+# define MSGPACK_PP_ITERATION_1 99
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 100 && MSGPACK_PP_ITERATION_FINISH_1 >= 100
+# define MSGPACK_PP_ITERATION_1 100
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 101 && MSGPACK_PP_ITERATION_FINISH_1 >= 101
+# define MSGPACK_PP_ITERATION_1 101
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 102 && MSGPACK_PP_ITERATION_FINISH_1 >= 102
+# define MSGPACK_PP_ITERATION_1 102
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 103 && MSGPACK_PP_ITERATION_FINISH_1 >= 103
+# define MSGPACK_PP_ITERATION_1 103
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 104 && MSGPACK_PP_ITERATION_FINISH_1 >= 104
+# define MSGPACK_PP_ITERATION_1 104
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 105 && MSGPACK_PP_ITERATION_FINISH_1 >= 105
+# define MSGPACK_PP_ITERATION_1 105
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 106 && MSGPACK_PP_ITERATION_FINISH_1 >= 106
+# define MSGPACK_PP_ITERATION_1 106
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 107 && MSGPACK_PP_ITERATION_FINISH_1 >= 107
+# define MSGPACK_PP_ITERATION_1 107
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 108 && MSGPACK_PP_ITERATION_FINISH_1 >= 108
+# define MSGPACK_PP_ITERATION_1 108
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 109 && MSGPACK_PP_ITERATION_FINISH_1 >= 109
+# define MSGPACK_PP_ITERATION_1 109
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 110 && MSGPACK_PP_ITERATION_FINISH_1 >= 110
+# define MSGPACK_PP_ITERATION_1 110
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 111 && MSGPACK_PP_ITERATION_FINISH_1 >= 111
+# define MSGPACK_PP_ITERATION_1 111
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 112 && MSGPACK_PP_ITERATION_FINISH_1 >= 112
+# define MSGPACK_PP_ITERATION_1 112
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 113 && MSGPACK_PP_ITERATION_FINISH_1 >= 113
+# define MSGPACK_PP_ITERATION_1 113
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 114 && MSGPACK_PP_ITERATION_FINISH_1 >= 114
+# define MSGPACK_PP_ITERATION_1 114
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 115 && MSGPACK_PP_ITERATION_FINISH_1 >= 115
+# define MSGPACK_PP_ITERATION_1 115
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 116 && MSGPACK_PP_ITERATION_FINISH_1 >= 116
+# define MSGPACK_PP_ITERATION_1 116
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 117 && MSGPACK_PP_ITERATION_FINISH_1 >= 117
+# define MSGPACK_PP_ITERATION_1 117
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 118 && MSGPACK_PP_ITERATION_FINISH_1 >= 118
+# define MSGPACK_PP_ITERATION_1 118
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 119 && MSGPACK_PP_ITERATION_FINISH_1 >= 119
+# define MSGPACK_PP_ITERATION_1 119
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 120 && MSGPACK_PP_ITERATION_FINISH_1 >= 120
+# define MSGPACK_PP_ITERATION_1 120
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 121 && MSGPACK_PP_ITERATION_FINISH_1 >= 121
+# define MSGPACK_PP_ITERATION_1 121
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 122 && MSGPACK_PP_ITERATION_FINISH_1 >= 122
+# define MSGPACK_PP_ITERATION_1 122
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 123 && MSGPACK_PP_ITERATION_FINISH_1 >= 123
+# define MSGPACK_PP_ITERATION_1 123
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 124 && MSGPACK_PP_ITERATION_FINISH_1 >= 124
+# define MSGPACK_PP_ITERATION_1 124
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 125 && MSGPACK_PP_ITERATION_FINISH_1 >= 125
+# define MSGPACK_PP_ITERATION_1 125
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 126 && MSGPACK_PP_ITERATION_FINISH_1 >= 126
+# define MSGPACK_PP_ITERATION_1 126
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 127 && MSGPACK_PP_ITERATION_FINISH_1 >= 127
+# define MSGPACK_PP_ITERATION_1 127
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 128 && MSGPACK_PP_ITERATION_FINISH_1 >= 128
+# define MSGPACK_PP_ITERATION_1 128
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 129 && MSGPACK_PP_ITERATION_FINISH_1 >= 129
+# define MSGPACK_PP_ITERATION_1 129
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 130 && MSGPACK_PP_ITERATION_FINISH_1 >= 130
+# define MSGPACK_PP_ITERATION_1 130
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 131 && MSGPACK_PP_ITERATION_FINISH_1 >= 131
+# define MSGPACK_PP_ITERATION_1 131
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 132 && MSGPACK_PP_ITERATION_FINISH_1 >= 132
+# define MSGPACK_PP_ITERATION_1 132
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 133 && MSGPACK_PP_ITERATION_FINISH_1 >= 133
+# define MSGPACK_PP_ITERATION_1 133
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 134 && MSGPACK_PP_ITERATION_FINISH_1 >= 134
+# define MSGPACK_PP_ITERATION_1 134
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 135 && MSGPACK_PP_ITERATION_FINISH_1 >= 135
+# define MSGPACK_PP_ITERATION_1 135
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 136 && MSGPACK_PP_ITERATION_FINISH_1 >= 136
+# define MSGPACK_PP_ITERATION_1 136
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 137 && MSGPACK_PP_ITERATION_FINISH_1 >= 137
+# define MSGPACK_PP_ITERATION_1 137
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 138 && MSGPACK_PP_ITERATION_FINISH_1 >= 138
+# define MSGPACK_PP_ITERATION_1 138
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 139 && MSGPACK_PP_ITERATION_FINISH_1 >= 139
+# define MSGPACK_PP_ITERATION_1 139
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 140 && MSGPACK_PP_ITERATION_FINISH_1 >= 140
+# define MSGPACK_PP_ITERATION_1 140
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 141 && MSGPACK_PP_ITERATION_FINISH_1 >= 141
+# define MSGPACK_PP_ITERATION_1 141
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 142 && MSGPACK_PP_ITERATION_FINISH_1 >= 142
+# define MSGPACK_PP_ITERATION_1 142
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 143 && MSGPACK_PP_ITERATION_FINISH_1 >= 143
+# define MSGPACK_PP_ITERATION_1 143
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 144 && MSGPACK_PP_ITERATION_FINISH_1 >= 144
+# define MSGPACK_PP_ITERATION_1 144
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 145 && MSGPACK_PP_ITERATION_FINISH_1 >= 145
+# define MSGPACK_PP_ITERATION_1 145
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 146 && MSGPACK_PP_ITERATION_FINISH_1 >= 146
+# define MSGPACK_PP_ITERATION_1 146
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 147 && MSGPACK_PP_ITERATION_FINISH_1 >= 147
+# define MSGPACK_PP_ITERATION_1 147
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 148 && MSGPACK_PP_ITERATION_FINISH_1 >= 148
+# define MSGPACK_PP_ITERATION_1 148
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 149 && MSGPACK_PP_ITERATION_FINISH_1 >= 149
+# define MSGPACK_PP_ITERATION_1 149
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 150 && MSGPACK_PP_ITERATION_FINISH_1 >= 150
+# define MSGPACK_PP_ITERATION_1 150
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 151 && MSGPACK_PP_ITERATION_FINISH_1 >= 151
+# define MSGPACK_PP_ITERATION_1 151
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 152 && MSGPACK_PP_ITERATION_FINISH_1 >= 152
+# define MSGPACK_PP_ITERATION_1 152
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 153 && MSGPACK_PP_ITERATION_FINISH_1 >= 153
+# define MSGPACK_PP_ITERATION_1 153
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 154 && MSGPACK_PP_ITERATION_FINISH_1 >= 154
+# define MSGPACK_PP_ITERATION_1 154
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 155 && MSGPACK_PP_ITERATION_FINISH_1 >= 155
+# define MSGPACK_PP_ITERATION_1 155
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 156 && MSGPACK_PP_ITERATION_FINISH_1 >= 156
+# define MSGPACK_PP_ITERATION_1 156
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 157 && MSGPACK_PP_ITERATION_FINISH_1 >= 157
+# define MSGPACK_PP_ITERATION_1 157
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 158 && MSGPACK_PP_ITERATION_FINISH_1 >= 158
+# define MSGPACK_PP_ITERATION_1 158
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 159 && MSGPACK_PP_ITERATION_FINISH_1 >= 159
+# define MSGPACK_PP_ITERATION_1 159
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 160 && MSGPACK_PP_ITERATION_FINISH_1 >= 160
+# define MSGPACK_PP_ITERATION_1 160
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 161 && MSGPACK_PP_ITERATION_FINISH_1 >= 161
+# define MSGPACK_PP_ITERATION_1 161
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 162 && MSGPACK_PP_ITERATION_FINISH_1 >= 162
+# define MSGPACK_PP_ITERATION_1 162
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 163 && MSGPACK_PP_ITERATION_FINISH_1 >= 163
+# define MSGPACK_PP_ITERATION_1 163
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 164 && MSGPACK_PP_ITERATION_FINISH_1 >= 164
+# define MSGPACK_PP_ITERATION_1 164
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 165 && MSGPACK_PP_ITERATION_FINISH_1 >= 165
+# define MSGPACK_PP_ITERATION_1 165
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 166 && MSGPACK_PP_ITERATION_FINISH_1 >= 166
+# define MSGPACK_PP_ITERATION_1 166
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 167 && MSGPACK_PP_ITERATION_FINISH_1 >= 167
+# define MSGPACK_PP_ITERATION_1 167
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 168 && MSGPACK_PP_ITERATION_FINISH_1 >= 168
+# define MSGPACK_PP_ITERATION_1 168
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 169 && MSGPACK_PP_ITERATION_FINISH_1 >= 169
+# define MSGPACK_PP_ITERATION_1 169
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 170 && MSGPACK_PP_ITERATION_FINISH_1 >= 170
+# define MSGPACK_PP_ITERATION_1 170
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 171 && MSGPACK_PP_ITERATION_FINISH_1 >= 171
+# define MSGPACK_PP_ITERATION_1 171
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 172 && MSGPACK_PP_ITERATION_FINISH_1 >= 172
+# define MSGPACK_PP_ITERATION_1 172
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 173 && MSGPACK_PP_ITERATION_FINISH_1 >= 173
+# define MSGPACK_PP_ITERATION_1 173
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 174 && MSGPACK_PP_ITERATION_FINISH_1 >= 174
+# define MSGPACK_PP_ITERATION_1 174
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 175 && MSGPACK_PP_ITERATION_FINISH_1 >= 175
+# define MSGPACK_PP_ITERATION_1 175
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 176 && MSGPACK_PP_ITERATION_FINISH_1 >= 176
+# define MSGPACK_PP_ITERATION_1 176
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 177 && MSGPACK_PP_ITERATION_FINISH_1 >= 177
+# define MSGPACK_PP_ITERATION_1 177
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 178 && MSGPACK_PP_ITERATION_FINISH_1 >= 178
+# define MSGPACK_PP_ITERATION_1 178
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 179 && MSGPACK_PP_ITERATION_FINISH_1 >= 179
+# define MSGPACK_PP_ITERATION_1 179
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 180 && MSGPACK_PP_ITERATION_FINISH_1 >= 180
+# define MSGPACK_PP_ITERATION_1 180
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 181 && MSGPACK_PP_ITERATION_FINISH_1 >= 181
+# define MSGPACK_PP_ITERATION_1 181
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 182 && MSGPACK_PP_ITERATION_FINISH_1 >= 182
+# define MSGPACK_PP_ITERATION_1 182
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 183 && MSGPACK_PP_ITERATION_FINISH_1 >= 183
+# define MSGPACK_PP_ITERATION_1 183
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 184 && MSGPACK_PP_ITERATION_FINISH_1 >= 184
+# define MSGPACK_PP_ITERATION_1 184
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 185 && MSGPACK_PP_ITERATION_FINISH_1 >= 185
+# define MSGPACK_PP_ITERATION_1 185
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 186 && MSGPACK_PP_ITERATION_FINISH_1 >= 186
+# define MSGPACK_PP_ITERATION_1 186
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 187 && MSGPACK_PP_ITERATION_FINISH_1 >= 187
+# define MSGPACK_PP_ITERATION_1 187
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 188 && MSGPACK_PP_ITERATION_FINISH_1 >= 188
+# define MSGPACK_PP_ITERATION_1 188
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 189 && MSGPACK_PP_ITERATION_FINISH_1 >= 189
+# define MSGPACK_PP_ITERATION_1 189
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 190 && MSGPACK_PP_ITERATION_FINISH_1 >= 190
+# define MSGPACK_PP_ITERATION_1 190
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 191 && MSGPACK_PP_ITERATION_FINISH_1 >= 191
+# define MSGPACK_PP_ITERATION_1 191
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 192 && MSGPACK_PP_ITERATION_FINISH_1 >= 192
+# define MSGPACK_PP_ITERATION_1 192
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 193 && MSGPACK_PP_ITERATION_FINISH_1 >= 193
+# define MSGPACK_PP_ITERATION_1 193
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 194 && MSGPACK_PP_ITERATION_FINISH_1 >= 194
+# define MSGPACK_PP_ITERATION_1 194
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 195 && MSGPACK_PP_ITERATION_FINISH_1 >= 195
+# define MSGPACK_PP_ITERATION_1 195
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 196 && MSGPACK_PP_ITERATION_FINISH_1 >= 196
+# define MSGPACK_PP_ITERATION_1 196
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 197 && MSGPACK_PP_ITERATION_FINISH_1 >= 197
+# define MSGPACK_PP_ITERATION_1 197
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 198 && MSGPACK_PP_ITERATION_FINISH_1 >= 198
+# define MSGPACK_PP_ITERATION_1 198
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 199 && MSGPACK_PP_ITERATION_FINISH_1 >= 199
+# define MSGPACK_PP_ITERATION_1 199
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 200 && MSGPACK_PP_ITERATION_FINISH_1 >= 200
+# define MSGPACK_PP_ITERATION_1 200
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 201 && MSGPACK_PP_ITERATION_FINISH_1 >= 201
+# define MSGPACK_PP_ITERATION_1 201
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 202 && MSGPACK_PP_ITERATION_FINISH_1 >= 202
+# define MSGPACK_PP_ITERATION_1 202
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 203 && MSGPACK_PP_ITERATION_FINISH_1 >= 203
+# define MSGPACK_PP_ITERATION_1 203
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 204 && MSGPACK_PP_ITERATION_FINISH_1 >= 204
+# define MSGPACK_PP_ITERATION_1 204
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 205 && MSGPACK_PP_ITERATION_FINISH_1 >= 205
+# define MSGPACK_PP_ITERATION_1 205
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 206 && MSGPACK_PP_ITERATION_FINISH_1 >= 206
+# define MSGPACK_PP_ITERATION_1 206
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 207 && MSGPACK_PP_ITERATION_FINISH_1 >= 207
+# define MSGPACK_PP_ITERATION_1 207
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 208 && MSGPACK_PP_ITERATION_FINISH_1 >= 208
+# define MSGPACK_PP_ITERATION_1 208
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 209 && MSGPACK_PP_ITERATION_FINISH_1 >= 209
+# define MSGPACK_PP_ITERATION_1 209
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 210 && MSGPACK_PP_ITERATION_FINISH_1 >= 210
+# define MSGPACK_PP_ITERATION_1 210
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 211 && MSGPACK_PP_ITERATION_FINISH_1 >= 211
+# define MSGPACK_PP_ITERATION_1 211
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 212 && MSGPACK_PP_ITERATION_FINISH_1 >= 212
+# define MSGPACK_PP_ITERATION_1 212
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 213 && MSGPACK_PP_ITERATION_FINISH_1 >= 213
+# define MSGPACK_PP_ITERATION_1 213
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 214 && MSGPACK_PP_ITERATION_FINISH_1 >= 214
+# define MSGPACK_PP_ITERATION_1 214
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 215 && MSGPACK_PP_ITERATION_FINISH_1 >= 215
+# define MSGPACK_PP_ITERATION_1 215
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 216 && MSGPACK_PP_ITERATION_FINISH_1 >= 216
+# define MSGPACK_PP_ITERATION_1 216
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 217 && MSGPACK_PP_ITERATION_FINISH_1 >= 217
+# define MSGPACK_PP_ITERATION_1 217
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 218 && MSGPACK_PP_ITERATION_FINISH_1 >= 218
+# define MSGPACK_PP_ITERATION_1 218
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 219 && MSGPACK_PP_ITERATION_FINISH_1 >= 219
+# define MSGPACK_PP_ITERATION_1 219
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 220 && MSGPACK_PP_ITERATION_FINISH_1 >= 220
+# define MSGPACK_PP_ITERATION_1 220
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 221 && MSGPACK_PP_ITERATION_FINISH_1 >= 221
+# define MSGPACK_PP_ITERATION_1 221
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 222 && MSGPACK_PP_ITERATION_FINISH_1 >= 222
+# define MSGPACK_PP_ITERATION_1 222
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 223 && MSGPACK_PP_ITERATION_FINISH_1 >= 223
+# define MSGPACK_PP_ITERATION_1 223
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 224 && MSGPACK_PP_ITERATION_FINISH_1 >= 224
+# define MSGPACK_PP_ITERATION_1 224
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 225 && MSGPACK_PP_ITERATION_FINISH_1 >= 225
+# define MSGPACK_PP_ITERATION_1 225
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 226 && MSGPACK_PP_ITERATION_FINISH_1 >= 226
+# define MSGPACK_PP_ITERATION_1 226
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 227 && MSGPACK_PP_ITERATION_FINISH_1 >= 227
+# define MSGPACK_PP_ITERATION_1 227
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 228 && MSGPACK_PP_ITERATION_FINISH_1 >= 228
+# define MSGPACK_PP_ITERATION_1 228
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 229 && MSGPACK_PP_ITERATION_FINISH_1 >= 229
+# define MSGPACK_PP_ITERATION_1 229
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 230 && MSGPACK_PP_ITERATION_FINISH_1 >= 230
+# define MSGPACK_PP_ITERATION_1 230
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 231 && MSGPACK_PP_ITERATION_FINISH_1 >= 231
+# define MSGPACK_PP_ITERATION_1 231
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 232 && MSGPACK_PP_ITERATION_FINISH_1 >= 232
+# define MSGPACK_PP_ITERATION_1 232
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 233 && MSGPACK_PP_ITERATION_FINISH_1 >= 233
+# define MSGPACK_PP_ITERATION_1 233
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 234 && MSGPACK_PP_ITERATION_FINISH_1 >= 234
+# define MSGPACK_PP_ITERATION_1 234
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 235 && MSGPACK_PP_ITERATION_FINISH_1 >= 235
+# define MSGPACK_PP_ITERATION_1 235
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 236 && MSGPACK_PP_ITERATION_FINISH_1 >= 236
+# define MSGPACK_PP_ITERATION_1 236
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 237 && MSGPACK_PP_ITERATION_FINISH_1 >= 237
+# define MSGPACK_PP_ITERATION_1 237
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 238 && MSGPACK_PP_ITERATION_FINISH_1 >= 238
+# define MSGPACK_PP_ITERATION_1 238
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 239 && MSGPACK_PP_ITERATION_FINISH_1 >= 239
+# define MSGPACK_PP_ITERATION_1 239
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 240 && MSGPACK_PP_ITERATION_FINISH_1 >= 240
+# define MSGPACK_PP_ITERATION_1 240
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 241 && MSGPACK_PP_ITERATION_FINISH_1 >= 241
+# define MSGPACK_PP_ITERATION_1 241
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 242 && MSGPACK_PP_ITERATION_FINISH_1 >= 242
+# define MSGPACK_PP_ITERATION_1 242
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 243 && MSGPACK_PP_ITERATION_FINISH_1 >= 243
+# define MSGPACK_PP_ITERATION_1 243
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 244 && MSGPACK_PP_ITERATION_FINISH_1 >= 244
+# define MSGPACK_PP_ITERATION_1 244
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 245 && MSGPACK_PP_ITERATION_FINISH_1 >= 245
+# define MSGPACK_PP_ITERATION_1 245
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 246 && MSGPACK_PP_ITERATION_FINISH_1 >= 246
+# define MSGPACK_PP_ITERATION_1 246
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 247 && MSGPACK_PP_ITERATION_FINISH_1 >= 247
+# define MSGPACK_PP_ITERATION_1 247
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 248 && MSGPACK_PP_ITERATION_FINISH_1 >= 248
+# define MSGPACK_PP_ITERATION_1 248
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 249 && MSGPACK_PP_ITERATION_FINISH_1 >= 249
+# define MSGPACK_PP_ITERATION_1 249
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 250 && MSGPACK_PP_ITERATION_FINISH_1 >= 250
+# define MSGPACK_PP_ITERATION_1 250
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 251 && MSGPACK_PP_ITERATION_FINISH_1 >= 251
+# define MSGPACK_PP_ITERATION_1 251
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 252 && MSGPACK_PP_ITERATION_FINISH_1 >= 252
+# define MSGPACK_PP_ITERATION_1 252
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 253 && MSGPACK_PP_ITERATION_FINISH_1 >= 253
+# define MSGPACK_PP_ITERATION_1 253
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 254 && MSGPACK_PP_ITERATION_FINISH_1 >= 254
+# define MSGPACK_PP_ITERATION_1 254
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 255 && MSGPACK_PP_ITERATION_FINISH_1 >= 255
+# define MSGPACK_PP_ITERATION_1 255
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_START_1 <= 256 && MSGPACK_PP_ITERATION_FINISH_1 >= 256
+# define MSGPACK_PP_ITERATION_1 256
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# endif
+#
+# undef MSGPACK_PP_IS_ITERATING
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 0
+#
+# undef MSGPACK_PP_ITERATION_START_1
+# undef MSGPACK_PP_ITERATION_FINISH_1
+# undef MSGPACK_PP_FILENAME_1
+#
+# undef MSGPACK_PP_ITERATION_FLAGS_1
+# undef MSGPACK_PP_ITERATION_PARAMS_1
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward2.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward2.hpp
new file mode 100644
index 000000000..071d9d9d2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward2.hpp
@@ -0,0 +1,1338 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if defined(MSGPACK_PP_ITERATION_LIMITS)
+# if !defined(MSGPACK_PP_FILENAME_2)
+# error MSGPACK_PP_ERROR: depth #2 filename is not defined
+# endif
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp>
+# define MSGPACK_PP_ITERATION_FLAGS_2() 0
+# undef MSGPACK_PP_ITERATION_LIMITS
+# elif defined(MSGPACK_PP_ITERATION_PARAMS_2)
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_2)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower2.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_2)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper2.hpp>
+# define MSGPACK_PP_FILENAME_2 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_2)
+# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_2) >= 4
+# define MSGPACK_PP_ITERATION_FLAGS_2() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_2)
+# else
+# define MSGPACK_PP_ITERATION_FLAGS_2() 0
+# endif
+# else
+# error MSGPACK_PP_ERROR: depth #2 iteration boundaries or filename not defined
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 2
+#
+# if (MSGPACK_PP_ITERATION_START_2) > (MSGPACK_PP_ITERATION_FINISH_2)
+# include <rpc/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp>
+# else
+# if MSGPACK_PP_ITERATION_START_2 <= 0 && MSGPACK_PP_ITERATION_FINISH_2 >= 0
+# define MSGPACK_PP_ITERATION_2 0
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 1 && MSGPACK_PP_ITERATION_FINISH_2 >= 1
+# define MSGPACK_PP_ITERATION_2 1
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 2 && MSGPACK_PP_ITERATION_FINISH_2 >= 2
+# define MSGPACK_PP_ITERATION_2 2
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 3 && MSGPACK_PP_ITERATION_FINISH_2 >= 3
+# define MSGPACK_PP_ITERATION_2 3
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 4 && MSGPACK_PP_ITERATION_FINISH_2 >= 4
+# define MSGPACK_PP_ITERATION_2 4
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 5 && MSGPACK_PP_ITERATION_FINISH_2 >= 5
+# define MSGPACK_PP_ITERATION_2 5
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 6 && MSGPACK_PP_ITERATION_FINISH_2 >= 6
+# define MSGPACK_PP_ITERATION_2 6
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 7 && MSGPACK_PP_ITERATION_FINISH_2 >= 7
+# define MSGPACK_PP_ITERATION_2 7
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 8 && MSGPACK_PP_ITERATION_FINISH_2 >= 8
+# define MSGPACK_PP_ITERATION_2 8
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 9 && MSGPACK_PP_ITERATION_FINISH_2 >= 9
+# define MSGPACK_PP_ITERATION_2 9
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 10 && MSGPACK_PP_ITERATION_FINISH_2 >= 10
+# define MSGPACK_PP_ITERATION_2 10
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 11 && MSGPACK_PP_ITERATION_FINISH_2 >= 11
+# define MSGPACK_PP_ITERATION_2 11
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 12 && MSGPACK_PP_ITERATION_FINISH_2 >= 12
+# define MSGPACK_PP_ITERATION_2 12
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 13 && MSGPACK_PP_ITERATION_FINISH_2 >= 13
+# define MSGPACK_PP_ITERATION_2 13
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 14 && MSGPACK_PP_ITERATION_FINISH_2 >= 14
+# define MSGPACK_PP_ITERATION_2 14
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 15 && MSGPACK_PP_ITERATION_FINISH_2 >= 15
+# define MSGPACK_PP_ITERATION_2 15
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 16 && MSGPACK_PP_ITERATION_FINISH_2 >= 16
+# define MSGPACK_PP_ITERATION_2 16
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 17 && MSGPACK_PP_ITERATION_FINISH_2 >= 17
+# define MSGPACK_PP_ITERATION_2 17
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 18 && MSGPACK_PP_ITERATION_FINISH_2 >= 18
+# define MSGPACK_PP_ITERATION_2 18
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 19 && MSGPACK_PP_ITERATION_FINISH_2 >= 19
+# define MSGPACK_PP_ITERATION_2 19
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 20 && MSGPACK_PP_ITERATION_FINISH_2 >= 20
+# define MSGPACK_PP_ITERATION_2 20
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 21 && MSGPACK_PP_ITERATION_FINISH_2 >= 21
+# define MSGPACK_PP_ITERATION_2 21
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 22 && MSGPACK_PP_ITERATION_FINISH_2 >= 22
+# define MSGPACK_PP_ITERATION_2 22
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 23 && MSGPACK_PP_ITERATION_FINISH_2 >= 23
+# define MSGPACK_PP_ITERATION_2 23
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 24 && MSGPACK_PP_ITERATION_FINISH_2 >= 24
+# define MSGPACK_PP_ITERATION_2 24
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 25 && MSGPACK_PP_ITERATION_FINISH_2 >= 25
+# define MSGPACK_PP_ITERATION_2 25
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 26 && MSGPACK_PP_ITERATION_FINISH_2 >= 26
+# define MSGPACK_PP_ITERATION_2 26
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 27 && MSGPACK_PP_ITERATION_FINISH_2 >= 27
+# define MSGPACK_PP_ITERATION_2 27
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 28 && MSGPACK_PP_ITERATION_FINISH_2 >= 28
+# define MSGPACK_PP_ITERATION_2 28
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 29 && MSGPACK_PP_ITERATION_FINISH_2 >= 29
+# define MSGPACK_PP_ITERATION_2 29
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 30 && MSGPACK_PP_ITERATION_FINISH_2 >= 30
+# define MSGPACK_PP_ITERATION_2 30
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 31 && MSGPACK_PP_ITERATION_FINISH_2 >= 31
+# define MSGPACK_PP_ITERATION_2 31
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 32 && MSGPACK_PP_ITERATION_FINISH_2 >= 32
+# define MSGPACK_PP_ITERATION_2 32
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 33 && MSGPACK_PP_ITERATION_FINISH_2 >= 33
+# define MSGPACK_PP_ITERATION_2 33
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 34 && MSGPACK_PP_ITERATION_FINISH_2 >= 34
+# define MSGPACK_PP_ITERATION_2 34
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 35 && MSGPACK_PP_ITERATION_FINISH_2 >= 35
+# define MSGPACK_PP_ITERATION_2 35
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 36 && MSGPACK_PP_ITERATION_FINISH_2 >= 36
+# define MSGPACK_PP_ITERATION_2 36
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 37 && MSGPACK_PP_ITERATION_FINISH_2 >= 37
+# define MSGPACK_PP_ITERATION_2 37
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 38 && MSGPACK_PP_ITERATION_FINISH_2 >= 38
+# define MSGPACK_PP_ITERATION_2 38
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 39 && MSGPACK_PP_ITERATION_FINISH_2 >= 39
+# define MSGPACK_PP_ITERATION_2 39
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 40 && MSGPACK_PP_ITERATION_FINISH_2 >= 40
+# define MSGPACK_PP_ITERATION_2 40
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 41 && MSGPACK_PP_ITERATION_FINISH_2 >= 41
+# define MSGPACK_PP_ITERATION_2 41
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 42 && MSGPACK_PP_ITERATION_FINISH_2 >= 42
+# define MSGPACK_PP_ITERATION_2 42
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 43 && MSGPACK_PP_ITERATION_FINISH_2 >= 43
+# define MSGPACK_PP_ITERATION_2 43
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 44 && MSGPACK_PP_ITERATION_FINISH_2 >= 44
+# define MSGPACK_PP_ITERATION_2 44
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 45 && MSGPACK_PP_ITERATION_FINISH_2 >= 45
+# define MSGPACK_PP_ITERATION_2 45
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 46 && MSGPACK_PP_ITERATION_FINISH_2 >= 46
+# define MSGPACK_PP_ITERATION_2 46
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 47 && MSGPACK_PP_ITERATION_FINISH_2 >= 47
+# define MSGPACK_PP_ITERATION_2 47
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 48 && MSGPACK_PP_ITERATION_FINISH_2 >= 48
+# define MSGPACK_PP_ITERATION_2 48
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 49 && MSGPACK_PP_ITERATION_FINISH_2 >= 49
+# define MSGPACK_PP_ITERATION_2 49
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 50 && MSGPACK_PP_ITERATION_FINISH_2 >= 50
+# define MSGPACK_PP_ITERATION_2 50
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 51 && MSGPACK_PP_ITERATION_FINISH_2 >= 51
+# define MSGPACK_PP_ITERATION_2 51
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 52 && MSGPACK_PP_ITERATION_FINISH_2 >= 52
+# define MSGPACK_PP_ITERATION_2 52
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 53 && MSGPACK_PP_ITERATION_FINISH_2 >= 53
+# define MSGPACK_PP_ITERATION_2 53
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 54 && MSGPACK_PP_ITERATION_FINISH_2 >= 54
+# define MSGPACK_PP_ITERATION_2 54
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 55 && MSGPACK_PP_ITERATION_FINISH_2 >= 55
+# define MSGPACK_PP_ITERATION_2 55
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 56 && MSGPACK_PP_ITERATION_FINISH_2 >= 56
+# define MSGPACK_PP_ITERATION_2 56
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 57 && MSGPACK_PP_ITERATION_FINISH_2 >= 57
+# define MSGPACK_PP_ITERATION_2 57
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 58 && MSGPACK_PP_ITERATION_FINISH_2 >= 58
+# define MSGPACK_PP_ITERATION_2 58
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 59 && MSGPACK_PP_ITERATION_FINISH_2 >= 59
+# define MSGPACK_PP_ITERATION_2 59
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 60 && MSGPACK_PP_ITERATION_FINISH_2 >= 60
+# define MSGPACK_PP_ITERATION_2 60
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 61 && MSGPACK_PP_ITERATION_FINISH_2 >= 61
+# define MSGPACK_PP_ITERATION_2 61
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 62 && MSGPACK_PP_ITERATION_FINISH_2 >= 62
+# define MSGPACK_PP_ITERATION_2 62
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 63 && MSGPACK_PP_ITERATION_FINISH_2 >= 63
+# define MSGPACK_PP_ITERATION_2 63
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 64 && MSGPACK_PP_ITERATION_FINISH_2 >= 64
+# define MSGPACK_PP_ITERATION_2 64
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 65 && MSGPACK_PP_ITERATION_FINISH_2 >= 65
+# define MSGPACK_PP_ITERATION_2 65
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 66 && MSGPACK_PP_ITERATION_FINISH_2 >= 66
+# define MSGPACK_PP_ITERATION_2 66
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 67 && MSGPACK_PP_ITERATION_FINISH_2 >= 67
+# define MSGPACK_PP_ITERATION_2 67
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 68 && MSGPACK_PP_ITERATION_FINISH_2 >= 68
+# define MSGPACK_PP_ITERATION_2 68
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 69 && MSGPACK_PP_ITERATION_FINISH_2 >= 69
+# define MSGPACK_PP_ITERATION_2 69
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 70 && MSGPACK_PP_ITERATION_FINISH_2 >= 70
+# define MSGPACK_PP_ITERATION_2 70
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 71 && MSGPACK_PP_ITERATION_FINISH_2 >= 71
+# define MSGPACK_PP_ITERATION_2 71
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 72 && MSGPACK_PP_ITERATION_FINISH_2 >= 72
+# define MSGPACK_PP_ITERATION_2 72
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 73 && MSGPACK_PP_ITERATION_FINISH_2 >= 73
+# define MSGPACK_PP_ITERATION_2 73
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 74 && MSGPACK_PP_ITERATION_FINISH_2 >= 74
+# define MSGPACK_PP_ITERATION_2 74
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 75 && MSGPACK_PP_ITERATION_FINISH_2 >= 75
+# define MSGPACK_PP_ITERATION_2 75
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 76 && MSGPACK_PP_ITERATION_FINISH_2 >= 76
+# define MSGPACK_PP_ITERATION_2 76
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 77 && MSGPACK_PP_ITERATION_FINISH_2 >= 77
+# define MSGPACK_PP_ITERATION_2 77
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 78 && MSGPACK_PP_ITERATION_FINISH_2 >= 78
+# define MSGPACK_PP_ITERATION_2 78
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 79 && MSGPACK_PP_ITERATION_FINISH_2 >= 79
+# define MSGPACK_PP_ITERATION_2 79
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 80 && MSGPACK_PP_ITERATION_FINISH_2 >= 80
+# define MSGPACK_PP_ITERATION_2 80
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 81 && MSGPACK_PP_ITERATION_FINISH_2 >= 81
+# define MSGPACK_PP_ITERATION_2 81
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 82 && MSGPACK_PP_ITERATION_FINISH_2 >= 82
+# define MSGPACK_PP_ITERATION_2 82
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 83 && MSGPACK_PP_ITERATION_FINISH_2 >= 83
+# define MSGPACK_PP_ITERATION_2 83
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 84 && MSGPACK_PP_ITERATION_FINISH_2 >= 84
+# define MSGPACK_PP_ITERATION_2 84
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 85 && MSGPACK_PP_ITERATION_FINISH_2 >= 85
+# define MSGPACK_PP_ITERATION_2 85
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 86 && MSGPACK_PP_ITERATION_FINISH_2 >= 86
+# define MSGPACK_PP_ITERATION_2 86
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 87 && MSGPACK_PP_ITERATION_FINISH_2 >= 87
+# define MSGPACK_PP_ITERATION_2 87
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 88 && MSGPACK_PP_ITERATION_FINISH_2 >= 88
+# define MSGPACK_PP_ITERATION_2 88
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 89 && MSGPACK_PP_ITERATION_FINISH_2 >= 89
+# define MSGPACK_PP_ITERATION_2 89
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 90 && MSGPACK_PP_ITERATION_FINISH_2 >= 90
+# define MSGPACK_PP_ITERATION_2 90
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 91 && MSGPACK_PP_ITERATION_FINISH_2 >= 91
+# define MSGPACK_PP_ITERATION_2 91
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 92 && MSGPACK_PP_ITERATION_FINISH_2 >= 92
+# define MSGPACK_PP_ITERATION_2 92
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 93 && MSGPACK_PP_ITERATION_FINISH_2 >= 93
+# define MSGPACK_PP_ITERATION_2 93
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 94 && MSGPACK_PP_ITERATION_FINISH_2 >= 94
+# define MSGPACK_PP_ITERATION_2 94
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 95 && MSGPACK_PP_ITERATION_FINISH_2 >= 95
+# define MSGPACK_PP_ITERATION_2 95
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 96 && MSGPACK_PP_ITERATION_FINISH_2 >= 96
+# define MSGPACK_PP_ITERATION_2 96
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 97 && MSGPACK_PP_ITERATION_FINISH_2 >= 97
+# define MSGPACK_PP_ITERATION_2 97
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 98 && MSGPACK_PP_ITERATION_FINISH_2 >= 98
+# define MSGPACK_PP_ITERATION_2 98
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 99 && MSGPACK_PP_ITERATION_FINISH_2 >= 99
+# define MSGPACK_PP_ITERATION_2 99
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 100 && MSGPACK_PP_ITERATION_FINISH_2 >= 100
+# define MSGPACK_PP_ITERATION_2 100
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 101 && MSGPACK_PP_ITERATION_FINISH_2 >= 101
+# define MSGPACK_PP_ITERATION_2 101
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 102 && MSGPACK_PP_ITERATION_FINISH_2 >= 102
+# define MSGPACK_PP_ITERATION_2 102
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 103 && MSGPACK_PP_ITERATION_FINISH_2 >= 103
+# define MSGPACK_PP_ITERATION_2 103
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 104 && MSGPACK_PP_ITERATION_FINISH_2 >= 104
+# define MSGPACK_PP_ITERATION_2 104
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 105 && MSGPACK_PP_ITERATION_FINISH_2 >= 105
+# define MSGPACK_PP_ITERATION_2 105
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 106 && MSGPACK_PP_ITERATION_FINISH_2 >= 106
+# define MSGPACK_PP_ITERATION_2 106
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 107 && MSGPACK_PP_ITERATION_FINISH_2 >= 107
+# define MSGPACK_PP_ITERATION_2 107
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 108 && MSGPACK_PP_ITERATION_FINISH_2 >= 108
+# define MSGPACK_PP_ITERATION_2 108
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 109 && MSGPACK_PP_ITERATION_FINISH_2 >= 109
+# define MSGPACK_PP_ITERATION_2 109
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 110 && MSGPACK_PP_ITERATION_FINISH_2 >= 110
+# define MSGPACK_PP_ITERATION_2 110
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 111 && MSGPACK_PP_ITERATION_FINISH_2 >= 111
+# define MSGPACK_PP_ITERATION_2 111
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 112 && MSGPACK_PP_ITERATION_FINISH_2 >= 112
+# define MSGPACK_PP_ITERATION_2 112
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 113 && MSGPACK_PP_ITERATION_FINISH_2 >= 113
+# define MSGPACK_PP_ITERATION_2 113
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 114 && MSGPACK_PP_ITERATION_FINISH_2 >= 114
+# define MSGPACK_PP_ITERATION_2 114
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 115 && MSGPACK_PP_ITERATION_FINISH_2 >= 115
+# define MSGPACK_PP_ITERATION_2 115
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 116 && MSGPACK_PP_ITERATION_FINISH_2 >= 116
+# define MSGPACK_PP_ITERATION_2 116
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 117 && MSGPACK_PP_ITERATION_FINISH_2 >= 117
+# define MSGPACK_PP_ITERATION_2 117
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 118 && MSGPACK_PP_ITERATION_FINISH_2 >= 118
+# define MSGPACK_PP_ITERATION_2 118
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 119 && MSGPACK_PP_ITERATION_FINISH_2 >= 119
+# define MSGPACK_PP_ITERATION_2 119
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 120 && MSGPACK_PP_ITERATION_FINISH_2 >= 120
+# define MSGPACK_PP_ITERATION_2 120
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 121 && MSGPACK_PP_ITERATION_FINISH_2 >= 121
+# define MSGPACK_PP_ITERATION_2 121
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 122 && MSGPACK_PP_ITERATION_FINISH_2 >= 122
+# define MSGPACK_PP_ITERATION_2 122
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 123 && MSGPACK_PP_ITERATION_FINISH_2 >= 123
+# define MSGPACK_PP_ITERATION_2 123
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 124 && MSGPACK_PP_ITERATION_FINISH_2 >= 124
+# define MSGPACK_PP_ITERATION_2 124
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 125 && MSGPACK_PP_ITERATION_FINISH_2 >= 125
+# define MSGPACK_PP_ITERATION_2 125
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 126 && MSGPACK_PP_ITERATION_FINISH_2 >= 126
+# define MSGPACK_PP_ITERATION_2 126
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 127 && MSGPACK_PP_ITERATION_FINISH_2 >= 127
+# define MSGPACK_PP_ITERATION_2 127
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 128 && MSGPACK_PP_ITERATION_FINISH_2 >= 128
+# define MSGPACK_PP_ITERATION_2 128
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 129 && MSGPACK_PP_ITERATION_FINISH_2 >= 129
+# define MSGPACK_PP_ITERATION_2 129
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 130 && MSGPACK_PP_ITERATION_FINISH_2 >= 130
+# define MSGPACK_PP_ITERATION_2 130
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 131 && MSGPACK_PP_ITERATION_FINISH_2 >= 131
+# define MSGPACK_PP_ITERATION_2 131
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 132 && MSGPACK_PP_ITERATION_FINISH_2 >= 132
+# define MSGPACK_PP_ITERATION_2 132
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 133 && MSGPACK_PP_ITERATION_FINISH_2 >= 133
+# define MSGPACK_PP_ITERATION_2 133
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 134 && MSGPACK_PP_ITERATION_FINISH_2 >= 134
+# define MSGPACK_PP_ITERATION_2 134
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 135 && MSGPACK_PP_ITERATION_FINISH_2 >= 135
+# define MSGPACK_PP_ITERATION_2 135
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 136 && MSGPACK_PP_ITERATION_FINISH_2 >= 136
+# define MSGPACK_PP_ITERATION_2 136
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 137 && MSGPACK_PP_ITERATION_FINISH_2 >= 137
+# define MSGPACK_PP_ITERATION_2 137
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 138 && MSGPACK_PP_ITERATION_FINISH_2 >= 138
+# define MSGPACK_PP_ITERATION_2 138
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 139 && MSGPACK_PP_ITERATION_FINISH_2 >= 139
+# define MSGPACK_PP_ITERATION_2 139
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 140 && MSGPACK_PP_ITERATION_FINISH_2 >= 140
+# define MSGPACK_PP_ITERATION_2 140
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 141 && MSGPACK_PP_ITERATION_FINISH_2 >= 141
+# define MSGPACK_PP_ITERATION_2 141
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 142 && MSGPACK_PP_ITERATION_FINISH_2 >= 142
+# define MSGPACK_PP_ITERATION_2 142
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 143 && MSGPACK_PP_ITERATION_FINISH_2 >= 143
+# define MSGPACK_PP_ITERATION_2 143
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 144 && MSGPACK_PP_ITERATION_FINISH_2 >= 144
+# define MSGPACK_PP_ITERATION_2 144
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 145 && MSGPACK_PP_ITERATION_FINISH_2 >= 145
+# define MSGPACK_PP_ITERATION_2 145
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 146 && MSGPACK_PP_ITERATION_FINISH_2 >= 146
+# define MSGPACK_PP_ITERATION_2 146
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 147 && MSGPACK_PP_ITERATION_FINISH_2 >= 147
+# define MSGPACK_PP_ITERATION_2 147
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 148 && MSGPACK_PP_ITERATION_FINISH_2 >= 148
+# define MSGPACK_PP_ITERATION_2 148
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 149 && MSGPACK_PP_ITERATION_FINISH_2 >= 149
+# define MSGPACK_PP_ITERATION_2 149
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 150 && MSGPACK_PP_ITERATION_FINISH_2 >= 150
+# define MSGPACK_PP_ITERATION_2 150
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 151 && MSGPACK_PP_ITERATION_FINISH_2 >= 151
+# define MSGPACK_PP_ITERATION_2 151
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 152 && MSGPACK_PP_ITERATION_FINISH_2 >= 152
+# define MSGPACK_PP_ITERATION_2 152
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 153 && MSGPACK_PP_ITERATION_FINISH_2 >= 153
+# define MSGPACK_PP_ITERATION_2 153
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 154 && MSGPACK_PP_ITERATION_FINISH_2 >= 154
+# define MSGPACK_PP_ITERATION_2 154
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 155 && MSGPACK_PP_ITERATION_FINISH_2 >= 155
+# define MSGPACK_PP_ITERATION_2 155
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 156 && MSGPACK_PP_ITERATION_FINISH_2 >= 156
+# define MSGPACK_PP_ITERATION_2 156
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 157 && MSGPACK_PP_ITERATION_FINISH_2 >= 157
+# define MSGPACK_PP_ITERATION_2 157
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 158 && MSGPACK_PP_ITERATION_FINISH_2 >= 158
+# define MSGPACK_PP_ITERATION_2 158
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 159 && MSGPACK_PP_ITERATION_FINISH_2 >= 159
+# define MSGPACK_PP_ITERATION_2 159
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 160 && MSGPACK_PP_ITERATION_FINISH_2 >= 160
+# define MSGPACK_PP_ITERATION_2 160
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 161 && MSGPACK_PP_ITERATION_FINISH_2 >= 161
+# define MSGPACK_PP_ITERATION_2 161
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 162 && MSGPACK_PP_ITERATION_FINISH_2 >= 162
+# define MSGPACK_PP_ITERATION_2 162
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 163 && MSGPACK_PP_ITERATION_FINISH_2 >= 163
+# define MSGPACK_PP_ITERATION_2 163
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 164 && MSGPACK_PP_ITERATION_FINISH_2 >= 164
+# define MSGPACK_PP_ITERATION_2 164
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 165 && MSGPACK_PP_ITERATION_FINISH_2 >= 165
+# define MSGPACK_PP_ITERATION_2 165
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 166 && MSGPACK_PP_ITERATION_FINISH_2 >= 166
+# define MSGPACK_PP_ITERATION_2 166
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 167 && MSGPACK_PP_ITERATION_FINISH_2 >= 167
+# define MSGPACK_PP_ITERATION_2 167
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 168 && MSGPACK_PP_ITERATION_FINISH_2 >= 168
+# define MSGPACK_PP_ITERATION_2 168
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 169 && MSGPACK_PP_ITERATION_FINISH_2 >= 169
+# define MSGPACK_PP_ITERATION_2 169
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 170 && MSGPACK_PP_ITERATION_FINISH_2 >= 170
+# define MSGPACK_PP_ITERATION_2 170
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 171 && MSGPACK_PP_ITERATION_FINISH_2 >= 171
+# define MSGPACK_PP_ITERATION_2 171
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 172 && MSGPACK_PP_ITERATION_FINISH_2 >= 172
+# define MSGPACK_PP_ITERATION_2 172
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 173 && MSGPACK_PP_ITERATION_FINISH_2 >= 173
+# define MSGPACK_PP_ITERATION_2 173
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 174 && MSGPACK_PP_ITERATION_FINISH_2 >= 174
+# define MSGPACK_PP_ITERATION_2 174
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 175 && MSGPACK_PP_ITERATION_FINISH_2 >= 175
+# define MSGPACK_PP_ITERATION_2 175
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 176 && MSGPACK_PP_ITERATION_FINISH_2 >= 176
+# define MSGPACK_PP_ITERATION_2 176
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 177 && MSGPACK_PP_ITERATION_FINISH_2 >= 177
+# define MSGPACK_PP_ITERATION_2 177
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 178 && MSGPACK_PP_ITERATION_FINISH_2 >= 178
+# define MSGPACK_PP_ITERATION_2 178
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 179 && MSGPACK_PP_ITERATION_FINISH_2 >= 179
+# define MSGPACK_PP_ITERATION_2 179
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 180 && MSGPACK_PP_ITERATION_FINISH_2 >= 180
+# define MSGPACK_PP_ITERATION_2 180
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 181 && MSGPACK_PP_ITERATION_FINISH_2 >= 181
+# define MSGPACK_PP_ITERATION_2 181
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 182 && MSGPACK_PP_ITERATION_FINISH_2 >= 182
+# define MSGPACK_PP_ITERATION_2 182
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 183 && MSGPACK_PP_ITERATION_FINISH_2 >= 183
+# define MSGPACK_PP_ITERATION_2 183
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 184 && MSGPACK_PP_ITERATION_FINISH_2 >= 184
+# define MSGPACK_PP_ITERATION_2 184
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 185 && MSGPACK_PP_ITERATION_FINISH_2 >= 185
+# define MSGPACK_PP_ITERATION_2 185
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 186 && MSGPACK_PP_ITERATION_FINISH_2 >= 186
+# define MSGPACK_PP_ITERATION_2 186
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 187 && MSGPACK_PP_ITERATION_FINISH_2 >= 187
+# define MSGPACK_PP_ITERATION_2 187
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 188 && MSGPACK_PP_ITERATION_FINISH_2 >= 188
+# define MSGPACK_PP_ITERATION_2 188
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 189 && MSGPACK_PP_ITERATION_FINISH_2 >= 189
+# define MSGPACK_PP_ITERATION_2 189
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 190 && MSGPACK_PP_ITERATION_FINISH_2 >= 190
+# define MSGPACK_PP_ITERATION_2 190
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 191 && MSGPACK_PP_ITERATION_FINISH_2 >= 191
+# define MSGPACK_PP_ITERATION_2 191
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 192 && MSGPACK_PP_ITERATION_FINISH_2 >= 192
+# define MSGPACK_PP_ITERATION_2 192
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 193 && MSGPACK_PP_ITERATION_FINISH_2 >= 193
+# define MSGPACK_PP_ITERATION_2 193
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 194 && MSGPACK_PP_ITERATION_FINISH_2 >= 194
+# define MSGPACK_PP_ITERATION_2 194
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 195 && MSGPACK_PP_ITERATION_FINISH_2 >= 195
+# define MSGPACK_PP_ITERATION_2 195
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 196 && MSGPACK_PP_ITERATION_FINISH_2 >= 196
+# define MSGPACK_PP_ITERATION_2 196
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 197 && MSGPACK_PP_ITERATION_FINISH_2 >= 197
+# define MSGPACK_PP_ITERATION_2 197
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 198 && MSGPACK_PP_ITERATION_FINISH_2 >= 198
+# define MSGPACK_PP_ITERATION_2 198
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 199 && MSGPACK_PP_ITERATION_FINISH_2 >= 199
+# define MSGPACK_PP_ITERATION_2 199
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 200 && MSGPACK_PP_ITERATION_FINISH_2 >= 200
+# define MSGPACK_PP_ITERATION_2 200
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 201 && MSGPACK_PP_ITERATION_FINISH_2 >= 201
+# define MSGPACK_PP_ITERATION_2 201
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 202 && MSGPACK_PP_ITERATION_FINISH_2 >= 202
+# define MSGPACK_PP_ITERATION_2 202
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 203 && MSGPACK_PP_ITERATION_FINISH_2 >= 203
+# define MSGPACK_PP_ITERATION_2 203
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 204 && MSGPACK_PP_ITERATION_FINISH_2 >= 204
+# define MSGPACK_PP_ITERATION_2 204
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 205 && MSGPACK_PP_ITERATION_FINISH_2 >= 205
+# define MSGPACK_PP_ITERATION_2 205
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 206 && MSGPACK_PP_ITERATION_FINISH_2 >= 206
+# define MSGPACK_PP_ITERATION_2 206
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 207 && MSGPACK_PP_ITERATION_FINISH_2 >= 207
+# define MSGPACK_PP_ITERATION_2 207
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 208 && MSGPACK_PP_ITERATION_FINISH_2 >= 208
+# define MSGPACK_PP_ITERATION_2 208
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 209 && MSGPACK_PP_ITERATION_FINISH_2 >= 209
+# define MSGPACK_PP_ITERATION_2 209
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 210 && MSGPACK_PP_ITERATION_FINISH_2 >= 210
+# define MSGPACK_PP_ITERATION_2 210
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 211 && MSGPACK_PP_ITERATION_FINISH_2 >= 211
+# define MSGPACK_PP_ITERATION_2 211
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 212 && MSGPACK_PP_ITERATION_FINISH_2 >= 212
+# define MSGPACK_PP_ITERATION_2 212
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 213 && MSGPACK_PP_ITERATION_FINISH_2 >= 213
+# define MSGPACK_PP_ITERATION_2 213
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 214 && MSGPACK_PP_ITERATION_FINISH_2 >= 214
+# define MSGPACK_PP_ITERATION_2 214
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 215 && MSGPACK_PP_ITERATION_FINISH_2 >= 215
+# define MSGPACK_PP_ITERATION_2 215
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 216 && MSGPACK_PP_ITERATION_FINISH_2 >= 216
+# define MSGPACK_PP_ITERATION_2 216
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 217 && MSGPACK_PP_ITERATION_FINISH_2 >= 217
+# define MSGPACK_PP_ITERATION_2 217
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 218 && MSGPACK_PP_ITERATION_FINISH_2 >= 218
+# define MSGPACK_PP_ITERATION_2 218
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 219 && MSGPACK_PP_ITERATION_FINISH_2 >= 219
+# define MSGPACK_PP_ITERATION_2 219
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 220 && MSGPACK_PP_ITERATION_FINISH_2 >= 220
+# define MSGPACK_PP_ITERATION_2 220
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 221 && MSGPACK_PP_ITERATION_FINISH_2 >= 221
+# define MSGPACK_PP_ITERATION_2 221
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 222 && MSGPACK_PP_ITERATION_FINISH_2 >= 222
+# define MSGPACK_PP_ITERATION_2 222
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 223 && MSGPACK_PP_ITERATION_FINISH_2 >= 223
+# define MSGPACK_PP_ITERATION_2 223
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 224 && MSGPACK_PP_ITERATION_FINISH_2 >= 224
+# define MSGPACK_PP_ITERATION_2 224
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 225 && MSGPACK_PP_ITERATION_FINISH_2 >= 225
+# define MSGPACK_PP_ITERATION_2 225
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 226 && MSGPACK_PP_ITERATION_FINISH_2 >= 226
+# define MSGPACK_PP_ITERATION_2 226
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 227 && MSGPACK_PP_ITERATION_FINISH_2 >= 227
+# define MSGPACK_PP_ITERATION_2 227
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 228 && MSGPACK_PP_ITERATION_FINISH_2 >= 228
+# define MSGPACK_PP_ITERATION_2 228
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 229 && MSGPACK_PP_ITERATION_FINISH_2 >= 229
+# define MSGPACK_PP_ITERATION_2 229
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 230 && MSGPACK_PP_ITERATION_FINISH_2 >= 230
+# define MSGPACK_PP_ITERATION_2 230
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 231 && MSGPACK_PP_ITERATION_FINISH_2 >= 231
+# define MSGPACK_PP_ITERATION_2 231
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 232 && MSGPACK_PP_ITERATION_FINISH_2 >= 232
+# define MSGPACK_PP_ITERATION_2 232
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 233 && MSGPACK_PP_ITERATION_FINISH_2 >= 233
+# define MSGPACK_PP_ITERATION_2 233
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 234 && MSGPACK_PP_ITERATION_FINISH_2 >= 234
+# define MSGPACK_PP_ITERATION_2 234
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 235 && MSGPACK_PP_ITERATION_FINISH_2 >= 235
+# define MSGPACK_PP_ITERATION_2 235
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 236 && MSGPACK_PP_ITERATION_FINISH_2 >= 236
+# define MSGPACK_PP_ITERATION_2 236
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 237 && MSGPACK_PP_ITERATION_FINISH_2 >= 237
+# define MSGPACK_PP_ITERATION_2 237
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 238 && MSGPACK_PP_ITERATION_FINISH_2 >= 238
+# define MSGPACK_PP_ITERATION_2 238
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 239 && MSGPACK_PP_ITERATION_FINISH_2 >= 239
+# define MSGPACK_PP_ITERATION_2 239
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 240 && MSGPACK_PP_ITERATION_FINISH_2 >= 240
+# define MSGPACK_PP_ITERATION_2 240
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 241 && MSGPACK_PP_ITERATION_FINISH_2 >= 241
+# define MSGPACK_PP_ITERATION_2 241
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 242 && MSGPACK_PP_ITERATION_FINISH_2 >= 242
+# define MSGPACK_PP_ITERATION_2 242
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 243 && MSGPACK_PP_ITERATION_FINISH_2 >= 243
+# define MSGPACK_PP_ITERATION_2 243
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 244 && MSGPACK_PP_ITERATION_FINISH_2 >= 244
+# define MSGPACK_PP_ITERATION_2 244
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 245 && MSGPACK_PP_ITERATION_FINISH_2 >= 245
+# define MSGPACK_PP_ITERATION_2 245
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 246 && MSGPACK_PP_ITERATION_FINISH_2 >= 246
+# define MSGPACK_PP_ITERATION_2 246
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 247 && MSGPACK_PP_ITERATION_FINISH_2 >= 247
+# define MSGPACK_PP_ITERATION_2 247
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 248 && MSGPACK_PP_ITERATION_FINISH_2 >= 248
+# define MSGPACK_PP_ITERATION_2 248
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 249 && MSGPACK_PP_ITERATION_FINISH_2 >= 249
+# define MSGPACK_PP_ITERATION_2 249
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 250 && MSGPACK_PP_ITERATION_FINISH_2 >= 250
+# define MSGPACK_PP_ITERATION_2 250
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 251 && MSGPACK_PP_ITERATION_FINISH_2 >= 251
+# define MSGPACK_PP_ITERATION_2 251
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 252 && MSGPACK_PP_ITERATION_FINISH_2 >= 252
+# define MSGPACK_PP_ITERATION_2 252
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 253 && MSGPACK_PP_ITERATION_FINISH_2 >= 253
+# define MSGPACK_PP_ITERATION_2 253
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 254 && MSGPACK_PP_ITERATION_FINISH_2 >= 254
+# define MSGPACK_PP_ITERATION_2 254
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 255 && MSGPACK_PP_ITERATION_FINISH_2 >= 255
+# define MSGPACK_PP_ITERATION_2 255
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_START_2 <= 256 && MSGPACK_PP_ITERATION_FINISH_2 >= 256
+# define MSGPACK_PP_ITERATION_2 256
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 1
+#
+# undef MSGPACK_PP_ITERATION_START_2
+# undef MSGPACK_PP_ITERATION_FINISH_2
+# undef MSGPACK_PP_FILENAME_2
+#
+# undef MSGPACK_PP_ITERATION_FLAGS_2
+# undef MSGPACK_PP_ITERATION_PARAMS_2
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward3.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward3.hpp
new file mode 100644
index 000000000..da8019944
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward3.hpp
@@ -0,0 +1,1338 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if defined(MSGPACK_PP_ITERATION_LIMITS)
+# if !defined(MSGPACK_PP_FILENAME_3)
+# error MSGPACK_PP_ERROR: depth #3 filename is not defined
+# endif
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp>
+# define MSGPACK_PP_ITERATION_FLAGS_3() 0
+# undef MSGPACK_PP_ITERATION_LIMITS
+# elif defined(MSGPACK_PP_ITERATION_PARAMS_3)
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_3)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower3.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_3)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper3.hpp>
+# define MSGPACK_PP_FILENAME_3 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_3)
+# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_3) >= 4
+# define MSGPACK_PP_ITERATION_FLAGS_3() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_3)
+# else
+# define MSGPACK_PP_ITERATION_FLAGS_3() 0
+# endif
+# else
+# error MSGPACK_PP_ERROR: depth #3 iteration boundaries or filename not defined
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 3
+#
+# if (MSGPACK_PP_ITERATION_START_3) > (MSGPACK_PP_ITERATION_FINISH_3)
+# include <rpc/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp>
+# else
+# if MSGPACK_PP_ITERATION_START_3 <= 0 && MSGPACK_PP_ITERATION_FINISH_3 >= 0
+# define MSGPACK_PP_ITERATION_3 0
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 1 && MSGPACK_PP_ITERATION_FINISH_3 >= 1
+# define MSGPACK_PP_ITERATION_3 1
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 2 && MSGPACK_PP_ITERATION_FINISH_3 >= 2
+# define MSGPACK_PP_ITERATION_3 2
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 3 && MSGPACK_PP_ITERATION_FINISH_3 >= 3
+# define MSGPACK_PP_ITERATION_3 3
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 4 && MSGPACK_PP_ITERATION_FINISH_3 >= 4
+# define MSGPACK_PP_ITERATION_3 4
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 5 && MSGPACK_PP_ITERATION_FINISH_3 >= 5
+# define MSGPACK_PP_ITERATION_3 5
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 6 && MSGPACK_PP_ITERATION_FINISH_3 >= 6
+# define MSGPACK_PP_ITERATION_3 6
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 7 && MSGPACK_PP_ITERATION_FINISH_3 >= 7
+# define MSGPACK_PP_ITERATION_3 7
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 8 && MSGPACK_PP_ITERATION_FINISH_3 >= 8
+# define MSGPACK_PP_ITERATION_3 8
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 9 && MSGPACK_PP_ITERATION_FINISH_3 >= 9
+# define MSGPACK_PP_ITERATION_3 9
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 10 && MSGPACK_PP_ITERATION_FINISH_3 >= 10
+# define MSGPACK_PP_ITERATION_3 10
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 11 && MSGPACK_PP_ITERATION_FINISH_3 >= 11
+# define MSGPACK_PP_ITERATION_3 11
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 12 && MSGPACK_PP_ITERATION_FINISH_3 >= 12
+# define MSGPACK_PP_ITERATION_3 12
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 13 && MSGPACK_PP_ITERATION_FINISH_3 >= 13
+# define MSGPACK_PP_ITERATION_3 13
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 14 && MSGPACK_PP_ITERATION_FINISH_3 >= 14
+# define MSGPACK_PP_ITERATION_3 14
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 15 && MSGPACK_PP_ITERATION_FINISH_3 >= 15
+# define MSGPACK_PP_ITERATION_3 15
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 16 && MSGPACK_PP_ITERATION_FINISH_3 >= 16
+# define MSGPACK_PP_ITERATION_3 16
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 17 && MSGPACK_PP_ITERATION_FINISH_3 >= 17
+# define MSGPACK_PP_ITERATION_3 17
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 18 && MSGPACK_PP_ITERATION_FINISH_3 >= 18
+# define MSGPACK_PP_ITERATION_3 18
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 19 && MSGPACK_PP_ITERATION_FINISH_3 >= 19
+# define MSGPACK_PP_ITERATION_3 19
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 20 && MSGPACK_PP_ITERATION_FINISH_3 >= 20
+# define MSGPACK_PP_ITERATION_3 20
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 21 && MSGPACK_PP_ITERATION_FINISH_3 >= 21
+# define MSGPACK_PP_ITERATION_3 21
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 22 && MSGPACK_PP_ITERATION_FINISH_3 >= 22
+# define MSGPACK_PP_ITERATION_3 22
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 23 && MSGPACK_PP_ITERATION_FINISH_3 >= 23
+# define MSGPACK_PP_ITERATION_3 23
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 24 && MSGPACK_PP_ITERATION_FINISH_3 >= 24
+# define MSGPACK_PP_ITERATION_3 24
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 25 && MSGPACK_PP_ITERATION_FINISH_3 >= 25
+# define MSGPACK_PP_ITERATION_3 25
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 26 && MSGPACK_PP_ITERATION_FINISH_3 >= 26
+# define MSGPACK_PP_ITERATION_3 26
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 27 && MSGPACK_PP_ITERATION_FINISH_3 >= 27
+# define MSGPACK_PP_ITERATION_3 27
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 28 && MSGPACK_PP_ITERATION_FINISH_3 >= 28
+# define MSGPACK_PP_ITERATION_3 28
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 29 && MSGPACK_PP_ITERATION_FINISH_3 >= 29
+# define MSGPACK_PP_ITERATION_3 29
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 30 && MSGPACK_PP_ITERATION_FINISH_3 >= 30
+# define MSGPACK_PP_ITERATION_3 30
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 31 && MSGPACK_PP_ITERATION_FINISH_3 >= 31
+# define MSGPACK_PP_ITERATION_3 31
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 32 && MSGPACK_PP_ITERATION_FINISH_3 >= 32
+# define MSGPACK_PP_ITERATION_3 32
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 33 && MSGPACK_PP_ITERATION_FINISH_3 >= 33
+# define MSGPACK_PP_ITERATION_3 33
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 34 && MSGPACK_PP_ITERATION_FINISH_3 >= 34
+# define MSGPACK_PP_ITERATION_3 34
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 35 && MSGPACK_PP_ITERATION_FINISH_3 >= 35
+# define MSGPACK_PP_ITERATION_3 35
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 36 && MSGPACK_PP_ITERATION_FINISH_3 >= 36
+# define MSGPACK_PP_ITERATION_3 36
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 37 && MSGPACK_PP_ITERATION_FINISH_3 >= 37
+# define MSGPACK_PP_ITERATION_3 37
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 38 && MSGPACK_PP_ITERATION_FINISH_3 >= 38
+# define MSGPACK_PP_ITERATION_3 38
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 39 && MSGPACK_PP_ITERATION_FINISH_3 >= 39
+# define MSGPACK_PP_ITERATION_3 39
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 40 && MSGPACK_PP_ITERATION_FINISH_3 >= 40
+# define MSGPACK_PP_ITERATION_3 40
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 41 && MSGPACK_PP_ITERATION_FINISH_3 >= 41
+# define MSGPACK_PP_ITERATION_3 41
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 42 && MSGPACK_PP_ITERATION_FINISH_3 >= 42
+# define MSGPACK_PP_ITERATION_3 42
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 43 && MSGPACK_PP_ITERATION_FINISH_3 >= 43
+# define MSGPACK_PP_ITERATION_3 43
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 44 && MSGPACK_PP_ITERATION_FINISH_3 >= 44
+# define MSGPACK_PP_ITERATION_3 44
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 45 && MSGPACK_PP_ITERATION_FINISH_3 >= 45
+# define MSGPACK_PP_ITERATION_3 45
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 46 && MSGPACK_PP_ITERATION_FINISH_3 >= 46
+# define MSGPACK_PP_ITERATION_3 46
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 47 && MSGPACK_PP_ITERATION_FINISH_3 >= 47
+# define MSGPACK_PP_ITERATION_3 47
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 48 && MSGPACK_PP_ITERATION_FINISH_3 >= 48
+# define MSGPACK_PP_ITERATION_3 48
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 49 && MSGPACK_PP_ITERATION_FINISH_3 >= 49
+# define MSGPACK_PP_ITERATION_3 49
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 50 && MSGPACK_PP_ITERATION_FINISH_3 >= 50
+# define MSGPACK_PP_ITERATION_3 50
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 51 && MSGPACK_PP_ITERATION_FINISH_3 >= 51
+# define MSGPACK_PP_ITERATION_3 51
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 52 && MSGPACK_PP_ITERATION_FINISH_3 >= 52
+# define MSGPACK_PP_ITERATION_3 52
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 53 && MSGPACK_PP_ITERATION_FINISH_3 >= 53
+# define MSGPACK_PP_ITERATION_3 53
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 54 && MSGPACK_PP_ITERATION_FINISH_3 >= 54
+# define MSGPACK_PP_ITERATION_3 54
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 55 && MSGPACK_PP_ITERATION_FINISH_3 >= 55
+# define MSGPACK_PP_ITERATION_3 55
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 56 && MSGPACK_PP_ITERATION_FINISH_3 >= 56
+# define MSGPACK_PP_ITERATION_3 56
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 57 && MSGPACK_PP_ITERATION_FINISH_3 >= 57
+# define MSGPACK_PP_ITERATION_3 57
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 58 && MSGPACK_PP_ITERATION_FINISH_3 >= 58
+# define MSGPACK_PP_ITERATION_3 58
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 59 && MSGPACK_PP_ITERATION_FINISH_3 >= 59
+# define MSGPACK_PP_ITERATION_3 59
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 60 && MSGPACK_PP_ITERATION_FINISH_3 >= 60
+# define MSGPACK_PP_ITERATION_3 60
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 61 && MSGPACK_PP_ITERATION_FINISH_3 >= 61
+# define MSGPACK_PP_ITERATION_3 61
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 62 && MSGPACK_PP_ITERATION_FINISH_3 >= 62
+# define MSGPACK_PP_ITERATION_3 62
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 63 && MSGPACK_PP_ITERATION_FINISH_3 >= 63
+# define MSGPACK_PP_ITERATION_3 63
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 64 && MSGPACK_PP_ITERATION_FINISH_3 >= 64
+# define MSGPACK_PP_ITERATION_3 64
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 65 && MSGPACK_PP_ITERATION_FINISH_3 >= 65
+# define MSGPACK_PP_ITERATION_3 65
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 66 && MSGPACK_PP_ITERATION_FINISH_3 >= 66
+# define MSGPACK_PP_ITERATION_3 66
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 67 && MSGPACK_PP_ITERATION_FINISH_3 >= 67
+# define MSGPACK_PP_ITERATION_3 67
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 68 && MSGPACK_PP_ITERATION_FINISH_3 >= 68
+# define MSGPACK_PP_ITERATION_3 68
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 69 && MSGPACK_PP_ITERATION_FINISH_3 >= 69
+# define MSGPACK_PP_ITERATION_3 69
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 70 && MSGPACK_PP_ITERATION_FINISH_3 >= 70
+# define MSGPACK_PP_ITERATION_3 70
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 71 && MSGPACK_PP_ITERATION_FINISH_3 >= 71
+# define MSGPACK_PP_ITERATION_3 71
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 72 && MSGPACK_PP_ITERATION_FINISH_3 >= 72
+# define MSGPACK_PP_ITERATION_3 72
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 73 && MSGPACK_PP_ITERATION_FINISH_3 >= 73
+# define MSGPACK_PP_ITERATION_3 73
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 74 && MSGPACK_PP_ITERATION_FINISH_3 >= 74
+# define MSGPACK_PP_ITERATION_3 74
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 75 && MSGPACK_PP_ITERATION_FINISH_3 >= 75
+# define MSGPACK_PP_ITERATION_3 75
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 76 && MSGPACK_PP_ITERATION_FINISH_3 >= 76
+# define MSGPACK_PP_ITERATION_3 76
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 77 && MSGPACK_PP_ITERATION_FINISH_3 >= 77
+# define MSGPACK_PP_ITERATION_3 77
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 78 && MSGPACK_PP_ITERATION_FINISH_3 >= 78
+# define MSGPACK_PP_ITERATION_3 78
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 79 && MSGPACK_PP_ITERATION_FINISH_3 >= 79
+# define MSGPACK_PP_ITERATION_3 79
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 80 && MSGPACK_PP_ITERATION_FINISH_3 >= 80
+# define MSGPACK_PP_ITERATION_3 80
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 81 && MSGPACK_PP_ITERATION_FINISH_3 >= 81
+# define MSGPACK_PP_ITERATION_3 81
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 82 && MSGPACK_PP_ITERATION_FINISH_3 >= 82
+# define MSGPACK_PP_ITERATION_3 82
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 83 && MSGPACK_PP_ITERATION_FINISH_3 >= 83
+# define MSGPACK_PP_ITERATION_3 83
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 84 && MSGPACK_PP_ITERATION_FINISH_3 >= 84
+# define MSGPACK_PP_ITERATION_3 84
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 85 && MSGPACK_PP_ITERATION_FINISH_3 >= 85
+# define MSGPACK_PP_ITERATION_3 85
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 86 && MSGPACK_PP_ITERATION_FINISH_3 >= 86
+# define MSGPACK_PP_ITERATION_3 86
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 87 && MSGPACK_PP_ITERATION_FINISH_3 >= 87
+# define MSGPACK_PP_ITERATION_3 87
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 88 && MSGPACK_PP_ITERATION_FINISH_3 >= 88
+# define MSGPACK_PP_ITERATION_3 88
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 89 && MSGPACK_PP_ITERATION_FINISH_3 >= 89
+# define MSGPACK_PP_ITERATION_3 89
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 90 && MSGPACK_PP_ITERATION_FINISH_3 >= 90
+# define MSGPACK_PP_ITERATION_3 90
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 91 && MSGPACK_PP_ITERATION_FINISH_3 >= 91
+# define MSGPACK_PP_ITERATION_3 91
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 92 && MSGPACK_PP_ITERATION_FINISH_3 >= 92
+# define MSGPACK_PP_ITERATION_3 92
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 93 && MSGPACK_PP_ITERATION_FINISH_3 >= 93
+# define MSGPACK_PP_ITERATION_3 93
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 94 && MSGPACK_PP_ITERATION_FINISH_3 >= 94
+# define MSGPACK_PP_ITERATION_3 94
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 95 && MSGPACK_PP_ITERATION_FINISH_3 >= 95
+# define MSGPACK_PP_ITERATION_3 95
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 96 && MSGPACK_PP_ITERATION_FINISH_3 >= 96
+# define MSGPACK_PP_ITERATION_3 96
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 97 && MSGPACK_PP_ITERATION_FINISH_3 >= 97
+# define MSGPACK_PP_ITERATION_3 97
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 98 && MSGPACK_PP_ITERATION_FINISH_3 >= 98
+# define MSGPACK_PP_ITERATION_3 98
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 99 && MSGPACK_PP_ITERATION_FINISH_3 >= 99
+# define MSGPACK_PP_ITERATION_3 99
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 100 && MSGPACK_PP_ITERATION_FINISH_3 >= 100
+# define MSGPACK_PP_ITERATION_3 100
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 101 && MSGPACK_PP_ITERATION_FINISH_3 >= 101
+# define MSGPACK_PP_ITERATION_3 101
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 102 && MSGPACK_PP_ITERATION_FINISH_3 >= 102
+# define MSGPACK_PP_ITERATION_3 102
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 103 && MSGPACK_PP_ITERATION_FINISH_3 >= 103
+# define MSGPACK_PP_ITERATION_3 103
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 104 && MSGPACK_PP_ITERATION_FINISH_3 >= 104
+# define MSGPACK_PP_ITERATION_3 104
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 105 && MSGPACK_PP_ITERATION_FINISH_3 >= 105
+# define MSGPACK_PP_ITERATION_3 105
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 106 && MSGPACK_PP_ITERATION_FINISH_3 >= 106
+# define MSGPACK_PP_ITERATION_3 106
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 107 && MSGPACK_PP_ITERATION_FINISH_3 >= 107
+# define MSGPACK_PP_ITERATION_3 107
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 108 && MSGPACK_PP_ITERATION_FINISH_3 >= 108
+# define MSGPACK_PP_ITERATION_3 108
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 109 && MSGPACK_PP_ITERATION_FINISH_3 >= 109
+# define MSGPACK_PP_ITERATION_3 109
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 110 && MSGPACK_PP_ITERATION_FINISH_3 >= 110
+# define MSGPACK_PP_ITERATION_3 110
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 111 && MSGPACK_PP_ITERATION_FINISH_3 >= 111
+# define MSGPACK_PP_ITERATION_3 111
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 112 && MSGPACK_PP_ITERATION_FINISH_3 >= 112
+# define MSGPACK_PP_ITERATION_3 112
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 113 && MSGPACK_PP_ITERATION_FINISH_3 >= 113
+# define MSGPACK_PP_ITERATION_3 113
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 114 && MSGPACK_PP_ITERATION_FINISH_3 >= 114
+# define MSGPACK_PP_ITERATION_3 114
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 115 && MSGPACK_PP_ITERATION_FINISH_3 >= 115
+# define MSGPACK_PP_ITERATION_3 115
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 116 && MSGPACK_PP_ITERATION_FINISH_3 >= 116
+# define MSGPACK_PP_ITERATION_3 116
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 117 && MSGPACK_PP_ITERATION_FINISH_3 >= 117
+# define MSGPACK_PP_ITERATION_3 117
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 118 && MSGPACK_PP_ITERATION_FINISH_3 >= 118
+# define MSGPACK_PP_ITERATION_3 118
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 119 && MSGPACK_PP_ITERATION_FINISH_3 >= 119
+# define MSGPACK_PP_ITERATION_3 119
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 120 && MSGPACK_PP_ITERATION_FINISH_3 >= 120
+# define MSGPACK_PP_ITERATION_3 120
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 121 && MSGPACK_PP_ITERATION_FINISH_3 >= 121
+# define MSGPACK_PP_ITERATION_3 121
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 122 && MSGPACK_PP_ITERATION_FINISH_3 >= 122
+# define MSGPACK_PP_ITERATION_3 122
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 123 && MSGPACK_PP_ITERATION_FINISH_3 >= 123
+# define MSGPACK_PP_ITERATION_3 123
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 124 && MSGPACK_PP_ITERATION_FINISH_3 >= 124
+# define MSGPACK_PP_ITERATION_3 124
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 125 && MSGPACK_PP_ITERATION_FINISH_3 >= 125
+# define MSGPACK_PP_ITERATION_3 125
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 126 && MSGPACK_PP_ITERATION_FINISH_3 >= 126
+# define MSGPACK_PP_ITERATION_3 126
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 127 && MSGPACK_PP_ITERATION_FINISH_3 >= 127
+# define MSGPACK_PP_ITERATION_3 127
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 128 && MSGPACK_PP_ITERATION_FINISH_3 >= 128
+# define MSGPACK_PP_ITERATION_3 128
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 129 && MSGPACK_PP_ITERATION_FINISH_3 >= 129
+# define MSGPACK_PP_ITERATION_3 129
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 130 && MSGPACK_PP_ITERATION_FINISH_3 >= 130
+# define MSGPACK_PP_ITERATION_3 130
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 131 && MSGPACK_PP_ITERATION_FINISH_3 >= 131
+# define MSGPACK_PP_ITERATION_3 131
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 132 && MSGPACK_PP_ITERATION_FINISH_3 >= 132
+# define MSGPACK_PP_ITERATION_3 132
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 133 && MSGPACK_PP_ITERATION_FINISH_3 >= 133
+# define MSGPACK_PP_ITERATION_3 133
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 134 && MSGPACK_PP_ITERATION_FINISH_3 >= 134
+# define MSGPACK_PP_ITERATION_3 134
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 135 && MSGPACK_PP_ITERATION_FINISH_3 >= 135
+# define MSGPACK_PP_ITERATION_3 135
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 136 && MSGPACK_PP_ITERATION_FINISH_3 >= 136
+# define MSGPACK_PP_ITERATION_3 136
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 137 && MSGPACK_PP_ITERATION_FINISH_3 >= 137
+# define MSGPACK_PP_ITERATION_3 137
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 138 && MSGPACK_PP_ITERATION_FINISH_3 >= 138
+# define MSGPACK_PP_ITERATION_3 138
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 139 && MSGPACK_PP_ITERATION_FINISH_3 >= 139
+# define MSGPACK_PP_ITERATION_3 139
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 140 && MSGPACK_PP_ITERATION_FINISH_3 >= 140
+# define MSGPACK_PP_ITERATION_3 140
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 141 && MSGPACK_PP_ITERATION_FINISH_3 >= 141
+# define MSGPACK_PP_ITERATION_3 141
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 142 && MSGPACK_PP_ITERATION_FINISH_3 >= 142
+# define MSGPACK_PP_ITERATION_3 142
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 143 && MSGPACK_PP_ITERATION_FINISH_3 >= 143
+# define MSGPACK_PP_ITERATION_3 143
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 144 && MSGPACK_PP_ITERATION_FINISH_3 >= 144
+# define MSGPACK_PP_ITERATION_3 144
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 145 && MSGPACK_PP_ITERATION_FINISH_3 >= 145
+# define MSGPACK_PP_ITERATION_3 145
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 146 && MSGPACK_PP_ITERATION_FINISH_3 >= 146
+# define MSGPACK_PP_ITERATION_3 146
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 147 && MSGPACK_PP_ITERATION_FINISH_3 >= 147
+# define MSGPACK_PP_ITERATION_3 147
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 148 && MSGPACK_PP_ITERATION_FINISH_3 >= 148
+# define MSGPACK_PP_ITERATION_3 148
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 149 && MSGPACK_PP_ITERATION_FINISH_3 >= 149
+# define MSGPACK_PP_ITERATION_3 149
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 150 && MSGPACK_PP_ITERATION_FINISH_3 >= 150
+# define MSGPACK_PP_ITERATION_3 150
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 151 && MSGPACK_PP_ITERATION_FINISH_3 >= 151
+# define MSGPACK_PP_ITERATION_3 151
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 152 && MSGPACK_PP_ITERATION_FINISH_3 >= 152
+# define MSGPACK_PP_ITERATION_3 152
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 153 && MSGPACK_PP_ITERATION_FINISH_3 >= 153
+# define MSGPACK_PP_ITERATION_3 153
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 154 && MSGPACK_PP_ITERATION_FINISH_3 >= 154
+# define MSGPACK_PP_ITERATION_3 154
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 155 && MSGPACK_PP_ITERATION_FINISH_3 >= 155
+# define MSGPACK_PP_ITERATION_3 155
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 156 && MSGPACK_PP_ITERATION_FINISH_3 >= 156
+# define MSGPACK_PP_ITERATION_3 156
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 157 && MSGPACK_PP_ITERATION_FINISH_3 >= 157
+# define MSGPACK_PP_ITERATION_3 157
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 158 && MSGPACK_PP_ITERATION_FINISH_3 >= 158
+# define MSGPACK_PP_ITERATION_3 158
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 159 && MSGPACK_PP_ITERATION_FINISH_3 >= 159
+# define MSGPACK_PP_ITERATION_3 159
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 160 && MSGPACK_PP_ITERATION_FINISH_3 >= 160
+# define MSGPACK_PP_ITERATION_3 160
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 161 && MSGPACK_PP_ITERATION_FINISH_3 >= 161
+# define MSGPACK_PP_ITERATION_3 161
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 162 && MSGPACK_PP_ITERATION_FINISH_3 >= 162
+# define MSGPACK_PP_ITERATION_3 162
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 163 && MSGPACK_PP_ITERATION_FINISH_3 >= 163
+# define MSGPACK_PP_ITERATION_3 163
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 164 && MSGPACK_PP_ITERATION_FINISH_3 >= 164
+# define MSGPACK_PP_ITERATION_3 164
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 165 && MSGPACK_PP_ITERATION_FINISH_3 >= 165
+# define MSGPACK_PP_ITERATION_3 165
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 166 && MSGPACK_PP_ITERATION_FINISH_3 >= 166
+# define MSGPACK_PP_ITERATION_3 166
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 167 && MSGPACK_PP_ITERATION_FINISH_3 >= 167
+# define MSGPACK_PP_ITERATION_3 167
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 168 && MSGPACK_PP_ITERATION_FINISH_3 >= 168
+# define MSGPACK_PP_ITERATION_3 168
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 169 && MSGPACK_PP_ITERATION_FINISH_3 >= 169
+# define MSGPACK_PP_ITERATION_3 169
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 170 && MSGPACK_PP_ITERATION_FINISH_3 >= 170
+# define MSGPACK_PP_ITERATION_3 170
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 171 && MSGPACK_PP_ITERATION_FINISH_3 >= 171
+# define MSGPACK_PP_ITERATION_3 171
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 172 && MSGPACK_PP_ITERATION_FINISH_3 >= 172
+# define MSGPACK_PP_ITERATION_3 172
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 173 && MSGPACK_PP_ITERATION_FINISH_3 >= 173
+# define MSGPACK_PP_ITERATION_3 173
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 174 && MSGPACK_PP_ITERATION_FINISH_3 >= 174
+# define MSGPACK_PP_ITERATION_3 174
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 175 && MSGPACK_PP_ITERATION_FINISH_3 >= 175
+# define MSGPACK_PP_ITERATION_3 175
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 176 && MSGPACK_PP_ITERATION_FINISH_3 >= 176
+# define MSGPACK_PP_ITERATION_3 176
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 177 && MSGPACK_PP_ITERATION_FINISH_3 >= 177
+# define MSGPACK_PP_ITERATION_3 177
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 178 && MSGPACK_PP_ITERATION_FINISH_3 >= 178
+# define MSGPACK_PP_ITERATION_3 178
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 179 && MSGPACK_PP_ITERATION_FINISH_3 >= 179
+# define MSGPACK_PP_ITERATION_3 179
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 180 && MSGPACK_PP_ITERATION_FINISH_3 >= 180
+# define MSGPACK_PP_ITERATION_3 180
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 181 && MSGPACK_PP_ITERATION_FINISH_3 >= 181
+# define MSGPACK_PP_ITERATION_3 181
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 182 && MSGPACK_PP_ITERATION_FINISH_3 >= 182
+# define MSGPACK_PP_ITERATION_3 182
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 183 && MSGPACK_PP_ITERATION_FINISH_3 >= 183
+# define MSGPACK_PP_ITERATION_3 183
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 184 && MSGPACK_PP_ITERATION_FINISH_3 >= 184
+# define MSGPACK_PP_ITERATION_3 184
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 185 && MSGPACK_PP_ITERATION_FINISH_3 >= 185
+# define MSGPACK_PP_ITERATION_3 185
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 186 && MSGPACK_PP_ITERATION_FINISH_3 >= 186
+# define MSGPACK_PP_ITERATION_3 186
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 187 && MSGPACK_PP_ITERATION_FINISH_3 >= 187
+# define MSGPACK_PP_ITERATION_3 187
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 188 && MSGPACK_PP_ITERATION_FINISH_3 >= 188
+# define MSGPACK_PP_ITERATION_3 188
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 189 && MSGPACK_PP_ITERATION_FINISH_3 >= 189
+# define MSGPACK_PP_ITERATION_3 189
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 190 && MSGPACK_PP_ITERATION_FINISH_3 >= 190
+# define MSGPACK_PP_ITERATION_3 190
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 191 && MSGPACK_PP_ITERATION_FINISH_3 >= 191
+# define MSGPACK_PP_ITERATION_3 191
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 192 && MSGPACK_PP_ITERATION_FINISH_3 >= 192
+# define MSGPACK_PP_ITERATION_3 192
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 193 && MSGPACK_PP_ITERATION_FINISH_3 >= 193
+# define MSGPACK_PP_ITERATION_3 193
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 194 && MSGPACK_PP_ITERATION_FINISH_3 >= 194
+# define MSGPACK_PP_ITERATION_3 194
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 195 && MSGPACK_PP_ITERATION_FINISH_3 >= 195
+# define MSGPACK_PP_ITERATION_3 195
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 196 && MSGPACK_PP_ITERATION_FINISH_3 >= 196
+# define MSGPACK_PP_ITERATION_3 196
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 197 && MSGPACK_PP_ITERATION_FINISH_3 >= 197
+# define MSGPACK_PP_ITERATION_3 197
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 198 && MSGPACK_PP_ITERATION_FINISH_3 >= 198
+# define MSGPACK_PP_ITERATION_3 198
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 199 && MSGPACK_PP_ITERATION_FINISH_3 >= 199
+# define MSGPACK_PP_ITERATION_3 199
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 200 && MSGPACK_PP_ITERATION_FINISH_3 >= 200
+# define MSGPACK_PP_ITERATION_3 200
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 201 && MSGPACK_PP_ITERATION_FINISH_3 >= 201
+# define MSGPACK_PP_ITERATION_3 201
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 202 && MSGPACK_PP_ITERATION_FINISH_3 >= 202
+# define MSGPACK_PP_ITERATION_3 202
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 203 && MSGPACK_PP_ITERATION_FINISH_3 >= 203
+# define MSGPACK_PP_ITERATION_3 203
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 204 && MSGPACK_PP_ITERATION_FINISH_3 >= 204
+# define MSGPACK_PP_ITERATION_3 204
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 205 && MSGPACK_PP_ITERATION_FINISH_3 >= 205
+# define MSGPACK_PP_ITERATION_3 205
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 206 && MSGPACK_PP_ITERATION_FINISH_3 >= 206
+# define MSGPACK_PP_ITERATION_3 206
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 207 && MSGPACK_PP_ITERATION_FINISH_3 >= 207
+# define MSGPACK_PP_ITERATION_3 207
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 208 && MSGPACK_PP_ITERATION_FINISH_3 >= 208
+# define MSGPACK_PP_ITERATION_3 208
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 209 && MSGPACK_PP_ITERATION_FINISH_3 >= 209
+# define MSGPACK_PP_ITERATION_3 209
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 210 && MSGPACK_PP_ITERATION_FINISH_3 >= 210
+# define MSGPACK_PP_ITERATION_3 210
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 211 && MSGPACK_PP_ITERATION_FINISH_3 >= 211
+# define MSGPACK_PP_ITERATION_3 211
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 212 && MSGPACK_PP_ITERATION_FINISH_3 >= 212
+# define MSGPACK_PP_ITERATION_3 212
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 213 && MSGPACK_PP_ITERATION_FINISH_3 >= 213
+# define MSGPACK_PP_ITERATION_3 213
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 214 && MSGPACK_PP_ITERATION_FINISH_3 >= 214
+# define MSGPACK_PP_ITERATION_3 214
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 215 && MSGPACK_PP_ITERATION_FINISH_3 >= 215
+# define MSGPACK_PP_ITERATION_3 215
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 216 && MSGPACK_PP_ITERATION_FINISH_3 >= 216
+# define MSGPACK_PP_ITERATION_3 216
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 217 && MSGPACK_PP_ITERATION_FINISH_3 >= 217
+# define MSGPACK_PP_ITERATION_3 217
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 218 && MSGPACK_PP_ITERATION_FINISH_3 >= 218
+# define MSGPACK_PP_ITERATION_3 218
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 219 && MSGPACK_PP_ITERATION_FINISH_3 >= 219
+# define MSGPACK_PP_ITERATION_3 219
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 220 && MSGPACK_PP_ITERATION_FINISH_3 >= 220
+# define MSGPACK_PP_ITERATION_3 220
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 221 && MSGPACK_PP_ITERATION_FINISH_3 >= 221
+# define MSGPACK_PP_ITERATION_3 221
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 222 && MSGPACK_PP_ITERATION_FINISH_3 >= 222
+# define MSGPACK_PP_ITERATION_3 222
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 223 && MSGPACK_PP_ITERATION_FINISH_3 >= 223
+# define MSGPACK_PP_ITERATION_3 223
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 224 && MSGPACK_PP_ITERATION_FINISH_3 >= 224
+# define MSGPACK_PP_ITERATION_3 224
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 225 && MSGPACK_PP_ITERATION_FINISH_3 >= 225
+# define MSGPACK_PP_ITERATION_3 225
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 226 && MSGPACK_PP_ITERATION_FINISH_3 >= 226
+# define MSGPACK_PP_ITERATION_3 226
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 227 && MSGPACK_PP_ITERATION_FINISH_3 >= 227
+# define MSGPACK_PP_ITERATION_3 227
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 228 && MSGPACK_PP_ITERATION_FINISH_3 >= 228
+# define MSGPACK_PP_ITERATION_3 228
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 229 && MSGPACK_PP_ITERATION_FINISH_3 >= 229
+# define MSGPACK_PP_ITERATION_3 229
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 230 && MSGPACK_PP_ITERATION_FINISH_3 >= 230
+# define MSGPACK_PP_ITERATION_3 230
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 231 && MSGPACK_PP_ITERATION_FINISH_3 >= 231
+# define MSGPACK_PP_ITERATION_3 231
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 232 && MSGPACK_PP_ITERATION_FINISH_3 >= 232
+# define MSGPACK_PP_ITERATION_3 232
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 233 && MSGPACK_PP_ITERATION_FINISH_3 >= 233
+# define MSGPACK_PP_ITERATION_3 233
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 234 && MSGPACK_PP_ITERATION_FINISH_3 >= 234
+# define MSGPACK_PP_ITERATION_3 234
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 235 && MSGPACK_PP_ITERATION_FINISH_3 >= 235
+# define MSGPACK_PP_ITERATION_3 235
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 236 && MSGPACK_PP_ITERATION_FINISH_3 >= 236
+# define MSGPACK_PP_ITERATION_3 236
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 237 && MSGPACK_PP_ITERATION_FINISH_3 >= 237
+# define MSGPACK_PP_ITERATION_3 237
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 238 && MSGPACK_PP_ITERATION_FINISH_3 >= 238
+# define MSGPACK_PP_ITERATION_3 238
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 239 && MSGPACK_PP_ITERATION_FINISH_3 >= 239
+# define MSGPACK_PP_ITERATION_3 239
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 240 && MSGPACK_PP_ITERATION_FINISH_3 >= 240
+# define MSGPACK_PP_ITERATION_3 240
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 241 && MSGPACK_PP_ITERATION_FINISH_3 >= 241
+# define MSGPACK_PP_ITERATION_3 241
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 242 && MSGPACK_PP_ITERATION_FINISH_3 >= 242
+# define MSGPACK_PP_ITERATION_3 242
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 243 && MSGPACK_PP_ITERATION_FINISH_3 >= 243
+# define MSGPACK_PP_ITERATION_3 243
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 244 && MSGPACK_PP_ITERATION_FINISH_3 >= 244
+# define MSGPACK_PP_ITERATION_3 244
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 245 && MSGPACK_PP_ITERATION_FINISH_3 >= 245
+# define MSGPACK_PP_ITERATION_3 245
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 246 && MSGPACK_PP_ITERATION_FINISH_3 >= 246
+# define MSGPACK_PP_ITERATION_3 246
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 247 && MSGPACK_PP_ITERATION_FINISH_3 >= 247
+# define MSGPACK_PP_ITERATION_3 247
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 248 && MSGPACK_PP_ITERATION_FINISH_3 >= 248
+# define MSGPACK_PP_ITERATION_3 248
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 249 && MSGPACK_PP_ITERATION_FINISH_3 >= 249
+# define MSGPACK_PP_ITERATION_3 249
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 250 && MSGPACK_PP_ITERATION_FINISH_3 >= 250
+# define MSGPACK_PP_ITERATION_3 250
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 251 && MSGPACK_PP_ITERATION_FINISH_3 >= 251
+# define MSGPACK_PP_ITERATION_3 251
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 252 && MSGPACK_PP_ITERATION_FINISH_3 >= 252
+# define MSGPACK_PP_ITERATION_3 252
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 253 && MSGPACK_PP_ITERATION_FINISH_3 >= 253
+# define MSGPACK_PP_ITERATION_3 253
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 254 && MSGPACK_PP_ITERATION_FINISH_3 >= 254
+# define MSGPACK_PP_ITERATION_3 254
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 255 && MSGPACK_PP_ITERATION_FINISH_3 >= 255
+# define MSGPACK_PP_ITERATION_3 255
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_START_3 <= 256 && MSGPACK_PP_ITERATION_FINISH_3 >= 256
+# define MSGPACK_PP_ITERATION_3 256
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 2
+#
+# undef MSGPACK_PP_ITERATION_START_3
+# undef MSGPACK_PP_ITERATION_FINISH_3
+# undef MSGPACK_PP_FILENAME_3
+#
+# undef MSGPACK_PP_ITERATION_FLAGS_3
+# undef MSGPACK_PP_ITERATION_PARAMS_3
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward4.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward4.hpp
new file mode 100644
index 000000000..4c5515ed5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward4.hpp
@@ -0,0 +1,1338 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if defined(MSGPACK_PP_ITERATION_LIMITS)
+# if !defined(MSGPACK_PP_FILENAME_4)
+# error MSGPACK_PP_ERROR: depth #4 filename is not defined
+# endif
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp>
+# define MSGPACK_PP_ITERATION_FLAGS_4() 0
+# undef MSGPACK_PP_ITERATION_LIMITS
+# elif defined(MSGPACK_PP_ITERATION_PARAMS_4)
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_4)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower4.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_4)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper4.hpp>
+# define MSGPACK_PP_FILENAME_4 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_4)
+# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_4) >= 4
+# define MSGPACK_PP_ITERATION_FLAGS_4() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_4)
+# else
+# define MSGPACK_PP_ITERATION_FLAGS_4() 0
+# endif
+# else
+# error MSGPACK_PP_ERROR: depth #4 iteration boundaries or filename not defined
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 4
+#
+# if (MSGPACK_PP_ITERATION_START_4) > (MSGPACK_PP_ITERATION_FINISH_4)
+# include <rpc/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp>
+# else
+# if MSGPACK_PP_ITERATION_START_4 <= 0 && MSGPACK_PP_ITERATION_FINISH_4 >= 0
+# define MSGPACK_PP_ITERATION_4 0
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 1 && MSGPACK_PP_ITERATION_FINISH_4 >= 1
+# define MSGPACK_PP_ITERATION_4 1
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 2 && MSGPACK_PP_ITERATION_FINISH_4 >= 2
+# define MSGPACK_PP_ITERATION_4 2
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 3 && MSGPACK_PP_ITERATION_FINISH_4 >= 3
+# define MSGPACK_PP_ITERATION_4 3
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 4 && MSGPACK_PP_ITERATION_FINISH_4 >= 4
+# define MSGPACK_PP_ITERATION_4 4
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 5 && MSGPACK_PP_ITERATION_FINISH_4 >= 5
+# define MSGPACK_PP_ITERATION_4 5
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 6 && MSGPACK_PP_ITERATION_FINISH_4 >= 6
+# define MSGPACK_PP_ITERATION_4 6
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 7 && MSGPACK_PP_ITERATION_FINISH_4 >= 7
+# define MSGPACK_PP_ITERATION_4 7
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 8 && MSGPACK_PP_ITERATION_FINISH_4 >= 8
+# define MSGPACK_PP_ITERATION_4 8
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 9 && MSGPACK_PP_ITERATION_FINISH_4 >= 9
+# define MSGPACK_PP_ITERATION_4 9
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 10 && MSGPACK_PP_ITERATION_FINISH_4 >= 10
+# define MSGPACK_PP_ITERATION_4 10
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 11 && MSGPACK_PP_ITERATION_FINISH_4 >= 11
+# define MSGPACK_PP_ITERATION_4 11
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 12 && MSGPACK_PP_ITERATION_FINISH_4 >= 12
+# define MSGPACK_PP_ITERATION_4 12
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 13 && MSGPACK_PP_ITERATION_FINISH_4 >= 13
+# define MSGPACK_PP_ITERATION_4 13
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 14 && MSGPACK_PP_ITERATION_FINISH_4 >= 14
+# define MSGPACK_PP_ITERATION_4 14
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 15 && MSGPACK_PP_ITERATION_FINISH_4 >= 15
+# define MSGPACK_PP_ITERATION_4 15
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 16 && MSGPACK_PP_ITERATION_FINISH_4 >= 16
+# define MSGPACK_PP_ITERATION_4 16
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 17 && MSGPACK_PP_ITERATION_FINISH_4 >= 17
+# define MSGPACK_PP_ITERATION_4 17
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 18 && MSGPACK_PP_ITERATION_FINISH_4 >= 18
+# define MSGPACK_PP_ITERATION_4 18
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 19 && MSGPACK_PP_ITERATION_FINISH_4 >= 19
+# define MSGPACK_PP_ITERATION_4 19
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 20 && MSGPACK_PP_ITERATION_FINISH_4 >= 20
+# define MSGPACK_PP_ITERATION_4 20
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 21 && MSGPACK_PP_ITERATION_FINISH_4 >= 21
+# define MSGPACK_PP_ITERATION_4 21
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 22 && MSGPACK_PP_ITERATION_FINISH_4 >= 22
+# define MSGPACK_PP_ITERATION_4 22
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 23 && MSGPACK_PP_ITERATION_FINISH_4 >= 23
+# define MSGPACK_PP_ITERATION_4 23
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 24 && MSGPACK_PP_ITERATION_FINISH_4 >= 24
+# define MSGPACK_PP_ITERATION_4 24
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 25 && MSGPACK_PP_ITERATION_FINISH_4 >= 25
+# define MSGPACK_PP_ITERATION_4 25
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 26 && MSGPACK_PP_ITERATION_FINISH_4 >= 26
+# define MSGPACK_PP_ITERATION_4 26
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 27 && MSGPACK_PP_ITERATION_FINISH_4 >= 27
+# define MSGPACK_PP_ITERATION_4 27
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 28 && MSGPACK_PP_ITERATION_FINISH_4 >= 28
+# define MSGPACK_PP_ITERATION_4 28
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 29 && MSGPACK_PP_ITERATION_FINISH_4 >= 29
+# define MSGPACK_PP_ITERATION_4 29
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 30 && MSGPACK_PP_ITERATION_FINISH_4 >= 30
+# define MSGPACK_PP_ITERATION_4 30
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 31 && MSGPACK_PP_ITERATION_FINISH_4 >= 31
+# define MSGPACK_PP_ITERATION_4 31
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 32 && MSGPACK_PP_ITERATION_FINISH_4 >= 32
+# define MSGPACK_PP_ITERATION_4 32
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 33 && MSGPACK_PP_ITERATION_FINISH_4 >= 33
+# define MSGPACK_PP_ITERATION_4 33
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 34 && MSGPACK_PP_ITERATION_FINISH_4 >= 34
+# define MSGPACK_PP_ITERATION_4 34
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 35 && MSGPACK_PP_ITERATION_FINISH_4 >= 35
+# define MSGPACK_PP_ITERATION_4 35
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 36 && MSGPACK_PP_ITERATION_FINISH_4 >= 36
+# define MSGPACK_PP_ITERATION_4 36
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 37 && MSGPACK_PP_ITERATION_FINISH_4 >= 37
+# define MSGPACK_PP_ITERATION_4 37
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 38 && MSGPACK_PP_ITERATION_FINISH_4 >= 38
+# define MSGPACK_PP_ITERATION_4 38
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 39 && MSGPACK_PP_ITERATION_FINISH_4 >= 39
+# define MSGPACK_PP_ITERATION_4 39
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 40 && MSGPACK_PP_ITERATION_FINISH_4 >= 40
+# define MSGPACK_PP_ITERATION_4 40
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 41 && MSGPACK_PP_ITERATION_FINISH_4 >= 41
+# define MSGPACK_PP_ITERATION_4 41
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 42 && MSGPACK_PP_ITERATION_FINISH_4 >= 42
+# define MSGPACK_PP_ITERATION_4 42
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 43 && MSGPACK_PP_ITERATION_FINISH_4 >= 43
+# define MSGPACK_PP_ITERATION_4 43
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 44 && MSGPACK_PP_ITERATION_FINISH_4 >= 44
+# define MSGPACK_PP_ITERATION_4 44
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 45 && MSGPACK_PP_ITERATION_FINISH_4 >= 45
+# define MSGPACK_PP_ITERATION_4 45
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 46 && MSGPACK_PP_ITERATION_FINISH_4 >= 46
+# define MSGPACK_PP_ITERATION_4 46
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 47 && MSGPACK_PP_ITERATION_FINISH_4 >= 47
+# define MSGPACK_PP_ITERATION_4 47
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 48 && MSGPACK_PP_ITERATION_FINISH_4 >= 48
+# define MSGPACK_PP_ITERATION_4 48
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 49 && MSGPACK_PP_ITERATION_FINISH_4 >= 49
+# define MSGPACK_PP_ITERATION_4 49
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 50 && MSGPACK_PP_ITERATION_FINISH_4 >= 50
+# define MSGPACK_PP_ITERATION_4 50
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 51 && MSGPACK_PP_ITERATION_FINISH_4 >= 51
+# define MSGPACK_PP_ITERATION_4 51
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 52 && MSGPACK_PP_ITERATION_FINISH_4 >= 52
+# define MSGPACK_PP_ITERATION_4 52
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 53 && MSGPACK_PP_ITERATION_FINISH_4 >= 53
+# define MSGPACK_PP_ITERATION_4 53
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 54 && MSGPACK_PP_ITERATION_FINISH_4 >= 54
+# define MSGPACK_PP_ITERATION_4 54
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 55 && MSGPACK_PP_ITERATION_FINISH_4 >= 55
+# define MSGPACK_PP_ITERATION_4 55
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 56 && MSGPACK_PP_ITERATION_FINISH_4 >= 56
+# define MSGPACK_PP_ITERATION_4 56
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 57 && MSGPACK_PP_ITERATION_FINISH_4 >= 57
+# define MSGPACK_PP_ITERATION_4 57
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 58 && MSGPACK_PP_ITERATION_FINISH_4 >= 58
+# define MSGPACK_PP_ITERATION_4 58
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 59 && MSGPACK_PP_ITERATION_FINISH_4 >= 59
+# define MSGPACK_PP_ITERATION_4 59
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 60 && MSGPACK_PP_ITERATION_FINISH_4 >= 60
+# define MSGPACK_PP_ITERATION_4 60
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 61 && MSGPACK_PP_ITERATION_FINISH_4 >= 61
+# define MSGPACK_PP_ITERATION_4 61
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 62 && MSGPACK_PP_ITERATION_FINISH_4 >= 62
+# define MSGPACK_PP_ITERATION_4 62
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 63 && MSGPACK_PP_ITERATION_FINISH_4 >= 63
+# define MSGPACK_PP_ITERATION_4 63
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 64 && MSGPACK_PP_ITERATION_FINISH_4 >= 64
+# define MSGPACK_PP_ITERATION_4 64
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 65 && MSGPACK_PP_ITERATION_FINISH_4 >= 65
+# define MSGPACK_PP_ITERATION_4 65
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 66 && MSGPACK_PP_ITERATION_FINISH_4 >= 66
+# define MSGPACK_PP_ITERATION_4 66
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 67 && MSGPACK_PP_ITERATION_FINISH_4 >= 67
+# define MSGPACK_PP_ITERATION_4 67
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 68 && MSGPACK_PP_ITERATION_FINISH_4 >= 68
+# define MSGPACK_PP_ITERATION_4 68
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 69 && MSGPACK_PP_ITERATION_FINISH_4 >= 69
+# define MSGPACK_PP_ITERATION_4 69
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 70 && MSGPACK_PP_ITERATION_FINISH_4 >= 70
+# define MSGPACK_PP_ITERATION_4 70
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 71 && MSGPACK_PP_ITERATION_FINISH_4 >= 71
+# define MSGPACK_PP_ITERATION_4 71
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 72 && MSGPACK_PP_ITERATION_FINISH_4 >= 72
+# define MSGPACK_PP_ITERATION_4 72
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 73 && MSGPACK_PP_ITERATION_FINISH_4 >= 73
+# define MSGPACK_PP_ITERATION_4 73
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 74 && MSGPACK_PP_ITERATION_FINISH_4 >= 74
+# define MSGPACK_PP_ITERATION_4 74
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 75 && MSGPACK_PP_ITERATION_FINISH_4 >= 75
+# define MSGPACK_PP_ITERATION_4 75
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 76 && MSGPACK_PP_ITERATION_FINISH_4 >= 76
+# define MSGPACK_PP_ITERATION_4 76
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 77 && MSGPACK_PP_ITERATION_FINISH_4 >= 77
+# define MSGPACK_PP_ITERATION_4 77
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 78 && MSGPACK_PP_ITERATION_FINISH_4 >= 78
+# define MSGPACK_PP_ITERATION_4 78
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 79 && MSGPACK_PP_ITERATION_FINISH_4 >= 79
+# define MSGPACK_PP_ITERATION_4 79
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 80 && MSGPACK_PP_ITERATION_FINISH_4 >= 80
+# define MSGPACK_PP_ITERATION_4 80
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 81 && MSGPACK_PP_ITERATION_FINISH_4 >= 81
+# define MSGPACK_PP_ITERATION_4 81
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 82 && MSGPACK_PP_ITERATION_FINISH_4 >= 82
+# define MSGPACK_PP_ITERATION_4 82
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 83 && MSGPACK_PP_ITERATION_FINISH_4 >= 83
+# define MSGPACK_PP_ITERATION_4 83
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 84 && MSGPACK_PP_ITERATION_FINISH_4 >= 84
+# define MSGPACK_PP_ITERATION_4 84
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 85 && MSGPACK_PP_ITERATION_FINISH_4 >= 85
+# define MSGPACK_PP_ITERATION_4 85
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 86 && MSGPACK_PP_ITERATION_FINISH_4 >= 86
+# define MSGPACK_PP_ITERATION_4 86
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 87 && MSGPACK_PP_ITERATION_FINISH_4 >= 87
+# define MSGPACK_PP_ITERATION_4 87
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 88 && MSGPACK_PP_ITERATION_FINISH_4 >= 88
+# define MSGPACK_PP_ITERATION_4 88
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 89 && MSGPACK_PP_ITERATION_FINISH_4 >= 89
+# define MSGPACK_PP_ITERATION_4 89
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 90 && MSGPACK_PP_ITERATION_FINISH_4 >= 90
+# define MSGPACK_PP_ITERATION_4 90
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 91 && MSGPACK_PP_ITERATION_FINISH_4 >= 91
+# define MSGPACK_PP_ITERATION_4 91
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 92 && MSGPACK_PP_ITERATION_FINISH_4 >= 92
+# define MSGPACK_PP_ITERATION_4 92
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 93 && MSGPACK_PP_ITERATION_FINISH_4 >= 93
+# define MSGPACK_PP_ITERATION_4 93
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 94 && MSGPACK_PP_ITERATION_FINISH_4 >= 94
+# define MSGPACK_PP_ITERATION_4 94
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 95 && MSGPACK_PP_ITERATION_FINISH_4 >= 95
+# define MSGPACK_PP_ITERATION_4 95
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 96 && MSGPACK_PP_ITERATION_FINISH_4 >= 96
+# define MSGPACK_PP_ITERATION_4 96
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 97 && MSGPACK_PP_ITERATION_FINISH_4 >= 97
+# define MSGPACK_PP_ITERATION_4 97
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 98 && MSGPACK_PP_ITERATION_FINISH_4 >= 98
+# define MSGPACK_PP_ITERATION_4 98
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 99 && MSGPACK_PP_ITERATION_FINISH_4 >= 99
+# define MSGPACK_PP_ITERATION_4 99
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 100 && MSGPACK_PP_ITERATION_FINISH_4 >= 100
+# define MSGPACK_PP_ITERATION_4 100
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 101 && MSGPACK_PP_ITERATION_FINISH_4 >= 101
+# define MSGPACK_PP_ITERATION_4 101
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 102 && MSGPACK_PP_ITERATION_FINISH_4 >= 102
+# define MSGPACK_PP_ITERATION_4 102
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 103 && MSGPACK_PP_ITERATION_FINISH_4 >= 103
+# define MSGPACK_PP_ITERATION_4 103
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 104 && MSGPACK_PP_ITERATION_FINISH_4 >= 104
+# define MSGPACK_PP_ITERATION_4 104
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 105 && MSGPACK_PP_ITERATION_FINISH_4 >= 105
+# define MSGPACK_PP_ITERATION_4 105
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 106 && MSGPACK_PP_ITERATION_FINISH_4 >= 106
+# define MSGPACK_PP_ITERATION_4 106
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 107 && MSGPACK_PP_ITERATION_FINISH_4 >= 107
+# define MSGPACK_PP_ITERATION_4 107
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 108 && MSGPACK_PP_ITERATION_FINISH_4 >= 108
+# define MSGPACK_PP_ITERATION_4 108
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 109 && MSGPACK_PP_ITERATION_FINISH_4 >= 109
+# define MSGPACK_PP_ITERATION_4 109
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 110 && MSGPACK_PP_ITERATION_FINISH_4 >= 110
+# define MSGPACK_PP_ITERATION_4 110
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 111 && MSGPACK_PP_ITERATION_FINISH_4 >= 111
+# define MSGPACK_PP_ITERATION_4 111
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 112 && MSGPACK_PP_ITERATION_FINISH_4 >= 112
+# define MSGPACK_PP_ITERATION_4 112
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 113 && MSGPACK_PP_ITERATION_FINISH_4 >= 113
+# define MSGPACK_PP_ITERATION_4 113
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 114 && MSGPACK_PP_ITERATION_FINISH_4 >= 114
+# define MSGPACK_PP_ITERATION_4 114
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 115 && MSGPACK_PP_ITERATION_FINISH_4 >= 115
+# define MSGPACK_PP_ITERATION_4 115
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 116 && MSGPACK_PP_ITERATION_FINISH_4 >= 116
+# define MSGPACK_PP_ITERATION_4 116
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 117 && MSGPACK_PP_ITERATION_FINISH_4 >= 117
+# define MSGPACK_PP_ITERATION_4 117
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 118 && MSGPACK_PP_ITERATION_FINISH_4 >= 118
+# define MSGPACK_PP_ITERATION_4 118
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 119 && MSGPACK_PP_ITERATION_FINISH_4 >= 119
+# define MSGPACK_PP_ITERATION_4 119
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 120 && MSGPACK_PP_ITERATION_FINISH_4 >= 120
+# define MSGPACK_PP_ITERATION_4 120
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 121 && MSGPACK_PP_ITERATION_FINISH_4 >= 121
+# define MSGPACK_PP_ITERATION_4 121
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 122 && MSGPACK_PP_ITERATION_FINISH_4 >= 122
+# define MSGPACK_PP_ITERATION_4 122
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 123 && MSGPACK_PP_ITERATION_FINISH_4 >= 123
+# define MSGPACK_PP_ITERATION_4 123
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 124 && MSGPACK_PP_ITERATION_FINISH_4 >= 124
+# define MSGPACK_PP_ITERATION_4 124
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 125 && MSGPACK_PP_ITERATION_FINISH_4 >= 125
+# define MSGPACK_PP_ITERATION_4 125
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 126 && MSGPACK_PP_ITERATION_FINISH_4 >= 126
+# define MSGPACK_PP_ITERATION_4 126
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 127 && MSGPACK_PP_ITERATION_FINISH_4 >= 127
+# define MSGPACK_PP_ITERATION_4 127
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 128 && MSGPACK_PP_ITERATION_FINISH_4 >= 128
+# define MSGPACK_PP_ITERATION_4 128
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 129 && MSGPACK_PP_ITERATION_FINISH_4 >= 129
+# define MSGPACK_PP_ITERATION_4 129
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 130 && MSGPACK_PP_ITERATION_FINISH_4 >= 130
+# define MSGPACK_PP_ITERATION_4 130
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 131 && MSGPACK_PP_ITERATION_FINISH_4 >= 131
+# define MSGPACK_PP_ITERATION_4 131
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 132 && MSGPACK_PP_ITERATION_FINISH_4 >= 132
+# define MSGPACK_PP_ITERATION_4 132
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 133 && MSGPACK_PP_ITERATION_FINISH_4 >= 133
+# define MSGPACK_PP_ITERATION_4 133
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 134 && MSGPACK_PP_ITERATION_FINISH_4 >= 134
+# define MSGPACK_PP_ITERATION_4 134
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 135 && MSGPACK_PP_ITERATION_FINISH_4 >= 135
+# define MSGPACK_PP_ITERATION_4 135
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 136 && MSGPACK_PP_ITERATION_FINISH_4 >= 136
+# define MSGPACK_PP_ITERATION_4 136
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 137 && MSGPACK_PP_ITERATION_FINISH_4 >= 137
+# define MSGPACK_PP_ITERATION_4 137
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 138 && MSGPACK_PP_ITERATION_FINISH_4 >= 138
+# define MSGPACK_PP_ITERATION_4 138
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 139 && MSGPACK_PP_ITERATION_FINISH_4 >= 139
+# define MSGPACK_PP_ITERATION_4 139
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 140 && MSGPACK_PP_ITERATION_FINISH_4 >= 140
+# define MSGPACK_PP_ITERATION_4 140
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 141 && MSGPACK_PP_ITERATION_FINISH_4 >= 141
+# define MSGPACK_PP_ITERATION_4 141
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 142 && MSGPACK_PP_ITERATION_FINISH_4 >= 142
+# define MSGPACK_PP_ITERATION_4 142
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 143 && MSGPACK_PP_ITERATION_FINISH_4 >= 143
+# define MSGPACK_PP_ITERATION_4 143
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 144 && MSGPACK_PP_ITERATION_FINISH_4 >= 144
+# define MSGPACK_PP_ITERATION_4 144
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 145 && MSGPACK_PP_ITERATION_FINISH_4 >= 145
+# define MSGPACK_PP_ITERATION_4 145
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 146 && MSGPACK_PP_ITERATION_FINISH_4 >= 146
+# define MSGPACK_PP_ITERATION_4 146
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 147 && MSGPACK_PP_ITERATION_FINISH_4 >= 147
+# define MSGPACK_PP_ITERATION_4 147
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 148 && MSGPACK_PP_ITERATION_FINISH_4 >= 148
+# define MSGPACK_PP_ITERATION_4 148
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 149 && MSGPACK_PP_ITERATION_FINISH_4 >= 149
+# define MSGPACK_PP_ITERATION_4 149
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 150 && MSGPACK_PP_ITERATION_FINISH_4 >= 150
+# define MSGPACK_PP_ITERATION_4 150
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 151 && MSGPACK_PP_ITERATION_FINISH_4 >= 151
+# define MSGPACK_PP_ITERATION_4 151
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 152 && MSGPACK_PP_ITERATION_FINISH_4 >= 152
+# define MSGPACK_PP_ITERATION_4 152
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 153 && MSGPACK_PP_ITERATION_FINISH_4 >= 153
+# define MSGPACK_PP_ITERATION_4 153
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 154 && MSGPACK_PP_ITERATION_FINISH_4 >= 154
+# define MSGPACK_PP_ITERATION_4 154
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 155 && MSGPACK_PP_ITERATION_FINISH_4 >= 155
+# define MSGPACK_PP_ITERATION_4 155
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 156 && MSGPACK_PP_ITERATION_FINISH_4 >= 156
+# define MSGPACK_PP_ITERATION_4 156
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 157 && MSGPACK_PP_ITERATION_FINISH_4 >= 157
+# define MSGPACK_PP_ITERATION_4 157
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 158 && MSGPACK_PP_ITERATION_FINISH_4 >= 158
+# define MSGPACK_PP_ITERATION_4 158
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 159 && MSGPACK_PP_ITERATION_FINISH_4 >= 159
+# define MSGPACK_PP_ITERATION_4 159
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 160 && MSGPACK_PP_ITERATION_FINISH_4 >= 160
+# define MSGPACK_PP_ITERATION_4 160
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 161 && MSGPACK_PP_ITERATION_FINISH_4 >= 161
+# define MSGPACK_PP_ITERATION_4 161
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 162 && MSGPACK_PP_ITERATION_FINISH_4 >= 162
+# define MSGPACK_PP_ITERATION_4 162
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 163 && MSGPACK_PP_ITERATION_FINISH_4 >= 163
+# define MSGPACK_PP_ITERATION_4 163
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 164 && MSGPACK_PP_ITERATION_FINISH_4 >= 164
+# define MSGPACK_PP_ITERATION_4 164
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 165 && MSGPACK_PP_ITERATION_FINISH_4 >= 165
+# define MSGPACK_PP_ITERATION_4 165
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 166 && MSGPACK_PP_ITERATION_FINISH_4 >= 166
+# define MSGPACK_PP_ITERATION_4 166
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 167 && MSGPACK_PP_ITERATION_FINISH_4 >= 167
+# define MSGPACK_PP_ITERATION_4 167
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 168 && MSGPACK_PP_ITERATION_FINISH_4 >= 168
+# define MSGPACK_PP_ITERATION_4 168
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 169 && MSGPACK_PP_ITERATION_FINISH_4 >= 169
+# define MSGPACK_PP_ITERATION_4 169
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 170 && MSGPACK_PP_ITERATION_FINISH_4 >= 170
+# define MSGPACK_PP_ITERATION_4 170
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 171 && MSGPACK_PP_ITERATION_FINISH_4 >= 171
+# define MSGPACK_PP_ITERATION_4 171
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 172 && MSGPACK_PP_ITERATION_FINISH_4 >= 172
+# define MSGPACK_PP_ITERATION_4 172
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 173 && MSGPACK_PP_ITERATION_FINISH_4 >= 173
+# define MSGPACK_PP_ITERATION_4 173
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 174 && MSGPACK_PP_ITERATION_FINISH_4 >= 174
+# define MSGPACK_PP_ITERATION_4 174
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 175 && MSGPACK_PP_ITERATION_FINISH_4 >= 175
+# define MSGPACK_PP_ITERATION_4 175
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 176 && MSGPACK_PP_ITERATION_FINISH_4 >= 176
+# define MSGPACK_PP_ITERATION_4 176
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 177 && MSGPACK_PP_ITERATION_FINISH_4 >= 177
+# define MSGPACK_PP_ITERATION_4 177
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 178 && MSGPACK_PP_ITERATION_FINISH_4 >= 178
+# define MSGPACK_PP_ITERATION_4 178
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 179 && MSGPACK_PP_ITERATION_FINISH_4 >= 179
+# define MSGPACK_PP_ITERATION_4 179
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 180 && MSGPACK_PP_ITERATION_FINISH_4 >= 180
+# define MSGPACK_PP_ITERATION_4 180
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 181 && MSGPACK_PP_ITERATION_FINISH_4 >= 181
+# define MSGPACK_PP_ITERATION_4 181
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 182 && MSGPACK_PP_ITERATION_FINISH_4 >= 182
+# define MSGPACK_PP_ITERATION_4 182
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 183 && MSGPACK_PP_ITERATION_FINISH_4 >= 183
+# define MSGPACK_PP_ITERATION_4 183
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 184 && MSGPACK_PP_ITERATION_FINISH_4 >= 184
+# define MSGPACK_PP_ITERATION_4 184
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 185 && MSGPACK_PP_ITERATION_FINISH_4 >= 185
+# define MSGPACK_PP_ITERATION_4 185
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 186 && MSGPACK_PP_ITERATION_FINISH_4 >= 186
+# define MSGPACK_PP_ITERATION_4 186
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 187 && MSGPACK_PP_ITERATION_FINISH_4 >= 187
+# define MSGPACK_PP_ITERATION_4 187
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 188 && MSGPACK_PP_ITERATION_FINISH_4 >= 188
+# define MSGPACK_PP_ITERATION_4 188
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 189 && MSGPACK_PP_ITERATION_FINISH_4 >= 189
+# define MSGPACK_PP_ITERATION_4 189
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 190 && MSGPACK_PP_ITERATION_FINISH_4 >= 190
+# define MSGPACK_PP_ITERATION_4 190
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 191 && MSGPACK_PP_ITERATION_FINISH_4 >= 191
+# define MSGPACK_PP_ITERATION_4 191
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 192 && MSGPACK_PP_ITERATION_FINISH_4 >= 192
+# define MSGPACK_PP_ITERATION_4 192
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 193 && MSGPACK_PP_ITERATION_FINISH_4 >= 193
+# define MSGPACK_PP_ITERATION_4 193
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 194 && MSGPACK_PP_ITERATION_FINISH_4 >= 194
+# define MSGPACK_PP_ITERATION_4 194
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 195 && MSGPACK_PP_ITERATION_FINISH_4 >= 195
+# define MSGPACK_PP_ITERATION_4 195
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 196 && MSGPACK_PP_ITERATION_FINISH_4 >= 196
+# define MSGPACK_PP_ITERATION_4 196
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 197 && MSGPACK_PP_ITERATION_FINISH_4 >= 197
+# define MSGPACK_PP_ITERATION_4 197
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 198 && MSGPACK_PP_ITERATION_FINISH_4 >= 198
+# define MSGPACK_PP_ITERATION_4 198
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 199 && MSGPACK_PP_ITERATION_FINISH_4 >= 199
+# define MSGPACK_PP_ITERATION_4 199
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 200 && MSGPACK_PP_ITERATION_FINISH_4 >= 200
+# define MSGPACK_PP_ITERATION_4 200
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 201 && MSGPACK_PP_ITERATION_FINISH_4 >= 201
+# define MSGPACK_PP_ITERATION_4 201
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 202 && MSGPACK_PP_ITERATION_FINISH_4 >= 202
+# define MSGPACK_PP_ITERATION_4 202
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 203 && MSGPACK_PP_ITERATION_FINISH_4 >= 203
+# define MSGPACK_PP_ITERATION_4 203
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 204 && MSGPACK_PP_ITERATION_FINISH_4 >= 204
+# define MSGPACK_PP_ITERATION_4 204
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 205 && MSGPACK_PP_ITERATION_FINISH_4 >= 205
+# define MSGPACK_PP_ITERATION_4 205
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 206 && MSGPACK_PP_ITERATION_FINISH_4 >= 206
+# define MSGPACK_PP_ITERATION_4 206
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 207 && MSGPACK_PP_ITERATION_FINISH_4 >= 207
+# define MSGPACK_PP_ITERATION_4 207
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 208 && MSGPACK_PP_ITERATION_FINISH_4 >= 208
+# define MSGPACK_PP_ITERATION_4 208
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 209 && MSGPACK_PP_ITERATION_FINISH_4 >= 209
+# define MSGPACK_PP_ITERATION_4 209
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 210 && MSGPACK_PP_ITERATION_FINISH_4 >= 210
+# define MSGPACK_PP_ITERATION_4 210
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 211 && MSGPACK_PP_ITERATION_FINISH_4 >= 211
+# define MSGPACK_PP_ITERATION_4 211
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 212 && MSGPACK_PP_ITERATION_FINISH_4 >= 212
+# define MSGPACK_PP_ITERATION_4 212
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 213 && MSGPACK_PP_ITERATION_FINISH_4 >= 213
+# define MSGPACK_PP_ITERATION_4 213
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 214 && MSGPACK_PP_ITERATION_FINISH_4 >= 214
+# define MSGPACK_PP_ITERATION_4 214
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 215 && MSGPACK_PP_ITERATION_FINISH_4 >= 215
+# define MSGPACK_PP_ITERATION_4 215
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 216 && MSGPACK_PP_ITERATION_FINISH_4 >= 216
+# define MSGPACK_PP_ITERATION_4 216
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 217 && MSGPACK_PP_ITERATION_FINISH_4 >= 217
+# define MSGPACK_PP_ITERATION_4 217
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 218 && MSGPACK_PP_ITERATION_FINISH_4 >= 218
+# define MSGPACK_PP_ITERATION_4 218
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 219 && MSGPACK_PP_ITERATION_FINISH_4 >= 219
+# define MSGPACK_PP_ITERATION_4 219
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 220 && MSGPACK_PP_ITERATION_FINISH_4 >= 220
+# define MSGPACK_PP_ITERATION_4 220
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 221 && MSGPACK_PP_ITERATION_FINISH_4 >= 221
+# define MSGPACK_PP_ITERATION_4 221
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 222 && MSGPACK_PP_ITERATION_FINISH_4 >= 222
+# define MSGPACK_PP_ITERATION_4 222
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 223 && MSGPACK_PP_ITERATION_FINISH_4 >= 223
+# define MSGPACK_PP_ITERATION_4 223
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 224 && MSGPACK_PP_ITERATION_FINISH_4 >= 224
+# define MSGPACK_PP_ITERATION_4 224
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 225 && MSGPACK_PP_ITERATION_FINISH_4 >= 225
+# define MSGPACK_PP_ITERATION_4 225
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 226 && MSGPACK_PP_ITERATION_FINISH_4 >= 226
+# define MSGPACK_PP_ITERATION_4 226
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 227 && MSGPACK_PP_ITERATION_FINISH_4 >= 227
+# define MSGPACK_PP_ITERATION_4 227
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 228 && MSGPACK_PP_ITERATION_FINISH_4 >= 228
+# define MSGPACK_PP_ITERATION_4 228
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 229 && MSGPACK_PP_ITERATION_FINISH_4 >= 229
+# define MSGPACK_PP_ITERATION_4 229
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 230 && MSGPACK_PP_ITERATION_FINISH_4 >= 230
+# define MSGPACK_PP_ITERATION_4 230
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 231 && MSGPACK_PP_ITERATION_FINISH_4 >= 231
+# define MSGPACK_PP_ITERATION_4 231
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 232 && MSGPACK_PP_ITERATION_FINISH_4 >= 232
+# define MSGPACK_PP_ITERATION_4 232
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 233 && MSGPACK_PP_ITERATION_FINISH_4 >= 233
+# define MSGPACK_PP_ITERATION_4 233
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 234 && MSGPACK_PP_ITERATION_FINISH_4 >= 234
+# define MSGPACK_PP_ITERATION_4 234
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 235 && MSGPACK_PP_ITERATION_FINISH_4 >= 235
+# define MSGPACK_PP_ITERATION_4 235
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 236 && MSGPACK_PP_ITERATION_FINISH_4 >= 236
+# define MSGPACK_PP_ITERATION_4 236
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 237 && MSGPACK_PP_ITERATION_FINISH_4 >= 237
+# define MSGPACK_PP_ITERATION_4 237
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 238 && MSGPACK_PP_ITERATION_FINISH_4 >= 238
+# define MSGPACK_PP_ITERATION_4 238
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 239 && MSGPACK_PP_ITERATION_FINISH_4 >= 239
+# define MSGPACK_PP_ITERATION_4 239
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 240 && MSGPACK_PP_ITERATION_FINISH_4 >= 240
+# define MSGPACK_PP_ITERATION_4 240
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 241 && MSGPACK_PP_ITERATION_FINISH_4 >= 241
+# define MSGPACK_PP_ITERATION_4 241
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 242 && MSGPACK_PP_ITERATION_FINISH_4 >= 242
+# define MSGPACK_PP_ITERATION_4 242
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 243 && MSGPACK_PP_ITERATION_FINISH_4 >= 243
+# define MSGPACK_PP_ITERATION_4 243
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 244 && MSGPACK_PP_ITERATION_FINISH_4 >= 244
+# define MSGPACK_PP_ITERATION_4 244
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 245 && MSGPACK_PP_ITERATION_FINISH_4 >= 245
+# define MSGPACK_PP_ITERATION_4 245
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 246 && MSGPACK_PP_ITERATION_FINISH_4 >= 246
+# define MSGPACK_PP_ITERATION_4 246
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 247 && MSGPACK_PP_ITERATION_FINISH_4 >= 247
+# define MSGPACK_PP_ITERATION_4 247
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 248 && MSGPACK_PP_ITERATION_FINISH_4 >= 248
+# define MSGPACK_PP_ITERATION_4 248
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 249 && MSGPACK_PP_ITERATION_FINISH_4 >= 249
+# define MSGPACK_PP_ITERATION_4 249
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 250 && MSGPACK_PP_ITERATION_FINISH_4 >= 250
+# define MSGPACK_PP_ITERATION_4 250
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 251 && MSGPACK_PP_ITERATION_FINISH_4 >= 251
+# define MSGPACK_PP_ITERATION_4 251
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 252 && MSGPACK_PP_ITERATION_FINISH_4 >= 252
+# define MSGPACK_PP_ITERATION_4 252
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 253 && MSGPACK_PP_ITERATION_FINISH_4 >= 253
+# define MSGPACK_PP_ITERATION_4 253
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 254 && MSGPACK_PP_ITERATION_FINISH_4 >= 254
+# define MSGPACK_PP_ITERATION_4 254
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 255 && MSGPACK_PP_ITERATION_FINISH_4 >= 255
+# define MSGPACK_PP_ITERATION_4 255
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_START_4 <= 256 && MSGPACK_PP_ITERATION_FINISH_4 >= 256
+# define MSGPACK_PP_ITERATION_4 256
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 3
+#
+# undef MSGPACK_PP_ITERATION_START_4
+# undef MSGPACK_PP_ITERATION_FINISH_4
+# undef MSGPACK_PP_FILENAME_4
+#
+# undef MSGPACK_PP_ITERATION_FLAGS_4
+# undef MSGPACK_PP_ITERATION_PARAMS_4
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward5.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward5.hpp
new file mode 100644
index 000000000..d668ca502
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/forward5.hpp
@@ -0,0 +1,1338 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if defined(MSGPACK_PP_ITERATION_LIMITS)
+# if !defined(MSGPACK_PP_FILENAME_5)
+# error MSGPACK_PP_ERROR: depth #5 filename is not defined
+# endif
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_ITERATION_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp>
+# define MSGPACK_PP_ITERATION_FLAGS_5() 0
+# undef MSGPACK_PP_ITERATION_LIMITS
+# elif defined(MSGPACK_PP_ITERATION_PARAMS_5)
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(0, MSGPACK_PP_ITERATION_PARAMS_5)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/lower5.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_ARRAY_ELEM(1, MSGPACK_PP_ITERATION_PARAMS_5)
+# include <rpc/msgpack/preprocessor/iteration/detail/bounds/upper5.hpp>
+# define MSGPACK_PP_FILENAME_5 MSGPACK_PP_ARRAY_ELEM(2, MSGPACK_PP_ITERATION_PARAMS_5)
+# if MSGPACK_PP_ARRAY_SIZE(MSGPACK_PP_ITERATION_PARAMS_5) >= 4
+# define MSGPACK_PP_ITERATION_FLAGS_5() MSGPACK_PP_ARRAY_ELEM(3, MSGPACK_PP_ITERATION_PARAMS_5)
+# else
+# define MSGPACK_PP_ITERATION_FLAGS_5() 0
+# endif
+# else
+# error MSGPACK_PP_ERROR: depth #5 iteration boundaries or filename not defined
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 5
+#
+# if (MSGPACK_PP_ITERATION_START_5) > (MSGPACK_PP_ITERATION_FINISH_5)
+# include <rpc/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp>
+# else
+# if MSGPACK_PP_ITERATION_START_5 <= 0 && MSGPACK_PP_ITERATION_FINISH_5 >= 0
+# define MSGPACK_PP_ITERATION_5 0
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 1 && MSGPACK_PP_ITERATION_FINISH_5 >= 1
+# define MSGPACK_PP_ITERATION_5 1
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 2 && MSGPACK_PP_ITERATION_FINISH_5 >= 2
+# define MSGPACK_PP_ITERATION_5 2
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 3 && MSGPACK_PP_ITERATION_FINISH_5 >= 3
+# define MSGPACK_PP_ITERATION_5 3
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 4 && MSGPACK_PP_ITERATION_FINISH_5 >= 4
+# define MSGPACK_PP_ITERATION_5 4
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 5 && MSGPACK_PP_ITERATION_FINISH_5 >= 5
+# define MSGPACK_PP_ITERATION_5 5
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 6 && MSGPACK_PP_ITERATION_FINISH_5 >= 6
+# define MSGPACK_PP_ITERATION_5 6
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 7 && MSGPACK_PP_ITERATION_FINISH_5 >= 7
+# define MSGPACK_PP_ITERATION_5 7
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 8 && MSGPACK_PP_ITERATION_FINISH_5 >= 8
+# define MSGPACK_PP_ITERATION_5 8
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 9 && MSGPACK_PP_ITERATION_FINISH_5 >= 9
+# define MSGPACK_PP_ITERATION_5 9
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 10 && MSGPACK_PP_ITERATION_FINISH_5 >= 10
+# define MSGPACK_PP_ITERATION_5 10
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 11 && MSGPACK_PP_ITERATION_FINISH_5 >= 11
+# define MSGPACK_PP_ITERATION_5 11
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 12 && MSGPACK_PP_ITERATION_FINISH_5 >= 12
+# define MSGPACK_PP_ITERATION_5 12
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 13 && MSGPACK_PP_ITERATION_FINISH_5 >= 13
+# define MSGPACK_PP_ITERATION_5 13
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 14 && MSGPACK_PP_ITERATION_FINISH_5 >= 14
+# define MSGPACK_PP_ITERATION_5 14
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 15 && MSGPACK_PP_ITERATION_FINISH_5 >= 15
+# define MSGPACK_PP_ITERATION_5 15
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 16 && MSGPACK_PP_ITERATION_FINISH_5 >= 16
+# define MSGPACK_PP_ITERATION_5 16
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 17 && MSGPACK_PP_ITERATION_FINISH_5 >= 17
+# define MSGPACK_PP_ITERATION_5 17
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 18 && MSGPACK_PP_ITERATION_FINISH_5 >= 18
+# define MSGPACK_PP_ITERATION_5 18
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 19 && MSGPACK_PP_ITERATION_FINISH_5 >= 19
+# define MSGPACK_PP_ITERATION_5 19
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 20 && MSGPACK_PP_ITERATION_FINISH_5 >= 20
+# define MSGPACK_PP_ITERATION_5 20
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 21 && MSGPACK_PP_ITERATION_FINISH_5 >= 21
+# define MSGPACK_PP_ITERATION_5 21
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 22 && MSGPACK_PP_ITERATION_FINISH_5 >= 22
+# define MSGPACK_PP_ITERATION_5 22
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 23 && MSGPACK_PP_ITERATION_FINISH_5 >= 23
+# define MSGPACK_PP_ITERATION_5 23
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 24 && MSGPACK_PP_ITERATION_FINISH_5 >= 24
+# define MSGPACK_PP_ITERATION_5 24
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 25 && MSGPACK_PP_ITERATION_FINISH_5 >= 25
+# define MSGPACK_PP_ITERATION_5 25
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 26 && MSGPACK_PP_ITERATION_FINISH_5 >= 26
+# define MSGPACK_PP_ITERATION_5 26
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 27 && MSGPACK_PP_ITERATION_FINISH_5 >= 27
+# define MSGPACK_PP_ITERATION_5 27
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 28 && MSGPACK_PP_ITERATION_FINISH_5 >= 28
+# define MSGPACK_PP_ITERATION_5 28
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 29 && MSGPACK_PP_ITERATION_FINISH_5 >= 29
+# define MSGPACK_PP_ITERATION_5 29
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 30 && MSGPACK_PP_ITERATION_FINISH_5 >= 30
+# define MSGPACK_PP_ITERATION_5 30
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 31 && MSGPACK_PP_ITERATION_FINISH_5 >= 31
+# define MSGPACK_PP_ITERATION_5 31
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 32 && MSGPACK_PP_ITERATION_FINISH_5 >= 32
+# define MSGPACK_PP_ITERATION_5 32
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 33 && MSGPACK_PP_ITERATION_FINISH_5 >= 33
+# define MSGPACK_PP_ITERATION_5 33
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 34 && MSGPACK_PP_ITERATION_FINISH_5 >= 34
+# define MSGPACK_PP_ITERATION_5 34
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 35 && MSGPACK_PP_ITERATION_FINISH_5 >= 35
+# define MSGPACK_PP_ITERATION_5 35
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 36 && MSGPACK_PP_ITERATION_FINISH_5 >= 36
+# define MSGPACK_PP_ITERATION_5 36
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 37 && MSGPACK_PP_ITERATION_FINISH_5 >= 37
+# define MSGPACK_PP_ITERATION_5 37
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 38 && MSGPACK_PP_ITERATION_FINISH_5 >= 38
+# define MSGPACK_PP_ITERATION_5 38
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 39 && MSGPACK_PP_ITERATION_FINISH_5 >= 39
+# define MSGPACK_PP_ITERATION_5 39
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 40 && MSGPACK_PP_ITERATION_FINISH_5 >= 40
+# define MSGPACK_PP_ITERATION_5 40
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 41 && MSGPACK_PP_ITERATION_FINISH_5 >= 41
+# define MSGPACK_PP_ITERATION_5 41
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 42 && MSGPACK_PP_ITERATION_FINISH_5 >= 42
+# define MSGPACK_PP_ITERATION_5 42
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 43 && MSGPACK_PP_ITERATION_FINISH_5 >= 43
+# define MSGPACK_PP_ITERATION_5 43
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 44 && MSGPACK_PP_ITERATION_FINISH_5 >= 44
+# define MSGPACK_PP_ITERATION_5 44
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 45 && MSGPACK_PP_ITERATION_FINISH_5 >= 45
+# define MSGPACK_PP_ITERATION_5 45
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 46 && MSGPACK_PP_ITERATION_FINISH_5 >= 46
+# define MSGPACK_PP_ITERATION_5 46
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 47 && MSGPACK_PP_ITERATION_FINISH_5 >= 47
+# define MSGPACK_PP_ITERATION_5 47
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 48 && MSGPACK_PP_ITERATION_FINISH_5 >= 48
+# define MSGPACK_PP_ITERATION_5 48
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 49 && MSGPACK_PP_ITERATION_FINISH_5 >= 49
+# define MSGPACK_PP_ITERATION_5 49
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 50 && MSGPACK_PP_ITERATION_FINISH_5 >= 50
+# define MSGPACK_PP_ITERATION_5 50
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 51 && MSGPACK_PP_ITERATION_FINISH_5 >= 51
+# define MSGPACK_PP_ITERATION_5 51
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 52 && MSGPACK_PP_ITERATION_FINISH_5 >= 52
+# define MSGPACK_PP_ITERATION_5 52
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 53 && MSGPACK_PP_ITERATION_FINISH_5 >= 53
+# define MSGPACK_PP_ITERATION_5 53
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 54 && MSGPACK_PP_ITERATION_FINISH_5 >= 54
+# define MSGPACK_PP_ITERATION_5 54
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 55 && MSGPACK_PP_ITERATION_FINISH_5 >= 55
+# define MSGPACK_PP_ITERATION_5 55
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 56 && MSGPACK_PP_ITERATION_FINISH_5 >= 56
+# define MSGPACK_PP_ITERATION_5 56
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 57 && MSGPACK_PP_ITERATION_FINISH_5 >= 57
+# define MSGPACK_PP_ITERATION_5 57
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 58 && MSGPACK_PP_ITERATION_FINISH_5 >= 58
+# define MSGPACK_PP_ITERATION_5 58
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 59 && MSGPACK_PP_ITERATION_FINISH_5 >= 59
+# define MSGPACK_PP_ITERATION_5 59
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 60 && MSGPACK_PP_ITERATION_FINISH_5 >= 60
+# define MSGPACK_PP_ITERATION_5 60
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 61 && MSGPACK_PP_ITERATION_FINISH_5 >= 61
+# define MSGPACK_PP_ITERATION_5 61
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 62 && MSGPACK_PP_ITERATION_FINISH_5 >= 62
+# define MSGPACK_PP_ITERATION_5 62
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 63 && MSGPACK_PP_ITERATION_FINISH_5 >= 63
+# define MSGPACK_PP_ITERATION_5 63
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 64 && MSGPACK_PP_ITERATION_FINISH_5 >= 64
+# define MSGPACK_PP_ITERATION_5 64
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 65 && MSGPACK_PP_ITERATION_FINISH_5 >= 65
+# define MSGPACK_PP_ITERATION_5 65
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 66 && MSGPACK_PP_ITERATION_FINISH_5 >= 66
+# define MSGPACK_PP_ITERATION_5 66
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 67 && MSGPACK_PP_ITERATION_FINISH_5 >= 67
+# define MSGPACK_PP_ITERATION_5 67
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 68 && MSGPACK_PP_ITERATION_FINISH_5 >= 68
+# define MSGPACK_PP_ITERATION_5 68
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 69 && MSGPACK_PP_ITERATION_FINISH_5 >= 69
+# define MSGPACK_PP_ITERATION_5 69
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 70 && MSGPACK_PP_ITERATION_FINISH_5 >= 70
+# define MSGPACK_PP_ITERATION_5 70
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 71 && MSGPACK_PP_ITERATION_FINISH_5 >= 71
+# define MSGPACK_PP_ITERATION_5 71
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 72 && MSGPACK_PP_ITERATION_FINISH_5 >= 72
+# define MSGPACK_PP_ITERATION_5 72
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 73 && MSGPACK_PP_ITERATION_FINISH_5 >= 73
+# define MSGPACK_PP_ITERATION_5 73
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 74 && MSGPACK_PP_ITERATION_FINISH_5 >= 74
+# define MSGPACK_PP_ITERATION_5 74
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 75 && MSGPACK_PP_ITERATION_FINISH_5 >= 75
+# define MSGPACK_PP_ITERATION_5 75
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 76 && MSGPACK_PP_ITERATION_FINISH_5 >= 76
+# define MSGPACK_PP_ITERATION_5 76
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 77 && MSGPACK_PP_ITERATION_FINISH_5 >= 77
+# define MSGPACK_PP_ITERATION_5 77
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 78 && MSGPACK_PP_ITERATION_FINISH_5 >= 78
+# define MSGPACK_PP_ITERATION_5 78
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 79 && MSGPACK_PP_ITERATION_FINISH_5 >= 79
+# define MSGPACK_PP_ITERATION_5 79
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 80 && MSGPACK_PP_ITERATION_FINISH_5 >= 80
+# define MSGPACK_PP_ITERATION_5 80
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 81 && MSGPACK_PP_ITERATION_FINISH_5 >= 81
+# define MSGPACK_PP_ITERATION_5 81
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 82 && MSGPACK_PP_ITERATION_FINISH_5 >= 82
+# define MSGPACK_PP_ITERATION_5 82
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 83 && MSGPACK_PP_ITERATION_FINISH_5 >= 83
+# define MSGPACK_PP_ITERATION_5 83
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 84 && MSGPACK_PP_ITERATION_FINISH_5 >= 84
+# define MSGPACK_PP_ITERATION_5 84
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 85 && MSGPACK_PP_ITERATION_FINISH_5 >= 85
+# define MSGPACK_PP_ITERATION_5 85
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 86 && MSGPACK_PP_ITERATION_FINISH_5 >= 86
+# define MSGPACK_PP_ITERATION_5 86
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 87 && MSGPACK_PP_ITERATION_FINISH_5 >= 87
+# define MSGPACK_PP_ITERATION_5 87
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 88 && MSGPACK_PP_ITERATION_FINISH_5 >= 88
+# define MSGPACK_PP_ITERATION_5 88
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 89 && MSGPACK_PP_ITERATION_FINISH_5 >= 89
+# define MSGPACK_PP_ITERATION_5 89
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 90 && MSGPACK_PP_ITERATION_FINISH_5 >= 90
+# define MSGPACK_PP_ITERATION_5 90
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 91 && MSGPACK_PP_ITERATION_FINISH_5 >= 91
+# define MSGPACK_PP_ITERATION_5 91
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 92 && MSGPACK_PP_ITERATION_FINISH_5 >= 92
+# define MSGPACK_PP_ITERATION_5 92
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 93 && MSGPACK_PP_ITERATION_FINISH_5 >= 93
+# define MSGPACK_PP_ITERATION_5 93
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 94 && MSGPACK_PP_ITERATION_FINISH_5 >= 94
+# define MSGPACK_PP_ITERATION_5 94
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 95 && MSGPACK_PP_ITERATION_FINISH_5 >= 95
+# define MSGPACK_PP_ITERATION_5 95
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 96 && MSGPACK_PP_ITERATION_FINISH_5 >= 96
+# define MSGPACK_PP_ITERATION_5 96
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 97 && MSGPACK_PP_ITERATION_FINISH_5 >= 97
+# define MSGPACK_PP_ITERATION_5 97
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 98 && MSGPACK_PP_ITERATION_FINISH_5 >= 98
+# define MSGPACK_PP_ITERATION_5 98
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 99 && MSGPACK_PP_ITERATION_FINISH_5 >= 99
+# define MSGPACK_PP_ITERATION_5 99
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 100 && MSGPACK_PP_ITERATION_FINISH_5 >= 100
+# define MSGPACK_PP_ITERATION_5 100
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 101 && MSGPACK_PP_ITERATION_FINISH_5 >= 101
+# define MSGPACK_PP_ITERATION_5 101
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 102 && MSGPACK_PP_ITERATION_FINISH_5 >= 102
+# define MSGPACK_PP_ITERATION_5 102
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 103 && MSGPACK_PP_ITERATION_FINISH_5 >= 103
+# define MSGPACK_PP_ITERATION_5 103
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 104 && MSGPACK_PP_ITERATION_FINISH_5 >= 104
+# define MSGPACK_PP_ITERATION_5 104
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 105 && MSGPACK_PP_ITERATION_FINISH_5 >= 105
+# define MSGPACK_PP_ITERATION_5 105
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 106 && MSGPACK_PP_ITERATION_FINISH_5 >= 106
+# define MSGPACK_PP_ITERATION_5 106
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 107 && MSGPACK_PP_ITERATION_FINISH_5 >= 107
+# define MSGPACK_PP_ITERATION_5 107
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 108 && MSGPACK_PP_ITERATION_FINISH_5 >= 108
+# define MSGPACK_PP_ITERATION_5 108
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 109 && MSGPACK_PP_ITERATION_FINISH_5 >= 109
+# define MSGPACK_PP_ITERATION_5 109
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 110 && MSGPACK_PP_ITERATION_FINISH_5 >= 110
+# define MSGPACK_PP_ITERATION_5 110
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 111 && MSGPACK_PP_ITERATION_FINISH_5 >= 111
+# define MSGPACK_PP_ITERATION_5 111
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 112 && MSGPACK_PP_ITERATION_FINISH_5 >= 112
+# define MSGPACK_PP_ITERATION_5 112
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 113 && MSGPACK_PP_ITERATION_FINISH_5 >= 113
+# define MSGPACK_PP_ITERATION_5 113
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 114 && MSGPACK_PP_ITERATION_FINISH_5 >= 114
+# define MSGPACK_PP_ITERATION_5 114
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 115 && MSGPACK_PP_ITERATION_FINISH_5 >= 115
+# define MSGPACK_PP_ITERATION_5 115
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 116 && MSGPACK_PP_ITERATION_FINISH_5 >= 116
+# define MSGPACK_PP_ITERATION_5 116
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 117 && MSGPACK_PP_ITERATION_FINISH_5 >= 117
+# define MSGPACK_PP_ITERATION_5 117
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 118 && MSGPACK_PP_ITERATION_FINISH_5 >= 118
+# define MSGPACK_PP_ITERATION_5 118
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 119 && MSGPACK_PP_ITERATION_FINISH_5 >= 119
+# define MSGPACK_PP_ITERATION_5 119
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 120 && MSGPACK_PP_ITERATION_FINISH_5 >= 120
+# define MSGPACK_PP_ITERATION_5 120
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 121 && MSGPACK_PP_ITERATION_FINISH_5 >= 121
+# define MSGPACK_PP_ITERATION_5 121
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 122 && MSGPACK_PP_ITERATION_FINISH_5 >= 122
+# define MSGPACK_PP_ITERATION_5 122
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 123 && MSGPACK_PP_ITERATION_FINISH_5 >= 123
+# define MSGPACK_PP_ITERATION_5 123
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 124 && MSGPACK_PP_ITERATION_FINISH_5 >= 124
+# define MSGPACK_PP_ITERATION_5 124
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 125 && MSGPACK_PP_ITERATION_FINISH_5 >= 125
+# define MSGPACK_PP_ITERATION_5 125
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 126 && MSGPACK_PP_ITERATION_FINISH_5 >= 126
+# define MSGPACK_PP_ITERATION_5 126
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 127 && MSGPACK_PP_ITERATION_FINISH_5 >= 127
+# define MSGPACK_PP_ITERATION_5 127
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 128 && MSGPACK_PP_ITERATION_FINISH_5 >= 128
+# define MSGPACK_PP_ITERATION_5 128
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 129 && MSGPACK_PP_ITERATION_FINISH_5 >= 129
+# define MSGPACK_PP_ITERATION_5 129
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 130 && MSGPACK_PP_ITERATION_FINISH_5 >= 130
+# define MSGPACK_PP_ITERATION_5 130
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 131 && MSGPACK_PP_ITERATION_FINISH_5 >= 131
+# define MSGPACK_PP_ITERATION_5 131
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 132 && MSGPACK_PP_ITERATION_FINISH_5 >= 132
+# define MSGPACK_PP_ITERATION_5 132
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 133 && MSGPACK_PP_ITERATION_FINISH_5 >= 133
+# define MSGPACK_PP_ITERATION_5 133
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 134 && MSGPACK_PP_ITERATION_FINISH_5 >= 134
+# define MSGPACK_PP_ITERATION_5 134
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 135 && MSGPACK_PP_ITERATION_FINISH_5 >= 135
+# define MSGPACK_PP_ITERATION_5 135
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 136 && MSGPACK_PP_ITERATION_FINISH_5 >= 136
+# define MSGPACK_PP_ITERATION_5 136
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 137 && MSGPACK_PP_ITERATION_FINISH_5 >= 137
+# define MSGPACK_PP_ITERATION_5 137
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 138 && MSGPACK_PP_ITERATION_FINISH_5 >= 138
+# define MSGPACK_PP_ITERATION_5 138
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 139 && MSGPACK_PP_ITERATION_FINISH_5 >= 139
+# define MSGPACK_PP_ITERATION_5 139
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 140 && MSGPACK_PP_ITERATION_FINISH_5 >= 140
+# define MSGPACK_PP_ITERATION_5 140
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 141 && MSGPACK_PP_ITERATION_FINISH_5 >= 141
+# define MSGPACK_PP_ITERATION_5 141
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 142 && MSGPACK_PP_ITERATION_FINISH_5 >= 142
+# define MSGPACK_PP_ITERATION_5 142
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 143 && MSGPACK_PP_ITERATION_FINISH_5 >= 143
+# define MSGPACK_PP_ITERATION_5 143
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 144 && MSGPACK_PP_ITERATION_FINISH_5 >= 144
+# define MSGPACK_PP_ITERATION_5 144
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 145 && MSGPACK_PP_ITERATION_FINISH_5 >= 145
+# define MSGPACK_PP_ITERATION_5 145
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 146 && MSGPACK_PP_ITERATION_FINISH_5 >= 146
+# define MSGPACK_PP_ITERATION_5 146
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 147 && MSGPACK_PP_ITERATION_FINISH_5 >= 147
+# define MSGPACK_PP_ITERATION_5 147
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 148 && MSGPACK_PP_ITERATION_FINISH_5 >= 148
+# define MSGPACK_PP_ITERATION_5 148
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 149 && MSGPACK_PP_ITERATION_FINISH_5 >= 149
+# define MSGPACK_PP_ITERATION_5 149
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 150 && MSGPACK_PP_ITERATION_FINISH_5 >= 150
+# define MSGPACK_PP_ITERATION_5 150
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 151 && MSGPACK_PP_ITERATION_FINISH_5 >= 151
+# define MSGPACK_PP_ITERATION_5 151
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 152 && MSGPACK_PP_ITERATION_FINISH_5 >= 152
+# define MSGPACK_PP_ITERATION_5 152
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 153 && MSGPACK_PP_ITERATION_FINISH_5 >= 153
+# define MSGPACK_PP_ITERATION_5 153
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 154 && MSGPACK_PP_ITERATION_FINISH_5 >= 154
+# define MSGPACK_PP_ITERATION_5 154
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 155 && MSGPACK_PP_ITERATION_FINISH_5 >= 155
+# define MSGPACK_PP_ITERATION_5 155
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 156 && MSGPACK_PP_ITERATION_FINISH_5 >= 156
+# define MSGPACK_PP_ITERATION_5 156
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 157 && MSGPACK_PP_ITERATION_FINISH_5 >= 157
+# define MSGPACK_PP_ITERATION_5 157
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 158 && MSGPACK_PP_ITERATION_FINISH_5 >= 158
+# define MSGPACK_PP_ITERATION_5 158
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 159 && MSGPACK_PP_ITERATION_FINISH_5 >= 159
+# define MSGPACK_PP_ITERATION_5 159
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 160 && MSGPACK_PP_ITERATION_FINISH_5 >= 160
+# define MSGPACK_PP_ITERATION_5 160
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 161 && MSGPACK_PP_ITERATION_FINISH_5 >= 161
+# define MSGPACK_PP_ITERATION_5 161
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 162 && MSGPACK_PP_ITERATION_FINISH_5 >= 162
+# define MSGPACK_PP_ITERATION_5 162
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 163 && MSGPACK_PP_ITERATION_FINISH_5 >= 163
+# define MSGPACK_PP_ITERATION_5 163
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 164 && MSGPACK_PP_ITERATION_FINISH_5 >= 164
+# define MSGPACK_PP_ITERATION_5 164
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 165 && MSGPACK_PP_ITERATION_FINISH_5 >= 165
+# define MSGPACK_PP_ITERATION_5 165
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 166 && MSGPACK_PP_ITERATION_FINISH_5 >= 166
+# define MSGPACK_PP_ITERATION_5 166
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 167 && MSGPACK_PP_ITERATION_FINISH_5 >= 167
+# define MSGPACK_PP_ITERATION_5 167
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 168 && MSGPACK_PP_ITERATION_FINISH_5 >= 168
+# define MSGPACK_PP_ITERATION_5 168
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 169 && MSGPACK_PP_ITERATION_FINISH_5 >= 169
+# define MSGPACK_PP_ITERATION_5 169
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 170 && MSGPACK_PP_ITERATION_FINISH_5 >= 170
+# define MSGPACK_PP_ITERATION_5 170
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 171 && MSGPACK_PP_ITERATION_FINISH_5 >= 171
+# define MSGPACK_PP_ITERATION_5 171
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 172 && MSGPACK_PP_ITERATION_FINISH_5 >= 172
+# define MSGPACK_PP_ITERATION_5 172
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 173 && MSGPACK_PP_ITERATION_FINISH_5 >= 173
+# define MSGPACK_PP_ITERATION_5 173
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 174 && MSGPACK_PP_ITERATION_FINISH_5 >= 174
+# define MSGPACK_PP_ITERATION_5 174
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 175 && MSGPACK_PP_ITERATION_FINISH_5 >= 175
+# define MSGPACK_PP_ITERATION_5 175
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 176 && MSGPACK_PP_ITERATION_FINISH_5 >= 176
+# define MSGPACK_PP_ITERATION_5 176
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 177 && MSGPACK_PP_ITERATION_FINISH_5 >= 177
+# define MSGPACK_PP_ITERATION_5 177
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 178 && MSGPACK_PP_ITERATION_FINISH_5 >= 178
+# define MSGPACK_PP_ITERATION_5 178
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 179 && MSGPACK_PP_ITERATION_FINISH_5 >= 179
+# define MSGPACK_PP_ITERATION_5 179
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 180 && MSGPACK_PP_ITERATION_FINISH_5 >= 180
+# define MSGPACK_PP_ITERATION_5 180
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 181 && MSGPACK_PP_ITERATION_FINISH_5 >= 181
+# define MSGPACK_PP_ITERATION_5 181
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 182 && MSGPACK_PP_ITERATION_FINISH_5 >= 182
+# define MSGPACK_PP_ITERATION_5 182
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 183 && MSGPACK_PP_ITERATION_FINISH_5 >= 183
+# define MSGPACK_PP_ITERATION_5 183
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 184 && MSGPACK_PP_ITERATION_FINISH_5 >= 184
+# define MSGPACK_PP_ITERATION_5 184
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 185 && MSGPACK_PP_ITERATION_FINISH_5 >= 185
+# define MSGPACK_PP_ITERATION_5 185
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 186 && MSGPACK_PP_ITERATION_FINISH_5 >= 186
+# define MSGPACK_PP_ITERATION_5 186
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 187 && MSGPACK_PP_ITERATION_FINISH_5 >= 187
+# define MSGPACK_PP_ITERATION_5 187
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 188 && MSGPACK_PP_ITERATION_FINISH_5 >= 188
+# define MSGPACK_PP_ITERATION_5 188
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 189 && MSGPACK_PP_ITERATION_FINISH_5 >= 189
+# define MSGPACK_PP_ITERATION_5 189
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 190 && MSGPACK_PP_ITERATION_FINISH_5 >= 190
+# define MSGPACK_PP_ITERATION_5 190
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 191 && MSGPACK_PP_ITERATION_FINISH_5 >= 191
+# define MSGPACK_PP_ITERATION_5 191
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 192 && MSGPACK_PP_ITERATION_FINISH_5 >= 192
+# define MSGPACK_PP_ITERATION_5 192
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 193 && MSGPACK_PP_ITERATION_FINISH_5 >= 193
+# define MSGPACK_PP_ITERATION_5 193
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 194 && MSGPACK_PP_ITERATION_FINISH_5 >= 194
+# define MSGPACK_PP_ITERATION_5 194
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 195 && MSGPACK_PP_ITERATION_FINISH_5 >= 195
+# define MSGPACK_PP_ITERATION_5 195
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 196 && MSGPACK_PP_ITERATION_FINISH_5 >= 196
+# define MSGPACK_PP_ITERATION_5 196
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 197 && MSGPACK_PP_ITERATION_FINISH_5 >= 197
+# define MSGPACK_PP_ITERATION_5 197
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 198 && MSGPACK_PP_ITERATION_FINISH_5 >= 198
+# define MSGPACK_PP_ITERATION_5 198
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 199 && MSGPACK_PP_ITERATION_FINISH_5 >= 199
+# define MSGPACK_PP_ITERATION_5 199
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 200 && MSGPACK_PP_ITERATION_FINISH_5 >= 200
+# define MSGPACK_PP_ITERATION_5 200
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 201 && MSGPACK_PP_ITERATION_FINISH_5 >= 201
+# define MSGPACK_PP_ITERATION_5 201
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 202 && MSGPACK_PP_ITERATION_FINISH_5 >= 202
+# define MSGPACK_PP_ITERATION_5 202
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 203 && MSGPACK_PP_ITERATION_FINISH_5 >= 203
+# define MSGPACK_PP_ITERATION_5 203
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 204 && MSGPACK_PP_ITERATION_FINISH_5 >= 204
+# define MSGPACK_PP_ITERATION_5 204
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 205 && MSGPACK_PP_ITERATION_FINISH_5 >= 205
+# define MSGPACK_PP_ITERATION_5 205
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 206 && MSGPACK_PP_ITERATION_FINISH_5 >= 206
+# define MSGPACK_PP_ITERATION_5 206
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 207 && MSGPACK_PP_ITERATION_FINISH_5 >= 207
+# define MSGPACK_PP_ITERATION_5 207
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 208 && MSGPACK_PP_ITERATION_FINISH_5 >= 208
+# define MSGPACK_PP_ITERATION_5 208
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 209 && MSGPACK_PP_ITERATION_FINISH_5 >= 209
+# define MSGPACK_PP_ITERATION_5 209
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 210 && MSGPACK_PP_ITERATION_FINISH_5 >= 210
+# define MSGPACK_PP_ITERATION_5 210
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 211 && MSGPACK_PP_ITERATION_FINISH_5 >= 211
+# define MSGPACK_PP_ITERATION_5 211
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 212 && MSGPACK_PP_ITERATION_FINISH_5 >= 212
+# define MSGPACK_PP_ITERATION_5 212
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 213 && MSGPACK_PP_ITERATION_FINISH_5 >= 213
+# define MSGPACK_PP_ITERATION_5 213
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 214 && MSGPACK_PP_ITERATION_FINISH_5 >= 214
+# define MSGPACK_PP_ITERATION_5 214
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 215 && MSGPACK_PP_ITERATION_FINISH_5 >= 215
+# define MSGPACK_PP_ITERATION_5 215
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 216 && MSGPACK_PP_ITERATION_FINISH_5 >= 216
+# define MSGPACK_PP_ITERATION_5 216
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 217 && MSGPACK_PP_ITERATION_FINISH_5 >= 217
+# define MSGPACK_PP_ITERATION_5 217
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 218 && MSGPACK_PP_ITERATION_FINISH_5 >= 218
+# define MSGPACK_PP_ITERATION_5 218
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 219 && MSGPACK_PP_ITERATION_FINISH_5 >= 219
+# define MSGPACK_PP_ITERATION_5 219
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 220 && MSGPACK_PP_ITERATION_FINISH_5 >= 220
+# define MSGPACK_PP_ITERATION_5 220
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 221 && MSGPACK_PP_ITERATION_FINISH_5 >= 221
+# define MSGPACK_PP_ITERATION_5 221
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 222 && MSGPACK_PP_ITERATION_FINISH_5 >= 222
+# define MSGPACK_PP_ITERATION_5 222
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 223 && MSGPACK_PP_ITERATION_FINISH_5 >= 223
+# define MSGPACK_PP_ITERATION_5 223
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 224 && MSGPACK_PP_ITERATION_FINISH_5 >= 224
+# define MSGPACK_PP_ITERATION_5 224
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 225 && MSGPACK_PP_ITERATION_FINISH_5 >= 225
+# define MSGPACK_PP_ITERATION_5 225
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 226 && MSGPACK_PP_ITERATION_FINISH_5 >= 226
+# define MSGPACK_PP_ITERATION_5 226
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 227 && MSGPACK_PP_ITERATION_FINISH_5 >= 227
+# define MSGPACK_PP_ITERATION_5 227
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 228 && MSGPACK_PP_ITERATION_FINISH_5 >= 228
+# define MSGPACK_PP_ITERATION_5 228
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 229 && MSGPACK_PP_ITERATION_FINISH_5 >= 229
+# define MSGPACK_PP_ITERATION_5 229
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 230 && MSGPACK_PP_ITERATION_FINISH_5 >= 230
+# define MSGPACK_PP_ITERATION_5 230
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 231 && MSGPACK_PP_ITERATION_FINISH_5 >= 231
+# define MSGPACK_PP_ITERATION_5 231
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 232 && MSGPACK_PP_ITERATION_FINISH_5 >= 232
+# define MSGPACK_PP_ITERATION_5 232
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 233 && MSGPACK_PP_ITERATION_FINISH_5 >= 233
+# define MSGPACK_PP_ITERATION_5 233
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 234 && MSGPACK_PP_ITERATION_FINISH_5 >= 234
+# define MSGPACK_PP_ITERATION_5 234
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 235 && MSGPACK_PP_ITERATION_FINISH_5 >= 235
+# define MSGPACK_PP_ITERATION_5 235
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 236 && MSGPACK_PP_ITERATION_FINISH_5 >= 236
+# define MSGPACK_PP_ITERATION_5 236
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 237 && MSGPACK_PP_ITERATION_FINISH_5 >= 237
+# define MSGPACK_PP_ITERATION_5 237
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 238 && MSGPACK_PP_ITERATION_FINISH_5 >= 238
+# define MSGPACK_PP_ITERATION_5 238
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 239 && MSGPACK_PP_ITERATION_FINISH_5 >= 239
+# define MSGPACK_PP_ITERATION_5 239
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 240 && MSGPACK_PP_ITERATION_FINISH_5 >= 240
+# define MSGPACK_PP_ITERATION_5 240
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 241 && MSGPACK_PP_ITERATION_FINISH_5 >= 241
+# define MSGPACK_PP_ITERATION_5 241
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 242 && MSGPACK_PP_ITERATION_FINISH_5 >= 242
+# define MSGPACK_PP_ITERATION_5 242
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 243 && MSGPACK_PP_ITERATION_FINISH_5 >= 243
+# define MSGPACK_PP_ITERATION_5 243
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 244 && MSGPACK_PP_ITERATION_FINISH_5 >= 244
+# define MSGPACK_PP_ITERATION_5 244
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 245 && MSGPACK_PP_ITERATION_FINISH_5 >= 245
+# define MSGPACK_PP_ITERATION_5 245
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 246 && MSGPACK_PP_ITERATION_FINISH_5 >= 246
+# define MSGPACK_PP_ITERATION_5 246
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 247 && MSGPACK_PP_ITERATION_FINISH_5 >= 247
+# define MSGPACK_PP_ITERATION_5 247
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 248 && MSGPACK_PP_ITERATION_FINISH_5 >= 248
+# define MSGPACK_PP_ITERATION_5 248
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 249 && MSGPACK_PP_ITERATION_FINISH_5 >= 249
+# define MSGPACK_PP_ITERATION_5 249
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 250 && MSGPACK_PP_ITERATION_FINISH_5 >= 250
+# define MSGPACK_PP_ITERATION_5 250
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 251 && MSGPACK_PP_ITERATION_FINISH_5 >= 251
+# define MSGPACK_PP_ITERATION_5 251
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 252 && MSGPACK_PP_ITERATION_FINISH_5 >= 252
+# define MSGPACK_PP_ITERATION_5 252
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 253 && MSGPACK_PP_ITERATION_FINISH_5 >= 253
+# define MSGPACK_PP_ITERATION_5 253
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 254 && MSGPACK_PP_ITERATION_FINISH_5 >= 254
+# define MSGPACK_PP_ITERATION_5 254
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 255 && MSGPACK_PP_ITERATION_FINISH_5 >= 255
+# define MSGPACK_PP_ITERATION_5 255
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_START_5 <= 256 && MSGPACK_PP_ITERATION_FINISH_5 >= 256
+# define MSGPACK_PP_ITERATION_5 256
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# endif
+#
+# undef MSGPACK_PP_ITERATION_DEPTH
+# define MSGPACK_PP_ITERATION_DEPTH() 4
+#
+# undef MSGPACK_PP_ITERATION_START_5
+# undef MSGPACK_PP_ITERATION_FINISH_5
+# undef MSGPACK_PP_FILENAME_5
+#
+# undef MSGPACK_PP_ITERATION_FLAGS_5
+# undef MSGPACK_PP_ITERATION_PARAMS_5
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp
new file mode 100644
index 000000000..fa838a7b7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse1.hpp
@@ -0,0 +1,1296 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 256 && MSGPACK_PP_ITERATION_START_1 >= 256
+# define MSGPACK_PP_ITERATION_1 256
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 255 && MSGPACK_PP_ITERATION_START_1 >= 255
+# define MSGPACK_PP_ITERATION_1 255
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 254 && MSGPACK_PP_ITERATION_START_1 >= 254
+# define MSGPACK_PP_ITERATION_1 254
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 253 && MSGPACK_PP_ITERATION_START_1 >= 253
+# define MSGPACK_PP_ITERATION_1 253
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 252 && MSGPACK_PP_ITERATION_START_1 >= 252
+# define MSGPACK_PP_ITERATION_1 252
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 251 && MSGPACK_PP_ITERATION_START_1 >= 251
+# define MSGPACK_PP_ITERATION_1 251
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 250 && MSGPACK_PP_ITERATION_START_1 >= 250
+# define MSGPACK_PP_ITERATION_1 250
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 249 && MSGPACK_PP_ITERATION_START_1 >= 249
+# define MSGPACK_PP_ITERATION_1 249
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 248 && MSGPACK_PP_ITERATION_START_1 >= 248
+# define MSGPACK_PP_ITERATION_1 248
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 247 && MSGPACK_PP_ITERATION_START_1 >= 247
+# define MSGPACK_PP_ITERATION_1 247
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 246 && MSGPACK_PP_ITERATION_START_1 >= 246
+# define MSGPACK_PP_ITERATION_1 246
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 245 && MSGPACK_PP_ITERATION_START_1 >= 245
+# define MSGPACK_PP_ITERATION_1 245
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 244 && MSGPACK_PP_ITERATION_START_1 >= 244
+# define MSGPACK_PP_ITERATION_1 244
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 243 && MSGPACK_PP_ITERATION_START_1 >= 243
+# define MSGPACK_PP_ITERATION_1 243
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 242 && MSGPACK_PP_ITERATION_START_1 >= 242
+# define MSGPACK_PP_ITERATION_1 242
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 241 && MSGPACK_PP_ITERATION_START_1 >= 241
+# define MSGPACK_PP_ITERATION_1 241
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 240 && MSGPACK_PP_ITERATION_START_1 >= 240
+# define MSGPACK_PP_ITERATION_1 240
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 239 && MSGPACK_PP_ITERATION_START_1 >= 239
+# define MSGPACK_PP_ITERATION_1 239
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 238 && MSGPACK_PP_ITERATION_START_1 >= 238
+# define MSGPACK_PP_ITERATION_1 238
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 237 && MSGPACK_PP_ITERATION_START_1 >= 237
+# define MSGPACK_PP_ITERATION_1 237
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 236 && MSGPACK_PP_ITERATION_START_1 >= 236
+# define MSGPACK_PP_ITERATION_1 236
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 235 && MSGPACK_PP_ITERATION_START_1 >= 235
+# define MSGPACK_PP_ITERATION_1 235
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 234 && MSGPACK_PP_ITERATION_START_1 >= 234
+# define MSGPACK_PP_ITERATION_1 234
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 233 && MSGPACK_PP_ITERATION_START_1 >= 233
+# define MSGPACK_PP_ITERATION_1 233
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 232 && MSGPACK_PP_ITERATION_START_1 >= 232
+# define MSGPACK_PP_ITERATION_1 232
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 231 && MSGPACK_PP_ITERATION_START_1 >= 231
+# define MSGPACK_PP_ITERATION_1 231
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 230 && MSGPACK_PP_ITERATION_START_1 >= 230
+# define MSGPACK_PP_ITERATION_1 230
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 229 && MSGPACK_PP_ITERATION_START_1 >= 229
+# define MSGPACK_PP_ITERATION_1 229
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 228 && MSGPACK_PP_ITERATION_START_1 >= 228
+# define MSGPACK_PP_ITERATION_1 228
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 227 && MSGPACK_PP_ITERATION_START_1 >= 227
+# define MSGPACK_PP_ITERATION_1 227
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 226 && MSGPACK_PP_ITERATION_START_1 >= 226
+# define MSGPACK_PP_ITERATION_1 226
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 225 && MSGPACK_PP_ITERATION_START_1 >= 225
+# define MSGPACK_PP_ITERATION_1 225
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 224 && MSGPACK_PP_ITERATION_START_1 >= 224
+# define MSGPACK_PP_ITERATION_1 224
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 223 && MSGPACK_PP_ITERATION_START_1 >= 223
+# define MSGPACK_PP_ITERATION_1 223
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 222 && MSGPACK_PP_ITERATION_START_1 >= 222
+# define MSGPACK_PP_ITERATION_1 222
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 221 && MSGPACK_PP_ITERATION_START_1 >= 221
+# define MSGPACK_PP_ITERATION_1 221
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 220 && MSGPACK_PP_ITERATION_START_1 >= 220
+# define MSGPACK_PP_ITERATION_1 220
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 219 && MSGPACK_PP_ITERATION_START_1 >= 219
+# define MSGPACK_PP_ITERATION_1 219
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 218 && MSGPACK_PP_ITERATION_START_1 >= 218
+# define MSGPACK_PP_ITERATION_1 218
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 217 && MSGPACK_PP_ITERATION_START_1 >= 217
+# define MSGPACK_PP_ITERATION_1 217
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 216 && MSGPACK_PP_ITERATION_START_1 >= 216
+# define MSGPACK_PP_ITERATION_1 216
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 215 && MSGPACK_PP_ITERATION_START_1 >= 215
+# define MSGPACK_PP_ITERATION_1 215
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 214 && MSGPACK_PP_ITERATION_START_1 >= 214
+# define MSGPACK_PP_ITERATION_1 214
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 213 && MSGPACK_PP_ITERATION_START_1 >= 213
+# define MSGPACK_PP_ITERATION_1 213
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 212 && MSGPACK_PP_ITERATION_START_1 >= 212
+# define MSGPACK_PP_ITERATION_1 212
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 211 && MSGPACK_PP_ITERATION_START_1 >= 211
+# define MSGPACK_PP_ITERATION_1 211
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 210 && MSGPACK_PP_ITERATION_START_1 >= 210
+# define MSGPACK_PP_ITERATION_1 210
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 209 && MSGPACK_PP_ITERATION_START_1 >= 209
+# define MSGPACK_PP_ITERATION_1 209
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 208 && MSGPACK_PP_ITERATION_START_1 >= 208
+# define MSGPACK_PP_ITERATION_1 208
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 207 && MSGPACK_PP_ITERATION_START_1 >= 207
+# define MSGPACK_PP_ITERATION_1 207
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 206 && MSGPACK_PP_ITERATION_START_1 >= 206
+# define MSGPACK_PP_ITERATION_1 206
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 205 && MSGPACK_PP_ITERATION_START_1 >= 205
+# define MSGPACK_PP_ITERATION_1 205
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 204 && MSGPACK_PP_ITERATION_START_1 >= 204
+# define MSGPACK_PP_ITERATION_1 204
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 203 && MSGPACK_PP_ITERATION_START_1 >= 203
+# define MSGPACK_PP_ITERATION_1 203
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 202 && MSGPACK_PP_ITERATION_START_1 >= 202
+# define MSGPACK_PP_ITERATION_1 202
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 201 && MSGPACK_PP_ITERATION_START_1 >= 201
+# define MSGPACK_PP_ITERATION_1 201
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 200 && MSGPACK_PP_ITERATION_START_1 >= 200
+# define MSGPACK_PP_ITERATION_1 200
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 199 && MSGPACK_PP_ITERATION_START_1 >= 199
+# define MSGPACK_PP_ITERATION_1 199
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 198 && MSGPACK_PP_ITERATION_START_1 >= 198
+# define MSGPACK_PP_ITERATION_1 198
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 197 && MSGPACK_PP_ITERATION_START_1 >= 197
+# define MSGPACK_PP_ITERATION_1 197
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 196 && MSGPACK_PP_ITERATION_START_1 >= 196
+# define MSGPACK_PP_ITERATION_1 196
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 195 && MSGPACK_PP_ITERATION_START_1 >= 195
+# define MSGPACK_PP_ITERATION_1 195
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 194 && MSGPACK_PP_ITERATION_START_1 >= 194
+# define MSGPACK_PP_ITERATION_1 194
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 193 && MSGPACK_PP_ITERATION_START_1 >= 193
+# define MSGPACK_PP_ITERATION_1 193
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 192 && MSGPACK_PP_ITERATION_START_1 >= 192
+# define MSGPACK_PP_ITERATION_1 192
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 191 && MSGPACK_PP_ITERATION_START_1 >= 191
+# define MSGPACK_PP_ITERATION_1 191
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 190 && MSGPACK_PP_ITERATION_START_1 >= 190
+# define MSGPACK_PP_ITERATION_1 190
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 189 && MSGPACK_PP_ITERATION_START_1 >= 189
+# define MSGPACK_PP_ITERATION_1 189
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 188 && MSGPACK_PP_ITERATION_START_1 >= 188
+# define MSGPACK_PP_ITERATION_1 188
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 187 && MSGPACK_PP_ITERATION_START_1 >= 187
+# define MSGPACK_PP_ITERATION_1 187
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 186 && MSGPACK_PP_ITERATION_START_1 >= 186
+# define MSGPACK_PP_ITERATION_1 186
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 185 && MSGPACK_PP_ITERATION_START_1 >= 185
+# define MSGPACK_PP_ITERATION_1 185
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 184 && MSGPACK_PP_ITERATION_START_1 >= 184
+# define MSGPACK_PP_ITERATION_1 184
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 183 && MSGPACK_PP_ITERATION_START_1 >= 183
+# define MSGPACK_PP_ITERATION_1 183
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 182 && MSGPACK_PP_ITERATION_START_1 >= 182
+# define MSGPACK_PP_ITERATION_1 182
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 181 && MSGPACK_PP_ITERATION_START_1 >= 181
+# define MSGPACK_PP_ITERATION_1 181
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 180 && MSGPACK_PP_ITERATION_START_1 >= 180
+# define MSGPACK_PP_ITERATION_1 180
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 179 && MSGPACK_PP_ITERATION_START_1 >= 179
+# define MSGPACK_PP_ITERATION_1 179
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 178 && MSGPACK_PP_ITERATION_START_1 >= 178
+# define MSGPACK_PP_ITERATION_1 178
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 177 && MSGPACK_PP_ITERATION_START_1 >= 177
+# define MSGPACK_PP_ITERATION_1 177
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 176 && MSGPACK_PP_ITERATION_START_1 >= 176
+# define MSGPACK_PP_ITERATION_1 176
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 175 && MSGPACK_PP_ITERATION_START_1 >= 175
+# define MSGPACK_PP_ITERATION_1 175
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 174 && MSGPACK_PP_ITERATION_START_1 >= 174
+# define MSGPACK_PP_ITERATION_1 174
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 173 && MSGPACK_PP_ITERATION_START_1 >= 173
+# define MSGPACK_PP_ITERATION_1 173
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 172 && MSGPACK_PP_ITERATION_START_1 >= 172
+# define MSGPACK_PP_ITERATION_1 172
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 171 && MSGPACK_PP_ITERATION_START_1 >= 171
+# define MSGPACK_PP_ITERATION_1 171
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 170 && MSGPACK_PP_ITERATION_START_1 >= 170
+# define MSGPACK_PP_ITERATION_1 170
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 169 && MSGPACK_PP_ITERATION_START_1 >= 169
+# define MSGPACK_PP_ITERATION_1 169
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 168 && MSGPACK_PP_ITERATION_START_1 >= 168
+# define MSGPACK_PP_ITERATION_1 168
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 167 && MSGPACK_PP_ITERATION_START_1 >= 167
+# define MSGPACK_PP_ITERATION_1 167
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 166 && MSGPACK_PP_ITERATION_START_1 >= 166
+# define MSGPACK_PP_ITERATION_1 166
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 165 && MSGPACK_PP_ITERATION_START_1 >= 165
+# define MSGPACK_PP_ITERATION_1 165
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 164 && MSGPACK_PP_ITERATION_START_1 >= 164
+# define MSGPACK_PP_ITERATION_1 164
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 163 && MSGPACK_PP_ITERATION_START_1 >= 163
+# define MSGPACK_PP_ITERATION_1 163
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 162 && MSGPACK_PP_ITERATION_START_1 >= 162
+# define MSGPACK_PP_ITERATION_1 162
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 161 && MSGPACK_PP_ITERATION_START_1 >= 161
+# define MSGPACK_PP_ITERATION_1 161
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 160 && MSGPACK_PP_ITERATION_START_1 >= 160
+# define MSGPACK_PP_ITERATION_1 160
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 159 && MSGPACK_PP_ITERATION_START_1 >= 159
+# define MSGPACK_PP_ITERATION_1 159
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 158 && MSGPACK_PP_ITERATION_START_1 >= 158
+# define MSGPACK_PP_ITERATION_1 158
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 157 && MSGPACK_PP_ITERATION_START_1 >= 157
+# define MSGPACK_PP_ITERATION_1 157
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 156 && MSGPACK_PP_ITERATION_START_1 >= 156
+# define MSGPACK_PP_ITERATION_1 156
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 155 && MSGPACK_PP_ITERATION_START_1 >= 155
+# define MSGPACK_PP_ITERATION_1 155
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 154 && MSGPACK_PP_ITERATION_START_1 >= 154
+# define MSGPACK_PP_ITERATION_1 154
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 153 && MSGPACK_PP_ITERATION_START_1 >= 153
+# define MSGPACK_PP_ITERATION_1 153
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 152 && MSGPACK_PP_ITERATION_START_1 >= 152
+# define MSGPACK_PP_ITERATION_1 152
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 151 && MSGPACK_PP_ITERATION_START_1 >= 151
+# define MSGPACK_PP_ITERATION_1 151
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 150 && MSGPACK_PP_ITERATION_START_1 >= 150
+# define MSGPACK_PP_ITERATION_1 150
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 149 && MSGPACK_PP_ITERATION_START_1 >= 149
+# define MSGPACK_PP_ITERATION_1 149
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 148 && MSGPACK_PP_ITERATION_START_1 >= 148
+# define MSGPACK_PP_ITERATION_1 148
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 147 && MSGPACK_PP_ITERATION_START_1 >= 147
+# define MSGPACK_PP_ITERATION_1 147
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 146 && MSGPACK_PP_ITERATION_START_1 >= 146
+# define MSGPACK_PP_ITERATION_1 146
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 145 && MSGPACK_PP_ITERATION_START_1 >= 145
+# define MSGPACK_PP_ITERATION_1 145
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 144 && MSGPACK_PP_ITERATION_START_1 >= 144
+# define MSGPACK_PP_ITERATION_1 144
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 143 && MSGPACK_PP_ITERATION_START_1 >= 143
+# define MSGPACK_PP_ITERATION_1 143
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 142 && MSGPACK_PP_ITERATION_START_1 >= 142
+# define MSGPACK_PP_ITERATION_1 142
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 141 && MSGPACK_PP_ITERATION_START_1 >= 141
+# define MSGPACK_PP_ITERATION_1 141
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 140 && MSGPACK_PP_ITERATION_START_1 >= 140
+# define MSGPACK_PP_ITERATION_1 140
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 139 && MSGPACK_PP_ITERATION_START_1 >= 139
+# define MSGPACK_PP_ITERATION_1 139
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 138 && MSGPACK_PP_ITERATION_START_1 >= 138
+# define MSGPACK_PP_ITERATION_1 138
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 137 && MSGPACK_PP_ITERATION_START_1 >= 137
+# define MSGPACK_PP_ITERATION_1 137
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 136 && MSGPACK_PP_ITERATION_START_1 >= 136
+# define MSGPACK_PP_ITERATION_1 136
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 135 && MSGPACK_PP_ITERATION_START_1 >= 135
+# define MSGPACK_PP_ITERATION_1 135
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 134 && MSGPACK_PP_ITERATION_START_1 >= 134
+# define MSGPACK_PP_ITERATION_1 134
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 133 && MSGPACK_PP_ITERATION_START_1 >= 133
+# define MSGPACK_PP_ITERATION_1 133
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 132 && MSGPACK_PP_ITERATION_START_1 >= 132
+# define MSGPACK_PP_ITERATION_1 132
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 131 && MSGPACK_PP_ITERATION_START_1 >= 131
+# define MSGPACK_PP_ITERATION_1 131
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 130 && MSGPACK_PP_ITERATION_START_1 >= 130
+# define MSGPACK_PP_ITERATION_1 130
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 129 && MSGPACK_PP_ITERATION_START_1 >= 129
+# define MSGPACK_PP_ITERATION_1 129
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 128 && MSGPACK_PP_ITERATION_START_1 >= 128
+# define MSGPACK_PP_ITERATION_1 128
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 127 && MSGPACK_PP_ITERATION_START_1 >= 127
+# define MSGPACK_PP_ITERATION_1 127
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 126 && MSGPACK_PP_ITERATION_START_1 >= 126
+# define MSGPACK_PP_ITERATION_1 126
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 125 && MSGPACK_PP_ITERATION_START_1 >= 125
+# define MSGPACK_PP_ITERATION_1 125
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 124 && MSGPACK_PP_ITERATION_START_1 >= 124
+# define MSGPACK_PP_ITERATION_1 124
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 123 && MSGPACK_PP_ITERATION_START_1 >= 123
+# define MSGPACK_PP_ITERATION_1 123
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 122 && MSGPACK_PP_ITERATION_START_1 >= 122
+# define MSGPACK_PP_ITERATION_1 122
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 121 && MSGPACK_PP_ITERATION_START_1 >= 121
+# define MSGPACK_PP_ITERATION_1 121
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 120 && MSGPACK_PP_ITERATION_START_1 >= 120
+# define MSGPACK_PP_ITERATION_1 120
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 119 && MSGPACK_PP_ITERATION_START_1 >= 119
+# define MSGPACK_PP_ITERATION_1 119
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 118 && MSGPACK_PP_ITERATION_START_1 >= 118
+# define MSGPACK_PP_ITERATION_1 118
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 117 && MSGPACK_PP_ITERATION_START_1 >= 117
+# define MSGPACK_PP_ITERATION_1 117
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 116 && MSGPACK_PP_ITERATION_START_1 >= 116
+# define MSGPACK_PP_ITERATION_1 116
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 115 && MSGPACK_PP_ITERATION_START_1 >= 115
+# define MSGPACK_PP_ITERATION_1 115
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 114 && MSGPACK_PP_ITERATION_START_1 >= 114
+# define MSGPACK_PP_ITERATION_1 114
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 113 && MSGPACK_PP_ITERATION_START_1 >= 113
+# define MSGPACK_PP_ITERATION_1 113
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 112 && MSGPACK_PP_ITERATION_START_1 >= 112
+# define MSGPACK_PP_ITERATION_1 112
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 111 && MSGPACK_PP_ITERATION_START_1 >= 111
+# define MSGPACK_PP_ITERATION_1 111
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 110 && MSGPACK_PP_ITERATION_START_1 >= 110
+# define MSGPACK_PP_ITERATION_1 110
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 109 && MSGPACK_PP_ITERATION_START_1 >= 109
+# define MSGPACK_PP_ITERATION_1 109
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 108 && MSGPACK_PP_ITERATION_START_1 >= 108
+# define MSGPACK_PP_ITERATION_1 108
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 107 && MSGPACK_PP_ITERATION_START_1 >= 107
+# define MSGPACK_PP_ITERATION_1 107
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 106 && MSGPACK_PP_ITERATION_START_1 >= 106
+# define MSGPACK_PP_ITERATION_1 106
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 105 && MSGPACK_PP_ITERATION_START_1 >= 105
+# define MSGPACK_PP_ITERATION_1 105
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 104 && MSGPACK_PP_ITERATION_START_1 >= 104
+# define MSGPACK_PP_ITERATION_1 104
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 103 && MSGPACK_PP_ITERATION_START_1 >= 103
+# define MSGPACK_PP_ITERATION_1 103
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 102 && MSGPACK_PP_ITERATION_START_1 >= 102
+# define MSGPACK_PP_ITERATION_1 102
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 101 && MSGPACK_PP_ITERATION_START_1 >= 101
+# define MSGPACK_PP_ITERATION_1 101
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 100 && MSGPACK_PP_ITERATION_START_1 >= 100
+# define MSGPACK_PP_ITERATION_1 100
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 99 && MSGPACK_PP_ITERATION_START_1 >= 99
+# define MSGPACK_PP_ITERATION_1 99
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 98 && MSGPACK_PP_ITERATION_START_1 >= 98
+# define MSGPACK_PP_ITERATION_1 98
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 97 && MSGPACK_PP_ITERATION_START_1 >= 97
+# define MSGPACK_PP_ITERATION_1 97
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 96 && MSGPACK_PP_ITERATION_START_1 >= 96
+# define MSGPACK_PP_ITERATION_1 96
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 95 && MSGPACK_PP_ITERATION_START_1 >= 95
+# define MSGPACK_PP_ITERATION_1 95
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 94 && MSGPACK_PP_ITERATION_START_1 >= 94
+# define MSGPACK_PP_ITERATION_1 94
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 93 && MSGPACK_PP_ITERATION_START_1 >= 93
+# define MSGPACK_PP_ITERATION_1 93
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 92 && MSGPACK_PP_ITERATION_START_1 >= 92
+# define MSGPACK_PP_ITERATION_1 92
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 91 && MSGPACK_PP_ITERATION_START_1 >= 91
+# define MSGPACK_PP_ITERATION_1 91
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 90 && MSGPACK_PP_ITERATION_START_1 >= 90
+# define MSGPACK_PP_ITERATION_1 90
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 89 && MSGPACK_PP_ITERATION_START_1 >= 89
+# define MSGPACK_PP_ITERATION_1 89
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 88 && MSGPACK_PP_ITERATION_START_1 >= 88
+# define MSGPACK_PP_ITERATION_1 88
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 87 && MSGPACK_PP_ITERATION_START_1 >= 87
+# define MSGPACK_PP_ITERATION_1 87
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 86 && MSGPACK_PP_ITERATION_START_1 >= 86
+# define MSGPACK_PP_ITERATION_1 86
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 85 && MSGPACK_PP_ITERATION_START_1 >= 85
+# define MSGPACK_PP_ITERATION_1 85
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 84 && MSGPACK_PP_ITERATION_START_1 >= 84
+# define MSGPACK_PP_ITERATION_1 84
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 83 && MSGPACK_PP_ITERATION_START_1 >= 83
+# define MSGPACK_PP_ITERATION_1 83
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 82 && MSGPACK_PP_ITERATION_START_1 >= 82
+# define MSGPACK_PP_ITERATION_1 82
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 81 && MSGPACK_PP_ITERATION_START_1 >= 81
+# define MSGPACK_PP_ITERATION_1 81
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 80 && MSGPACK_PP_ITERATION_START_1 >= 80
+# define MSGPACK_PP_ITERATION_1 80
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 79 && MSGPACK_PP_ITERATION_START_1 >= 79
+# define MSGPACK_PP_ITERATION_1 79
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 78 && MSGPACK_PP_ITERATION_START_1 >= 78
+# define MSGPACK_PP_ITERATION_1 78
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 77 && MSGPACK_PP_ITERATION_START_1 >= 77
+# define MSGPACK_PP_ITERATION_1 77
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 76 && MSGPACK_PP_ITERATION_START_1 >= 76
+# define MSGPACK_PP_ITERATION_1 76
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 75 && MSGPACK_PP_ITERATION_START_1 >= 75
+# define MSGPACK_PP_ITERATION_1 75
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 74 && MSGPACK_PP_ITERATION_START_1 >= 74
+# define MSGPACK_PP_ITERATION_1 74
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 73 && MSGPACK_PP_ITERATION_START_1 >= 73
+# define MSGPACK_PP_ITERATION_1 73
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 72 && MSGPACK_PP_ITERATION_START_1 >= 72
+# define MSGPACK_PP_ITERATION_1 72
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 71 && MSGPACK_PP_ITERATION_START_1 >= 71
+# define MSGPACK_PP_ITERATION_1 71
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 70 && MSGPACK_PP_ITERATION_START_1 >= 70
+# define MSGPACK_PP_ITERATION_1 70
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 69 && MSGPACK_PP_ITERATION_START_1 >= 69
+# define MSGPACK_PP_ITERATION_1 69
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 68 && MSGPACK_PP_ITERATION_START_1 >= 68
+# define MSGPACK_PP_ITERATION_1 68
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 67 && MSGPACK_PP_ITERATION_START_1 >= 67
+# define MSGPACK_PP_ITERATION_1 67
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 66 && MSGPACK_PP_ITERATION_START_1 >= 66
+# define MSGPACK_PP_ITERATION_1 66
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 65 && MSGPACK_PP_ITERATION_START_1 >= 65
+# define MSGPACK_PP_ITERATION_1 65
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 64 && MSGPACK_PP_ITERATION_START_1 >= 64
+# define MSGPACK_PP_ITERATION_1 64
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 63 && MSGPACK_PP_ITERATION_START_1 >= 63
+# define MSGPACK_PP_ITERATION_1 63
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 62 && MSGPACK_PP_ITERATION_START_1 >= 62
+# define MSGPACK_PP_ITERATION_1 62
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 61 && MSGPACK_PP_ITERATION_START_1 >= 61
+# define MSGPACK_PP_ITERATION_1 61
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 60 && MSGPACK_PP_ITERATION_START_1 >= 60
+# define MSGPACK_PP_ITERATION_1 60
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 59 && MSGPACK_PP_ITERATION_START_1 >= 59
+# define MSGPACK_PP_ITERATION_1 59
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 58 && MSGPACK_PP_ITERATION_START_1 >= 58
+# define MSGPACK_PP_ITERATION_1 58
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 57 && MSGPACK_PP_ITERATION_START_1 >= 57
+# define MSGPACK_PP_ITERATION_1 57
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 56 && MSGPACK_PP_ITERATION_START_1 >= 56
+# define MSGPACK_PP_ITERATION_1 56
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 55 && MSGPACK_PP_ITERATION_START_1 >= 55
+# define MSGPACK_PP_ITERATION_1 55
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 54 && MSGPACK_PP_ITERATION_START_1 >= 54
+# define MSGPACK_PP_ITERATION_1 54
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 53 && MSGPACK_PP_ITERATION_START_1 >= 53
+# define MSGPACK_PP_ITERATION_1 53
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 52 && MSGPACK_PP_ITERATION_START_1 >= 52
+# define MSGPACK_PP_ITERATION_1 52
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 51 && MSGPACK_PP_ITERATION_START_1 >= 51
+# define MSGPACK_PP_ITERATION_1 51
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 50 && MSGPACK_PP_ITERATION_START_1 >= 50
+# define MSGPACK_PP_ITERATION_1 50
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 49 && MSGPACK_PP_ITERATION_START_1 >= 49
+# define MSGPACK_PP_ITERATION_1 49
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 48 && MSGPACK_PP_ITERATION_START_1 >= 48
+# define MSGPACK_PP_ITERATION_1 48
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 47 && MSGPACK_PP_ITERATION_START_1 >= 47
+# define MSGPACK_PP_ITERATION_1 47
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 46 && MSGPACK_PP_ITERATION_START_1 >= 46
+# define MSGPACK_PP_ITERATION_1 46
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 45 && MSGPACK_PP_ITERATION_START_1 >= 45
+# define MSGPACK_PP_ITERATION_1 45
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 44 && MSGPACK_PP_ITERATION_START_1 >= 44
+# define MSGPACK_PP_ITERATION_1 44
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 43 && MSGPACK_PP_ITERATION_START_1 >= 43
+# define MSGPACK_PP_ITERATION_1 43
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 42 && MSGPACK_PP_ITERATION_START_1 >= 42
+# define MSGPACK_PP_ITERATION_1 42
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 41 && MSGPACK_PP_ITERATION_START_1 >= 41
+# define MSGPACK_PP_ITERATION_1 41
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 40 && MSGPACK_PP_ITERATION_START_1 >= 40
+# define MSGPACK_PP_ITERATION_1 40
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 39 && MSGPACK_PP_ITERATION_START_1 >= 39
+# define MSGPACK_PP_ITERATION_1 39
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 38 && MSGPACK_PP_ITERATION_START_1 >= 38
+# define MSGPACK_PP_ITERATION_1 38
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 37 && MSGPACK_PP_ITERATION_START_1 >= 37
+# define MSGPACK_PP_ITERATION_1 37
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 36 && MSGPACK_PP_ITERATION_START_1 >= 36
+# define MSGPACK_PP_ITERATION_1 36
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 35 && MSGPACK_PP_ITERATION_START_1 >= 35
+# define MSGPACK_PP_ITERATION_1 35
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 34 && MSGPACK_PP_ITERATION_START_1 >= 34
+# define MSGPACK_PP_ITERATION_1 34
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 33 && MSGPACK_PP_ITERATION_START_1 >= 33
+# define MSGPACK_PP_ITERATION_1 33
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 32 && MSGPACK_PP_ITERATION_START_1 >= 32
+# define MSGPACK_PP_ITERATION_1 32
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 31 && MSGPACK_PP_ITERATION_START_1 >= 31
+# define MSGPACK_PP_ITERATION_1 31
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 30 && MSGPACK_PP_ITERATION_START_1 >= 30
+# define MSGPACK_PP_ITERATION_1 30
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 29 && MSGPACK_PP_ITERATION_START_1 >= 29
+# define MSGPACK_PP_ITERATION_1 29
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 28 && MSGPACK_PP_ITERATION_START_1 >= 28
+# define MSGPACK_PP_ITERATION_1 28
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 27 && MSGPACK_PP_ITERATION_START_1 >= 27
+# define MSGPACK_PP_ITERATION_1 27
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 26 && MSGPACK_PP_ITERATION_START_1 >= 26
+# define MSGPACK_PP_ITERATION_1 26
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 25 && MSGPACK_PP_ITERATION_START_1 >= 25
+# define MSGPACK_PP_ITERATION_1 25
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 24 && MSGPACK_PP_ITERATION_START_1 >= 24
+# define MSGPACK_PP_ITERATION_1 24
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 23 && MSGPACK_PP_ITERATION_START_1 >= 23
+# define MSGPACK_PP_ITERATION_1 23
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 22 && MSGPACK_PP_ITERATION_START_1 >= 22
+# define MSGPACK_PP_ITERATION_1 22
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 21 && MSGPACK_PP_ITERATION_START_1 >= 21
+# define MSGPACK_PP_ITERATION_1 21
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 20 && MSGPACK_PP_ITERATION_START_1 >= 20
+# define MSGPACK_PP_ITERATION_1 20
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 19 && MSGPACK_PP_ITERATION_START_1 >= 19
+# define MSGPACK_PP_ITERATION_1 19
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 18 && MSGPACK_PP_ITERATION_START_1 >= 18
+# define MSGPACK_PP_ITERATION_1 18
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 17 && MSGPACK_PP_ITERATION_START_1 >= 17
+# define MSGPACK_PP_ITERATION_1 17
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 16 && MSGPACK_PP_ITERATION_START_1 >= 16
+# define MSGPACK_PP_ITERATION_1 16
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 15 && MSGPACK_PP_ITERATION_START_1 >= 15
+# define MSGPACK_PP_ITERATION_1 15
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 14 && MSGPACK_PP_ITERATION_START_1 >= 14
+# define MSGPACK_PP_ITERATION_1 14
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 13 && MSGPACK_PP_ITERATION_START_1 >= 13
+# define MSGPACK_PP_ITERATION_1 13
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 12 && MSGPACK_PP_ITERATION_START_1 >= 12
+# define MSGPACK_PP_ITERATION_1 12
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 11 && MSGPACK_PP_ITERATION_START_1 >= 11
+# define MSGPACK_PP_ITERATION_1 11
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 10 && MSGPACK_PP_ITERATION_START_1 >= 10
+# define MSGPACK_PP_ITERATION_1 10
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 9 && MSGPACK_PP_ITERATION_START_1 >= 9
+# define MSGPACK_PP_ITERATION_1 9
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 8 && MSGPACK_PP_ITERATION_START_1 >= 8
+# define MSGPACK_PP_ITERATION_1 8
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 7 && MSGPACK_PP_ITERATION_START_1 >= 7
+# define MSGPACK_PP_ITERATION_1 7
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 6 && MSGPACK_PP_ITERATION_START_1 >= 6
+# define MSGPACK_PP_ITERATION_1 6
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 5 && MSGPACK_PP_ITERATION_START_1 >= 5
+# define MSGPACK_PP_ITERATION_1 5
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 4 && MSGPACK_PP_ITERATION_START_1 >= 4
+# define MSGPACK_PP_ITERATION_1 4
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 3 && MSGPACK_PP_ITERATION_START_1 >= 3
+# define MSGPACK_PP_ITERATION_1 3
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 2 && MSGPACK_PP_ITERATION_START_1 >= 2
+# define MSGPACK_PP_ITERATION_1 2
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 1 && MSGPACK_PP_ITERATION_START_1 >= 1
+# define MSGPACK_PP_ITERATION_1 1
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_1 <= 0 && MSGPACK_PP_ITERATION_START_1 >= 0
+# define MSGPACK_PP_ITERATION_1 0
+# include MSGPACK_PP_FILENAME_1
+# undef MSGPACK_PP_ITERATION_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp
new file mode 100644
index 000000000..c5ad594b2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse2.hpp
@@ -0,0 +1,1296 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 256 && MSGPACK_PP_ITERATION_START_2 >= 256
+# define MSGPACK_PP_ITERATION_2 256
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 255 && MSGPACK_PP_ITERATION_START_2 >= 255
+# define MSGPACK_PP_ITERATION_2 255
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 254 && MSGPACK_PP_ITERATION_START_2 >= 254
+# define MSGPACK_PP_ITERATION_2 254
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 253 && MSGPACK_PP_ITERATION_START_2 >= 253
+# define MSGPACK_PP_ITERATION_2 253
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 252 && MSGPACK_PP_ITERATION_START_2 >= 252
+# define MSGPACK_PP_ITERATION_2 252
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 251 && MSGPACK_PP_ITERATION_START_2 >= 251
+# define MSGPACK_PP_ITERATION_2 251
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 250 && MSGPACK_PP_ITERATION_START_2 >= 250
+# define MSGPACK_PP_ITERATION_2 250
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 249 && MSGPACK_PP_ITERATION_START_2 >= 249
+# define MSGPACK_PP_ITERATION_2 249
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 248 && MSGPACK_PP_ITERATION_START_2 >= 248
+# define MSGPACK_PP_ITERATION_2 248
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 247 && MSGPACK_PP_ITERATION_START_2 >= 247
+# define MSGPACK_PP_ITERATION_2 247
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 246 && MSGPACK_PP_ITERATION_START_2 >= 246
+# define MSGPACK_PP_ITERATION_2 246
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 245 && MSGPACK_PP_ITERATION_START_2 >= 245
+# define MSGPACK_PP_ITERATION_2 245
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 244 && MSGPACK_PP_ITERATION_START_2 >= 244
+# define MSGPACK_PP_ITERATION_2 244
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 243 && MSGPACK_PP_ITERATION_START_2 >= 243
+# define MSGPACK_PP_ITERATION_2 243
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 242 && MSGPACK_PP_ITERATION_START_2 >= 242
+# define MSGPACK_PP_ITERATION_2 242
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 241 && MSGPACK_PP_ITERATION_START_2 >= 241
+# define MSGPACK_PP_ITERATION_2 241
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 240 && MSGPACK_PP_ITERATION_START_2 >= 240
+# define MSGPACK_PP_ITERATION_2 240
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 239 && MSGPACK_PP_ITERATION_START_2 >= 239
+# define MSGPACK_PP_ITERATION_2 239
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 238 && MSGPACK_PP_ITERATION_START_2 >= 238
+# define MSGPACK_PP_ITERATION_2 238
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 237 && MSGPACK_PP_ITERATION_START_2 >= 237
+# define MSGPACK_PP_ITERATION_2 237
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 236 && MSGPACK_PP_ITERATION_START_2 >= 236
+# define MSGPACK_PP_ITERATION_2 236
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 235 && MSGPACK_PP_ITERATION_START_2 >= 235
+# define MSGPACK_PP_ITERATION_2 235
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 234 && MSGPACK_PP_ITERATION_START_2 >= 234
+# define MSGPACK_PP_ITERATION_2 234
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 233 && MSGPACK_PP_ITERATION_START_2 >= 233
+# define MSGPACK_PP_ITERATION_2 233
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 232 && MSGPACK_PP_ITERATION_START_2 >= 232
+# define MSGPACK_PP_ITERATION_2 232
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 231 && MSGPACK_PP_ITERATION_START_2 >= 231
+# define MSGPACK_PP_ITERATION_2 231
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 230 && MSGPACK_PP_ITERATION_START_2 >= 230
+# define MSGPACK_PP_ITERATION_2 230
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 229 && MSGPACK_PP_ITERATION_START_2 >= 229
+# define MSGPACK_PP_ITERATION_2 229
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 228 && MSGPACK_PP_ITERATION_START_2 >= 228
+# define MSGPACK_PP_ITERATION_2 228
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 227 && MSGPACK_PP_ITERATION_START_2 >= 227
+# define MSGPACK_PP_ITERATION_2 227
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 226 && MSGPACK_PP_ITERATION_START_2 >= 226
+# define MSGPACK_PP_ITERATION_2 226
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 225 && MSGPACK_PP_ITERATION_START_2 >= 225
+# define MSGPACK_PP_ITERATION_2 225
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 224 && MSGPACK_PP_ITERATION_START_2 >= 224
+# define MSGPACK_PP_ITERATION_2 224
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 223 && MSGPACK_PP_ITERATION_START_2 >= 223
+# define MSGPACK_PP_ITERATION_2 223
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 222 && MSGPACK_PP_ITERATION_START_2 >= 222
+# define MSGPACK_PP_ITERATION_2 222
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 221 && MSGPACK_PP_ITERATION_START_2 >= 221
+# define MSGPACK_PP_ITERATION_2 221
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 220 && MSGPACK_PP_ITERATION_START_2 >= 220
+# define MSGPACK_PP_ITERATION_2 220
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 219 && MSGPACK_PP_ITERATION_START_2 >= 219
+# define MSGPACK_PP_ITERATION_2 219
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 218 && MSGPACK_PP_ITERATION_START_2 >= 218
+# define MSGPACK_PP_ITERATION_2 218
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 217 && MSGPACK_PP_ITERATION_START_2 >= 217
+# define MSGPACK_PP_ITERATION_2 217
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 216 && MSGPACK_PP_ITERATION_START_2 >= 216
+# define MSGPACK_PP_ITERATION_2 216
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 215 && MSGPACK_PP_ITERATION_START_2 >= 215
+# define MSGPACK_PP_ITERATION_2 215
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 214 && MSGPACK_PP_ITERATION_START_2 >= 214
+# define MSGPACK_PP_ITERATION_2 214
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 213 && MSGPACK_PP_ITERATION_START_2 >= 213
+# define MSGPACK_PP_ITERATION_2 213
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 212 && MSGPACK_PP_ITERATION_START_2 >= 212
+# define MSGPACK_PP_ITERATION_2 212
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 211 && MSGPACK_PP_ITERATION_START_2 >= 211
+# define MSGPACK_PP_ITERATION_2 211
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 210 && MSGPACK_PP_ITERATION_START_2 >= 210
+# define MSGPACK_PP_ITERATION_2 210
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 209 && MSGPACK_PP_ITERATION_START_2 >= 209
+# define MSGPACK_PP_ITERATION_2 209
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 208 && MSGPACK_PP_ITERATION_START_2 >= 208
+# define MSGPACK_PP_ITERATION_2 208
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 207 && MSGPACK_PP_ITERATION_START_2 >= 207
+# define MSGPACK_PP_ITERATION_2 207
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 206 && MSGPACK_PP_ITERATION_START_2 >= 206
+# define MSGPACK_PP_ITERATION_2 206
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 205 && MSGPACK_PP_ITERATION_START_2 >= 205
+# define MSGPACK_PP_ITERATION_2 205
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 204 && MSGPACK_PP_ITERATION_START_2 >= 204
+# define MSGPACK_PP_ITERATION_2 204
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 203 && MSGPACK_PP_ITERATION_START_2 >= 203
+# define MSGPACK_PP_ITERATION_2 203
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 202 && MSGPACK_PP_ITERATION_START_2 >= 202
+# define MSGPACK_PP_ITERATION_2 202
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 201 && MSGPACK_PP_ITERATION_START_2 >= 201
+# define MSGPACK_PP_ITERATION_2 201
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 200 && MSGPACK_PP_ITERATION_START_2 >= 200
+# define MSGPACK_PP_ITERATION_2 200
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 199 && MSGPACK_PP_ITERATION_START_2 >= 199
+# define MSGPACK_PP_ITERATION_2 199
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 198 && MSGPACK_PP_ITERATION_START_2 >= 198
+# define MSGPACK_PP_ITERATION_2 198
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 197 && MSGPACK_PP_ITERATION_START_2 >= 197
+# define MSGPACK_PP_ITERATION_2 197
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 196 && MSGPACK_PP_ITERATION_START_2 >= 196
+# define MSGPACK_PP_ITERATION_2 196
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 195 && MSGPACK_PP_ITERATION_START_2 >= 195
+# define MSGPACK_PP_ITERATION_2 195
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 194 && MSGPACK_PP_ITERATION_START_2 >= 194
+# define MSGPACK_PP_ITERATION_2 194
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 193 && MSGPACK_PP_ITERATION_START_2 >= 193
+# define MSGPACK_PP_ITERATION_2 193
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 192 && MSGPACK_PP_ITERATION_START_2 >= 192
+# define MSGPACK_PP_ITERATION_2 192
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 191 && MSGPACK_PP_ITERATION_START_2 >= 191
+# define MSGPACK_PP_ITERATION_2 191
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 190 && MSGPACK_PP_ITERATION_START_2 >= 190
+# define MSGPACK_PP_ITERATION_2 190
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 189 && MSGPACK_PP_ITERATION_START_2 >= 189
+# define MSGPACK_PP_ITERATION_2 189
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 188 && MSGPACK_PP_ITERATION_START_2 >= 188
+# define MSGPACK_PP_ITERATION_2 188
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 187 && MSGPACK_PP_ITERATION_START_2 >= 187
+# define MSGPACK_PP_ITERATION_2 187
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 186 && MSGPACK_PP_ITERATION_START_2 >= 186
+# define MSGPACK_PP_ITERATION_2 186
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 185 && MSGPACK_PP_ITERATION_START_2 >= 185
+# define MSGPACK_PP_ITERATION_2 185
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 184 && MSGPACK_PP_ITERATION_START_2 >= 184
+# define MSGPACK_PP_ITERATION_2 184
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 183 && MSGPACK_PP_ITERATION_START_2 >= 183
+# define MSGPACK_PP_ITERATION_2 183
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 182 && MSGPACK_PP_ITERATION_START_2 >= 182
+# define MSGPACK_PP_ITERATION_2 182
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 181 && MSGPACK_PP_ITERATION_START_2 >= 181
+# define MSGPACK_PP_ITERATION_2 181
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 180 && MSGPACK_PP_ITERATION_START_2 >= 180
+# define MSGPACK_PP_ITERATION_2 180
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 179 && MSGPACK_PP_ITERATION_START_2 >= 179
+# define MSGPACK_PP_ITERATION_2 179
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 178 && MSGPACK_PP_ITERATION_START_2 >= 178
+# define MSGPACK_PP_ITERATION_2 178
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 177 && MSGPACK_PP_ITERATION_START_2 >= 177
+# define MSGPACK_PP_ITERATION_2 177
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 176 && MSGPACK_PP_ITERATION_START_2 >= 176
+# define MSGPACK_PP_ITERATION_2 176
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 175 && MSGPACK_PP_ITERATION_START_2 >= 175
+# define MSGPACK_PP_ITERATION_2 175
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 174 && MSGPACK_PP_ITERATION_START_2 >= 174
+# define MSGPACK_PP_ITERATION_2 174
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 173 && MSGPACK_PP_ITERATION_START_2 >= 173
+# define MSGPACK_PP_ITERATION_2 173
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 172 && MSGPACK_PP_ITERATION_START_2 >= 172
+# define MSGPACK_PP_ITERATION_2 172
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 171 && MSGPACK_PP_ITERATION_START_2 >= 171
+# define MSGPACK_PP_ITERATION_2 171
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 170 && MSGPACK_PP_ITERATION_START_2 >= 170
+# define MSGPACK_PP_ITERATION_2 170
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 169 && MSGPACK_PP_ITERATION_START_2 >= 169
+# define MSGPACK_PP_ITERATION_2 169
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 168 && MSGPACK_PP_ITERATION_START_2 >= 168
+# define MSGPACK_PP_ITERATION_2 168
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 167 && MSGPACK_PP_ITERATION_START_2 >= 167
+# define MSGPACK_PP_ITERATION_2 167
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 166 && MSGPACK_PP_ITERATION_START_2 >= 166
+# define MSGPACK_PP_ITERATION_2 166
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 165 && MSGPACK_PP_ITERATION_START_2 >= 165
+# define MSGPACK_PP_ITERATION_2 165
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 164 && MSGPACK_PP_ITERATION_START_2 >= 164
+# define MSGPACK_PP_ITERATION_2 164
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 163 && MSGPACK_PP_ITERATION_START_2 >= 163
+# define MSGPACK_PP_ITERATION_2 163
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 162 && MSGPACK_PP_ITERATION_START_2 >= 162
+# define MSGPACK_PP_ITERATION_2 162
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 161 && MSGPACK_PP_ITERATION_START_2 >= 161
+# define MSGPACK_PP_ITERATION_2 161
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 160 && MSGPACK_PP_ITERATION_START_2 >= 160
+# define MSGPACK_PP_ITERATION_2 160
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 159 && MSGPACK_PP_ITERATION_START_2 >= 159
+# define MSGPACK_PP_ITERATION_2 159
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 158 && MSGPACK_PP_ITERATION_START_2 >= 158
+# define MSGPACK_PP_ITERATION_2 158
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 157 && MSGPACK_PP_ITERATION_START_2 >= 157
+# define MSGPACK_PP_ITERATION_2 157
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 156 && MSGPACK_PP_ITERATION_START_2 >= 156
+# define MSGPACK_PP_ITERATION_2 156
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 155 && MSGPACK_PP_ITERATION_START_2 >= 155
+# define MSGPACK_PP_ITERATION_2 155
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 154 && MSGPACK_PP_ITERATION_START_2 >= 154
+# define MSGPACK_PP_ITERATION_2 154
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 153 && MSGPACK_PP_ITERATION_START_2 >= 153
+# define MSGPACK_PP_ITERATION_2 153
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 152 && MSGPACK_PP_ITERATION_START_2 >= 152
+# define MSGPACK_PP_ITERATION_2 152
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 151 && MSGPACK_PP_ITERATION_START_2 >= 151
+# define MSGPACK_PP_ITERATION_2 151
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 150 && MSGPACK_PP_ITERATION_START_2 >= 150
+# define MSGPACK_PP_ITERATION_2 150
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 149 && MSGPACK_PP_ITERATION_START_2 >= 149
+# define MSGPACK_PP_ITERATION_2 149
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 148 && MSGPACK_PP_ITERATION_START_2 >= 148
+# define MSGPACK_PP_ITERATION_2 148
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 147 && MSGPACK_PP_ITERATION_START_2 >= 147
+# define MSGPACK_PP_ITERATION_2 147
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 146 && MSGPACK_PP_ITERATION_START_2 >= 146
+# define MSGPACK_PP_ITERATION_2 146
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 145 && MSGPACK_PP_ITERATION_START_2 >= 145
+# define MSGPACK_PP_ITERATION_2 145
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 144 && MSGPACK_PP_ITERATION_START_2 >= 144
+# define MSGPACK_PP_ITERATION_2 144
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 143 && MSGPACK_PP_ITERATION_START_2 >= 143
+# define MSGPACK_PP_ITERATION_2 143
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 142 && MSGPACK_PP_ITERATION_START_2 >= 142
+# define MSGPACK_PP_ITERATION_2 142
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 141 && MSGPACK_PP_ITERATION_START_2 >= 141
+# define MSGPACK_PP_ITERATION_2 141
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 140 && MSGPACK_PP_ITERATION_START_2 >= 140
+# define MSGPACK_PP_ITERATION_2 140
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 139 && MSGPACK_PP_ITERATION_START_2 >= 139
+# define MSGPACK_PP_ITERATION_2 139
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 138 && MSGPACK_PP_ITERATION_START_2 >= 138
+# define MSGPACK_PP_ITERATION_2 138
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 137 && MSGPACK_PP_ITERATION_START_2 >= 137
+# define MSGPACK_PP_ITERATION_2 137
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 136 && MSGPACK_PP_ITERATION_START_2 >= 136
+# define MSGPACK_PP_ITERATION_2 136
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 135 && MSGPACK_PP_ITERATION_START_2 >= 135
+# define MSGPACK_PP_ITERATION_2 135
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 134 && MSGPACK_PP_ITERATION_START_2 >= 134
+# define MSGPACK_PP_ITERATION_2 134
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 133 && MSGPACK_PP_ITERATION_START_2 >= 133
+# define MSGPACK_PP_ITERATION_2 133
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 132 && MSGPACK_PP_ITERATION_START_2 >= 132
+# define MSGPACK_PP_ITERATION_2 132
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 131 && MSGPACK_PP_ITERATION_START_2 >= 131
+# define MSGPACK_PP_ITERATION_2 131
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 130 && MSGPACK_PP_ITERATION_START_2 >= 130
+# define MSGPACK_PP_ITERATION_2 130
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 129 && MSGPACK_PP_ITERATION_START_2 >= 129
+# define MSGPACK_PP_ITERATION_2 129
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 128 && MSGPACK_PP_ITERATION_START_2 >= 128
+# define MSGPACK_PP_ITERATION_2 128
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 127 && MSGPACK_PP_ITERATION_START_2 >= 127
+# define MSGPACK_PP_ITERATION_2 127
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 126 && MSGPACK_PP_ITERATION_START_2 >= 126
+# define MSGPACK_PP_ITERATION_2 126
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 125 && MSGPACK_PP_ITERATION_START_2 >= 125
+# define MSGPACK_PP_ITERATION_2 125
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 124 && MSGPACK_PP_ITERATION_START_2 >= 124
+# define MSGPACK_PP_ITERATION_2 124
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 123 && MSGPACK_PP_ITERATION_START_2 >= 123
+# define MSGPACK_PP_ITERATION_2 123
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 122 && MSGPACK_PP_ITERATION_START_2 >= 122
+# define MSGPACK_PP_ITERATION_2 122
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 121 && MSGPACK_PP_ITERATION_START_2 >= 121
+# define MSGPACK_PP_ITERATION_2 121
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 120 && MSGPACK_PP_ITERATION_START_2 >= 120
+# define MSGPACK_PP_ITERATION_2 120
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 119 && MSGPACK_PP_ITERATION_START_2 >= 119
+# define MSGPACK_PP_ITERATION_2 119
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 118 && MSGPACK_PP_ITERATION_START_2 >= 118
+# define MSGPACK_PP_ITERATION_2 118
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 117 && MSGPACK_PP_ITERATION_START_2 >= 117
+# define MSGPACK_PP_ITERATION_2 117
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 116 && MSGPACK_PP_ITERATION_START_2 >= 116
+# define MSGPACK_PP_ITERATION_2 116
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 115 && MSGPACK_PP_ITERATION_START_2 >= 115
+# define MSGPACK_PP_ITERATION_2 115
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 114 && MSGPACK_PP_ITERATION_START_2 >= 114
+# define MSGPACK_PP_ITERATION_2 114
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 113 && MSGPACK_PP_ITERATION_START_2 >= 113
+# define MSGPACK_PP_ITERATION_2 113
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 112 && MSGPACK_PP_ITERATION_START_2 >= 112
+# define MSGPACK_PP_ITERATION_2 112
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 111 && MSGPACK_PP_ITERATION_START_2 >= 111
+# define MSGPACK_PP_ITERATION_2 111
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 110 && MSGPACK_PP_ITERATION_START_2 >= 110
+# define MSGPACK_PP_ITERATION_2 110
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 109 && MSGPACK_PP_ITERATION_START_2 >= 109
+# define MSGPACK_PP_ITERATION_2 109
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 108 && MSGPACK_PP_ITERATION_START_2 >= 108
+# define MSGPACK_PP_ITERATION_2 108
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 107 && MSGPACK_PP_ITERATION_START_2 >= 107
+# define MSGPACK_PP_ITERATION_2 107
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 106 && MSGPACK_PP_ITERATION_START_2 >= 106
+# define MSGPACK_PP_ITERATION_2 106
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 105 && MSGPACK_PP_ITERATION_START_2 >= 105
+# define MSGPACK_PP_ITERATION_2 105
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 104 && MSGPACK_PP_ITERATION_START_2 >= 104
+# define MSGPACK_PP_ITERATION_2 104
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 103 && MSGPACK_PP_ITERATION_START_2 >= 103
+# define MSGPACK_PP_ITERATION_2 103
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 102 && MSGPACK_PP_ITERATION_START_2 >= 102
+# define MSGPACK_PP_ITERATION_2 102
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 101 && MSGPACK_PP_ITERATION_START_2 >= 101
+# define MSGPACK_PP_ITERATION_2 101
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 100 && MSGPACK_PP_ITERATION_START_2 >= 100
+# define MSGPACK_PP_ITERATION_2 100
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 99 && MSGPACK_PP_ITERATION_START_2 >= 99
+# define MSGPACK_PP_ITERATION_2 99
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 98 && MSGPACK_PP_ITERATION_START_2 >= 98
+# define MSGPACK_PP_ITERATION_2 98
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 97 && MSGPACK_PP_ITERATION_START_2 >= 97
+# define MSGPACK_PP_ITERATION_2 97
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 96 && MSGPACK_PP_ITERATION_START_2 >= 96
+# define MSGPACK_PP_ITERATION_2 96
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 95 && MSGPACK_PP_ITERATION_START_2 >= 95
+# define MSGPACK_PP_ITERATION_2 95
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 94 && MSGPACK_PP_ITERATION_START_2 >= 94
+# define MSGPACK_PP_ITERATION_2 94
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 93 && MSGPACK_PP_ITERATION_START_2 >= 93
+# define MSGPACK_PP_ITERATION_2 93
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 92 && MSGPACK_PP_ITERATION_START_2 >= 92
+# define MSGPACK_PP_ITERATION_2 92
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 91 && MSGPACK_PP_ITERATION_START_2 >= 91
+# define MSGPACK_PP_ITERATION_2 91
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 90 && MSGPACK_PP_ITERATION_START_2 >= 90
+# define MSGPACK_PP_ITERATION_2 90
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 89 && MSGPACK_PP_ITERATION_START_2 >= 89
+# define MSGPACK_PP_ITERATION_2 89
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 88 && MSGPACK_PP_ITERATION_START_2 >= 88
+# define MSGPACK_PP_ITERATION_2 88
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 87 && MSGPACK_PP_ITERATION_START_2 >= 87
+# define MSGPACK_PP_ITERATION_2 87
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 86 && MSGPACK_PP_ITERATION_START_2 >= 86
+# define MSGPACK_PP_ITERATION_2 86
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 85 && MSGPACK_PP_ITERATION_START_2 >= 85
+# define MSGPACK_PP_ITERATION_2 85
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 84 && MSGPACK_PP_ITERATION_START_2 >= 84
+# define MSGPACK_PP_ITERATION_2 84
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 83 && MSGPACK_PP_ITERATION_START_2 >= 83
+# define MSGPACK_PP_ITERATION_2 83
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 82 && MSGPACK_PP_ITERATION_START_2 >= 82
+# define MSGPACK_PP_ITERATION_2 82
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 81 && MSGPACK_PP_ITERATION_START_2 >= 81
+# define MSGPACK_PP_ITERATION_2 81
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 80 && MSGPACK_PP_ITERATION_START_2 >= 80
+# define MSGPACK_PP_ITERATION_2 80
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 79 && MSGPACK_PP_ITERATION_START_2 >= 79
+# define MSGPACK_PP_ITERATION_2 79
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 78 && MSGPACK_PP_ITERATION_START_2 >= 78
+# define MSGPACK_PP_ITERATION_2 78
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 77 && MSGPACK_PP_ITERATION_START_2 >= 77
+# define MSGPACK_PP_ITERATION_2 77
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 76 && MSGPACK_PP_ITERATION_START_2 >= 76
+# define MSGPACK_PP_ITERATION_2 76
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 75 && MSGPACK_PP_ITERATION_START_2 >= 75
+# define MSGPACK_PP_ITERATION_2 75
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 74 && MSGPACK_PP_ITERATION_START_2 >= 74
+# define MSGPACK_PP_ITERATION_2 74
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 73 && MSGPACK_PP_ITERATION_START_2 >= 73
+# define MSGPACK_PP_ITERATION_2 73
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 72 && MSGPACK_PP_ITERATION_START_2 >= 72
+# define MSGPACK_PP_ITERATION_2 72
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 71 && MSGPACK_PP_ITERATION_START_2 >= 71
+# define MSGPACK_PP_ITERATION_2 71
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 70 && MSGPACK_PP_ITERATION_START_2 >= 70
+# define MSGPACK_PP_ITERATION_2 70
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 69 && MSGPACK_PP_ITERATION_START_2 >= 69
+# define MSGPACK_PP_ITERATION_2 69
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 68 && MSGPACK_PP_ITERATION_START_2 >= 68
+# define MSGPACK_PP_ITERATION_2 68
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 67 && MSGPACK_PP_ITERATION_START_2 >= 67
+# define MSGPACK_PP_ITERATION_2 67
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 66 && MSGPACK_PP_ITERATION_START_2 >= 66
+# define MSGPACK_PP_ITERATION_2 66
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 65 && MSGPACK_PP_ITERATION_START_2 >= 65
+# define MSGPACK_PP_ITERATION_2 65
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 64 && MSGPACK_PP_ITERATION_START_2 >= 64
+# define MSGPACK_PP_ITERATION_2 64
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 63 && MSGPACK_PP_ITERATION_START_2 >= 63
+# define MSGPACK_PP_ITERATION_2 63
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 62 && MSGPACK_PP_ITERATION_START_2 >= 62
+# define MSGPACK_PP_ITERATION_2 62
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 61 && MSGPACK_PP_ITERATION_START_2 >= 61
+# define MSGPACK_PP_ITERATION_2 61
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 60 && MSGPACK_PP_ITERATION_START_2 >= 60
+# define MSGPACK_PP_ITERATION_2 60
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 59 && MSGPACK_PP_ITERATION_START_2 >= 59
+# define MSGPACK_PP_ITERATION_2 59
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 58 && MSGPACK_PP_ITERATION_START_2 >= 58
+# define MSGPACK_PP_ITERATION_2 58
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 57 && MSGPACK_PP_ITERATION_START_2 >= 57
+# define MSGPACK_PP_ITERATION_2 57
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 56 && MSGPACK_PP_ITERATION_START_2 >= 56
+# define MSGPACK_PP_ITERATION_2 56
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 55 && MSGPACK_PP_ITERATION_START_2 >= 55
+# define MSGPACK_PP_ITERATION_2 55
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 54 && MSGPACK_PP_ITERATION_START_2 >= 54
+# define MSGPACK_PP_ITERATION_2 54
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 53 && MSGPACK_PP_ITERATION_START_2 >= 53
+# define MSGPACK_PP_ITERATION_2 53
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 52 && MSGPACK_PP_ITERATION_START_2 >= 52
+# define MSGPACK_PP_ITERATION_2 52
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 51 && MSGPACK_PP_ITERATION_START_2 >= 51
+# define MSGPACK_PP_ITERATION_2 51
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 50 && MSGPACK_PP_ITERATION_START_2 >= 50
+# define MSGPACK_PP_ITERATION_2 50
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 49 && MSGPACK_PP_ITERATION_START_2 >= 49
+# define MSGPACK_PP_ITERATION_2 49
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 48 && MSGPACK_PP_ITERATION_START_2 >= 48
+# define MSGPACK_PP_ITERATION_2 48
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 47 && MSGPACK_PP_ITERATION_START_2 >= 47
+# define MSGPACK_PP_ITERATION_2 47
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 46 && MSGPACK_PP_ITERATION_START_2 >= 46
+# define MSGPACK_PP_ITERATION_2 46
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 45 && MSGPACK_PP_ITERATION_START_2 >= 45
+# define MSGPACK_PP_ITERATION_2 45
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 44 && MSGPACK_PP_ITERATION_START_2 >= 44
+# define MSGPACK_PP_ITERATION_2 44
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 43 && MSGPACK_PP_ITERATION_START_2 >= 43
+# define MSGPACK_PP_ITERATION_2 43
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 42 && MSGPACK_PP_ITERATION_START_2 >= 42
+# define MSGPACK_PP_ITERATION_2 42
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 41 && MSGPACK_PP_ITERATION_START_2 >= 41
+# define MSGPACK_PP_ITERATION_2 41
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 40 && MSGPACK_PP_ITERATION_START_2 >= 40
+# define MSGPACK_PP_ITERATION_2 40
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 39 && MSGPACK_PP_ITERATION_START_2 >= 39
+# define MSGPACK_PP_ITERATION_2 39
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 38 && MSGPACK_PP_ITERATION_START_2 >= 38
+# define MSGPACK_PP_ITERATION_2 38
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 37 && MSGPACK_PP_ITERATION_START_2 >= 37
+# define MSGPACK_PP_ITERATION_2 37
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 36 && MSGPACK_PP_ITERATION_START_2 >= 36
+# define MSGPACK_PP_ITERATION_2 36
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 35 && MSGPACK_PP_ITERATION_START_2 >= 35
+# define MSGPACK_PP_ITERATION_2 35
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 34 && MSGPACK_PP_ITERATION_START_2 >= 34
+# define MSGPACK_PP_ITERATION_2 34
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 33 && MSGPACK_PP_ITERATION_START_2 >= 33
+# define MSGPACK_PP_ITERATION_2 33
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 32 && MSGPACK_PP_ITERATION_START_2 >= 32
+# define MSGPACK_PP_ITERATION_2 32
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 31 && MSGPACK_PP_ITERATION_START_2 >= 31
+# define MSGPACK_PP_ITERATION_2 31
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 30 && MSGPACK_PP_ITERATION_START_2 >= 30
+# define MSGPACK_PP_ITERATION_2 30
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 29 && MSGPACK_PP_ITERATION_START_2 >= 29
+# define MSGPACK_PP_ITERATION_2 29
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 28 && MSGPACK_PP_ITERATION_START_2 >= 28
+# define MSGPACK_PP_ITERATION_2 28
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 27 && MSGPACK_PP_ITERATION_START_2 >= 27
+# define MSGPACK_PP_ITERATION_2 27
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 26 && MSGPACK_PP_ITERATION_START_2 >= 26
+# define MSGPACK_PP_ITERATION_2 26
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 25 && MSGPACK_PP_ITERATION_START_2 >= 25
+# define MSGPACK_PP_ITERATION_2 25
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 24 && MSGPACK_PP_ITERATION_START_2 >= 24
+# define MSGPACK_PP_ITERATION_2 24
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 23 && MSGPACK_PP_ITERATION_START_2 >= 23
+# define MSGPACK_PP_ITERATION_2 23
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 22 && MSGPACK_PP_ITERATION_START_2 >= 22
+# define MSGPACK_PP_ITERATION_2 22
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 21 && MSGPACK_PP_ITERATION_START_2 >= 21
+# define MSGPACK_PP_ITERATION_2 21
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 20 && MSGPACK_PP_ITERATION_START_2 >= 20
+# define MSGPACK_PP_ITERATION_2 20
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 19 && MSGPACK_PP_ITERATION_START_2 >= 19
+# define MSGPACK_PP_ITERATION_2 19
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 18 && MSGPACK_PP_ITERATION_START_2 >= 18
+# define MSGPACK_PP_ITERATION_2 18
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 17 && MSGPACK_PP_ITERATION_START_2 >= 17
+# define MSGPACK_PP_ITERATION_2 17
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 16 && MSGPACK_PP_ITERATION_START_2 >= 16
+# define MSGPACK_PP_ITERATION_2 16
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 15 && MSGPACK_PP_ITERATION_START_2 >= 15
+# define MSGPACK_PP_ITERATION_2 15
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 14 && MSGPACK_PP_ITERATION_START_2 >= 14
+# define MSGPACK_PP_ITERATION_2 14
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 13 && MSGPACK_PP_ITERATION_START_2 >= 13
+# define MSGPACK_PP_ITERATION_2 13
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 12 && MSGPACK_PP_ITERATION_START_2 >= 12
+# define MSGPACK_PP_ITERATION_2 12
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 11 && MSGPACK_PP_ITERATION_START_2 >= 11
+# define MSGPACK_PP_ITERATION_2 11
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 10 && MSGPACK_PP_ITERATION_START_2 >= 10
+# define MSGPACK_PP_ITERATION_2 10
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 9 && MSGPACK_PP_ITERATION_START_2 >= 9
+# define MSGPACK_PP_ITERATION_2 9
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 8 && MSGPACK_PP_ITERATION_START_2 >= 8
+# define MSGPACK_PP_ITERATION_2 8
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 7 && MSGPACK_PP_ITERATION_START_2 >= 7
+# define MSGPACK_PP_ITERATION_2 7
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 6 && MSGPACK_PP_ITERATION_START_2 >= 6
+# define MSGPACK_PP_ITERATION_2 6
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 5 && MSGPACK_PP_ITERATION_START_2 >= 5
+# define MSGPACK_PP_ITERATION_2 5
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 4 && MSGPACK_PP_ITERATION_START_2 >= 4
+# define MSGPACK_PP_ITERATION_2 4
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 3 && MSGPACK_PP_ITERATION_START_2 >= 3
+# define MSGPACK_PP_ITERATION_2 3
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 2 && MSGPACK_PP_ITERATION_START_2 >= 2
+# define MSGPACK_PP_ITERATION_2 2
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 1 && MSGPACK_PP_ITERATION_START_2 >= 1
+# define MSGPACK_PP_ITERATION_2 1
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_2 <= 0 && MSGPACK_PP_ITERATION_START_2 >= 0
+# define MSGPACK_PP_ITERATION_2 0
+# include MSGPACK_PP_FILENAME_2
+# undef MSGPACK_PP_ITERATION_2
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp
new file mode 100644
index 000000000..3b003742d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse3.hpp
@@ -0,0 +1,1296 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 256 && MSGPACK_PP_ITERATION_START_3 >= 256
+# define MSGPACK_PP_ITERATION_3 256
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 255 && MSGPACK_PP_ITERATION_START_3 >= 255
+# define MSGPACK_PP_ITERATION_3 255
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 254 && MSGPACK_PP_ITERATION_START_3 >= 254
+# define MSGPACK_PP_ITERATION_3 254
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 253 && MSGPACK_PP_ITERATION_START_3 >= 253
+# define MSGPACK_PP_ITERATION_3 253
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 252 && MSGPACK_PP_ITERATION_START_3 >= 252
+# define MSGPACK_PP_ITERATION_3 252
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 251 && MSGPACK_PP_ITERATION_START_3 >= 251
+# define MSGPACK_PP_ITERATION_3 251
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 250 && MSGPACK_PP_ITERATION_START_3 >= 250
+# define MSGPACK_PP_ITERATION_3 250
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 249 && MSGPACK_PP_ITERATION_START_3 >= 249
+# define MSGPACK_PP_ITERATION_3 249
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 248 && MSGPACK_PP_ITERATION_START_3 >= 248
+# define MSGPACK_PP_ITERATION_3 248
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 247 && MSGPACK_PP_ITERATION_START_3 >= 247
+# define MSGPACK_PP_ITERATION_3 247
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 246 && MSGPACK_PP_ITERATION_START_3 >= 246
+# define MSGPACK_PP_ITERATION_3 246
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 245 && MSGPACK_PP_ITERATION_START_3 >= 245
+# define MSGPACK_PP_ITERATION_3 245
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 244 && MSGPACK_PP_ITERATION_START_3 >= 244
+# define MSGPACK_PP_ITERATION_3 244
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 243 && MSGPACK_PP_ITERATION_START_3 >= 243
+# define MSGPACK_PP_ITERATION_3 243
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 242 && MSGPACK_PP_ITERATION_START_3 >= 242
+# define MSGPACK_PP_ITERATION_3 242
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 241 && MSGPACK_PP_ITERATION_START_3 >= 241
+# define MSGPACK_PP_ITERATION_3 241
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 240 && MSGPACK_PP_ITERATION_START_3 >= 240
+# define MSGPACK_PP_ITERATION_3 240
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 239 && MSGPACK_PP_ITERATION_START_3 >= 239
+# define MSGPACK_PP_ITERATION_3 239
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 238 && MSGPACK_PP_ITERATION_START_3 >= 238
+# define MSGPACK_PP_ITERATION_3 238
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 237 && MSGPACK_PP_ITERATION_START_3 >= 237
+# define MSGPACK_PP_ITERATION_3 237
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 236 && MSGPACK_PP_ITERATION_START_3 >= 236
+# define MSGPACK_PP_ITERATION_3 236
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 235 && MSGPACK_PP_ITERATION_START_3 >= 235
+# define MSGPACK_PP_ITERATION_3 235
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 234 && MSGPACK_PP_ITERATION_START_3 >= 234
+# define MSGPACK_PP_ITERATION_3 234
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 233 && MSGPACK_PP_ITERATION_START_3 >= 233
+# define MSGPACK_PP_ITERATION_3 233
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 232 && MSGPACK_PP_ITERATION_START_3 >= 232
+# define MSGPACK_PP_ITERATION_3 232
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 231 && MSGPACK_PP_ITERATION_START_3 >= 231
+# define MSGPACK_PP_ITERATION_3 231
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 230 && MSGPACK_PP_ITERATION_START_3 >= 230
+# define MSGPACK_PP_ITERATION_3 230
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 229 && MSGPACK_PP_ITERATION_START_3 >= 229
+# define MSGPACK_PP_ITERATION_3 229
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 228 && MSGPACK_PP_ITERATION_START_3 >= 228
+# define MSGPACK_PP_ITERATION_3 228
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 227 && MSGPACK_PP_ITERATION_START_3 >= 227
+# define MSGPACK_PP_ITERATION_3 227
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 226 && MSGPACK_PP_ITERATION_START_3 >= 226
+# define MSGPACK_PP_ITERATION_3 226
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 225 && MSGPACK_PP_ITERATION_START_3 >= 225
+# define MSGPACK_PP_ITERATION_3 225
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 224 && MSGPACK_PP_ITERATION_START_3 >= 224
+# define MSGPACK_PP_ITERATION_3 224
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 223 && MSGPACK_PP_ITERATION_START_3 >= 223
+# define MSGPACK_PP_ITERATION_3 223
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 222 && MSGPACK_PP_ITERATION_START_3 >= 222
+# define MSGPACK_PP_ITERATION_3 222
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 221 && MSGPACK_PP_ITERATION_START_3 >= 221
+# define MSGPACK_PP_ITERATION_3 221
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 220 && MSGPACK_PP_ITERATION_START_3 >= 220
+# define MSGPACK_PP_ITERATION_3 220
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 219 && MSGPACK_PP_ITERATION_START_3 >= 219
+# define MSGPACK_PP_ITERATION_3 219
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 218 && MSGPACK_PP_ITERATION_START_3 >= 218
+# define MSGPACK_PP_ITERATION_3 218
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 217 && MSGPACK_PP_ITERATION_START_3 >= 217
+# define MSGPACK_PP_ITERATION_3 217
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 216 && MSGPACK_PP_ITERATION_START_3 >= 216
+# define MSGPACK_PP_ITERATION_3 216
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 215 && MSGPACK_PP_ITERATION_START_3 >= 215
+# define MSGPACK_PP_ITERATION_3 215
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 214 && MSGPACK_PP_ITERATION_START_3 >= 214
+# define MSGPACK_PP_ITERATION_3 214
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 213 && MSGPACK_PP_ITERATION_START_3 >= 213
+# define MSGPACK_PP_ITERATION_3 213
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 212 && MSGPACK_PP_ITERATION_START_3 >= 212
+# define MSGPACK_PP_ITERATION_3 212
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 211 && MSGPACK_PP_ITERATION_START_3 >= 211
+# define MSGPACK_PP_ITERATION_3 211
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 210 && MSGPACK_PP_ITERATION_START_3 >= 210
+# define MSGPACK_PP_ITERATION_3 210
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 209 && MSGPACK_PP_ITERATION_START_3 >= 209
+# define MSGPACK_PP_ITERATION_3 209
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 208 && MSGPACK_PP_ITERATION_START_3 >= 208
+# define MSGPACK_PP_ITERATION_3 208
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 207 && MSGPACK_PP_ITERATION_START_3 >= 207
+# define MSGPACK_PP_ITERATION_3 207
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 206 && MSGPACK_PP_ITERATION_START_3 >= 206
+# define MSGPACK_PP_ITERATION_3 206
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 205 && MSGPACK_PP_ITERATION_START_3 >= 205
+# define MSGPACK_PP_ITERATION_3 205
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 204 && MSGPACK_PP_ITERATION_START_3 >= 204
+# define MSGPACK_PP_ITERATION_3 204
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 203 && MSGPACK_PP_ITERATION_START_3 >= 203
+# define MSGPACK_PP_ITERATION_3 203
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 202 && MSGPACK_PP_ITERATION_START_3 >= 202
+# define MSGPACK_PP_ITERATION_3 202
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 201 && MSGPACK_PP_ITERATION_START_3 >= 201
+# define MSGPACK_PP_ITERATION_3 201
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 200 && MSGPACK_PP_ITERATION_START_3 >= 200
+# define MSGPACK_PP_ITERATION_3 200
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 199 && MSGPACK_PP_ITERATION_START_3 >= 199
+# define MSGPACK_PP_ITERATION_3 199
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 198 && MSGPACK_PP_ITERATION_START_3 >= 198
+# define MSGPACK_PP_ITERATION_3 198
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 197 && MSGPACK_PP_ITERATION_START_3 >= 197
+# define MSGPACK_PP_ITERATION_3 197
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 196 && MSGPACK_PP_ITERATION_START_3 >= 196
+# define MSGPACK_PP_ITERATION_3 196
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 195 && MSGPACK_PP_ITERATION_START_3 >= 195
+# define MSGPACK_PP_ITERATION_3 195
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 194 && MSGPACK_PP_ITERATION_START_3 >= 194
+# define MSGPACK_PP_ITERATION_3 194
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 193 && MSGPACK_PP_ITERATION_START_3 >= 193
+# define MSGPACK_PP_ITERATION_3 193
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 192 && MSGPACK_PP_ITERATION_START_3 >= 192
+# define MSGPACK_PP_ITERATION_3 192
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 191 && MSGPACK_PP_ITERATION_START_3 >= 191
+# define MSGPACK_PP_ITERATION_3 191
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 190 && MSGPACK_PP_ITERATION_START_3 >= 190
+# define MSGPACK_PP_ITERATION_3 190
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 189 && MSGPACK_PP_ITERATION_START_3 >= 189
+# define MSGPACK_PP_ITERATION_3 189
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 188 && MSGPACK_PP_ITERATION_START_3 >= 188
+# define MSGPACK_PP_ITERATION_3 188
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 187 && MSGPACK_PP_ITERATION_START_3 >= 187
+# define MSGPACK_PP_ITERATION_3 187
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 186 && MSGPACK_PP_ITERATION_START_3 >= 186
+# define MSGPACK_PP_ITERATION_3 186
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 185 && MSGPACK_PP_ITERATION_START_3 >= 185
+# define MSGPACK_PP_ITERATION_3 185
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 184 && MSGPACK_PP_ITERATION_START_3 >= 184
+# define MSGPACK_PP_ITERATION_3 184
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 183 && MSGPACK_PP_ITERATION_START_3 >= 183
+# define MSGPACK_PP_ITERATION_3 183
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 182 && MSGPACK_PP_ITERATION_START_3 >= 182
+# define MSGPACK_PP_ITERATION_3 182
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 181 && MSGPACK_PP_ITERATION_START_3 >= 181
+# define MSGPACK_PP_ITERATION_3 181
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 180 && MSGPACK_PP_ITERATION_START_3 >= 180
+# define MSGPACK_PP_ITERATION_3 180
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 179 && MSGPACK_PP_ITERATION_START_3 >= 179
+# define MSGPACK_PP_ITERATION_3 179
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 178 && MSGPACK_PP_ITERATION_START_3 >= 178
+# define MSGPACK_PP_ITERATION_3 178
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 177 && MSGPACK_PP_ITERATION_START_3 >= 177
+# define MSGPACK_PP_ITERATION_3 177
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 176 && MSGPACK_PP_ITERATION_START_3 >= 176
+# define MSGPACK_PP_ITERATION_3 176
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 175 && MSGPACK_PP_ITERATION_START_3 >= 175
+# define MSGPACK_PP_ITERATION_3 175
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 174 && MSGPACK_PP_ITERATION_START_3 >= 174
+# define MSGPACK_PP_ITERATION_3 174
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 173 && MSGPACK_PP_ITERATION_START_3 >= 173
+# define MSGPACK_PP_ITERATION_3 173
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 172 && MSGPACK_PP_ITERATION_START_3 >= 172
+# define MSGPACK_PP_ITERATION_3 172
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 171 && MSGPACK_PP_ITERATION_START_3 >= 171
+# define MSGPACK_PP_ITERATION_3 171
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 170 && MSGPACK_PP_ITERATION_START_3 >= 170
+# define MSGPACK_PP_ITERATION_3 170
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 169 && MSGPACK_PP_ITERATION_START_3 >= 169
+# define MSGPACK_PP_ITERATION_3 169
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 168 && MSGPACK_PP_ITERATION_START_3 >= 168
+# define MSGPACK_PP_ITERATION_3 168
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 167 && MSGPACK_PP_ITERATION_START_3 >= 167
+# define MSGPACK_PP_ITERATION_3 167
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 166 && MSGPACK_PP_ITERATION_START_3 >= 166
+# define MSGPACK_PP_ITERATION_3 166
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 165 && MSGPACK_PP_ITERATION_START_3 >= 165
+# define MSGPACK_PP_ITERATION_3 165
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 164 && MSGPACK_PP_ITERATION_START_3 >= 164
+# define MSGPACK_PP_ITERATION_3 164
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 163 && MSGPACK_PP_ITERATION_START_3 >= 163
+# define MSGPACK_PP_ITERATION_3 163
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 162 && MSGPACK_PP_ITERATION_START_3 >= 162
+# define MSGPACK_PP_ITERATION_3 162
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 161 && MSGPACK_PP_ITERATION_START_3 >= 161
+# define MSGPACK_PP_ITERATION_3 161
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 160 && MSGPACK_PP_ITERATION_START_3 >= 160
+# define MSGPACK_PP_ITERATION_3 160
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 159 && MSGPACK_PP_ITERATION_START_3 >= 159
+# define MSGPACK_PP_ITERATION_3 159
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 158 && MSGPACK_PP_ITERATION_START_3 >= 158
+# define MSGPACK_PP_ITERATION_3 158
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 157 && MSGPACK_PP_ITERATION_START_3 >= 157
+# define MSGPACK_PP_ITERATION_3 157
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 156 && MSGPACK_PP_ITERATION_START_3 >= 156
+# define MSGPACK_PP_ITERATION_3 156
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 155 && MSGPACK_PP_ITERATION_START_3 >= 155
+# define MSGPACK_PP_ITERATION_3 155
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 154 && MSGPACK_PP_ITERATION_START_3 >= 154
+# define MSGPACK_PP_ITERATION_3 154
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 153 && MSGPACK_PP_ITERATION_START_3 >= 153
+# define MSGPACK_PP_ITERATION_3 153
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 152 && MSGPACK_PP_ITERATION_START_3 >= 152
+# define MSGPACK_PP_ITERATION_3 152
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 151 && MSGPACK_PP_ITERATION_START_3 >= 151
+# define MSGPACK_PP_ITERATION_3 151
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 150 && MSGPACK_PP_ITERATION_START_3 >= 150
+# define MSGPACK_PP_ITERATION_3 150
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 149 && MSGPACK_PP_ITERATION_START_3 >= 149
+# define MSGPACK_PP_ITERATION_3 149
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 148 && MSGPACK_PP_ITERATION_START_3 >= 148
+# define MSGPACK_PP_ITERATION_3 148
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 147 && MSGPACK_PP_ITERATION_START_3 >= 147
+# define MSGPACK_PP_ITERATION_3 147
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 146 && MSGPACK_PP_ITERATION_START_3 >= 146
+# define MSGPACK_PP_ITERATION_3 146
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 145 && MSGPACK_PP_ITERATION_START_3 >= 145
+# define MSGPACK_PP_ITERATION_3 145
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 144 && MSGPACK_PP_ITERATION_START_3 >= 144
+# define MSGPACK_PP_ITERATION_3 144
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 143 && MSGPACK_PP_ITERATION_START_3 >= 143
+# define MSGPACK_PP_ITERATION_3 143
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 142 && MSGPACK_PP_ITERATION_START_3 >= 142
+# define MSGPACK_PP_ITERATION_3 142
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 141 && MSGPACK_PP_ITERATION_START_3 >= 141
+# define MSGPACK_PP_ITERATION_3 141
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 140 && MSGPACK_PP_ITERATION_START_3 >= 140
+# define MSGPACK_PP_ITERATION_3 140
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 139 && MSGPACK_PP_ITERATION_START_3 >= 139
+# define MSGPACK_PP_ITERATION_3 139
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 138 && MSGPACK_PP_ITERATION_START_3 >= 138
+# define MSGPACK_PP_ITERATION_3 138
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 137 && MSGPACK_PP_ITERATION_START_3 >= 137
+# define MSGPACK_PP_ITERATION_3 137
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 136 && MSGPACK_PP_ITERATION_START_3 >= 136
+# define MSGPACK_PP_ITERATION_3 136
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 135 && MSGPACK_PP_ITERATION_START_3 >= 135
+# define MSGPACK_PP_ITERATION_3 135
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 134 && MSGPACK_PP_ITERATION_START_3 >= 134
+# define MSGPACK_PP_ITERATION_3 134
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 133 && MSGPACK_PP_ITERATION_START_3 >= 133
+# define MSGPACK_PP_ITERATION_3 133
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 132 && MSGPACK_PP_ITERATION_START_3 >= 132
+# define MSGPACK_PP_ITERATION_3 132
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 131 && MSGPACK_PP_ITERATION_START_3 >= 131
+# define MSGPACK_PP_ITERATION_3 131
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 130 && MSGPACK_PP_ITERATION_START_3 >= 130
+# define MSGPACK_PP_ITERATION_3 130
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 129 && MSGPACK_PP_ITERATION_START_3 >= 129
+# define MSGPACK_PP_ITERATION_3 129
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 128 && MSGPACK_PP_ITERATION_START_3 >= 128
+# define MSGPACK_PP_ITERATION_3 128
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 127 && MSGPACK_PP_ITERATION_START_3 >= 127
+# define MSGPACK_PP_ITERATION_3 127
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 126 && MSGPACK_PP_ITERATION_START_3 >= 126
+# define MSGPACK_PP_ITERATION_3 126
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 125 && MSGPACK_PP_ITERATION_START_3 >= 125
+# define MSGPACK_PP_ITERATION_3 125
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 124 && MSGPACK_PP_ITERATION_START_3 >= 124
+# define MSGPACK_PP_ITERATION_3 124
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 123 && MSGPACK_PP_ITERATION_START_3 >= 123
+# define MSGPACK_PP_ITERATION_3 123
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 122 && MSGPACK_PP_ITERATION_START_3 >= 122
+# define MSGPACK_PP_ITERATION_3 122
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 121 && MSGPACK_PP_ITERATION_START_3 >= 121
+# define MSGPACK_PP_ITERATION_3 121
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 120 && MSGPACK_PP_ITERATION_START_3 >= 120
+# define MSGPACK_PP_ITERATION_3 120
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 119 && MSGPACK_PP_ITERATION_START_3 >= 119
+# define MSGPACK_PP_ITERATION_3 119
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 118 && MSGPACK_PP_ITERATION_START_3 >= 118
+# define MSGPACK_PP_ITERATION_3 118
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 117 && MSGPACK_PP_ITERATION_START_3 >= 117
+# define MSGPACK_PP_ITERATION_3 117
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 116 && MSGPACK_PP_ITERATION_START_3 >= 116
+# define MSGPACK_PP_ITERATION_3 116
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 115 && MSGPACK_PP_ITERATION_START_3 >= 115
+# define MSGPACK_PP_ITERATION_3 115
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 114 && MSGPACK_PP_ITERATION_START_3 >= 114
+# define MSGPACK_PP_ITERATION_3 114
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 113 && MSGPACK_PP_ITERATION_START_3 >= 113
+# define MSGPACK_PP_ITERATION_3 113
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 112 && MSGPACK_PP_ITERATION_START_3 >= 112
+# define MSGPACK_PP_ITERATION_3 112
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 111 && MSGPACK_PP_ITERATION_START_3 >= 111
+# define MSGPACK_PP_ITERATION_3 111
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 110 && MSGPACK_PP_ITERATION_START_3 >= 110
+# define MSGPACK_PP_ITERATION_3 110
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 109 && MSGPACK_PP_ITERATION_START_3 >= 109
+# define MSGPACK_PP_ITERATION_3 109
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 108 && MSGPACK_PP_ITERATION_START_3 >= 108
+# define MSGPACK_PP_ITERATION_3 108
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 107 && MSGPACK_PP_ITERATION_START_3 >= 107
+# define MSGPACK_PP_ITERATION_3 107
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 106 && MSGPACK_PP_ITERATION_START_3 >= 106
+# define MSGPACK_PP_ITERATION_3 106
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 105 && MSGPACK_PP_ITERATION_START_3 >= 105
+# define MSGPACK_PP_ITERATION_3 105
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 104 && MSGPACK_PP_ITERATION_START_3 >= 104
+# define MSGPACK_PP_ITERATION_3 104
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 103 && MSGPACK_PP_ITERATION_START_3 >= 103
+# define MSGPACK_PP_ITERATION_3 103
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 102 && MSGPACK_PP_ITERATION_START_3 >= 102
+# define MSGPACK_PP_ITERATION_3 102
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 101 && MSGPACK_PP_ITERATION_START_3 >= 101
+# define MSGPACK_PP_ITERATION_3 101
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 100 && MSGPACK_PP_ITERATION_START_3 >= 100
+# define MSGPACK_PP_ITERATION_3 100
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 99 && MSGPACK_PP_ITERATION_START_3 >= 99
+# define MSGPACK_PP_ITERATION_3 99
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 98 && MSGPACK_PP_ITERATION_START_3 >= 98
+# define MSGPACK_PP_ITERATION_3 98
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 97 && MSGPACK_PP_ITERATION_START_3 >= 97
+# define MSGPACK_PP_ITERATION_3 97
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 96 && MSGPACK_PP_ITERATION_START_3 >= 96
+# define MSGPACK_PP_ITERATION_3 96
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 95 && MSGPACK_PP_ITERATION_START_3 >= 95
+# define MSGPACK_PP_ITERATION_3 95
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 94 && MSGPACK_PP_ITERATION_START_3 >= 94
+# define MSGPACK_PP_ITERATION_3 94
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 93 && MSGPACK_PP_ITERATION_START_3 >= 93
+# define MSGPACK_PP_ITERATION_3 93
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 92 && MSGPACK_PP_ITERATION_START_3 >= 92
+# define MSGPACK_PP_ITERATION_3 92
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 91 && MSGPACK_PP_ITERATION_START_3 >= 91
+# define MSGPACK_PP_ITERATION_3 91
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 90 && MSGPACK_PP_ITERATION_START_3 >= 90
+# define MSGPACK_PP_ITERATION_3 90
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 89 && MSGPACK_PP_ITERATION_START_3 >= 89
+# define MSGPACK_PP_ITERATION_3 89
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 88 && MSGPACK_PP_ITERATION_START_3 >= 88
+# define MSGPACK_PP_ITERATION_3 88
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 87 && MSGPACK_PP_ITERATION_START_3 >= 87
+# define MSGPACK_PP_ITERATION_3 87
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 86 && MSGPACK_PP_ITERATION_START_3 >= 86
+# define MSGPACK_PP_ITERATION_3 86
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 85 && MSGPACK_PP_ITERATION_START_3 >= 85
+# define MSGPACK_PP_ITERATION_3 85
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 84 && MSGPACK_PP_ITERATION_START_3 >= 84
+# define MSGPACK_PP_ITERATION_3 84
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 83 && MSGPACK_PP_ITERATION_START_3 >= 83
+# define MSGPACK_PP_ITERATION_3 83
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 82 && MSGPACK_PP_ITERATION_START_3 >= 82
+# define MSGPACK_PP_ITERATION_3 82
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 81 && MSGPACK_PP_ITERATION_START_3 >= 81
+# define MSGPACK_PP_ITERATION_3 81
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 80 && MSGPACK_PP_ITERATION_START_3 >= 80
+# define MSGPACK_PP_ITERATION_3 80
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 79 && MSGPACK_PP_ITERATION_START_3 >= 79
+# define MSGPACK_PP_ITERATION_3 79
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 78 && MSGPACK_PP_ITERATION_START_3 >= 78
+# define MSGPACK_PP_ITERATION_3 78
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 77 && MSGPACK_PP_ITERATION_START_3 >= 77
+# define MSGPACK_PP_ITERATION_3 77
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 76 && MSGPACK_PP_ITERATION_START_3 >= 76
+# define MSGPACK_PP_ITERATION_3 76
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 75 && MSGPACK_PP_ITERATION_START_3 >= 75
+# define MSGPACK_PP_ITERATION_3 75
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 74 && MSGPACK_PP_ITERATION_START_3 >= 74
+# define MSGPACK_PP_ITERATION_3 74
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 73 && MSGPACK_PP_ITERATION_START_3 >= 73
+# define MSGPACK_PP_ITERATION_3 73
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 72 && MSGPACK_PP_ITERATION_START_3 >= 72
+# define MSGPACK_PP_ITERATION_3 72
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 71 && MSGPACK_PP_ITERATION_START_3 >= 71
+# define MSGPACK_PP_ITERATION_3 71
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 70 && MSGPACK_PP_ITERATION_START_3 >= 70
+# define MSGPACK_PP_ITERATION_3 70
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 69 && MSGPACK_PP_ITERATION_START_3 >= 69
+# define MSGPACK_PP_ITERATION_3 69
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 68 && MSGPACK_PP_ITERATION_START_3 >= 68
+# define MSGPACK_PP_ITERATION_3 68
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 67 && MSGPACK_PP_ITERATION_START_3 >= 67
+# define MSGPACK_PP_ITERATION_3 67
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 66 && MSGPACK_PP_ITERATION_START_3 >= 66
+# define MSGPACK_PP_ITERATION_3 66
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 65 && MSGPACK_PP_ITERATION_START_3 >= 65
+# define MSGPACK_PP_ITERATION_3 65
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 64 && MSGPACK_PP_ITERATION_START_3 >= 64
+# define MSGPACK_PP_ITERATION_3 64
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 63 && MSGPACK_PP_ITERATION_START_3 >= 63
+# define MSGPACK_PP_ITERATION_3 63
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 62 && MSGPACK_PP_ITERATION_START_3 >= 62
+# define MSGPACK_PP_ITERATION_3 62
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 61 && MSGPACK_PP_ITERATION_START_3 >= 61
+# define MSGPACK_PP_ITERATION_3 61
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 60 && MSGPACK_PP_ITERATION_START_3 >= 60
+# define MSGPACK_PP_ITERATION_3 60
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 59 && MSGPACK_PP_ITERATION_START_3 >= 59
+# define MSGPACK_PP_ITERATION_3 59
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 58 && MSGPACK_PP_ITERATION_START_3 >= 58
+# define MSGPACK_PP_ITERATION_3 58
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 57 && MSGPACK_PP_ITERATION_START_3 >= 57
+# define MSGPACK_PP_ITERATION_3 57
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 56 && MSGPACK_PP_ITERATION_START_3 >= 56
+# define MSGPACK_PP_ITERATION_3 56
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 55 && MSGPACK_PP_ITERATION_START_3 >= 55
+# define MSGPACK_PP_ITERATION_3 55
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 54 && MSGPACK_PP_ITERATION_START_3 >= 54
+# define MSGPACK_PP_ITERATION_3 54
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 53 && MSGPACK_PP_ITERATION_START_3 >= 53
+# define MSGPACK_PP_ITERATION_3 53
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 52 && MSGPACK_PP_ITERATION_START_3 >= 52
+# define MSGPACK_PP_ITERATION_3 52
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 51 && MSGPACK_PP_ITERATION_START_3 >= 51
+# define MSGPACK_PP_ITERATION_3 51
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 50 && MSGPACK_PP_ITERATION_START_3 >= 50
+# define MSGPACK_PP_ITERATION_3 50
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 49 && MSGPACK_PP_ITERATION_START_3 >= 49
+# define MSGPACK_PP_ITERATION_3 49
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 48 && MSGPACK_PP_ITERATION_START_3 >= 48
+# define MSGPACK_PP_ITERATION_3 48
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 47 && MSGPACK_PP_ITERATION_START_3 >= 47
+# define MSGPACK_PP_ITERATION_3 47
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 46 && MSGPACK_PP_ITERATION_START_3 >= 46
+# define MSGPACK_PP_ITERATION_3 46
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 45 && MSGPACK_PP_ITERATION_START_3 >= 45
+# define MSGPACK_PP_ITERATION_3 45
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 44 && MSGPACK_PP_ITERATION_START_3 >= 44
+# define MSGPACK_PP_ITERATION_3 44
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 43 && MSGPACK_PP_ITERATION_START_3 >= 43
+# define MSGPACK_PP_ITERATION_3 43
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 42 && MSGPACK_PP_ITERATION_START_3 >= 42
+# define MSGPACK_PP_ITERATION_3 42
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 41 && MSGPACK_PP_ITERATION_START_3 >= 41
+# define MSGPACK_PP_ITERATION_3 41
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 40 && MSGPACK_PP_ITERATION_START_3 >= 40
+# define MSGPACK_PP_ITERATION_3 40
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 39 && MSGPACK_PP_ITERATION_START_3 >= 39
+# define MSGPACK_PP_ITERATION_3 39
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 38 && MSGPACK_PP_ITERATION_START_3 >= 38
+# define MSGPACK_PP_ITERATION_3 38
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 37 && MSGPACK_PP_ITERATION_START_3 >= 37
+# define MSGPACK_PP_ITERATION_3 37
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 36 && MSGPACK_PP_ITERATION_START_3 >= 36
+# define MSGPACK_PP_ITERATION_3 36
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 35 && MSGPACK_PP_ITERATION_START_3 >= 35
+# define MSGPACK_PP_ITERATION_3 35
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 34 && MSGPACK_PP_ITERATION_START_3 >= 34
+# define MSGPACK_PP_ITERATION_3 34
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 33 && MSGPACK_PP_ITERATION_START_3 >= 33
+# define MSGPACK_PP_ITERATION_3 33
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 32 && MSGPACK_PP_ITERATION_START_3 >= 32
+# define MSGPACK_PP_ITERATION_3 32
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 31 && MSGPACK_PP_ITERATION_START_3 >= 31
+# define MSGPACK_PP_ITERATION_3 31
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 30 && MSGPACK_PP_ITERATION_START_3 >= 30
+# define MSGPACK_PP_ITERATION_3 30
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 29 && MSGPACK_PP_ITERATION_START_3 >= 29
+# define MSGPACK_PP_ITERATION_3 29
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 28 && MSGPACK_PP_ITERATION_START_3 >= 28
+# define MSGPACK_PP_ITERATION_3 28
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 27 && MSGPACK_PP_ITERATION_START_3 >= 27
+# define MSGPACK_PP_ITERATION_3 27
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 26 && MSGPACK_PP_ITERATION_START_3 >= 26
+# define MSGPACK_PP_ITERATION_3 26
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 25 && MSGPACK_PP_ITERATION_START_3 >= 25
+# define MSGPACK_PP_ITERATION_3 25
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 24 && MSGPACK_PP_ITERATION_START_3 >= 24
+# define MSGPACK_PP_ITERATION_3 24
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 23 && MSGPACK_PP_ITERATION_START_3 >= 23
+# define MSGPACK_PP_ITERATION_3 23
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 22 && MSGPACK_PP_ITERATION_START_3 >= 22
+# define MSGPACK_PP_ITERATION_3 22
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 21 && MSGPACK_PP_ITERATION_START_3 >= 21
+# define MSGPACK_PP_ITERATION_3 21
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 20 && MSGPACK_PP_ITERATION_START_3 >= 20
+# define MSGPACK_PP_ITERATION_3 20
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 19 && MSGPACK_PP_ITERATION_START_3 >= 19
+# define MSGPACK_PP_ITERATION_3 19
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 18 && MSGPACK_PP_ITERATION_START_3 >= 18
+# define MSGPACK_PP_ITERATION_3 18
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 17 && MSGPACK_PP_ITERATION_START_3 >= 17
+# define MSGPACK_PP_ITERATION_3 17
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 16 && MSGPACK_PP_ITERATION_START_3 >= 16
+# define MSGPACK_PP_ITERATION_3 16
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 15 && MSGPACK_PP_ITERATION_START_3 >= 15
+# define MSGPACK_PP_ITERATION_3 15
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 14 && MSGPACK_PP_ITERATION_START_3 >= 14
+# define MSGPACK_PP_ITERATION_3 14
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 13 && MSGPACK_PP_ITERATION_START_3 >= 13
+# define MSGPACK_PP_ITERATION_3 13
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 12 && MSGPACK_PP_ITERATION_START_3 >= 12
+# define MSGPACK_PP_ITERATION_3 12
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 11 && MSGPACK_PP_ITERATION_START_3 >= 11
+# define MSGPACK_PP_ITERATION_3 11
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 10 && MSGPACK_PP_ITERATION_START_3 >= 10
+# define MSGPACK_PP_ITERATION_3 10
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 9 && MSGPACK_PP_ITERATION_START_3 >= 9
+# define MSGPACK_PP_ITERATION_3 9
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 8 && MSGPACK_PP_ITERATION_START_3 >= 8
+# define MSGPACK_PP_ITERATION_3 8
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 7 && MSGPACK_PP_ITERATION_START_3 >= 7
+# define MSGPACK_PP_ITERATION_3 7
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 6 && MSGPACK_PP_ITERATION_START_3 >= 6
+# define MSGPACK_PP_ITERATION_3 6
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 5 && MSGPACK_PP_ITERATION_START_3 >= 5
+# define MSGPACK_PP_ITERATION_3 5
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 4 && MSGPACK_PP_ITERATION_START_3 >= 4
+# define MSGPACK_PP_ITERATION_3 4
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 3 && MSGPACK_PP_ITERATION_START_3 >= 3
+# define MSGPACK_PP_ITERATION_3 3
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 2 && MSGPACK_PP_ITERATION_START_3 >= 2
+# define MSGPACK_PP_ITERATION_3 2
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 1 && MSGPACK_PP_ITERATION_START_3 >= 1
+# define MSGPACK_PP_ITERATION_3 1
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_3 <= 0 && MSGPACK_PP_ITERATION_START_3 >= 0
+# define MSGPACK_PP_ITERATION_3 0
+# include MSGPACK_PP_FILENAME_3
+# undef MSGPACK_PP_ITERATION_3
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp
new file mode 100644
index 000000000..2a85d56fe
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse4.hpp
@@ -0,0 +1,1296 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 256 && MSGPACK_PP_ITERATION_START_4 >= 256
+# define MSGPACK_PP_ITERATION_4 256
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 255 && MSGPACK_PP_ITERATION_START_4 >= 255
+# define MSGPACK_PP_ITERATION_4 255
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 254 && MSGPACK_PP_ITERATION_START_4 >= 254
+# define MSGPACK_PP_ITERATION_4 254
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 253 && MSGPACK_PP_ITERATION_START_4 >= 253
+# define MSGPACK_PP_ITERATION_4 253
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 252 && MSGPACK_PP_ITERATION_START_4 >= 252
+# define MSGPACK_PP_ITERATION_4 252
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 251 && MSGPACK_PP_ITERATION_START_4 >= 251
+# define MSGPACK_PP_ITERATION_4 251
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 250 && MSGPACK_PP_ITERATION_START_4 >= 250
+# define MSGPACK_PP_ITERATION_4 250
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 249 && MSGPACK_PP_ITERATION_START_4 >= 249
+# define MSGPACK_PP_ITERATION_4 249
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 248 && MSGPACK_PP_ITERATION_START_4 >= 248
+# define MSGPACK_PP_ITERATION_4 248
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 247 && MSGPACK_PP_ITERATION_START_4 >= 247
+# define MSGPACK_PP_ITERATION_4 247
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 246 && MSGPACK_PP_ITERATION_START_4 >= 246
+# define MSGPACK_PP_ITERATION_4 246
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 245 && MSGPACK_PP_ITERATION_START_4 >= 245
+# define MSGPACK_PP_ITERATION_4 245
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 244 && MSGPACK_PP_ITERATION_START_4 >= 244
+# define MSGPACK_PP_ITERATION_4 244
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 243 && MSGPACK_PP_ITERATION_START_4 >= 243
+# define MSGPACK_PP_ITERATION_4 243
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 242 && MSGPACK_PP_ITERATION_START_4 >= 242
+# define MSGPACK_PP_ITERATION_4 242
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 241 && MSGPACK_PP_ITERATION_START_4 >= 241
+# define MSGPACK_PP_ITERATION_4 241
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 240 && MSGPACK_PP_ITERATION_START_4 >= 240
+# define MSGPACK_PP_ITERATION_4 240
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 239 && MSGPACK_PP_ITERATION_START_4 >= 239
+# define MSGPACK_PP_ITERATION_4 239
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 238 && MSGPACK_PP_ITERATION_START_4 >= 238
+# define MSGPACK_PP_ITERATION_4 238
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 237 && MSGPACK_PP_ITERATION_START_4 >= 237
+# define MSGPACK_PP_ITERATION_4 237
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 236 && MSGPACK_PP_ITERATION_START_4 >= 236
+# define MSGPACK_PP_ITERATION_4 236
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 235 && MSGPACK_PP_ITERATION_START_4 >= 235
+# define MSGPACK_PP_ITERATION_4 235
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 234 && MSGPACK_PP_ITERATION_START_4 >= 234
+# define MSGPACK_PP_ITERATION_4 234
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 233 && MSGPACK_PP_ITERATION_START_4 >= 233
+# define MSGPACK_PP_ITERATION_4 233
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 232 && MSGPACK_PP_ITERATION_START_4 >= 232
+# define MSGPACK_PP_ITERATION_4 232
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 231 && MSGPACK_PP_ITERATION_START_4 >= 231
+# define MSGPACK_PP_ITERATION_4 231
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 230 && MSGPACK_PP_ITERATION_START_4 >= 230
+# define MSGPACK_PP_ITERATION_4 230
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 229 && MSGPACK_PP_ITERATION_START_4 >= 229
+# define MSGPACK_PP_ITERATION_4 229
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 228 && MSGPACK_PP_ITERATION_START_4 >= 228
+# define MSGPACK_PP_ITERATION_4 228
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 227 && MSGPACK_PP_ITERATION_START_4 >= 227
+# define MSGPACK_PP_ITERATION_4 227
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 226 && MSGPACK_PP_ITERATION_START_4 >= 226
+# define MSGPACK_PP_ITERATION_4 226
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 225 && MSGPACK_PP_ITERATION_START_4 >= 225
+# define MSGPACK_PP_ITERATION_4 225
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 224 && MSGPACK_PP_ITERATION_START_4 >= 224
+# define MSGPACK_PP_ITERATION_4 224
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 223 && MSGPACK_PP_ITERATION_START_4 >= 223
+# define MSGPACK_PP_ITERATION_4 223
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 222 && MSGPACK_PP_ITERATION_START_4 >= 222
+# define MSGPACK_PP_ITERATION_4 222
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 221 && MSGPACK_PP_ITERATION_START_4 >= 221
+# define MSGPACK_PP_ITERATION_4 221
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 220 && MSGPACK_PP_ITERATION_START_4 >= 220
+# define MSGPACK_PP_ITERATION_4 220
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 219 && MSGPACK_PP_ITERATION_START_4 >= 219
+# define MSGPACK_PP_ITERATION_4 219
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 218 && MSGPACK_PP_ITERATION_START_4 >= 218
+# define MSGPACK_PP_ITERATION_4 218
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 217 && MSGPACK_PP_ITERATION_START_4 >= 217
+# define MSGPACK_PP_ITERATION_4 217
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 216 && MSGPACK_PP_ITERATION_START_4 >= 216
+# define MSGPACK_PP_ITERATION_4 216
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 215 && MSGPACK_PP_ITERATION_START_4 >= 215
+# define MSGPACK_PP_ITERATION_4 215
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 214 && MSGPACK_PP_ITERATION_START_4 >= 214
+# define MSGPACK_PP_ITERATION_4 214
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 213 && MSGPACK_PP_ITERATION_START_4 >= 213
+# define MSGPACK_PP_ITERATION_4 213
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 212 && MSGPACK_PP_ITERATION_START_4 >= 212
+# define MSGPACK_PP_ITERATION_4 212
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 211 && MSGPACK_PP_ITERATION_START_4 >= 211
+# define MSGPACK_PP_ITERATION_4 211
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 210 && MSGPACK_PP_ITERATION_START_4 >= 210
+# define MSGPACK_PP_ITERATION_4 210
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 209 && MSGPACK_PP_ITERATION_START_4 >= 209
+# define MSGPACK_PP_ITERATION_4 209
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 208 && MSGPACK_PP_ITERATION_START_4 >= 208
+# define MSGPACK_PP_ITERATION_4 208
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 207 && MSGPACK_PP_ITERATION_START_4 >= 207
+# define MSGPACK_PP_ITERATION_4 207
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 206 && MSGPACK_PP_ITERATION_START_4 >= 206
+# define MSGPACK_PP_ITERATION_4 206
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 205 && MSGPACK_PP_ITERATION_START_4 >= 205
+# define MSGPACK_PP_ITERATION_4 205
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 204 && MSGPACK_PP_ITERATION_START_4 >= 204
+# define MSGPACK_PP_ITERATION_4 204
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 203 && MSGPACK_PP_ITERATION_START_4 >= 203
+# define MSGPACK_PP_ITERATION_4 203
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 202 && MSGPACK_PP_ITERATION_START_4 >= 202
+# define MSGPACK_PP_ITERATION_4 202
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 201 && MSGPACK_PP_ITERATION_START_4 >= 201
+# define MSGPACK_PP_ITERATION_4 201
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 200 && MSGPACK_PP_ITERATION_START_4 >= 200
+# define MSGPACK_PP_ITERATION_4 200
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 199 && MSGPACK_PP_ITERATION_START_4 >= 199
+# define MSGPACK_PP_ITERATION_4 199
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 198 && MSGPACK_PP_ITERATION_START_4 >= 198
+# define MSGPACK_PP_ITERATION_4 198
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 197 && MSGPACK_PP_ITERATION_START_4 >= 197
+# define MSGPACK_PP_ITERATION_4 197
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 196 && MSGPACK_PP_ITERATION_START_4 >= 196
+# define MSGPACK_PP_ITERATION_4 196
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 195 && MSGPACK_PP_ITERATION_START_4 >= 195
+# define MSGPACK_PP_ITERATION_4 195
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 194 && MSGPACK_PP_ITERATION_START_4 >= 194
+# define MSGPACK_PP_ITERATION_4 194
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 193 && MSGPACK_PP_ITERATION_START_4 >= 193
+# define MSGPACK_PP_ITERATION_4 193
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 192 && MSGPACK_PP_ITERATION_START_4 >= 192
+# define MSGPACK_PP_ITERATION_4 192
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 191 && MSGPACK_PP_ITERATION_START_4 >= 191
+# define MSGPACK_PP_ITERATION_4 191
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 190 && MSGPACK_PP_ITERATION_START_4 >= 190
+# define MSGPACK_PP_ITERATION_4 190
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 189 && MSGPACK_PP_ITERATION_START_4 >= 189
+# define MSGPACK_PP_ITERATION_4 189
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 188 && MSGPACK_PP_ITERATION_START_4 >= 188
+# define MSGPACK_PP_ITERATION_4 188
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 187 && MSGPACK_PP_ITERATION_START_4 >= 187
+# define MSGPACK_PP_ITERATION_4 187
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 186 && MSGPACK_PP_ITERATION_START_4 >= 186
+# define MSGPACK_PP_ITERATION_4 186
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 185 && MSGPACK_PP_ITERATION_START_4 >= 185
+# define MSGPACK_PP_ITERATION_4 185
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 184 && MSGPACK_PP_ITERATION_START_4 >= 184
+# define MSGPACK_PP_ITERATION_4 184
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 183 && MSGPACK_PP_ITERATION_START_4 >= 183
+# define MSGPACK_PP_ITERATION_4 183
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 182 && MSGPACK_PP_ITERATION_START_4 >= 182
+# define MSGPACK_PP_ITERATION_4 182
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 181 && MSGPACK_PP_ITERATION_START_4 >= 181
+# define MSGPACK_PP_ITERATION_4 181
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 180 && MSGPACK_PP_ITERATION_START_4 >= 180
+# define MSGPACK_PP_ITERATION_4 180
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 179 && MSGPACK_PP_ITERATION_START_4 >= 179
+# define MSGPACK_PP_ITERATION_4 179
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 178 && MSGPACK_PP_ITERATION_START_4 >= 178
+# define MSGPACK_PP_ITERATION_4 178
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 177 && MSGPACK_PP_ITERATION_START_4 >= 177
+# define MSGPACK_PP_ITERATION_4 177
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 176 && MSGPACK_PP_ITERATION_START_4 >= 176
+# define MSGPACK_PP_ITERATION_4 176
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 175 && MSGPACK_PP_ITERATION_START_4 >= 175
+# define MSGPACK_PP_ITERATION_4 175
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 174 && MSGPACK_PP_ITERATION_START_4 >= 174
+# define MSGPACK_PP_ITERATION_4 174
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 173 && MSGPACK_PP_ITERATION_START_4 >= 173
+# define MSGPACK_PP_ITERATION_4 173
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 172 && MSGPACK_PP_ITERATION_START_4 >= 172
+# define MSGPACK_PP_ITERATION_4 172
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 171 && MSGPACK_PP_ITERATION_START_4 >= 171
+# define MSGPACK_PP_ITERATION_4 171
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 170 && MSGPACK_PP_ITERATION_START_4 >= 170
+# define MSGPACK_PP_ITERATION_4 170
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 169 && MSGPACK_PP_ITERATION_START_4 >= 169
+# define MSGPACK_PP_ITERATION_4 169
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 168 && MSGPACK_PP_ITERATION_START_4 >= 168
+# define MSGPACK_PP_ITERATION_4 168
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 167 && MSGPACK_PP_ITERATION_START_4 >= 167
+# define MSGPACK_PP_ITERATION_4 167
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 166 && MSGPACK_PP_ITERATION_START_4 >= 166
+# define MSGPACK_PP_ITERATION_4 166
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 165 && MSGPACK_PP_ITERATION_START_4 >= 165
+# define MSGPACK_PP_ITERATION_4 165
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 164 && MSGPACK_PP_ITERATION_START_4 >= 164
+# define MSGPACK_PP_ITERATION_4 164
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 163 && MSGPACK_PP_ITERATION_START_4 >= 163
+# define MSGPACK_PP_ITERATION_4 163
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 162 && MSGPACK_PP_ITERATION_START_4 >= 162
+# define MSGPACK_PP_ITERATION_4 162
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 161 && MSGPACK_PP_ITERATION_START_4 >= 161
+# define MSGPACK_PP_ITERATION_4 161
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 160 && MSGPACK_PP_ITERATION_START_4 >= 160
+# define MSGPACK_PP_ITERATION_4 160
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 159 && MSGPACK_PP_ITERATION_START_4 >= 159
+# define MSGPACK_PP_ITERATION_4 159
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 158 && MSGPACK_PP_ITERATION_START_4 >= 158
+# define MSGPACK_PP_ITERATION_4 158
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 157 && MSGPACK_PP_ITERATION_START_4 >= 157
+# define MSGPACK_PP_ITERATION_4 157
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 156 && MSGPACK_PP_ITERATION_START_4 >= 156
+# define MSGPACK_PP_ITERATION_4 156
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 155 && MSGPACK_PP_ITERATION_START_4 >= 155
+# define MSGPACK_PP_ITERATION_4 155
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 154 && MSGPACK_PP_ITERATION_START_4 >= 154
+# define MSGPACK_PP_ITERATION_4 154
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 153 && MSGPACK_PP_ITERATION_START_4 >= 153
+# define MSGPACK_PP_ITERATION_4 153
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 152 && MSGPACK_PP_ITERATION_START_4 >= 152
+# define MSGPACK_PP_ITERATION_4 152
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 151 && MSGPACK_PP_ITERATION_START_4 >= 151
+# define MSGPACK_PP_ITERATION_4 151
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 150 && MSGPACK_PP_ITERATION_START_4 >= 150
+# define MSGPACK_PP_ITERATION_4 150
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 149 && MSGPACK_PP_ITERATION_START_4 >= 149
+# define MSGPACK_PP_ITERATION_4 149
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 148 && MSGPACK_PP_ITERATION_START_4 >= 148
+# define MSGPACK_PP_ITERATION_4 148
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 147 && MSGPACK_PP_ITERATION_START_4 >= 147
+# define MSGPACK_PP_ITERATION_4 147
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 146 && MSGPACK_PP_ITERATION_START_4 >= 146
+# define MSGPACK_PP_ITERATION_4 146
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 145 && MSGPACK_PP_ITERATION_START_4 >= 145
+# define MSGPACK_PP_ITERATION_4 145
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 144 && MSGPACK_PP_ITERATION_START_4 >= 144
+# define MSGPACK_PP_ITERATION_4 144
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 143 && MSGPACK_PP_ITERATION_START_4 >= 143
+# define MSGPACK_PP_ITERATION_4 143
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 142 && MSGPACK_PP_ITERATION_START_4 >= 142
+# define MSGPACK_PP_ITERATION_4 142
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 141 && MSGPACK_PP_ITERATION_START_4 >= 141
+# define MSGPACK_PP_ITERATION_4 141
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 140 && MSGPACK_PP_ITERATION_START_4 >= 140
+# define MSGPACK_PP_ITERATION_4 140
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 139 && MSGPACK_PP_ITERATION_START_4 >= 139
+# define MSGPACK_PP_ITERATION_4 139
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 138 && MSGPACK_PP_ITERATION_START_4 >= 138
+# define MSGPACK_PP_ITERATION_4 138
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 137 && MSGPACK_PP_ITERATION_START_4 >= 137
+# define MSGPACK_PP_ITERATION_4 137
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 136 && MSGPACK_PP_ITERATION_START_4 >= 136
+# define MSGPACK_PP_ITERATION_4 136
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 135 && MSGPACK_PP_ITERATION_START_4 >= 135
+# define MSGPACK_PP_ITERATION_4 135
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 134 && MSGPACK_PP_ITERATION_START_4 >= 134
+# define MSGPACK_PP_ITERATION_4 134
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 133 && MSGPACK_PP_ITERATION_START_4 >= 133
+# define MSGPACK_PP_ITERATION_4 133
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 132 && MSGPACK_PP_ITERATION_START_4 >= 132
+# define MSGPACK_PP_ITERATION_4 132
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 131 && MSGPACK_PP_ITERATION_START_4 >= 131
+# define MSGPACK_PP_ITERATION_4 131
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 130 && MSGPACK_PP_ITERATION_START_4 >= 130
+# define MSGPACK_PP_ITERATION_4 130
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 129 && MSGPACK_PP_ITERATION_START_4 >= 129
+# define MSGPACK_PP_ITERATION_4 129
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 128 && MSGPACK_PP_ITERATION_START_4 >= 128
+# define MSGPACK_PP_ITERATION_4 128
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 127 && MSGPACK_PP_ITERATION_START_4 >= 127
+# define MSGPACK_PP_ITERATION_4 127
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 126 && MSGPACK_PP_ITERATION_START_4 >= 126
+# define MSGPACK_PP_ITERATION_4 126
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 125 && MSGPACK_PP_ITERATION_START_4 >= 125
+# define MSGPACK_PP_ITERATION_4 125
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 124 && MSGPACK_PP_ITERATION_START_4 >= 124
+# define MSGPACK_PP_ITERATION_4 124
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 123 && MSGPACK_PP_ITERATION_START_4 >= 123
+# define MSGPACK_PP_ITERATION_4 123
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 122 && MSGPACK_PP_ITERATION_START_4 >= 122
+# define MSGPACK_PP_ITERATION_4 122
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 121 && MSGPACK_PP_ITERATION_START_4 >= 121
+# define MSGPACK_PP_ITERATION_4 121
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 120 && MSGPACK_PP_ITERATION_START_4 >= 120
+# define MSGPACK_PP_ITERATION_4 120
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 119 && MSGPACK_PP_ITERATION_START_4 >= 119
+# define MSGPACK_PP_ITERATION_4 119
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 118 && MSGPACK_PP_ITERATION_START_4 >= 118
+# define MSGPACK_PP_ITERATION_4 118
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 117 && MSGPACK_PP_ITERATION_START_4 >= 117
+# define MSGPACK_PP_ITERATION_4 117
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 116 && MSGPACK_PP_ITERATION_START_4 >= 116
+# define MSGPACK_PP_ITERATION_4 116
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 115 && MSGPACK_PP_ITERATION_START_4 >= 115
+# define MSGPACK_PP_ITERATION_4 115
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 114 && MSGPACK_PP_ITERATION_START_4 >= 114
+# define MSGPACK_PP_ITERATION_4 114
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 113 && MSGPACK_PP_ITERATION_START_4 >= 113
+# define MSGPACK_PP_ITERATION_4 113
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 112 && MSGPACK_PP_ITERATION_START_4 >= 112
+# define MSGPACK_PP_ITERATION_4 112
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 111 && MSGPACK_PP_ITERATION_START_4 >= 111
+# define MSGPACK_PP_ITERATION_4 111
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 110 && MSGPACK_PP_ITERATION_START_4 >= 110
+# define MSGPACK_PP_ITERATION_4 110
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 109 && MSGPACK_PP_ITERATION_START_4 >= 109
+# define MSGPACK_PP_ITERATION_4 109
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 108 && MSGPACK_PP_ITERATION_START_4 >= 108
+# define MSGPACK_PP_ITERATION_4 108
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 107 && MSGPACK_PP_ITERATION_START_4 >= 107
+# define MSGPACK_PP_ITERATION_4 107
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 106 && MSGPACK_PP_ITERATION_START_4 >= 106
+# define MSGPACK_PP_ITERATION_4 106
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 105 && MSGPACK_PP_ITERATION_START_4 >= 105
+# define MSGPACK_PP_ITERATION_4 105
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 104 && MSGPACK_PP_ITERATION_START_4 >= 104
+# define MSGPACK_PP_ITERATION_4 104
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 103 && MSGPACK_PP_ITERATION_START_4 >= 103
+# define MSGPACK_PP_ITERATION_4 103
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 102 && MSGPACK_PP_ITERATION_START_4 >= 102
+# define MSGPACK_PP_ITERATION_4 102
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 101 && MSGPACK_PP_ITERATION_START_4 >= 101
+# define MSGPACK_PP_ITERATION_4 101
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 100 && MSGPACK_PP_ITERATION_START_4 >= 100
+# define MSGPACK_PP_ITERATION_4 100
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 99 && MSGPACK_PP_ITERATION_START_4 >= 99
+# define MSGPACK_PP_ITERATION_4 99
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 98 && MSGPACK_PP_ITERATION_START_4 >= 98
+# define MSGPACK_PP_ITERATION_4 98
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 97 && MSGPACK_PP_ITERATION_START_4 >= 97
+# define MSGPACK_PP_ITERATION_4 97
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 96 && MSGPACK_PP_ITERATION_START_4 >= 96
+# define MSGPACK_PP_ITERATION_4 96
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 95 && MSGPACK_PP_ITERATION_START_4 >= 95
+# define MSGPACK_PP_ITERATION_4 95
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 94 && MSGPACK_PP_ITERATION_START_4 >= 94
+# define MSGPACK_PP_ITERATION_4 94
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 93 && MSGPACK_PP_ITERATION_START_4 >= 93
+# define MSGPACK_PP_ITERATION_4 93
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 92 && MSGPACK_PP_ITERATION_START_4 >= 92
+# define MSGPACK_PP_ITERATION_4 92
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 91 && MSGPACK_PP_ITERATION_START_4 >= 91
+# define MSGPACK_PP_ITERATION_4 91
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 90 && MSGPACK_PP_ITERATION_START_4 >= 90
+# define MSGPACK_PP_ITERATION_4 90
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 89 && MSGPACK_PP_ITERATION_START_4 >= 89
+# define MSGPACK_PP_ITERATION_4 89
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 88 && MSGPACK_PP_ITERATION_START_4 >= 88
+# define MSGPACK_PP_ITERATION_4 88
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 87 && MSGPACK_PP_ITERATION_START_4 >= 87
+# define MSGPACK_PP_ITERATION_4 87
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 86 && MSGPACK_PP_ITERATION_START_4 >= 86
+# define MSGPACK_PP_ITERATION_4 86
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 85 && MSGPACK_PP_ITERATION_START_4 >= 85
+# define MSGPACK_PP_ITERATION_4 85
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 84 && MSGPACK_PP_ITERATION_START_4 >= 84
+# define MSGPACK_PP_ITERATION_4 84
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 83 && MSGPACK_PP_ITERATION_START_4 >= 83
+# define MSGPACK_PP_ITERATION_4 83
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 82 && MSGPACK_PP_ITERATION_START_4 >= 82
+# define MSGPACK_PP_ITERATION_4 82
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 81 && MSGPACK_PP_ITERATION_START_4 >= 81
+# define MSGPACK_PP_ITERATION_4 81
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 80 && MSGPACK_PP_ITERATION_START_4 >= 80
+# define MSGPACK_PP_ITERATION_4 80
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 79 && MSGPACK_PP_ITERATION_START_4 >= 79
+# define MSGPACK_PP_ITERATION_4 79
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 78 && MSGPACK_PP_ITERATION_START_4 >= 78
+# define MSGPACK_PP_ITERATION_4 78
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 77 && MSGPACK_PP_ITERATION_START_4 >= 77
+# define MSGPACK_PP_ITERATION_4 77
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 76 && MSGPACK_PP_ITERATION_START_4 >= 76
+# define MSGPACK_PP_ITERATION_4 76
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 75 && MSGPACK_PP_ITERATION_START_4 >= 75
+# define MSGPACK_PP_ITERATION_4 75
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 74 && MSGPACK_PP_ITERATION_START_4 >= 74
+# define MSGPACK_PP_ITERATION_4 74
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 73 && MSGPACK_PP_ITERATION_START_4 >= 73
+# define MSGPACK_PP_ITERATION_4 73
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 72 && MSGPACK_PP_ITERATION_START_4 >= 72
+# define MSGPACK_PP_ITERATION_4 72
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 71 && MSGPACK_PP_ITERATION_START_4 >= 71
+# define MSGPACK_PP_ITERATION_4 71
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 70 && MSGPACK_PP_ITERATION_START_4 >= 70
+# define MSGPACK_PP_ITERATION_4 70
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 69 && MSGPACK_PP_ITERATION_START_4 >= 69
+# define MSGPACK_PP_ITERATION_4 69
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 68 && MSGPACK_PP_ITERATION_START_4 >= 68
+# define MSGPACK_PP_ITERATION_4 68
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 67 && MSGPACK_PP_ITERATION_START_4 >= 67
+# define MSGPACK_PP_ITERATION_4 67
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 66 && MSGPACK_PP_ITERATION_START_4 >= 66
+# define MSGPACK_PP_ITERATION_4 66
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 65 && MSGPACK_PP_ITERATION_START_4 >= 65
+# define MSGPACK_PP_ITERATION_4 65
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 64 && MSGPACK_PP_ITERATION_START_4 >= 64
+# define MSGPACK_PP_ITERATION_4 64
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 63 && MSGPACK_PP_ITERATION_START_4 >= 63
+# define MSGPACK_PP_ITERATION_4 63
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 62 && MSGPACK_PP_ITERATION_START_4 >= 62
+# define MSGPACK_PP_ITERATION_4 62
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 61 && MSGPACK_PP_ITERATION_START_4 >= 61
+# define MSGPACK_PP_ITERATION_4 61
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 60 && MSGPACK_PP_ITERATION_START_4 >= 60
+# define MSGPACK_PP_ITERATION_4 60
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 59 && MSGPACK_PP_ITERATION_START_4 >= 59
+# define MSGPACK_PP_ITERATION_4 59
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 58 && MSGPACK_PP_ITERATION_START_4 >= 58
+# define MSGPACK_PP_ITERATION_4 58
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 57 && MSGPACK_PP_ITERATION_START_4 >= 57
+# define MSGPACK_PP_ITERATION_4 57
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 56 && MSGPACK_PP_ITERATION_START_4 >= 56
+# define MSGPACK_PP_ITERATION_4 56
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 55 && MSGPACK_PP_ITERATION_START_4 >= 55
+# define MSGPACK_PP_ITERATION_4 55
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 54 && MSGPACK_PP_ITERATION_START_4 >= 54
+# define MSGPACK_PP_ITERATION_4 54
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 53 && MSGPACK_PP_ITERATION_START_4 >= 53
+# define MSGPACK_PP_ITERATION_4 53
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 52 && MSGPACK_PP_ITERATION_START_4 >= 52
+# define MSGPACK_PP_ITERATION_4 52
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 51 && MSGPACK_PP_ITERATION_START_4 >= 51
+# define MSGPACK_PP_ITERATION_4 51
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 50 && MSGPACK_PP_ITERATION_START_4 >= 50
+# define MSGPACK_PP_ITERATION_4 50
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 49 && MSGPACK_PP_ITERATION_START_4 >= 49
+# define MSGPACK_PP_ITERATION_4 49
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 48 && MSGPACK_PP_ITERATION_START_4 >= 48
+# define MSGPACK_PP_ITERATION_4 48
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 47 && MSGPACK_PP_ITERATION_START_4 >= 47
+# define MSGPACK_PP_ITERATION_4 47
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 46 && MSGPACK_PP_ITERATION_START_4 >= 46
+# define MSGPACK_PP_ITERATION_4 46
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 45 && MSGPACK_PP_ITERATION_START_4 >= 45
+# define MSGPACK_PP_ITERATION_4 45
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 44 && MSGPACK_PP_ITERATION_START_4 >= 44
+# define MSGPACK_PP_ITERATION_4 44
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 43 && MSGPACK_PP_ITERATION_START_4 >= 43
+# define MSGPACK_PP_ITERATION_4 43
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 42 && MSGPACK_PP_ITERATION_START_4 >= 42
+# define MSGPACK_PP_ITERATION_4 42
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 41 && MSGPACK_PP_ITERATION_START_4 >= 41
+# define MSGPACK_PP_ITERATION_4 41
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 40 && MSGPACK_PP_ITERATION_START_4 >= 40
+# define MSGPACK_PP_ITERATION_4 40
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 39 && MSGPACK_PP_ITERATION_START_4 >= 39
+# define MSGPACK_PP_ITERATION_4 39
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 38 && MSGPACK_PP_ITERATION_START_4 >= 38
+# define MSGPACK_PP_ITERATION_4 38
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 37 && MSGPACK_PP_ITERATION_START_4 >= 37
+# define MSGPACK_PP_ITERATION_4 37
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 36 && MSGPACK_PP_ITERATION_START_4 >= 36
+# define MSGPACK_PP_ITERATION_4 36
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 35 && MSGPACK_PP_ITERATION_START_4 >= 35
+# define MSGPACK_PP_ITERATION_4 35
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 34 && MSGPACK_PP_ITERATION_START_4 >= 34
+# define MSGPACK_PP_ITERATION_4 34
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 33 && MSGPACK_PP_ITERATION_START_4 >= 33
+# define MSGPACK_PP_ITERATION_4 33
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 32 && MSGPACK_PP_ITERATION_START_4 >= 32
+# define MSGPACK_PP_ITERATION_4 32
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 31 && MSGPACK_PP_ITERATION_START_4 >= 31
+# define MSGPACK_PP_ITERATION_4 31
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 30 && MSGPACK_PP_ITERATION_START_4 >= 30
+# define MSGPACK_PP_ITERATION_4 30
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 29 && MSGPACK_PP_ITERATION_START_4 >= 29
+# define MSGPACK_PP_ITERATION_4 29
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 28 && MSGPACK_PP_ITERATION_START_4 >= 28
+# define MSGPACK_PP_ITERATION_4 28
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 27 && MSGPACK_PP_ITERATION_START_4 >= 27
+# define MSGPACK_PP_ITERATION_4 27
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 26 && MSGPACK_PP_ITERATION_START_4 >= 26
+# define MSGPACK_PP_ITERATION_4 26
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 25 && MSGPACK_PP_ITERATION_START_4 >= 25
+# define MSGPACK_PP_ITERATION_4 25
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 24 && MSGPACK_PP_ITERATION_START_4 >= 24
+# define MSGPACK_PP_ITERATION_4 24
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 23 && MSGPACK_PP_ITERATION_START_4 >= 23
+# define MSGPACK_PP_ITERATION_4 23
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 22 && MSGPACK_PP_ITERATION_START_4 >= 22
+# define MSGPACK_PP_ITERATION_4 22
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 21 && MSGPACK_PP_ITERATION_START_4 >= 21
+# define MSGPACK_PP_ITERATION_4 21
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 20 && MSGPACK_PP_ITERATION_START_4 >= 20
+# define MSGPACK_PP_ITERATION_4 20
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 19 && MSGPACK_PP_ITERATION_START_4 >= 19
+# define MSGPACK_PP_ITERATION_4 19
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 18 && MSGPACK_PP_ITERATION_START_4 >= 18
+# define MSGPACK_PP_ITERATION_4 18
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 17 && MSGPACK_PP_ITERATION_START_4 >= 17
+# define MSGPACK_PP_ITERATION_4 17
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 16 && MSGPACK_PP_ITERATION_START_4 >= 16
+# define MSGPACK_PP_ITERATION_4 16
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 15 && MSGPACK_PP_ITERATION_START_4 >= 15
+# define MSGPACK_PP_ITERATION_4 15
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 14 && MSGPACK_PP_ITERATION_START_4 >= 14
+# define MSGPACK_PP_ITERATION_4 14
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 13 && MSGPACK_PP_ITERATION_START_4 >= 13
+# define MSGPACK_PP_ITERATION_4 13
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 12 && MSGPACK_PP_ITERATION_START_4 >= 12
+# define MSGPACK_PP_ITERATION_4 12
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 11 && MSGPACK_PP_ITERATION_START_4 >= 11
+# define MSGPACK_PP_ITERATION_4 11
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 10 && MSGPACK_PP_ITERATION_START_4 >= 10
+# define MSGPACK_PP_ITERATION_4 10
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 9 && MSGPACK_PP_ITERATION_START_4 >= 9
+# define MSGPACK_PP_ITERATION_4 9
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 8 && MSGPACK_PP_ITERATION_START_4 >= 8
+# define MSGPACK_PP_ITERATION_4 8
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 7 && MSGPACK_PP_ITERATION_START_4 >= 7
+# define MSGPACK_PP_ITERATION_4 7
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 6 && MSGPACK_PP_ITERATION_START_4 >= 6
+# define MSGPACK_PP_ITERATION_4 6
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 5 && MSGPACK_PP_ITERATION_START_4 >= 5
+# define MSGPACK_PP_ITERATION_4 5
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 4 && MSGPACK_PP_ITERATION_START_4 >= 4
+# define MSGPACK_PP_ITERATION_4 4
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 3 && MSGPACK_PP_ITERATION_START_4 >= 3
+# define MSGPACK_PP_ITERATION_4 3
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 2 && MSGPACK_PP_ITERATION_START_4 >= 2
+# define MSGPACK_PP_ITERATION_4 2
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 1 && MSGPACK_PP_ITERATION_START_4 >= 1
+# define MSGPACK_PP_ITERATION_4 1
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_4 <= 0 && MSGPACK_PP_ITERATION_START_4 >= 0
+# define MSGPACK_PP_ITERATION_4 0
+# include MSGPACK_PP_FILENAME_4
+# undef MSGPACK_PP_ITERATION_4
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp
new file mode 100644
index 000000000..6cee24d99
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/iter/reverse5.hpp
@@ -0,0 +1,1296 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 256 && MSGPACK_PP_ITERATION_START_5 >= 256
+# define MSGPACK_PP_ITERATION_5 256
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 255 && MSGPACK_PP_ITERATION_START_5 >= 255
+# define MSGPACK_PP_ITERATION_5 255
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 254 && MSGPACK_PP_ITERATION_START_5 >= 254
+# define MSGPACK_PP_ITERATION_5 254
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 253 && MSGPACK_PP_ITERATION_START_5 >= 253
+# define MSGPACK_PP_ITERATION_5 253
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 252 && MSGPACK_PP_ITERATION_START_5 >= 252
+# define MSGPACK_PP_ITERATION_5 252
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 251 && MSGPACK_PP_ITERATION_START_5 >= 251
+# define MSGPACK_PP_ITERATION_5 251
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 250 && MSGPACK_PP_ITERATION_START_5 >= 250
+# define MSGPACK_PP_ITERATION_5 250
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 249 && MSGPACK_PP_ITERATION_START_5 >= 249
+# define MSGPACK_PP_ITERATION_5 249
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 248 && MSGPACK_PP_ITERATION_START_5 >= 248
+# define MSGPACK_PP_ITERATION_5 248
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 247 && MSGPACK_PP_ITERATION_START_5 >= 247
+# define MSGPACK_PP_ITERATION_5 247
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 246 && MSGPACK_PP_ITERATION_START_5 >= 246
+# define MSGPACK_PP_ITERATION_5 246
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 245 && MSGPACK_PP_ITERATION_START_5 >= 245
+# define MSGPACK_PP_ITERATION_5 245
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 244 && MSGPACK_PP_ITERATION_START_5 >= 244
+# define MSGPACK_PP_ITERATION_5 244
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 243 && MSGPACK_PP_ITERATION_START_5 >= 243
+# define MSGPACK_PP_ITERATION_5 243
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 242 && MSGPACK_PP_ITERATION_START_5 >= 242
+# define MSGPACK_PP_ITERATION_5 242
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 241 && MSGPACK_PP_ITERATION_START_5 >= 241
+# define MSGPACK_PP_ITERATION_5 241
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 240 && MSGPACK_PP_ITERATION_START_5 >= 240
+# define MSGPACK_PP_ITERATION_5 240
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 239 && MSGPACK_PP_ITERATION_START_5 >= 239
+# define MSGPACK_PP_ITERATION_5 239
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 238 && MSGPACK_PP_ITERATION_START_5 >= 238
+# define MSGPACK_PP_ITERATION_5 238
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 237 && MSGPACK_PP_ITERATION_START_5 >= 237
+# define MSGPACK_PP_ITERATION_5 237
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 236 && MSGPACK_PP_ITERATION_START_5 >= 236
+# define MSGPACK_PP_ITERATION_5 236
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 235 && MSGPACK_PP_ITERATION_START_5 >= 235
+# define MSGPACK_PP_ITERATION_5 235
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 234 && MSGPACK_PP_ITERATION_START_5 >= 234
+# define MSGPACK_PP_ITERATION_5 234
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 233 && MSGPACK_PP_ITERATION_START_5 >= 233
+# define MSGPACK_PP_ITERATION_5 233
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 232 && MSGPACK_PP_ITERATION_START_5 >= 232
+# define MSGPACK_PP_ITERATION_5 232
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 231 && MSGPACK_PP_ITERATION_START_5 >= 231
+# define MSGPACK_PP_ITERATION_5 231
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 230 && MSGPACK_PP_ITERATION_START_5 >= 230
+# define MSGPACK_PP_ITERATION_5 230
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 229 && MSGPACK_PP_ITERATION_START_5 >= 229
+# define MSGPACK_PP_ITERATION_5 229
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 228 && MSGPACK_PP_ITERATION_START_5 >= 228
+# define MSGPACK_PP_ITERATION_5 228
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 227 && MSGPACK_PP_ITERATION_START_5 >= 227
+# define MSGPACK_PP_ITERATION_5 227
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 226 && MSGPACK_PP_ITERATION_START_5 >= 226
+# define MSGPACK_PP_ITERATION_5 226
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 225 && MSGPACK_PP_ITERATION_START_5 >= 225
+# define MSGPACK_PP_ITERATION_5 225
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 224 && MSGPACK_PP_ITERATION_START_5 >= 224
+# define MSGPACK_PP_ITERATION_5 224
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 223 && MSGPACK_PP_ITERATION_START_5 >= 223
+# define MSGPACK_PP_ITERATION_5 223
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 222 && MSGPACK_PP_ITERATION_START_5 >= 222
+# define MSGPACK_PP_ITERATION_5 222
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 221 && MSGPACK_PP_ITERATION_START_5 >= 221
+# define MSGPACK_PP_ITERATION_5 221
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 220 && MSGPACK_PP_ITERATION_START_5 >= 220
+# define MSGPACK_PP_ITERATION_5 220
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 219 && MSGPACK_PP_ITERATION_START_5 >= 219
+# define MSGPACK_PP_ITERATION_5 219
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 218 && MSGPACK_PP_ITERATION_START_5 >= 218
+# define MSGPACK_PP_ITERATION_5 218
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 217 && MSGPACK_PP_ITERATION_START_5 >= 217
+# define MSGPACK_PP_ITERATION_5 217
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 216 && MSGPACK_PP_ITERATION_START_5 >= 216
+# define MSGPACK_PP_ITERATION_5 216
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 215 && MSGPACK_PP_ITERATION_START_5 >= 215
+# define MSGPACK_PP_ITERATION_5 215
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 214 && MSGPACK_PP_ITERATION_START_5 >= 214
+# define MSGPACK_PP_ITERATION_5 214
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 213 && MSGPACK_PP_ITERATION_START_5 >= 213
+# define MSGPACK_PP_ITERATION_5 213
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 212 && MSGPACK_PP_ITERATION_START_5 >= 212
+# define MSGPACK_PP_ITERATION_5 212
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 211 && MSGPACK_PP_ITERATION_START_5 >= 211
+# define MSGPACK_PP_ITERATION_5 211
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 210 && MSGPACK_PP_ITERATION_START_5 >= 210
+# define MSGPACK_PP_ITERATION_5 210
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 209 && MSGPACK_PP_ITERATION_START_5 >= 209
+# define MSGPACK_PP_ITERATION_5 209
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 208 && MSGPACK_PP_ITERATION_START_5 >= 208
+# define MSGPACK_PP_ITERATION_5 208
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 207 && MSGPACK_PP_ITERATION_START_5 >= 207
+# define MSGPACK_PP_ITERATION_5 207
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 206 && MSGPACK_PP_ITERATION_START_5 >= 206
+# define MSGPACK_PP_ITERATION_5 206
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 205 && MSGPACK_PP_ITERATION_START_5 >= 205
+# define MSGPACK_PP_ITERATION_5 205
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 204 && MSGPACK_PP_ITERATION_START_5 >= 204
+# define MSGPACK_PP_ITERATION_5 204
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 203 && MSGPACK_PP_ITERATION_START_5 >= 203
+# define MSGPACK_PP_ITERATION_5 203
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 202 && MSGPACK_PP_ITERATION_START_5 >= 202
+# define MSGPACK_PP_ITERATION_5 202
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 201 && MSGPACK_PP_ITERATION_START_5 >= 201
+# define MSGPACK_PP_ITERATION_5 201
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 200 && MSGPACK_PP_ITERATION_START_5 >= 200
+# define MSGPACK_PP_ITERATION_5 200
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 199 && MSGPACK_PP_ITERATION_START_5 >= 199
+# define MSGPACK_PP_ITERATION_5 199
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 198 && MSGPACK_PP_ITERATION_START_5 >= 198
+# define MSGPACK_PP_ITERATION_5 198
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 197 && MSGPACK_PP_ITERATION_START_5 >= 197
+# define MSGPACK_PP_ITERATION_5 197
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 196 && MSGPACK_PP_ITERATION_START_5 >= 196
+# define MSGPACK_PP_ITERATION_5 196
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 195 && MSGPACK_PP_ITERATION_START_5 >= 195
+# define MSGPACK_PP_ITERATION_5 195
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 194 && MSGPACK_PP_ITERATION_START_5 >= 194
+# define MSGPACK_PP_ITERATION_5 194
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 193 && MSGPACK_PP_ITERATION_START_5 >= 193
+# define MSGPACK_PP_ITERATION_5 193
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 192 && MSGPACK_PP_ITERATION_START_5 >= 192
+# define MSGPACK_PP_ITERATION_5 192
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 191 && MSGPACK_PP_ITERATION_START_5 >= 191
+# define MSGPACK_PP_ITERATION_5 191
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 190 && MSGPACK_PP_ITERATION_START_5 >= 190
+# define MSGPACK_PP_ITERATION_5 190
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 189 && MSGPACK_PP_ITERATION_START_5 >= 189
+# define MSGPACK_PP_ITERATION_5 189
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 188 && MSGPACK_PP_ITERATION_START_5 >= 188
+# define MSGPACK_PP_ITERATION_5 188
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 187 && MSGPACK_PP_ITERATION_START_5 >= 187
+# define MSGPACK_PP_ITERATION_5 187
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 186 && MSGPACK_PP_ITERATION_START_5 >= 186
+# define MSGPACK_PP_ITERATION_5 186
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 185 && MSGPACK_PP_ITERATION_START_5 >= 185
+# define MSGPACK_PP_ITERATION_5 185
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 184 && MSGPACK_PP_ITERATION_START_5 >= 184
+# define MSGPACK_PP_ITERATION_5 184
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 183 && MSGPACK_PP_ITERATION_START_5 >= 183
+# define MSGPACK_PP_ITERATION_5 183
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 182 && MSGPACK_PP_ITERATION_START_5 >= 182
+# define MSGPACK_PP_ITERATION_5 182
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 181 && MSGPACK_PP_ITERATION_START_5 >= 181
+# define MSGPACK_PP_ITERATION_5 181
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 180 && MSGPACK_PP_ITERATION_START_5 >= 180
+# define MSGPACK_PP_ITERATION_5 180
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 179 && MSGPACK_PP_ITERATION_START_5 >= 179
+# define MSGPACK_PP_ITERATION_5 179
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 178 && MSGPACK_PP_ITERATION_START_5 >= 178
+# define MSGPACK_PP_ITERATION_5 178
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 177 && MSGPACK_PP_ITERATION_START_5 >= 177
+# define MSGPACK_PP_ITERATION_5 177
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 176 && MSGPACK_PP_ITERATION_START_5 >= 176
+# define MSGPACK_PP_ITERATION_5 176
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 175 && MSGPACK_PP_ITERATION_START_5 >= 175
+# define MSGPACK_PP_ITERATION_5 175
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 174 && MSGPACK_PP_ITERATION_START_5 >= 174
+# define MSGPACK_PP_ITERATION_5 174
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 173 && MSGPACK_PP_ITERATION_START_5 >= 173
+# define MSGPACK_PP_ITERATION_5 173
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 172 && MSGPACK_PP_ITERATION_START_5 >= 172
+# define MSGPACK_PP_ITERATION_5 172
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 171 && MSGPACK_PP_ITERATION_START_5 >= 171
+# define MSGPACK_PP_ITERATION_5 171
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 170 && MSGPACK_PP_ITERATION_START_5 >= 170
+# define MSGPACK_PP_ITERATION_5 170
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 169 && MSGPACK_PP_ITERATION_START_5 >= 169
+# define MSGPACK_PP_ITERATION_5 169
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 168 && MSGPACK_PP_ITERATION_START_5 >= 168
+# define MSGPACK_PP_ITERATION_5 168
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 167 && MSGPACK_PP_ITERATION_START_5 >= 167
+# define MSGPACK_PP_ITERATION_5 167
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 166 && MSGPACK_PP_ITERATION_START_5 >= 166
+# define MSGPACK_PP_ITERATION_5 166
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 165 && MSGPACK_PP_ITERATION_START_5 >= 165
+# define MSGPACK_PP_ITERATION_5 165
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 164 && MSGPACK_PP_ITERATION_START_5 >= 164
+# define MSGPACK_PP_ITERATION_5 164
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 163 && MSGPACK_PP_ITERATION_START_5 >= 163
+# define MSGPACK_PP_ITERATION_5 163
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 162 && MSGPACK_PP_ITERATION_START_5 >= 162
+# define MSGPACK_PP_ITERATION_5 162
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 161 && MSGPACK_PP_ITERATION_START_5 >= 161
+# define MSGPACK_PP_ITERATION_5 161
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 160 && MSGPACK_PP_ITERATION_START_5 >= 160
+# define MSGPACK_PP_ITERATION_5 160
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 159 && MSGPACK_PP_ITERATION_START_5 >= 159
+# define MSGPACK_PP_ITERATION_5 159
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 158 && MSGPACK_PP_ITERATION_START_5 >= 158
+# define MSGPACK_PP_ITERATION_5 158
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 157 && MSGPACK_PP_ITERATION_START_5 >= 157
+# define MSGPACK_PP_ITERATION_5 157
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 156 && MSGPACK_PP_ITERATION_START_5 >= 156
+# define MSGPACK_PP_ITERATION_5 156
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 155 && MSGPACK_PP_ITERATION_START_5 >= 155
+# define MSGPACK_PP_ITERATION_5 155
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 154 && MSGPACK_PP_ITERATION_START_5 >= 154
+# define MSGPACK_PP_ITERATION_5 154
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 153 && MSGPACK_PP_ITERATION_START_5 >= 153
+# define MSGPACK_PP_ITERATION_5 153
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 152 && MSGPACK_PP_ITERATION_START_5 >= 152
+# define MSGPACK_PP_ITERATION_5 152
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 151 && MSGPACK_PP_ITERATION_START_5 >= 151
+# define MSGPACK_PP_ITERATION_5 151
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 150 && MSGPACK_PP_ITERATION_START_5 >= 150
+# define MSGPACK_PP_ITERATION_5 150
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 149 && MSGPACK_PP_ITERATION_START_5 >= 149
+# define MSGPACK_PP_ITERATION_5 149
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 148 && MSGPACK_PP_ITERATION_START_5 >= 148
+# define MSGPACK_PP_ITERATION_5 148
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 147 && MSGPACK_PP_ITERATION_START_5 >= 147
+# define MSGPACK_PP_ITERATION_5 147
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 146 && MSGPACK_PP_ITERATION_START_5 >= 146
+# define MSGPACK_PP_ITERATION_5 146
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 145 && MSGPACK_PP_ITERATION_START_5 >= 145
+# define MSGPACK_PP_ITERATION_5 145
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 144 && MSGPACK_PP_ITERATION_START_5 >= 144
+# define MSGPACK_PP_ITERATION_5 144
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 143 && MSGPACK_PP_ITERATION_START_5 >= 143
+# define MSGPACK_PP_ITERATION_5 143
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 142 && MSGPACK_PP_ITERATION_START_5 >= 142
+# define MSGPACK_PP_ITERATION_5 142
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 141 && MSGPACK_PP_ITERATION_START_5 >= 141
+# define MSGPACK_PP_ITERATION_5 141
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 140 && MSGPACK_PP_ITERATION_START_5 >= 140
+# define MSGPACK_PP_ITERATION_5 140
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 139 && MSGPACK_PP_ITERATION_START_5 >= 139
+# define MSGPACK_PP_ITERATION_5 139
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 138 && MSGPACK_PP_ITERATION_START_5 >= 138
+# define MSGPACK_PP_ITERATION_5 138
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 137 && MSGPACK_PP_ITERATION_START_5 >= 137
+# define MSGPACK_PP_ITERATION_5 137
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 136 && MSGPACK_PP_ITERATION_START_5 >= 136
+# define MSGPACK_PP_ITERATION_5 136
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 135 && MSGPACK_PP_ITERATION_START_5 >= 135
+# define MSGPACK_PP_ITERATION_5 135
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 134 && MSGPACK_PP_ITERATION_START_5 >= 134
+# define MSGPACK_PP_ITERATION_5 134
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 133 && MSGPACK_PP_ITERATION_START_5 >= 133
+# define MSGPACK_PP_ITERATION_5 133
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 132 && MSGPACK_PP_ITERATION_START_5 >= 132
+# define MSGPACK_PP_ITERATION_5 132
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 131 && MSGPACK_PP_ITERATION_START_5 >= 131
+# define MSGPACK_PP_ITERATION_5 131
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 130 && MSGPACK_PP_ITERATION_START_5 >= 130
+# define MSGPACK_PP_ITERATION_5 130
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 129 && MSGPACK_PP_ITERATION_START_5 >= 129
+# define MSGPACK_PP_ITERATION_5 129
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 128 && MSGPACK_PP_ITERATION_START_5 >= 128
+# define MSGPACK_PP_ITERATION_5 128
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 127 && MSGPACK_PP_ITERATION_START_5 >= 127
+# define MSGPACK_PP_ITERATION_5 127
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 126 && MSGPACK_PP_ITERATION_START_5 >= 126
+# define MSGPACK_PP_ITERATION_5 126
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 125 && MSGPACK_PP_ITERATION_START_5 >= 125
+# define MSGPACK_PP_ITERATION_5 125
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 124 && MSGPACK_PP_ITERATION_START_5 >= 124
+# define MSGPACK_PP_ITERATION_5 124
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 123 && MSGPACK_PP_ITERATION_START_5 >= 123
+# define MSGPACK_PP_ITERATION_5 123
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 122 && MSGPACK_PP_ITERATION_START_5 >= 122
+# define MSGPACK_PP_ITERATION_5 122
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 121 && MSGPACK_PP_ITERATION_START_5 >= 121
+# define MSGPACK_PP_ITERATION_5 121
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 120 && MSGPACK_PP_ITERATION_START_5 >= 120
+# define MSGPACK_PP_ITERATION_5 120
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 119 && MSGPACK_PP_ITERATION_START_5 >= 119
+# define MSGPACK_PP_ITERATION_5 119
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 118 && MSGPACK_PP_ITERATION_START_5 >= 118
+# define MSGPACK_PP_ITERATION_5 118
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 117 && MSGPACK_PP_ITERATION_START_5 >= 117
+# define MSGPACK_PP_ITERATION_5 117
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 116 && MSGPACK_PP_ITERATION_START_5 >= 116
+# define MSGPACK_PP_ITERATION_5 116
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 115 && MSGPACK_PP_ITERATION_START_5 >= 115
+# define MSGPACK_PP_ITERATION_5 115
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 114 && MSGPACK_PP_ITERATION_START_5 >= 114
+# define MSGPACK_PP_ITERATION_5 114
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 113 && MSGPACK_PP_ITERATION_START_5 >= 113
+# define MSGPACK_PP_ITERATION_5 113
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 112 && MSGPACK_PP_ITERATION_START_5 >= 112
+# define MSGPACK_PP_ITERATION_5 112
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 111 && MSGPACK_PP_ITERATION_START_5 >= 111
+# define MSGPACK_PP_ITERATION_5 111
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 110 && MSGPACK_PP_ITERATION_START_5 >= 110
+# define MSGPACK_PP_ITERATION_5 110
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 109 && MSGPACK_PP_ITERATION_START_5 >= 109
+# define MSGPACK_PP_ITERATION_5 109
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 108 && MSGPACK_PP_ITERATION_START_5 >= 108
+# define MSGPACK_PP_ITERATION_5 108
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 107 && MSGPACK_PP_ITERATION_START_5 >= 107
+# define MSGPACK_PP_ITERATION_5 107
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 106 && MSGPACK_PP_ITERATION_START_5 >= 106
+# define MSGPACK_PP_ITERATION_5 106
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 105 && MSGPACK_PP_ITERATION_START_5 >= 105
+# define MSGPACK_PP_ITERATION_5 105
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 104 && MSGPACK_PP_ITERATION_START_5 >= 104
+# define MSGPACK_PP_ITERATION_5 104
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 103 && MSGPACK_PP_ITERATION_START_5 >= 103
+# define MSGPACK_PP_ITERATION_5 103
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 102 && MSGPACK_PP_ITERATION_START_5 >= 102
+# define MSGPACK_PP_ITERATION_5 102
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 101 && MSGPACK_PP_ITERATION_START_5 >= 101
+# define MSGPACK_PP_ITERATION_5 101
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 100 && MSGPACK_PP_ITERATION_START_5 >= 100
+# define MSGPACK_PP_ITERATION_5 100
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 99 && MSGPACK_PP_ITERATION_START_5 >= 99
+# define MSGPACK_PP_ITERATION_5 99
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 98 && MSGPACK_PP_ITERATION_START_5 >= 98
+# define MSGPACK_PP_ITERATION_5 98
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 97 && MSGPACK_PP_ITERATION_START_5 >= 97
+# define MSGPACK_PP_ITERATION_5 97
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 96 && MSGPACK_PP_ITERATION_START_5 >= 96
+# define MSGPACK_PP_ITERATION_5 96
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 95 && MSGPACK_PP_ITERATION_START_5 >= 95
+# define MSGPACK_PP_ITERATION_5 95
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 94 && MSGPACK_PP_ITERATION_START_5 >= 94
+# define MSGPACK_PP_ITERATION_5 94
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 93 && MSGPACK_PP_ITERATION_START_5 >= 93
+# define MSGPACK_PP_ITERATION_5 93
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 92 && MSGPACK_PP_ITERATION_START_5 >= 92
+# define MSGPACK_PP_ITERATION_5 92
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 91 && MSGPACK_PP_ITERATION_START_5 >= 91
+# define MSGPACK_PP_ITERATION_5 91
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 90 && MSGPACK_PP_ITERATION_START_5 >= 90
+# define MSGPACK_PP_ITERATION_5 90
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 89 && MSGPACK_PP_ITERATION_START_5 >= 89
+# define MSGPACK_PP_ITERATION_5 89
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 88 && MSGPACK_PP_ITERATION_START_5 >= 88
+# define MSGPACK_PP_ITERATION_5 88
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 87 && MSGPACK_PP_ITERATION_START_5 >= 87
+# define MSGPACK_PP_ITERATION_5 87
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 86 && MSGPACK_PP_ITERATION_START_5 >= 86
+# define MSGPACK_PP_ITERATION_5 86
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 85 && MSGPACK_PP_ITERATION_START_5 >= 85
+# define MSGPACK_PP_ITERATION_5 85
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 84 && MSGPACK_PP_ITERATION_START_5 >= 84
+# define MSGPACK_PP_ITERATION_5 84
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 83 && MSGPACK_PP_ITERATION_START_5 >= 83
+# define MSGPACK_PP_ITERATION_5 83
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 82 && MSGPACK_PP_ITERATION_START_5 >= 82
+# define MSGPACK_PP_ITERATION_5 82
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 81 && MSGPACK_PP_ITERATION_START_5 >= 81
+# define MSGPACK_PP_ITERATION_5 81
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 80 && MSGPACK_PP_ITERATION_START_5 >= 80
+# define MSGPACK_PP_ITERATION_5 80
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 79 && MSGPACK_PP_ITERATION_START_5 >= 79
+# define MSGPACK_PP_ITERATION_5 79
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 78 && MSGPACK_PP_ITERATION_START_5 >= 78
+# define MSGPACK_PP_ITERATION_5 78
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 77 && MSGPACK_PP_ITERATION_START_5 >= 77
+# define MSGPACK_PP_ITERATION_5 77
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 76 && MSGPACK_PP_ITERATION_START_5 >= 76
+# define MSGPACK_PP_ITERATION_5 76
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 75 && MSGPACK_PP_ITERATION_START_5 >= 75
+# define MSGPACK_PP_ITERATION_5 75
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 74 && MSGPACK_PP_ITERATION_START_5 >= 74
+# define MSGPACK_PP_ITERATION_5 74
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 73 && MSGPACK_PP_ITERATION_START_5 >= 73
+# define MSGPACK_PP_ITERATION_5 73
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 72 && MSGPACK_PP_ITERATION_START_5 >= 72
+# define MSGPACK_PP_ITERATION_5 72
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 71 && MSGPACK_PP_ITERATION_START_5 >= 71
+# define MSGPACK_PP_ITERATION_5 71
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 70 && MSGPACK_PP_ITERATION_START_5 >= 70
+# define MSGPACK_PP_ITERATION_5 70
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 69 && MSGPACK_PP_ITERATION_START_5 >= 69
+# define MSGPACK_PP_ITERATION_5 69
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 68 && MSGPACK_PP_ITERATION_START_5 >= 68
+# define MSGPACK_PP_ITERATION_5 68
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 67 && MSGPACK_PP_ITERATION_START_5 >= 67
+# define MSGPACK_PP_ITERATION_5 67
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 66 && MSGPACK_PP_ITERATION_START_5 >= 66
+# define MSGPACK_PP_ITERATION_5 66
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 65 && MSGPACK_PP_ITERATION_START_5 >= 65
+# define MSGPACK_PP_ITERATION_5 65
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 64 && MSGPACK_PP_ITERATION_START_5 >= 64
+# define MSGPACK_PP_ITERATION_5 64
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 63 && MSGPACK_PP_ITERATION_START_5 >= 63
+# define MSGPACK_PP_ITERATION_5 63
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 62 && MSGPACK_PP_ITERATION_START_5 >= 62
+# define MSGPACK_PP_ITERATION_5 62
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 61 && MSGPACK_PP_ITERATION_START_5 >= 61
+# define MSGPACK_PP_ITERATION_5 61
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 60 && MSGPACK_PP_ITERATION_START_5 >= 60
+# define MSGPACK_PP_ITERATION_5 60
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 59 && MSGPACK_PP_ITERATION_START_5 >= 59
+# define MSGPACK_PP_ITERATION_5 59
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 58 && MSGPACK_PP_ITERATION_START_5 >= 58
+# define MSGPACK_PP_ITERATION_5 58
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 57 && MSGPACK_PP_ITERATION_START_5 >= 57
+# define MSGPACK_PP_ITERATION_5 57
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 56 && MSGPACK_PP_ITERATION_START_5 >= 56
+# define MSGPACK_PP_ITERATION_5 56
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 55 && MSGPACK_PP_ITERATION_START_5 >= 55
+# define MSGPACK_PP_ITERATION_5 55
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 54 && MSGPACK_PP_ITERATION_START_5 >= 54
+# define MSGPACK_PP_ITERATION_5 54
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 53 && MSGPACK_PP_ITERATION_START_5 >= 53
+# define MSGPACK_PP_ITERATION_5 53
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 52 && MSGPACK_PP_ITERATION_START_5 >= 52
+# define MSGPACK_PP_ITERATION_5 52
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 51 && MSGPACK_PP_ITERATION_START_5 >= 51
+# define MSGPACK_PP_ITERATION_5 51
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 50 && MSGPACK_PP_ITERATION_START_5 >= 50
+# define MSGPACK_PP_ITERATION_5 50
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 49 && MSGPACK_PP_ITERATION_START_5 >= 49
+# define MSGPACK_PP_ITERATION_5 49
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 48 && MSGPACK_PP_ITERATION_START_5 >= 48
+# define MSGPACK_PP_ITERATION_5 48
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 47 && MSGPACK_PP_ITERATION_START_5 >= 47
+# define MSGPACK_PP_ITERATION_5 47
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 46 && MSGPACK_PP_ITERATION_START_5 >= 46
+# define MSGPACK_PP_ITERATION_5 46
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 45 && MSGPACK_PP_ITERATION_START_5 >= 45
+# define MSGPACK_PP_ITERATION_5 45
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 44 && MSGPACK_PP_ITERATION_START_5 >= 44
+# define MSGPACK_PP_ITERATION_5 44
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 43 && MSGPACK_PP_ITERATION_START_5 >= 43
+# define MSGPACK_PP_ITERATION_5 43
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 42 && MSGPACK_PP_ITERATION_START_5 >= 42
+# define MSGPACK_PP_ITERATION_5 42
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 41 && MSGPACK_PP_ITERATION_START_5 >= 41
+# define MSGPACK_PP_ITERATION_5 41
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 40 && MSGPACK_PP_ITERATION_START_5 >= 40
+# define MSGPACK_PP_ITERATION_5 40
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 39 && MSGPACK_PP_ITERATION_START_5 >= 39
+# define MSGPACK_PP_ITERATION_5 39
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 38 && MSGPACK_PP_ITERATION_START_5 >= 38
+# define MSGPACK_PP_ITERATION_5 38
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 37 && MSGPACK_PP_ITERATION_START_5 >= 37
+# define MSGPACK_PP_ITERATION_5 37
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 36 && MSGPACK_PP_ITERATION_START_5 >= 36
+# define MSGPACK_PP_ITERATION_5 36
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 35 && MSGPACK_PP_ITERATION_START_5 >= 35
+# define MSGPACK_PP_ITERATION_5 35
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 34 && MSGPACK_PP_ITERATION_START_5 >= 34
+# define MSGPACK_PP_ITERATION_5 34
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 33 && MSGPACK_PP_ITERATION_START_5 >= 33
+# define MSGPACK_PP_ITERATION_5 33
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 32 && MSGPACK_PP_ITERATION_START_5 >= 32
+# define MSGPACK_PP_ITERATION_5 32
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 31 && MSGPACK_PP_ITERATION_START_5 >= 31
+# define MSGPACK_PP_ITERATION_5 31
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 30 && MSGPACK_PP_ITERATION_START_5 >= 30
+# define MSGPACK_PP_ITERATION_5 30
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 29 && MSGPACK_PP_ITERATION_START_5 >= 29
+# define MSGPACK_PP_ITERATION_5 29
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 28 && MSGPACK_PP_ITERATION_START_5 >= 28
+# define MSGPACK_PP_ITERATION_5 28
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 27 && MSGPACK_PP_ITERATION_START_5 >= 27
+# define MSGPACK_PP_ITERATION_5 27
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 26 && MSGPACK_PP_ITERATION_START_5 >= 26
+# define MSGPACK_PP_ITERATION_5 26
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 25 && MSGPACK_PP_ITERATION_START_5 >= 25
+# define MSGPACK_PP_ITERATION_5 25
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 24 && MSGPACK_PP_ITERATION_START_5 >= 24
+# define MSGPACK_PP_ITERATION_5 24
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 23 && MSGPACK_PP_ITERATION_START_5 >= 23
+# define MSGPACK_PP_ITERATION_5 23
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 22 && MSGPACK_PP_ITERATION_START_5 >= 22
+# define MSGPACK_PP_ITERATION_5 22
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 21 && MSGPACK_PP_ITERATION_START_5 >= 21
+# define MSGPACK_PP_ITERATION_5 21
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 20 && MSGPACK_PP_ITERATION_START_5 >= 20
+# define MSGPACK_PP_ITERATION_5 20
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 19 && MSGPACK_PP_ITERATION_START_5 >= 19
+# define MSGPACK_PP_ITERATION_5 19
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 18 && MSGPACK_PP_ITERATION_START_5 >= 18
+# define MSGPACK_PP_ITERATION_5 18
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 17 && MSGPACK_PP_ITERATION_START_5 >= 17
+# define MSGPACK_PP_ITERATION_5 17
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 16 && MSGPACK_PP_ITERATION_START_5 >= 16
+# define MSGPACK_PP_ITERATION_5 16
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 15 && MSGPACK_PP_ITERATION_START_5 >= 15
+# define MSGPACK_PP_ITERATION_5 15
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 14 && MSGPACK_PP_ITERATION_START_5 >= 14
+# define MSGPACK_PP_ITERATION_5 14
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 13 && MSGPACK_PP_ITERATION_START_5 >= 13
+# define MSGPACK_PP_ITERATION_5 13
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 12 && MSGPACK_PP_ITERATION_START_5 >= 12
+# define MSGPACK_PP_ITERATION_5 12
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 11 && MSGPACK_PP_ITERATION_START_5 >= 11
+# define MSGPACK_PP_ITERATION_5 11
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 10 && MSGPACK_PP_ITERATION_START_5 >= 10
+# define MSGPACK_PP_ITERATION_5 10
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 9 && MSGPACK_PP_ITERATION_START_5 >= 9
+# define MSGPACK_PP_ITERATION_5 9
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 8 && MSGPACK_PP_ITERATION_START_5 >= 8
+# define MSGPACK_PP_ITERATION_5 8
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 7 && MSGPACK_PP_ITERATION_START_5 >= 7
+# define MSGPACK_PP_ITERATION_5 7
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 6 && MSGPACK_PP_ITERATION_START_5 >= 6
+# define MSGPACK_PP_ITERATION_5 6
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 5 && MSGPACK_PP_ITERATION_START_5 >= 5
+# define MSGPACK_PP_ITERATION_5 5
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 4 && MSGPACK_PP_ITERATION_START_5 >= 4
+# define MSGPACK_PP_ITERATION_5 4
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 3 && MSGPACK_PP_ITERATION_START_5 >= 3
+# define MSGPACK_PP_ITERATION_5 3
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 2 && MSGPACK_PP_ITERATION_START_5 >= 2
+# define MSGPACK_PP_ITERATION_5 2
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 1 && MSGPACK_PP_ITERATION_START_5 >= 1
+# define MSGPACK_PP_ITERATION_5 1
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
+# if MSGPACK_PP_ITERATION_FINISH_5 <= 0 && MSGPACK_PP_ITERATION_START_5 >= 0
+# define MSGPACK_PP_ITERATION_5 0
+# include MSGPACK_PP_FILENAME_5
+# undef MSGPACK_PP_ITERATION_5
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/local.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/local.hpp
new file mode 100644
index 000000000..399c1548e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/local.hpp
@@ -0,0 +1,812 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if !defined(MSGPACK_PP_LOCAL_LIMITS)
+# error MSGPACK_PP_ERROR: local iteration boundaries are not defined
+# elif !defined(MSGPACK_PP_LOCAL_MACRO)
+# error MSGPACK_PP_ERROR: local iteration target macro is not defined
+# else
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LOCAL_S MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_LOCAL_LIMITS)
+# define MSGPACK_PP_LOCAL_F MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_LOCAL_LIMITS)
+# else
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_LOCAL_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/start.hpp>
+# define MSGPACK_PP_VALUE MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_LOCAL_LIMITS)
+# include <rpc/msgpack/preprocessor/iteration/detail/finish.hpp>
+# define MSGPACK_PP_LOCAL_S MSGPACK_PP_LOCAL_SE()
+# define MSGPACK_PP_LOCAL_F MSGPACK_PP_LOCAL_FE()
+# endif
+# endif
+#
+# if (MSGPACK_PP_LOCAL_S) > (MSGPACK_PP_LOCAL_F)
+# include <rpc/msgpack/preprocessor/iteration/detail/rlocal.hpp>
+# else
+# if MSGPACK_PP_LOCAL_C(0)
+ MSGPACK_PP_LOCAL_MACRO(0)
+# endif
+# if MSGPACK_PP_LOCAL_C(1)
+ MSGPACK_PP_LOCAL_MACRO(1)
+# endif
+# if MSGPACK_PP_LOCAL_C(2)
+ MSGPACK_PP_LOCAL_MACRO(2)
+# endif
+# if MSGPACK_PP_LOCAL_C(3)
+ MSGPACK_PP_LOCAL_MACRO(3)
+# endif
+# if MSGPACK_PP_LOCAL_C(4)
+ MSGPACK_PP_LOCAL_MACRO(4)
+# endif
+# if MSGPACK_PP_LOCAL_C(5)
+ MSGPACK_PP_LOCAL_MACRO(5)
+# endif
+# if MSGPACK_PP_LOCAL_C(6)
+ MSGPACK_PP_LOCAL_MACRO(6)
+# endif
+# if MSGPACK_PP_LOCAL_C(7)
+ MSGPACK_PP_LOCAL_MACRO(7)
+# endif
+# if MSGPACK_PP_LOCAL_C(8)
+ MSGPACK_PP_LOCAL_MACRO(8)
+# endif
+# if MSGPACK_PP_LOCAL_C(9)
+ MSGPACK_PP_LOCAL_MACRO(9)
+# endif
+# if MSGPACK_PP_LOCAL_C(10)
+ MSGPACK_PP_LOCAL_MACRO(10)
+# endif
+# if MSGPACK_PP_LOCAL_C(11)
+ MSGPACK_PP_LOCAL_MACRO(11)
+# endif
+# if MSGPACK_PP_LOCAL_C(12)
+ MSGPACK_PP_LOCAL_MACRO(12)
+# endif
+# if MSGPACK_PP_LOCAL_C(13)
+ MSGPACK_PP_LOCAL_MACRO(13)
+# endif
+# if MSGPACK_PP_LOCAL_C(14)
+ MSGPACK_PP_LOCAL_MACRO(14)
+# endif
+# if MSGPACK_PP_LOCAL_C(15)
+ MSGPACK_PP_LOCAL_MACRO(15)
+# endif
+# if MSGPACK_PP_LOCAL_C(16)
+ MSGPACK_PP_LOCAL_MACRO(16)
+# endif
+# if MSGPACK_PP_LOCAL_C(17)
+ MSGPACK_PP_LOCAL_MACRO(17)
+# endif
+# if MSGPACK_PP_LOCAL_C(18)
+ MSGPACK_PP_LOCAL_MACRO(18)
+# endif
+# if MSGPACK_PP_LOCAL_C(19)
+ MSGPACK_PP_LOCAL_MACRO(19)
+# endif
+# if MSGPACK_PP_LOCAL_C(20)
+ MSGPACK_PP_LOCAL_MACRO(20)
+# endif
+# if MSGPACK_PP_LOCAL_C(21)
+ MSGPACK_PP_LOCAL_MACRO(21)
+# endif
+# if MSGPACK_PP_LOCAL_C(22)
+ MSGPACK_PP_LOCAL_MACRO(22)
+# endif
+# if MSGPACK_PP_LOCAL_C(23)
+ MSGPACK_PP_LOCAL_MACRO(23)
+# endif
+# if MSGPACK_PP_LOCAL_C(24)
+ MSGPACK_PP_LOCAL_MACRO(24)
+# endif
+# if MSGPACK_PP_LOCAL_C(25)
+ MSGPACK_PP_LOCAL_MACRO(25)
+# endif
+# if MSGPACK_PP_LOCAL_C(26)
+ MSGPACK_PP_LOCAL_MACRO(26)
+# endif
+# if MSGPACK_PP_LOCAL_C(27)
+ MSGPACK_PP_LOCAL_MACRO(27)
+# endif
+# if MSGPACK_PP_LOCAL_C(28)
+ MSGPACK_PP_LOCAL_MACRO(28)
+# endif
+# if MSGPACK_PP_LOCAL_C(29)
+ MSGPACK_PP_LOCAL_MACRO(29)
+# endif
+# if MSGPACK_PP_LOCAL_C(30)
+ MSGPACK_PP_LOCAL_MACRO(30)
+# endif
+# if MSGPACK_PP_LOCAL_C(31)
+ MSGPACK_PP_LOCAL_MACRO(31)
+# endif
+# if MSGPACK_PP_LOCAL_C(32)
+ MSGPACK_PP_LOCAL_MACRO(32)
+# endif
+# if MSGPACK_PP_LOCAL_C(33)
+ MSGPACK_PP_LOCAL_MACRO(33)
+# endif
+# if MSGPACK_PP_LOCAL_C(34)
+ MSGPACK_PP_LOCAL_MACRO(34)
+# endif
+# if MSGPACK_PP_LOCAL_C(35)
+ MSGPACK_PP_LOCAL_MACRO(35)
+# endif
+# if MSGPACK_PP_LOCAL_C(36)
+ MSGPACK_PP_LOCAL_MACRO(36)
+# endif
+# if MSGPACK_PP_LOCAL_C(37)
+ MSGPACK_PP_LOCAL_MACRO(37)
+# endif
+# if MSGPACK_PP_LOCAL_C(38)
+ MSGPACK_PP_LOCAL_MACRO(38)
+# endif
+# if MSGPACK_PP_LOCAL_C(39)
+ MSGPACK_PP_LOCAL_MACRO(39)
+# endif
+# if MSGPACK_PP_LOCAL_C(40)
+ MSGPACK_PP_LOCAL_MACRO(40)
+# endif
+# if MSGPACK_PP_LOCAL_C(41)
+ MSGPACK_PP_LOCAL_MACRO(41)
+# endif
+# if MSGPACK_PP_LOCAL_C(42)
+ MSGPACK_PP_LOCAL_MACRO(42)
+# endif
+# if MSGPACK_PP_LOCAL_C(43)
+ MSGPACK_PP_LOCAL_MACRO(43)
+# endif
+# if MSGPACK_PP_LOCAL_C(44)
+ MSGPACK_PP_LOCAL_MACRO(44)
+# endif
+# if MSGPACK_PP_LOCAL_C(45)
+ MSGPACK_PP_LOCAL_MACRO(45)
+# endif
+# if MSGPACK_PP_LOCAL_C(46)
+ MSGPACK_PP_LOCAL_MACRO(46)
+# endif
+# if MSGPACK_PP_LOCAL_C(47)
+ MSGPACK_PP_LOCAL_MACRO(47)
+# endif
+# if MSGPACK_PP_LOCAL_C(48)
+ MSGPACK_PP_LOCAL_MACRO(48)
+# endif
+# if MSGPACK_PP_LOCAL_C(49)
+ MSGPACK_PP_LOCAL_MACRO(49)
+# endif
+# if MSGPACK_PP_LOCAL_C(50)
+ MSGPACK_PP_LOCAL_MACRO(50)
+# endif
+# if MSGPACK_PP_LOCAL_C(51)
+ MSGPACK_PP_LOCAL_MACRO(51)
+# endif
+# if MSGPACK_PP_LOCAL_C(52)
+ MSGPACK_PP_LOCAL_MACRO(52)
+# endif
+# if MSGPACK_PP_LOCAL_C(53)
+ MSGPACK_PP_LOCAL_MACRO(53)
+# endif
+# if MSGPACK_PP_LOCAL_C(54)
+ MSGPACK_PP_LOCAL_MACRO(54)
+# endif
+# if MSGPACK_PP_LOCAL_C(55)
+ MSGPACK_PP_LOCAL_MACRO(55)
+# endif
+# if MSGPACK_PP_LOCAL_C(56)
+ MSGPACK_PP_LOCAL_MACRO(56)
+# endif
+# if MSGPACK_PP_LOCAL_C(57)
+ MSGPACK_PP_LOCAL_MACRO(57)
+# endif
+# if MSGPACK_PP_LOCAL_C(58)
+ MSGPACK_PP_LOCAL_MACRO(58)
+# endif
+# if MSGPACK_PP_LOCAL_C(59)
+ MSGPACK_PP_LOCAL_MACRO(59)
+# endif
+# if MSGPACK_PP_LOCAL_C(60)
+ MSGPACK_PP_LOCAL_MACRO(60)
+# endif
+# if MSGPACK_PP_LOCAL_C(61)
+ MSGPACK_PP_LOCAL_MACRO(61)
+# endif
+# if MSGPACK_PP_LOCAL_C(62)
+ MSGPACK_PP_LOCAL_MACRO(62)
+# endif
+# if MSGPACK_PP_LOCAL_C(63)
+ MSGPACK_PP_LOCAL_MACRO(63)
+# endif
+# if MSGPACK_PP_LOCAL_C(64)
+ MSGPACK_PP_LOCAL_MACRO(64)
+# endif
+# if MSGPACK_PP_LOCAL_C(65)
+ MSGPACK_PP_LOCAL_MACRO(65)
+# endif
+# if MSGPACK_PP_LOCAL_C(66)
+ MSGPACK_PP_LOCAL_MACRO(66)
+# endif
+# if MSGPACK_PP_LOCAL_C(67)
+ MSGPACK_PP_LOCAL_MACRO(67)
+# endif
+# if MSGPACK_PP_LOCAL_C(68)
+ MSGPACK_PP_LOCAL_MACRO(68)
+# endif
+# if MSGPACK_PP_LOCAL_C(69)
+ MSGPACK_PP_LOCAL_MACRO(69)
+# endif
+# if MSGPACK_PP_LOCAL_C(70)
+ MSGPACK_PP_LOCAL_MACRO(70)
+# endif
+# if MSGPACK_PP_LOCAL_C(71)
+ MSGPACK_PP_LOCAL_MACRO(71)
+# endif
+# if MSGPACK_PP_LOCAL_C(72)
+ MSGPACK_PP_LOCAL_MACRO(72)
+# endif
+# if MSGPACK_PP_LOCAL_C(73)
+ MSGPACK_PP_LOCAL_MACRO(73)
+# endif
+# if MSGPACK_PP_LOCAL_C(74)
+ MSGPACK_PP_LOCAL_MACRO(74)
+# endif
+# if MSGPACK_PP_LOCAL_C(75)
+ MSGPACK_PP_LOCAL_MACRO(75)
+# endif
+# if MSGPACK_PP_LOCAL_C(76)
+ MSGPACK_PP_LOCAL_MACRO(76)
+# endif
+# if MSGPACK_PP_LOCAL_C(77)
+ MSGPACK_PP_LOCAL_MACRO(77)
+# endif
+# if MSGPACK_PP_LOCAL_C(78)
+ MSGPACK_PP_LOCAL_MACRO(78)
+# endif
+# if MSGPACK_PP_LOCAL_C(79)
+ MSGPACK_PP_LOCAL_MACRO(79)
+# endif
+# if MSGPACK_PP_LOCAL_C(80)
+ MSGPACK_PP_LOCAL_MACRO(80)
+# endif
+# if MSGPACK_PP_LOCAL_C(81)
+ MSGPACK_PP_LOCAL_MACRO(81)
+# endif
+# if MSGPACK_PP_LOCAL_C(82)
+ MSGPACK_PP_LOCAL_MACRO(82)
+# endif
+# if MSGPACK_PP_LOCAL_C(83)
+ MSGPACK_PP_LOCAL_MACRO(83)
+# endif
+# if MSGPACK_PP_LOCAL_C(84)
+ MSGPACK_PP_LOCAL_MACRO(84)
+# endif
+# if MSGPACK_PP_LOCAL_C(85)
+ MSGPACK_PP_LOCAL_MACRO(85)
+# endif
+# if MSGPACK_PP_LOCAL_C(86)
+ MSGPACK_PP_LOCAL_MACRO(86)
+# endif
+# if MSGPACK_PP_LOCAL_C(87)
+ MSGPACK_PP_LOCAL_MACRO(87)
+# endif
+# if MSGPACK_PP_LOCAL_C(88)
+ MSGPACK_PP_LOCAL_MACRO(88)
+# endif
+# if MSGPACK_PP_LOCAL_C(89)
+ MSGPACK_PP_LOCAL_MACRO(89)
+# endif
+# if MSGPACK_PP_LOCAL_C(90)
+ MSGPACK_PP_LOCAL_MACRO(90)
+# endif
+# if MSGPACK_PP_LOCAL_C(91)
+ MSGPACK_PP_LOCAL_MACRO(91)
+# endif
+# if MSGPACK_PP_LOCAL_C(92)
+ MSGPACK_PP_LOCAL_MACRO(92)
+# endif
+# if MSGPACK_PP_LOCAL_C(93)
+ MSGPACK_PP_LOCAL_MACRO(93)
+# endif
+# if MSGPACK_PP_LOCAL_C(94)
+ MSGPACK_PP_LOCAL_MACRO(94)
+# endif
+# if MSGPACK_PP_LOCAL_C(95)
+ MSGPACK_PP_LOCAL_MACRO(95)
+# endif
+# if MSGPACK_PP_LOCAL_C(96)
+ MSGPACK_PP_LOCAL_MACRO(96)
+# endif
+# if MSGPACK_PP_LOCAL_C(97)
+ MSGPACK_PP_LOCAL_MACRO(97)
+# endif
+# if MSGPACK_PP_LOCAL_C(98)
+ MSGPACK_PP_LOCAL_MACRO(98)
+# endif
+# if MSGPACK_PP_LOCAL_C(99)
+ MSGPACK_PP_LOCAL_MACRO(99)
+# endif
+# if MSGPACK_PP_LOCAL_C(100)
+ MSGPACK_PP_LOCAL_MACRO(100)
+# endif
+# if MSGPACK_PP_LOCAL_C(101)
+ MSGPACK_PP_LOCAL_MACRO(101)
+# endif
+# if MSGPACK_PP_LOCAL_C(102)
+ MSGPACK_PP_LOCAL_MACRO(102)
+# endif
+# if MSGPACK_PP_LOCAL_C(103)
+ MSGPACK_PP_LOCAL_MACRO(103)
+# endif
+# if MSGPACK_PP_LOCAL_C(104)
+ MSGPACK_PP_LOCAL_MACRO(104)
+# endif
+# if MSGPACK_PP_LOCAL_C(105)
+ MSGPACK_PP_LOCAL_MACRO(105)
+# endif
+# if MSGPACK_PP_LOCAL_C(106)
+ MSGPACK_PP_LOCAL_MACRO(106)
+# endif
+# if MSGPACK_PP_LOCAL_C(107)
+ MSGPACK_PP_LOCAL_MACRO(107)
+# endif
+# if MSGPACK_PP_LOCAL_C(108)
+ MSGPACK_PP_LOCAL_MACRO(108)
+# endif
+# if MSGPACK_PP_LOCAL_C(109)
+ MSGPACK_PP_LOCAL_MACRO(109)
+# endif
+# if MSGPACK_PP_LOCAL_C(110)
+ MSGPACK_PP_LOCAL_MACRO(110)
+# endif
+# if MSGPACK_PP_LOCAL_C(111)
+ MSGPACK_PP_LOCAL_MACRO(111)
+# endif
+# if MSGPACK_PP_LOCAL_C(112)
+ MSGPACK_PP_LOCAL_MACRO(112)
+# endif
+# if MSGPACK_PP_LOCAL_C(113)
+ MSGPACK_PP_LOCAL_MACRO(113)
+# endif
+# if MSGPACK_PP_LOCAL_C(114)
+ MSGPACK_PP_LOCAL_MACRO(114)
+# endif
+# if MSGPACK_PP_LOCAL_C(115)
+ MSGPACK_PP_LOCAL_MACRO(115)
+# endif
+# if MSGPACK_PP_LOCAL_C(116)
+ MSGPACK_PP_LOCAL_MACRO(116)
+# endif
+# if MSGPACK_PP_LOCAL_C(117)
+ MSGPACK_PP_LOCAL_MACRO(117)
+# endif
+# if MSGPACK_PP_LOCAL_C(118)
+ MSGPACK_PP_LOCAL_MACRO(118)
+# endif
+# if MSGPACK_PP_LOCAL_C(119)
+ MSGPACK_PP_LOCAL_MACRO(119)
+# endif
+# if MSGPACK_PP_LOCAL_C(120)
+ MSGPACK_PP_LOCAL_MACRO(120)
+# endif
+# if MSGPACK_PP_LOCAL_C(121)
+ MSGPACK_PP_LOCAL_MACRO(121)
+# endif
+# if MSGPACK_PP_LOCAL_C(122)
+ MSGPACK_PP_LOCAL_MACRO(122)
+# endif
+# if MSGPACK_PP_LOCAL_C(123)
+ MSGPACK_PP_LOCAL_MACRO(123)
+# endif
+# if MSGPACK_PP_LOCAL_C(124)
+ MSGPACK_PP_LOCAL_MACRO(124)
+# endif
+# if MSGPACK_PP_LOCAL_C(125)
+ MSGPACK_PP_LOCAL_MACRO(125)
+# endif
+# if MSGPACK_PP_LOCAL_C(126)
+ MSGPACK_PP_LOCAL_MACRO(126)
+# endif
+# if MSGPACK_PP_LOCAL_C(127)
+ MSGPACK_PP_LOCAL_MACRO(127)
+# endif
+# if MSGPACK_PP_LOCAL_C(128)
+ MSGPACK_PP_LOCAL_MACRO(128)
+# endif
+# if MSGPACK_PP_LOCAL_C(129)
+ MSGPACK_PP_LOCAL_MACRO(129)
+# endif
+# if MSGPACK_PP_LOCAL_C(130)
+ MSGPACK_PP_LOCAL_MACRO(130)
+# endif
+# if MSGPACK_PP_LOCAL_C(131)
+ MSGPACK_PP_LOCAL_MACRO(131)
+# endif
+# if MSGPACK_PP_LOCAL_C(132)
+ MSGPACK_PP_LOCAL_MACRO(132)
+# endif
+# if MSGPACK_PP_LOCAL_C(133)
+ MSGPACK_PP_LOCAL_MACRO(133)
+# endif
+# if MSGPACK_PP_LOCAL_C(134)
+ MSGPACK_PP_LOCAL_MACRO(134)
+# endif
+# if MSGPACK_PP_LOCAL_C(135)
+ MSGPACK_PP_LOCAL_MACRO(135)
+# endif
+# if MSGPACK_PP_LOCAL_C(136)
+ MSGPACK_PP_LOCAL_MACRO(136)
+# endif
+# if MSGPACK_PP_LOCAL_C(137)
+ MSGPACK_PP_LOCAL_MACRO(137)
+# endif
+# if MSGPACK_PP_LOCAL_C(138)
+ MSGPACK_PP_LOCAL_MACRO(138)
+# endif
+# if MSGPACK_PP_LOCAL_C(139)
+ MSGPACK_PP_LOCAL_MACRO(139)
+# endif
+# if MSGPACK_PP_LOCAL_C(140)
+ MSGPACK_PP_LOCAL_MACRO(140)
+# endif
+# if MSGPACK_PP_LOCAL_C(141)
+ MSGPACK_PP_LOCAL_MACRO(141)
+# endif
+# if MSGPACK_PP_LOCAL_C(142)
+ MSGPACK_PP_LOCAL_MACRO(142)
+# endif
+# if MSGPACK_PP_LOCAL_C(143)
+ MSGPACK_PP_LOCAL_MACRO(143)
+# endif
+# if MSGPACK_PP_LOCAL_C(144)
+ MSGPACK_PP_LOCAL_MACRO(144)
+# endif
+# if MSGPACK_PP_LOCAL_C(145)
+ MSGPACK_PP_LOCAL_MACRO(145)
+# endif
+# if MSGPACK_PP_LOCAL_C(146)
+ MSGPACK_PP_LOCAL_MACRO(146)
+# endif
+# if MSGPACK_PP_LOCAL_C(147)
+ MSGPACK_PP_LOCAL_MACRO(147)
+# endif
+# if MSGPACK_PP_LOCAL_C(148)
+ MSGPACK_PP_LOCAL_MACRO(148)
+# endif
+# if MSGPACK_PP_LOCAL_C(149)
+ MSGPACK_PP_LOCAL_MACRO(149)
+# endif
+# if MSGPACK_PP_LOCAL_C(150)
+ MSGPACK_PP_LOCAL_MACRO(150)
+# endif
+# if MSGPACK_PP_LOCAL_C(151)
+ MSGPACK_PP_LOCAL_MACRO(151)
+# endif
+# if MSGPACK_PP_LOCAL_C(152)
+ MSGPACK_PP_LOCAL_MACRO(152)
+# endif
+# if MSGPACK_PP_LOCAL_C(153)
+ MSGPACK_PP_LOCAL_MACRO(153)
+# endif
+# if MSGPACK_PP_LOCAL_C(154)
+ MSGPACK_PP_LOCAL_MACRO(154)
+# endif
+# if MSGPACK_PP_LOCAL_C(155)
+ MSGPACK_PP_LOCAL_MACRO(155)
+# endif
+# if MSGPACK_PP_LOCAL_C(156)
+ MSGPACK_PP_LOCAL_MACRO(156)
+# endif
+# if MSGPACK_PP_LOCAL_C(157)
+ MSGPACK_PP_LOCAL_MACRO(157)
+# endif
+# if MSGPACK_PP_LOCAL_C(158)
+ MSGPACK_PP_LOCAL_MACRO(158)
+# endif
+# if MSGPACK_PP_LOCAL_C(159)
+ MSGPACK_PP_LOCAL_MACRO(159)
+# endif
+# if MSGPACK_PP_LOCAL_C(160)
+ MSGPACK_PP_LOCAL_MACRO(160)
+# endif
+# if MSGPACK_PP_LOCAL_C(161)
+ MSGPACK_PP_LOCAL_MACRO(161)
+# endif
+# if MSGPACK_PP_LOCAL_C(162)
+ MSGPACK_PP_LOCAL_MACRO(162)
+# endif
+# if MSGPACK_PP_LOCAL_C(163)
+ MSGPACK_PP_LOCAL_MACRO(163)
+# endif
+# if MSGPACK_PP_LOCAL_C(164)
+ MSGPACK_PP_LOCAL_MACRO(164)
+# endif
+# if MSGPACK_PP_LOCAL_C(165)
+ MSGPACK_PP_LOCAL_MACRO(165)
+# endif
+# if MSGPACK_PP_LOCAL_C(166)
+ MSGPACK_PP_LOCAL_MACRO(166)
+# endif
+# if MSGPACK_PP_LOCAL_C(167)
+ MSGPACK_PP_LOCAL_MACRO(167)
+# endif
+# if MSGPACK_PP_LOCAL_C(168)
+ MSGPACK_PP_LOCAL_MACRO(168)
+# endif
+# if MSGPACK_PP_LOCAL_C(169)
+ MSGPACK_PP_LOCAL_MACRO(169)
+# endif
+# if MSGPACK_PP_LOCAL_C(170)
+ MSGPACK_PP_LOCAL_MACRO(170)
+# endif
+# if MSGPACK_PP_LOCAL_C(171)
+ MSGPACK_PP_LOCAL_MACRO(171)
+# endif
+# if MSGPACK_PP_LOCAL_C(172)
+ MSGPACK_PP_LOCAL_MACRO(172)
+# endif
+# if MSGPACK_PP_LOCAL_C(173)
+ MSGPACK_PP_LOCAL_MACRO(173)
+# endif
+# if MSGPACK_PP_LOCAL_C(174)
+ MSGPACK_PP_LOCAL_MACRO(174)
+# endif
+# if MSGPACK_PP_LOCAL_C(175)
+ MSGPACK_PP_LOCAL_MACRO(175)
+# endif
+# if MSGPACK_PP_LOCAL_C(176)
+ MSGPACK_PP_LOCAL_MACRO(176)
+# endif
+# if MSGPACK_PP_LOCAL_C(177)
+ MSGPACK_PP_LOCAL_MACRO(177)
+# endif
+# if MSGPACK_PP_LOCAL_C(178)
+ MSGPACK_PP_LOCAL_MACRO(178)
+# endif
+# if MSGPACK_PP_LOCAL_C(179)
+ MSGPACK_PP_LOCAL_MACRO(179)
+# endif
+# if MSGPACK_PP_LOCAL_C(180)
+ MSGPACK_PP_LOCAL_MACRO(180)
+# endif
+# if MSGPACK_PP_LOCAL_C(181)
+ MSGPACK_PP_LOCAL_MACRO(181)
+# endif
+# if MSGPACK_PP_LOCAL_C(182)
+ MSGPACK_PP_LOCAL_MACRO(182)
+# endif
+# if MSGPACK_PP_LOCAL_C(183)
+ MSGPACK_PP_LOCAL_MACRO(183)
+# endif
+# if MSGPACK_PP_LOCAL_C(184)
+ MSGPACK_PP_LOCAL_MACRO(184)
+# endif
+# if MSGPACK_PP_LOCAL_C(185)
+ MSGPACK_PP_LOCAL_MACRO(185)
+# endif
+# if MSGPACK_PP_LOCAL_C(186)
+ MSGPACK_PP_LOCAL_MACRO(186)
+# endif
+# if MSGPACK_PP_LOCAL_C(187)
+ MSGPACK_PP_LOCAL_MACRO(187)
+# endif
+# if MSGPACK_PP_LOCAL_C(188)
+ MSGPACK_PP_LOCAL_MACRO(188)
+# endif
+# if MSGPACK_PP_LOCAL_C(189)
+ MSGPACK_PP_LOCAL_MACRO(189)
+# endif
+# if MSGPACK_PP_LOCAL_C(190)
+ MSGPACK_PP_LOCAL_MACRO(190)
+# endif
+# if MSGPACK_PP_LOCAL_C(191)
+ MSGPACK_PP_LOCAL_MACRO(191)
+# endif
+# if MSGPACK_PP_LOCAL_C(192)
+ MSGPACK_PP_LOCAL_MACRO(192)
+# endif
+# if MSGPACK_PP_LOCAL_C(193)
+ MSGPACK_PP_LOCAL_MACRO(193)
+# endif
+# if MSGPACK_PP_LOCAL_C(194)
+ MSGPACK_PP_LOCAL_MACRO(194)
+# endif
+# if MSGPACK_PP_LOCAL_C(195)
+ MSGPACK_PP_LOCAL_MACRO(195)
+# endif
+# if MSGPACK_PP_LOCAL_C(196)
+ MSGPACK_PP_LOCAL_MACRO(196)
+# endif
+# if MSGPACK_PP_LOCAL_C(197)
+ MSGPACK_PP_LOCAL_MACRO(197)
+# endif
+# if MSGPACK_PP_LOCAL_C(198)
+ MSGPACK_PP_LOCAL_MACRO(198)
+# endif
+# if MSGPACK_PP_LOCAL_C(199)
+ MSGPACK_PP_LOCAL_MACRO(199)
+# endif
+# if MSGPACK_PP_LOCAL_C(200)
+ MSGPACK_PP_LOCAL_MACRO(200)
+# endif
+# if MSGPACK_PP_LOCAL_C(201)
+ MSGPACK_PP_LOCAL_MACRO(201)
+# endif
+# if MSGPACK_PP_LOCAL_C(202)
+ MSGPACK_PP_LOCAL_MACRO(202)
+# endif
+# if MSGPACK_PP_LOCAL_C(203)
+ MSGPACK_PP_LOCAL_MACRO(203)
+# endif
+# if MSGPACK_PP_LOCAL_C(204)
+ MSGPACK_PP_LOCAL_MACRO(204)
+# endif
+# if MSGPACK_PP_LOCAL_C(205)
+ MSGPACK_PP_LOCAL_MACRO(205)
+# endif
+# if MSGPACK_PP_LOCAL_C(206)
+ MSGPACK_PP_LOCAL_MACRO(206)
+# endif
+# if MSGPACK_PP_LOCAL_C(207)
+ MSGPACK_PP_LOCAL_MACRO(207)
+# endif
+# if MSGPACK_PP_LOCAL_C(208)
+ MSGPACK_PP_LOCAL_MACRO(208)
+# endif
+# if MSGPACK_PP_LOCAL_C(209)
+ MSGPACK_PP_LOCAL_MACRO(209)
+# endif
+# if MSGPACK_PP_LOCAL_C(210)
+ MSGPACK_PP_LOCAL_MACRO(210)
+# endif
+# if MSGPACK_PP_LOCAL_C(211)
+ MSGPACK_PP_LOCAL_MACRO(211)
+# endif
+# if MSGPACK_PP_LOCAL_C(212)
+ MSGPACK_PP_LOCAL_MACRO(212)
+# endif
+# if MSGPACK_PP_LOCAL_C(213)
+ MSGPACK_PP_LOCAL_MACRO(213)
+# endif
+# if MSGPACK_PP_LOCAL_C(214)
+ MSGPACK_PP_LOCAL_MACRO(214)
+# endif
+# if MSGPACK_PP_LOCAL_C(215)
+ MSGPACK_PP_LOCAL_MACRO(215)
+# endif
+# if MSGPACK_PP_LOCAL_C(216)
+ MSGPACK_PP_LOCAL_MACRO(216)
+# endif
+# if MSGPACK_PP_LOCAL_C(217)
+ MSGPACK_PP_LOCAL_MACRO(217)
+# endif
+# if MSGPACK_PP_LOCAL_C(218)
+ MSGPACK_PP_LOCAL_MACRO(218)
+# endif
+# if MSGPACK_PP_LOCAL_C(219)
+ MSGPACK_PP_LOCAL_MACRO(219)
+# endif
+# if MSGPACK_PP_LOCAL_C(220)
+ MSGPACK_PP_LOCAL_MACRO(220)
+# endif
+# if MSGPACK_PP_LOCAL_C(221)
+ MSGPACK_PP_LOCAL_MACRO(221)
+# endif
+# if MSGPACK_PP_LOCAL_C(222)
+ MSGPACK_PP_LOCAL_MACRO(222)
+# endif
+# if MSGPACK_PP_LOCAL_C(223)
+ MSGPACK_PP_LOCAL_MACRO(223)
+# endif
+# if MSGPACK_PP_LOCAL_C(224)
+ MSGPACK_PP_LOCAL_MACRO(224)
+# endif
+# if MSGPACK_PP_LOCAL_C(225)
+ MSGPACK_PP_LOCAL_MACRO(225)
+# endif
+# if MSGPACK_PP_LOCAL_C(226)
+ MSGPACK_PP_LOCAL_MACRO(226)
+# endif
+# if MSGPACK_PP_LOCAL_C(227)
+ MSGPACK_PP_LOCAL_MACRO(227)
+# endif
+# if MSGPACK_PP_LOCAL_C(228)
+ MSGPACK_PP_LOCAL_MACRO(228)
+# endif
+# if MSGPACK_PP_LOCAL_C(229)
+ MSGPACK_PP_LOCAL_MACRO(229)
+# endif
+# if MSGPACK_PP_LOCAL_C(230)
+ MSGPACK_PP_LOCAL_MACRO(230)
+# endif
+# if MSGPACK_PP_LOCAL_C(231)
+ MSGPACK_PP_LOCAL_MACRO(231)
+# endif
+# if MSGPACK_PP_LOCAL_C(232)
+ MSGPACK_PP_LOCAL_MACRO(232)
+# endif
+# if MSGPACK_PP_LOCAL_C(233)
+ MSGPACK_PP_LOCAL_MACRO(233)
+# endif
+# if MSGPACK_PP_LOCAL_C(234)
+ MSGPACK_PP_LOCAL_MACRO(234)
+# endif
+# if MSGPACK_PP_LOCAL_C(235)
+ MSGPACK_PP_LOCAL_MACRO(235)
+# endif
+# if MSGPACK_PP_LOCAL_C(236)
+ MSGPACK_PP_LOCAL_MACRO(236)
+# endif
+
+# if MSGPACK_PP_LOCAL_C(237)
+ MSGPACK_PP_LOCAL_MACRO(237)
+# endif
+# if MSGPACK_PP_LOCAL_C(238)
+ MSGPACK_PP_LOCAL_MACRO(238)
+# endif
+# if MSGPACK_PP_LOCAL_C(239)
+ MSGPACK_PP_LOCAL_MACRO(239)
+# endif
+# if MSGPACK_PP_LOCAL_C(240)
+ MSGPACK_PP_LOCAL_MACRO(240)
+# endif
+# if MSGPACK_PP_LOCAL_C(241)
+ MSGPACK_PP_LOCAL_MACRO(241)
+# endif
+# if MSGPACK_PP_LOCAL_C(242)
+ MSGPACK_PP_LOCAL_MACRO(242)
+# endif
+# if MSGPACK_PP_LOCAL_C(243)
+ MSGPACK_PP_LOCAL_MACRO(243)
+# endif
+# if MSGPACK_PP_LOCAL_C(244)
+ MSGPACK_PP_LOCAL_MACRO(244)
+# endif
+# if MSGPACK_PP_LOCAL_C(245)
+ MSGPACK_PP_LOCAL_MACRO(245)
+# endif
+# if MSGPACK_PP_LOCAL_C(246)
+ MSGPACK_PP_LOCAL_MACRO(246)
+# endif
+# if MSGPACK_PP_LOCAL_C(247)
+ MSGPACK_PP_LOCAL_MACRO(247)
+# endif
+# if MSGPACK_PP_LOCAL_C(248)
+ MSGPACK_PP_LOCAL_MACRO(248)
+# endif
+# if MSGPACK_PP_LOCAL_C(249)
+ MSGPACK_PP_LOCAL_MACRO(249)
+# endif
+# if MSGPACK_PP_LOCAL_C(250)
+ MSGPACK_PP_LOCAL_MACRO(250)
+# endif
+# if MSGPACK_PP_LOCAL_C(251)
+ MSGPACK_PP_LOCAL_MACRO(251)
+# endif
+# if MSGPACK_PP_LOCAL_C(252)
+ MSGPACK_PP_LOCAL_MACRO(252)
+# endif
+# if MSGPACK_PP_LOCAL_C(253)
+ MSGPACK_PP_LOCAL_MACRO(253)
+# endif
+# if MSGPACK_PP_LOCAL_C(254)
+ MSGPACK_PP_LOCAL_MACRO(254)
+# endif
+# if MSGPACK_PP_LOCAL_C(255)
+ MSGPACK_PP_LOCAL_MACRO(255)
+# endif
+# if MSGPACK_PP_LOCAL_C(256)
+ MSGPACK_PP_LOCAL_MACRO(256)
+# endif
+# endif
+#
+# undef MSGPACK_PP_LOCAL_LIMITS
+#
+# undef MSGPACK_PP_LOCAL_S
+# undef MSGPACK_PP_LOCAL_F
+#
+# undef MSGPACK_PP_LOCAL_MACRO
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/rlocal.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/rlocal.hpp
new file mode 100644
index 000000000..442ac0eec
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/rlocal.hpp
@@ -0,0 +1,782 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if MSGPACK_PP_LOCAL_R(256)
+ MSGPACK_PP_LOCAL_MACRO(256)
+# endif
+# if MSGPACK_PP_LOCAL_R(255)
+ MSGPACK_PP_LOCAL_MACRO(255)
+# endif
+# if MSGPACK_PP_LOCAL_R(254)
+ MSGPACK_PP_LOCAL_MACRO(254)
+# endif
+# if MSGPACK_PP_LOCAL_R(253)
+ MSGPACK_PP_LOCAL_MACRO(253)
+# endif
+# if MSGPACK_PP_LOCAL_R(252)
+ MSGPACK_PP_LOCAL_MACRO(252)
+# endif
+# if MSGPACK_PP_LOCAL_R(251)
+ MSGPACK_PP_LOCAL_MACRO(251)
+# endif
+# if MSGPACK_PP_LOCAL_R(250)
+ MSGPACK_PP_LOCAL_MACRO(250)
+# endif
+# if MSGPACK_PP_LOCAL_R(249)
+ MSGPACK_PP_LOCAL_MACRO(249)
+# endif
+# if MSGPACK_PP_LOCAL_R(248)
+ MSGPACK_PP_LOCAL_MACRO(248)
+# endif
+# if MSGPACK_PP_LOCAL_R(247)
+ MSGPACK_PP_LOCAL_MACRO(247)
+# endif
+# if MSGPACK_PP_LOCAL_R(246)
+ MSGPACK_PP_LOCAL_MACRO(246)
+# endif
+# if MSGPACK_PP_LOCAL_R(245)
+ MSGPACK_PP_LOCAL_MACRO(245)
+# endif
+# if MSGPACK_PP_LOCAL_R(244)
+ MSGPACK_PP_LOCAL_MACRO(244)
+# endif
+# if MSGPACK_PP_LOCAL_R(243)
+ MSGPACK_PP_LOCAL_MACRO(243)
+# endif
+# if MSGPACK_PP_LOCAL_R(242)
+ MSGPACK_PP_LOCAL_MACRO(242)
+# endif
+# if MSGPACK_PP_LOCAL_R(241)
+ MSGPACK_PP_LOCAL_MACRO(241)
+# endif
+# if MSGPACK_PP_LOCAL_R(240)
+ MSGPACK_PP_LOCAL_MACRO(240)
+# endif
+# if MSGPACK_PP_LOCAL_R(239)
+ MSGPACK_PP_LOCAL_MACRO(239)
+# endif
+# if MSGPACK_PP_LOCAL_R(238)
+ MSGPACK_PP_LOCAL_MACRO(238)
+# endif
+# if MSGPACK_PP_LOCAL_R(237)
+ MSGPACK_PP_LOCAL_MACRO(237)
+# endif
+# if MSGPACK_PP_LOCAL_R(236)
+ MSGPACK_PP_LOCAL_MACRO(236)
+# endif
+# if MSGPACK_PP_LOCAL_R(235)
+ MSGPACK_PP_LOCAL_MACRO(235)
+# endif
+# if MSGPACK_PP_LOCAL_R(234)
+ MSGPACK_PP_LOCAL_MACRO(234)
+# endif
+# if MSGPACK_PP_LOCAL_R(233)
+ MSGPACK_PP_LOCAL_MACRO(233)
+# endif
+# if MSGPACK_PP_LOCAL_R(232)
+ MSGPACK_PP_LOCAL_MACRO(232)
+# endif
+# if MSGPACK_PP_LOCAL_R(231)
+ MSGPACK_PP_LOCAL_MACRO(231)
+# endif
+# if MSGPACK_PP_LOCAL_R(230)
+ MSGPACK_PP_LOCAL_MACRO(230)
+# endif
+# if MSGPACK_PP_LOCAL_R(229)
+ MSGPACK_PP_LOCAL_MACRO(229)
+# endif
+# if MSGPACK_PP_LOCAL_R(228)
+ MSGPACK_PP_LOCAL_MACRO(228)
+# endif
+# if MSGPACK_PP_LOCAL_R(227)
+ MSGPACK_PP_LOCAL_MACRO(227)
+# endif
+# if MSGPACK_PP_LOCAL_R(226)
+ MSGPACK_PP_LOCAL_MACRO(226)
+# endif
+# if MSGPACK_PP_LOCAL_R(225)
+ MSGPACK_PP_LOCAL_MACRO(225)
+# endif
+# if MSGPACK_PP_LOCAL_R(224)
+ MSGPACK_PP_LOCAL_MACRO(224)
+# endif
+# if MSGPACK_PP_LOCAL_R(223)
+ MSGPACK_PP_LOCAL_MACRO(223)
+# endif
+# if MSGPACK_PP_LOCAL_R(222)
+ MSGPACK_PP_LOCAL_MACRO(222)
+# endif
+# if MSGPACK_PP_LOCAL_R(221)
+ MSGPACK_PP_LOCAL_MACRO(221)
+# endif
+# if MSGPACK_PP_LOCAL_R(220)
+ MSGPACK_PP_LOCAL_MACRO(220)
+# endif
+# if MSGPACK_PP_LOCAL_R(219)
+ MSGPACK_PP_LOCAL_MACRO(219)
+# endif
+# if MSGPACK_PP_LOCAL_R(218)
+ MSGPACK_PP_LOCAL_MACRO(218)
+# endif
+# if MSGPACK_PP_LOCAL_R(217)
+ MSGPACK_PP_LOCAL_MACRO(217)
+# endif
+# if MSGPACK_PP_LOCAL_R(216)
+ MSGPACK_PP_LOCAL_MACRO(216)
+# endif
+# if MSGPACK_PP_LOCAL_R(215)
+ MSGPACK_PP_LOCAL_MACRO(215)
+# endif
+# if MSGPACK_PP_LOCAL_R(214)
+ MSGPACK_PP_LOCAL_MACRO(214)
+# endif
+# if MSGPACK_PP_LOCAL_R(213)
+ MSGPACK_PP_LOCAL_MACRO(213)
+# endif
+# if MSGPACK_PP_LOCAL_R(212)
+ MSGPACK_PP_LOCAL_MACRO(212)
+# endif
+# if MSGPACK_PP_LOCAL_R(211)
+ MSGPACK_PP_LOCAL_MACRO(211)
+# endif
+# if MSGPACK_PP_LOCAL_R(210)
+ MSGPACK_PP_LOCAL_MACRO(210)
+# endif
+# if MSGPACK_PP_LOCAL_R(209)
+ MSGPACK_PP_LOCAL_MACRO(209)
+# endif
+# if MSGPACK_PP_LOCAL_R(208)
+ MSGPACK_PP_LOCAL_MACRO(208)
+# endif
+# if MSGPACK_PP_LOCAL_R(207)
+ MSGPACK_PP_LOCAL_MACRO(207)
+# endif
+# if MSGPACK_PP_LOCAL_R(206)
+ MSGPACK_PP_LOCAL_MACRO(206)
+# endif
+# if MSGPACK_PP_LOCAL_R(205)
+ MSGPACK_PP_LOCAL_MACRO(205)
+# endif
+# if MSGPACK_PP_LOCAL_R(204)
+ MSGPACK_PP_LOCAL_MACRO(204)
+# endif
+# if MSGPACK_PP_LOCAL_R(203)
+ MSGPACK_PP_LOCAL_MACRO(203)
+# endif
+# if MSGPACK_PP_LOCAL_R(202)
+ MSGPACK_PP_LOCAL_MACRO(202)
+# endif
+# if MSGPACK_PP_LOCAL_R(201)
+ MSGPACK_PP_LOCAL_MACRO(201)
+# endif
+# if MSGPACK_PP_LOCAL_R(200)
+ MSGPACK_PP_LOCAL_MACRO(200)
+# endif
+# if MSGPACK_PP_LOCAL_R(199)
+ MSGPACK_PP_LOCAL_MACRO(199)
+# endif
+# if MSGPACK_PP_LOCAL_R(198)
+ MSGPACK_PP_LOCAL_MACRO(198)
+# endif
+# if MSGPACK_PP_LOCAL_R(197)
+ MSGPACK_PP_LOCAL_MACRO(197)
+# endif
+# if MSGPACK_PP_LOCAL_R(196)
+ MSGPACK_PP_LOCAL_MACRO(196)
+# endif
+# if MSGPACK_PP_LOCAL_R(195)
+ MSGPACK_PP_LOCAL_MACRO(195)
+# endif
+# if MSGPACK_PP_LOCAL_R(194)
+ MSGPACK_PP_LOCAL_MACRO(194)
+# endif
+# if MSGPACK_PP_LOCAL_R(193)
+ MSGPACK_PP_LOCAL_MACRO(193)
+# endif
+# if MSGPACK_PP_LOCAL_R(192)
+ MSGPACK_PP_LOCAL_MACRO(192)
+# endif
+# if MSGPACK_PP_LOCAL_R(191)
+ MSGPACK_PP_LOCAL_MACRO(191)
+# endif
+# if MSGPACK_PP_LOCAL_R(190)
+ MSGPACK_PP_LOCAL_MACRO(190)
+# endif
+# if MSGPACK_PP_LOCAL_R(189)
+ MSGPACK_PP_LOCAL_MACRO(189)
+# endif
+# if MSGPACK_PP_LOCAL_R(188)
+ MSGPACK_PP_LOCAL_MACRO(188)
+# endif
+# if MSGPACK_PP_LOCAL_R(187)
+ MSGPACK_PP_LOCAL_MACRO(187)
+# endif
+# if MSGPACK_PP_LOCAL_R(186)
+ MSGPACK_PP_LOCAL_MACRO(186)
+# endif
+# if MSGPACK_PP_LOCAL_R(185)
+ MSGPACK_PP_LOCAL_MACRO(185)
+# endif
+# if MSGPACK_PP_LOCAL_R(184)
+ MSGPACK_PP_LOCAL_MACRO(184)
+# endif
+# if MSGPACK_PP_LOCAL_R(183)
+ MSGPACK_PP_LOCAL_MACRO(183)
+# endif
+# if MSGPACK_PP_LOCAL_R(182)
+ MSGPACK_PP_LOCAL_MACRO(182)
+# endif
+# if MSGPACK_PP_LOCAL_R(181)
+ MSGPACK_PP_LOCAL_MACRO(181)
+# endif
+# if MSGPACK_PP_LOCAL_R(180)
+ MSGPACK_PP_LOCAL_MACRO(180)
+# endif
+# if MSGPACK_PP_LOCAL_R(179)
+ MSGPACK_PP_LOCAL_MACRO(179)
+# endif
+# if MSGPACK_PP_LOCAL_R(178)
+ MSGPACK_PP_LOCAL_MACRO(178)
+# endif
+# if MSGPACK_PP_LOCAL_R(177)
+ MSGPACK_PP_LOCAL_MACRO(177)
+# endif
+# if MSGPACK_PP_LOCAL_R(176)
+ MSGPACK_PP_LOCAL_MACRO(176)
+# endif
+# if MSGPACK_PP_LOCAL_R(175)
+ MSGPACK_PP_LOCAL_MACRO(175)
+# endif
+# if MSGPACK_PP_LOCAL_R(174)
+ MSGPACK_PP_LOCAL_MACRO(174)
+# endif
+# if MSGPACK_PP_LOCAL_R(173)
+ MSGPACK_PP_LOCAL_MACRO(173)
+# endif
+# if MSGPACK_PP_LOCAL_R(172)
+ MSGPACK_PP_LOCAL_MACRO(172)
+# endif
+# if MSGPACK_PP_LOCAL_R(171)
+ MSGPACK_PP_LOCAL_MACRO(171)
+# endif
+# if MSGPACK_PP_LOCAL_R(170)
+ MSGPACK_PP_LOCAL_MACRO(170)
+# endif
+# if MSGPACK_PP_LOCAL_R(169)
+ MSGPACK_PP_LOCAL_MACRO(169)
+# endif
+# if MSGPACK_PP_LOCAL_R(168)
+ MSGPACK_PP_LOCAL_MACRO(168)
+# endif
+# if MSGPACK_PP_LOCAL_R(167)
+ MSGPACK_PP_LOCAL_MACRO(167)
+# endif
+# if MSGPACK_PP_LOCAL_R(166)
+ MSGPACK_PP_LOCAL_MACRO(166)
+# endif
+# if MSGPACK_PP_LOCAL_R(165)
+ MSGPACK_PP_LOCAL_MACRO(165)
+# endif
+# if MSGPACK_PP_LOCAL_R(164)
+ MSGPACK_PP_LOCAL_MACRO(164)
+# endif
+# if MSGPACK_PP_LOCAL_R(163)
+ MSGPACK_PP_LOCAL_MACRO(163)
+# endif
+# if MSGPACK_PP_LOCAL_R(162)
+ MSGPACK_PP_LOCAL_MACRO(162)
+# endif
+# if MSGPACK_PP_LOCAL_R(161)
+ MSGPACK_PP_LOCAL_MACRO(161)
+# endif
+# if MSGPACK_PP_LOCAL_R(160)
+ MSGPACK_PP_LOCAL_MACRO(160)
+# endif
+# if MSGPACK_PP_LOCAL_R(159)
+ MSGPACK_PP_LOCAL_MACRO(159)
+# endif
+# if MSGPACK_PP_LOCAL_R(158)
+ MSGPACK_PP_LOCAL_MACRO(158)
+# endif
+# if MSGPACK_PP_LOCAL_R(157)
+ MSGPACK_PP_LOCAL_MACRO(157)
+# endif
+# if MSGPACK_PP_LOCAL_R(156)
+ MSGPACK_PP_LOCAL_MACRO(156)
+# endif
+# if MSGPACK_PP_LOCAL_R(155)
+ MSGPACK_PP_LOCAL_MACRO(155)
+# endif
+# if MSGPACK_PP_LOCAL_R(154)
+ MSGPACK_PP_LOCAL_MACRO(154)
+# endif
+# if MSGPACK_PP_LOCAL_R(153)
+ MSGPACK_PP_LOCAL_MACRO(153)
+# endif
+# if MSGPACK_PP_LOCAL_R(152)
+ MSGPACK_PP_LOCAL_MACRO(152)
+# endif
+# if MSGPACK_PP_LOCAL_R(151)
+ MSGPACK_PP_LOCAL_MACRO(151)
+# endif
+# if MSGPACK_PP_LOCAL_R(150)
+ MSGPACK_PP_LOCAL_MACRO(150)
+# endif
+# if MSGPACK_PP_LOCAL_R(149)
+ MSGPACK_PP_LOCAL_MACRO(149)
+# endif
+# if MSGPACK_PP_LOCAL_R(148)
+ MSGPACK_PP_LOCAL_MACRO(148)
+# endif
+# if MSGPACK_PP_LOCAL_R(147)
+ MSGPACK_PP_LOCAL_MACRO(147)
+# endif
+# if MSGPACK_PP_LOCAL_R(146)
+ MSGPACK_PP_LOCAL_MACRO(146)
+# endif
+# if MSGPACK_PP_LOCAL_R(145)
+ MSGPACK_PP_LOCAL_MACRO(145)
+# endif
+# if MSGPACK_PP_LOCAL_R(144)
+ MSGPACK_PP_LOCAL_MACRO(144)
+# endif
+# if MSGPACK_PP_LOCAL_R(143)
+ MSGPACK_PP_LOCAL_MACRO(143)
+# endif
+# if MSGPACK_PP_LOCAL_R(142)
+ MSGPACK_PP_LOCAL_MACRO(142)
+# endif
+# if MSGPACK_PP_LOCAL_R(141)
+ MSGPACK_PP_LOCAL_MACRO(141)
+# endif
+# if MSGPACK_PP_LOCAL_R(140)
+ MSGPACK_PP_LOCAL_MACRO(140)
+# endif
+# if MSGPACK_PP_LOCAL_R(139)
+ MSGPACK_PP_LOCAL_MACRO(139)
+# endif
+# if MSGPACK_PP_LOCAL_R(138)
+ MSGPACK_PP_LOCAL_MACRO(138)
+# endif
+# if MSGPACK_PP_LOCAL_R(137)
+ MSGPACK_PP_LOCAL_MACRO(137)
+# endif
+# if MSGPACK_PP_LOCAL_R(136)
+ MSGPACK_PP_LOCAL_MACRO(136)
+# endif
+# if MSGPACK_PP_LOCAL_R(135)
+ MSGPACK_PP_LOCAL_MACRO(135)
+# endif
+# if MSGPACK_PP_LOCAL_R(134)
+ MSGPACK_PP_LOCAL_MACRO(134)
+# endif
+# if MSGPACK_PP_LOCAL_R(133)
+ MSGPACK_PP_LOCAL_MACRO(133)
+# endif
+# if MSGPACK_PP_LOCAL_R(132)
+ MSGPACK_PP_LOCAL_MACRO(132)
+# endif
+# if MSGPACK_PP_LOCAL_R(131)
+ MSGPACK_PP_LOCAL_MACRO(131)
+# endif
+# if MSGPACK_PP_LOCAL_R(130)
+ MSGPACK_PP_LOCAL_MACRO(130)
+# endif
+# if MSGPACK_PP_LOCAL_R(129)
+ MSGPACK_PP_LOCAL_MACRO(129)
+# endif
+# if MSGPACK_PP_LOCAL_R(128)
+ MSGPACK_PP_LOCAL_MACRO(128)
+# endif
+# if MSGPACK_PP_LOCAL_R(127)
+ MSGPACK_PP_LOCAL_MACRO(127)
+# endif
+# if MSGPACK_PP_LOCAL_R(126)
+ MSGPACK_PP_LOCAL_MACRO(126)
+# endif
+# if MSGPACK_PP_LOCAL_R(125)
+ MSGPACK_PP_LOCAL_MACRO(125)
+# endif
+# if MSGPACK_PP_LOCAL_R(124)
+ MSGPACK_PP_LOCAL_MACRO(124)
+# endif
+# if MSGPACK_PP_LOCAL_R(123)
+ MSGPACK_PP_LOCAL_MACRO(123)
+# endif
+# if MSGPACK_PP_LOCAL_R(122)
+ MSGPACK_PP_LOCAL_MACRO(122)
+# endif
+# if MSGPACK_PP_LOCAL_R(121)
+ MSGPACK_PP_LOCAL_MACRO(121)
+# endif
+# if MSGPACK_PP_LOCAL_R(120)
+ MSGPACK_PP_LOCAL_MACRO(120)
+# endif
+# if MSGPACK_PP_LOCAL_R(119)
+ MSGPACK_PP_LOCAL_MACRO(119)
+# endif
+# if MSGPACK_PP_LOCAL_R(118)
+ MSGPACK_PP_LOCAL_MACRO(118)
+# endif
+# if MSGPACK_PP_LOCAL_R(117)
+ MSGPACK_PP_LOCAL_MACRO(117)
+# endif
+# if MSGPACK_PP_LOCAL_R(116)
+ MSGPACK_PP_LOCAL_MACRO(116)
+# endif
+# if MSGPACK_PP_LOCAL_R(115)
+ MSGPACK_PP_LOCAL_MACRO(115)
+# endif
+# if MSGPACK_PP_LOCAL_R(114)
+ MSGPACK_PP_LOCAL_MACRO(114)
+# endif
+# if MSGPACK_PP_LOCAL_R(113)
+ MSGPACK_PP_LOCAL_MACRO(113)
+# endif
+# if MSGPACK_PP_LOCAL_R(112)
+ MSGPACK_PP_LOCAL_MACRO(112)
+# endif
+# if MSGPACK_PP_LOCAL_R(111)
+ MSGPACK_PP_LOCAL_MACRO(111)
+# endif
+# if MSGPACK_PP_LOCAL_R(110)
+ MSGPACK_PP_LOCAL_MACRO(110)
+# endif
+# if MSGPACK_PP_LOCAL_R(109)
+ MSGPACK_PP_LOCAL_MACRO(109)
+# endif
+# if MSGPACK_PP_LOCAL_R(108)
+ MSGPACK_PP_LOCAL_MACRO(108)
+# endif
+# if MSGPACK_PP_LOCAL_R(107)
+ MSGPACK_PP_LOCAL_MACRO(107)
+# endif
+# if MSGPACK_PP_LOCAL_R(106)
+ MSGPACK_PP_LOCAL_MACRO(106)
+# endif
+# if MSGPACK_PP_LOCAL_R(105)
+ MSGPACK_PP_LOCAL_MACRO(105)
+# endif
+# if MSGPACK_PP_LOCAL_R(104)
+ MSGPACK_PP_LOCAL_MACRO(104)
+# endif
+# if MSGPACK_PP_LOCAL_R(103)
+ MSGPACK_PP_LOCAL_MACRO(103)
+# endif
+# if MSGPACK_PP_LOCAL_R(102)
+ MSGPACK_PP_LOCAL_MACRO(102)
+# endif
+# if MSGPACK_PP_LOCAL_R(101)
+ MSGPACK_PP_LOCAL_MACRO(101)
+# endif
+# if MSGPACK_PP_LOCAL_R(100)
+ MSGPACK_PP_LOCAL_MACRO(100)
+# endif
+# if MSGPACK_PP_LOCAL_R(99)
+ MSGPACK_PP_LOCAL_MACRO(99)
+# endif
+# if MSGPACK_PP_LOCAL_R(98)
+ MSGPACK_PP_LOCAL_MACRO(98)
+# endif
+# if MSGPACK_PP_LOCAL_R(97)
+ MSGPACK_PP_LOCAL_MACRO(97)
+# endif
+# if MSGPACK_PP_LOCAL_R(96)
+ MSGPACK_PP_LOCAL_MACRO(96)
+# endif
+# if MSGPACK_PP_LOCAL_R(95)
+ MSGPACK_PP_LOCAL_MACRO(95)
+# endif
+# if MSGPACK_PP_LOCAL_R(94)
+ MSGPACK_PP_LOCAL_MACRO(94)
+# endif
+# if MSGPACK_PP_LOCAL_R(93)
+ MSGPACK_PP_LOCAL_MACRO(93)
+# endif
+# if MSGPACK_PP_LOCAL_R(92)
+ MSGPACK_PP_LOCAL_MACRO(92)
+# endif
+# if MSGPACK_PP_LOCAL_R(91)
+ MSGPACK_PP_LOCAL_MACRO(91)
+# endif
+# if MSGPACK_PP_LOCAL_R(90)
+ MSGPACK_PP_LOCAL_MACRO(90)
+# endif
+# if MSGPACK_PP_LOCAL_R(89)
+ MSGPACK_PP_LOCAL_MACRO(89)
+# endif
+# if MSGPACK_PP_LOCAL_R(88)
+ MSGPACK_PP_LOCAL_MACRO(88)
+# endif
+# if MSGPACK_PP_LOCAL_R(87)
+ MSGPACK_PP_LOCAL_MACRO(87)
+# endif
+# if MSGPACK_PP_LOCAL_R(86)
+ MSGPACK_PP_LOCAL_MACRO(86)
+# endif
+# if MSGPACK_PP_LOCAL_R(85)
+ MSGPACK_PP_LOCAL_MACRO(85)
+# endif
+# if MSGPACK_PP_LOCAL_R(84)
+ MSGPACK_PP_LOCAL_MACRO(84)
+# endif
+# if MSGPACK_PP_LOCAL_R(83)
+ MSGPACK_PP_LOCAL_MACRO(83)
+# endif
+# if MSGPACK_PP_LOCAL_R(82)
+ MSGPACK_PP_LOCAL_MACRO(82)
+# endif
+# if MSGPACK_PP_LOCAL_R(81)
+ MSGPACK_PP_LOCAL_MACRO(81)
+# endif
+# if MSGPACK_PP_LOCAL_R(80)
+ MSGPACK_PP_LOCAL_MACRO(80)
+# endif
+# if MSGPACK_PP_LOCAL_R(79)
+ MSGPACK_PP_LOCAL_MACRO(79)
+# endif
+# if MSGPACK_PP_LOCAL_R(78)
+ MSGPACK_PP_LOCAL_MACRO(78)
+# endif
+# if MSGPACK_PP_LOCAL_R(77)
+ MSGPACK_PP_LOCAL_MACRO(77)
+# endif
+# if MSGPACK_PP_LOCAL_R(76)
+ MSGPACK_PP_LOCAL_MACRO(76)
+# endif
+# if MSGPACK_PP_LOCAL_R(75)
+ MSGPACK_PP_LOCAL_MACRO(75)
+# endif
+# if MSGPACK_PP_LOCAL_R(74)
+ MSGPACK_PP_LOCAL_MACRO(74)
+# endif
+# if MSGPACK_PP_LOCAL_R(73)
+ MSGPACK_PP_LOCAL_MACRO(73)
+# endif
+# if MSGPACK_PP_LOCAL_R(72)
+ MSGPACK_PP_LOCAL_MACRO(72)
+# endif
+# if MSGPACK_PP_LOCAL_R(71)
+ MSGPACK_PP_LOCAL_MACRO(71)
+# endif
+# if MSGPACK_PP_LOCAL_R(70)
+ MSGPACK_PP_LOCAL_MACRO(70)
+# endif
+# if MSGPACK_PP_LOCAL_R(69)
+ MSGPACK_PP_LOCAL_MACRO(69)
+# endif
+# if MSGPACK_PP_LOCAL_R(68)
+ MSGPACK_PP_LOCAL_MACRO(68)
+# endif
+# if MSGPACK_PP_LOCAL_R(67)
+ MSGPACK_PP_LOCAL_MACRO(67)
+# endif
+# if MSGPACK_PP_LOCAL_R(66)
+ MSGPACK_PP_LOCAL_MACRO(66)
+# endif
+# if MSGPACK_PP_LOCAL_R(65)
+ MSGPACK_PP_LOCAL_MACRO(65)
+# endif
+# if MSGPACK_PP_LOCAL_R(64)
+ MSGPACK_PP_LOCAL_MACRO(64)
+# endif
+# if MSGPACK_PP_LOCAL_R(63)
+ MSGPACK_PP_LOCAL_MACRO(63)
+# endif
+# if MSGPACK_PP_LOCAL_R(62)
+ MSGPACK_PP_LOCAL_MACRO(62)
+# endif
+# if MSGPACK_PP_LOCAL_R(61)
+ MSGPACK_PP_LOCAL_MACRO(61)
+# endif
+# if MSGPACK_PP_LOCAL_R(60)
+ MSGPACK_PP_LOCAL_MACRO(60)
+# endif
+# if MSGPACK_PP_LOCAL_R(59)
+ MSGPACK_PP_LOCAL_MACRO(59)
+# endif
+# if MSGPACK_PP_LOCAL_R(58)
+ MSGPACK_PP_LOCAL_MACRO(58)
+# endif
+# if MSGPACK_PP_LOCAL_R(57)
+ MSGPACK_PP_LOCAL_MACRO(57)
+# endif
+# if MSGPACK_PP_LOCAL_R(56)
+ MSGPACK_PP_LOCAL_MACRO(56)
+# endif
+# if MSGPACK_PP_LOCAL_R(55)
+ MSGPACK_PP_LOCAL_MACRO(55)
+# endif
+# if MSGPACK_PP_LOCAL_R(54)
+ MSGPACK_PP_LOCAL_MACRO(54)
+# endif
+# if MSGPACK_PP_LOCAL_R(53)
+ MSGPACK_PP_LOCAL_MACRO(53)
+# endif
+# if MSGPACK_PP_LOCAL_R(52)
+ MSGPACK_PP_LOCAL_MACRO(52)
+# endif
+# if MSGPACK_PP_LOCAL_R(51)
+ MSGPACK_PP_LOCAL_MACRO(51)
+# endif
+# if MSGPACK_PP_LOCAL_R(50)
+ MSGPACK_PP_LOCAL_MACRO(50)
+# endif
+# if MSGPACK_PP_LOCAL_R(49)
+ MSGPACK_PP_LOCAL_MACRO(49)
+# endif
+# if MSGPACK_PP_LOCAL_R(48)
+ MSGPACK_PP_LOCAL_MACRO(48)
+# endif
+# if MSGPACK_PP_LOCAL_R(47)
+ MSGPACK_PP_LOCAL_MACRO(47)
+# endif
+# if MSGPACK_PP_LOCAL_R(46)
+ MSGPACK_PP_LOCAL_MACRO(46)
+# endif
+# if MSGPACK_PP_LOCAL_R(45)
+ MSGPACK_PP_LOCAL_MACRO(45)
+# endif
+# if MSGPACK_PP_LOCAL_R(44)
+ MSGPACK_PP_LOCAL_MACRO(44)
+# endif
+# if MSGPACK_PP_LOCAL_R(43)
+ MSGPACK_PP_LOCAL_MACRO(43)
+# endif
+# if MSGPACK_PP_LOCAL_R(42)
+ MSGPACK_PP_LOCAL_MACRO(42)
+# endif
+# if MSGPACK_PP_LOCAL_R(41)
+ MSGPACK_PP_LOCAL_MACRO(41)
+# endif
+# if MSGPACK_PP_LOCAL_R(40)
+ MSGPACK_PP_LOCAL_MACRO(40)
+# endif
+# if MSGPACK_PP_LOCAL_R(39)
+ MSGPACK_PP_LOCAL_MACRO(39)
+# endif
+# if MSGPACK_PP_LOCAL_R(38)
+ MSGPACK_PP_LOCAL_MACRO(38)
+# endif
+# if MSGPACK_PP_LOCAL_R(37)
+ MSGPACK_PP_LOCAL_MACRO(37)
+# endif
+# if MSGPACK_PP_LOCAL_R(36)
+ MSGPACK_PP_LOCAL_MACRO(36)
+# endif
+# if MSGPACK_PP_LOCAL_R(35)
+ MSGPACK_PP_LOCAL_MACRO(35)
+# endif
+# if MSGPACK_PP_LOCAL_R(34)
+ MSGPACK_PP_LOCAL_MACRO(34)
+# endif
+# if MSGPACK_PP_LOCAL_R(33)
+ MSGPACK_PP_LOCAL_MACRO(33)
+# endif
+# if MSGPACK_PP_LOCAL_R(32)
+ MSGPACK_PP_LOCAL_MACRO(32)
+# endif
+# if MSGPACK_PP_LOCAL_R(31)
+ MSGPACK_PP_LOCAL_MACRO(31)
+# endif
+# if MSGPACK_PP_LOCAL_R(30)
+ MSGPACK_PP_LOCAL_MACRO(30)
+# endif
+# if MSGPACK_PP_LOCAL_R(29)
+ MSGPACK_PP_LOCAL_MACRO(29)
+# endif
+# if MSGPACK_PP_LOCAL_R(28)
+ MSGPACK_PP_LOCAL_MACRO(28)
+# endif
+# if MSGPACK_PP_LOCAL_R(27)
+ MSGPACK_PP_LOCAL_MACRO(27)
+# endif
+# if MSGPACK_PP_LOCAL_R(26)
+ MSGPACK_PP_LOCAL_MACRO(26)
+# endif
+# if MSGPACK_PP_LOCAL_R(25)
+ MSGPACK_PP_LOCAL_MACRO(25)
+# endif
+# if MSGPACK_PP_LOCAL_R(24)
+ MSGPACK_PP_LOCAL_MACRO(24)
+# endif
+# if MSGPACK_PP_LOCAL_R(23)
+ MSGPACK_PP_LOCAL_MACRO(23)
+# endif
+# if MSGPACK_PP_LOCAL_R(22)
+ MSGPACK_PP_LOCAL_MACRO(22)
+# endif
+# if MSGPACK_PP_LOCAL_R(21)
+ MSGPACK_PP_LOCAL_MACRO(21)
+# endif
+# if MSGPACK_PP_LOCAL_R(20)
+ MSGPACK_PP_LOCAL_MACRO(20)
+# endif
+# if MSGPACK_PP_LOCAL_R(19)
+ MSGPACK_PP_LOCAL_MACRO(19)
+# endif
+# if MSGPACK_PP_LOCAL_R(18)
+ MSGPACK_PP_LOCAL_MACRO(18)
+# endif
+# if MSGPACK_PP_LOCAL_R(17)
+ MSGPACK_PP_LOCAL_MACRO(17)
+# endif
+# if MSGPACK_PP_LOCAL_R(16)
+ MSGPACK_PP_LOCAL_MACRO(16)
+# endif
+# if MSGPACK_PP_LOCAL_R(15)
+ MSGPACK_PP_LOCAL_MACRO(15)
+# endif
+# if MSGPACK_PP_LOCAL_R(14)
+ MSGPACK_PP_LOCAL_MACRO(14)
+# endif
+# if MSGPACK_PP_LOCAL_R(13)
+ MSGPACK_PP_LOCAL_MACRO(13)
+# endif
+# if MSGPACK_PP_LOCAL_R(12)
+ MSGPACK_PP_LOCAL_MACRO(12)
+# endif
+# if MSGPACK_PP_LOCAL_R(11)
+ MSGPACK_PP_LOCAL_MACRO(11)
+# endif
+# if MSGPACK_PP_LOCAL_R(10)
+ MSGPACK_PP_LOCAL_MACRO(10)
+# endif
+# if MSGPACK_PP_LOCAL_R(9)
+ MSGPACK_PP_LOCAL_MACRO(9)
+# endif
+# if MSGPACK_PP_LOCAL_R(8)
+ MSGPACK_PP_LOCAL_MACRO(8)
+# endif
+# if MSGPACK_PP_LOCAL_R(7)
+ MSGPACK_PP_LOCAL_MACRO(7)
+# endif
+# if MSGPACK_PP_LOCAL_R(6)
+ MSGPACK_PP_LOCAL_MACRO(6)
+# endif
+# if MSGPACK_PP_LOCAL_R(5)
+ MSGPACK_PP_LOCAL_MACRO(5)
+# endif
+# if MSGPACK_PP_LOCAL_R(4)
+ MSGPACK_PP_LOCAL_MACRO(4)
+# endif
+# if MSGPACK_PP_LOCAL_R(3)
+ MSGPACK_PP_LOCAL_MACRO(3)
+# endif
+# if MSGPACK_PP_LOCAL_R(2)
+ MSGPACK_PP_LOCAL_MACRO(2)
+# endif
+# if MSGPACK_PP_LOCAL_R(1)
+ MSGPACK_PP_LOCAL_MACRO(1)
+# endif
+# if MSGPACK_PP_LOCAL_R(0)
+ MSGPACK_PP_LOCAL_MACRO(0)
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/self.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/self.hpp
new file mode 100644
index 000000000..556436031
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/self.hpp
@@ -0,0 +1,21 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# if !defined(MSGPACK_PP_INDIRECT_SELF)
+# error MSGPACK_PP_ERROR: no indirect file to include
+# endif
+#
+# define MSGPACK_PP_IS_SELFISH 1
+#
+# include MSGPACK_PP_INDIRECT_SELF
+#
+# undef MSGPACK_PP_IS_SELFISH
+# undef MSGPACK_PP_INDIRECT_SELF
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/start.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/start.hpp
new file mode 100644
index 000000000..f9c911079
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/detail/start.hpp
@@ -0,0 +1,99 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_LOCAL_SE
+#
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_1
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_2
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_3
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_4
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_5
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_6
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_7
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_8
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_9
+# undef MSGPACK_PP_LOCAL_SE_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_LOCAL_SE_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_LOCAL_SE_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_LOCAL_SE_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_LOCAL_SE_DIGIT_3
+# define MSGPACK_PP_LOCAL_SE() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_LOCAL_SE_DIGIT_3, MSGPACK_PP_LOCAL_SE_DIGIT_2, MSGPACK_PP_LOCAL_SE_DIGIT_1)
+# elif MSGPACK_PP_LOCAL_SE_DIGIT_2
+# define MSGPACK_PP_LOCAL_SE() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_LOCAL_SE_DIGIT_2, MSGPACK_PP_LOCAL_SE_DIGIT_1)
+# else
+# define MSGPACK_PP_LOCAL_SE() MSGPACK_PP_LOCAL_SE_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/iterate.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/iterate.hpp
new file mode 100644
index 000000000..821cf03ba
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/iterate.hpp
@@ -0,0 +1,82 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ITERATION_ITERATE_HPP
+# define MSGPACK_PREPROCESSOR_ITERATION_ITERATE_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/array/elem.hpp>
+# include <rpc/msgpack/preprocessor/array/size.hpp>
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/slot/slot.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_ITERATION_DEPTH */
+#
+# define MSGPACK_PP_ITERATION_DEPTH() 0
+#
+# /* MSGPACK_PP_ITERATION */
+#
+# define MSGPACK_PP_ITERATION() MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_, MSGPACK_PP_ITERATION_DEPTH())
+#
+# /* MSGPACK_PP_ITERATION_START && MSGPACK_PP_ITERATION_FINISH */
+#
+# define MSGPACK_PP_ITERATION_START() MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_START_, MSGPACK_PP_ITERATION_DEPTH())
+# define MSGPACK_PP_ITERATION_FINISH() MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FINISH_, MSGPACK_PP_ITERATION_DEPTH())
+#
+# /* MSGPACK_PP_ITERATION_FLAGS */
+#
+# define MSGPACK_PP_ITERATION_FLAGS() (MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FLAGS_, MSGPACK_PP_ITERATION_DEPTH())())
+#
+# /* MSGPACK_PP_FRAME_ITERATION */
+#
+# define MSGPACK_PP_FRAME_ITERATION(i) MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_, i)
+#
+# /* MSGPACK_PP_FRAME_START && MSGPACK_PP_FRAME_FINISH */
+#
+# define MSGPACK_PP_FRAME_START(i) MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_START_, i)
+# define MSGPACK_PP_FRAME_FINISH(i) MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FINISH_, i)
+#
+# /* MSGPACK_PP_FRAME_FLAGS */
+#
+# define MSGPACK_PP_FRAME_FLAGS(i) (MSGPACK_PP_CAT(MSGPACK_PP_ITERATION_FLAGS_, i)())
+#
+# /* MSGPACK_PP_RELATIVE_ITERATION */
+#
+# define MSGPACK_PP_RELATIVE_ITERATION(i) MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_)
+#
+# define MSGPACK_PP_RELATIVE_0(m) MSGPACK_PP_CAT(m, MSGPACK_PP_ITERATION_DEPTH())
+# define MSGPACK_PP_RELATIVE_1(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH()))
+# define MSGPACK_PP_RELATIVE_2(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH())))
+# define MSGPACK_PP_RELATIVE_3(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH()))))
+# define MSGPACK_PP_RELATIVE_4(m) MSGPACK_PP_CAT(m, MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_DEC(MSGPACK_PP_ITERATION_DEPTH())))))
+#
+# /* MSGPACK_PP_RELATIVE_START && MSGPACK_PP_RELATIVE_FINISH */
+#
+# define MSGPACK_PP_RELATIVE_START(i) MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_START_)
+# define MSGPACK_PP_RELATIVE_FINISH(i) MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_FINISH_)
+#
+# /* MSGPACK_PP_RELATIVE_FLAGS */
+#
+# define MSGPACK_PP_RELATIVE_FLAGS(i) (MSGPACK_PP_CAT(MSGPACK_PP_RELATIVE_, i)(MSGPACK_PP_ITERATION_FLAGS_)())
+#
+# /* MSGPACK_PP_ITERATE */
+#
+# define MSGPACK_PP_ITERATE() MSGPACK_PP_CAT(MSGPACK_PP_ITERATE_, MSGPACK_PP_INC(MSGPACK_PP_ITERATION_DEPTH()))
+#
+# define MSGPACK_PP_ITERATE_1 <msgpack/preprocessor/iteration/detail/iter/forward1.hpp>
+# define MSGPACK_PP_ITERATE_2 <msgpack/preprocessor/iteration/detail/iter/forward2.hpp>
+# define MSGPACK_PP_ITERATE_3 <msgpack/preprocessor/iteration/detail/iter/forward3.hpp>
+# define MSGPACK_PP_ITERATE_4 <msgpack/preprocessor/iteration/detail/iter/forward4.hpp>
+# define MSGPACK_PP_ITERATE_5 <msgpack/preprocessor/iteration/detail/iter/forward5.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/local.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/local.hpp
new file mode 100644
index 000000000..5bcacf6de
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/local.hpp
@@ -0,0 +1,26 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ITERATION_LOCAL_HPP
+# define MSGPACK_PREPROCESSOR_ITERATION_LOCAL_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/slot/slot.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_LOCAL_ITERATE */
+#
+# define MSGPACK_PP_LOCAL_ITERATE() <msgpack/preprocessor/iteration/detail/local.hpp>
+#
+# define MSGPACK_PP_LOCAL_C(n) (MSGPACK_PP_LOCAL_S) <= n && (MSGPACK_PP_LOCAL_F) >= n
+# define MSGPACK_PP_LOCAL_R(n) (MSGPACK_PP_LOCAL_F) <= n && (MSGPACK_PP_LOCAL_S) >= n
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/self.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/self.hpp
new file mode 100644
index 000000000..bdb7419a7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/iteration/self.hpp
@@ -0,0 +1,19 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_ITERATION_SELF_HPP
+# define MSGPACK_PREPROCESSOR_ITERATION_SELF_HPP
+#
+# /* MSGPACK_PP_INCLUDE_SELF */
+#
+# define MSGPACK_PP_INCLUDE_SELF() <msgpack/preprocessor/iteration/detail/self.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/library.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/library.hpp
new file mode 100644
index 000000000..12b71f0db
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/library.hpp
@@ -0,0 +1,36 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIBRARY_HPP
+# define MSGPACK_PREPROCESSOR_LIBRARY_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic.hpp>
+# include <rpc/msgpack/preprocessor/array.hpp>
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/comparison.hpp>
+# include <rpc/msgpack/preprocessor/config/limits.hpp>
+# include <rpc/msgpack/preprocessor/control.hpp>
+# include <rpc/msgpack/preprocessor/debug.hpp>
+# include <rpc/msgpack/preprocessor/facilities.hpp>
+# include <rpc/msgpack/preprocessor/iteration.hpp>
+# include <rpc/msgpack/preprocessor/list.hpp>
+# include <rpc/msgpack/preprocessor/logical.hpp>
+# include <rpc/msgpack/preprocessor/punctuation.hpp>
+# include <rpc/msgpack/preprocessor/repetition.hpp>
+# include <rpc/msgpack/preprocessor/selection.hpp>
+# include <rpc/msgpack/preprocessor/seq.hpp>
+# include <rpc/msgpack/preprocessor/slot.hpp>
+# include <rpc/msgpack/preprocessor/stringize.hpp>
+# include <rpc/msgpack/preprocessor/tuple.hpp>
+# include <rpc/msgpack/preprocessor/variadic.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/limits.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/limits.hpp
new file mode 100644
index 000000000..df37df7f1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/limits.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIMITS_HPP
+# define MSGPACK_PREPROCESSOR_LIMITS_HPP
+#
+# include <rpc/msgpack/preprocessor/config/limits.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list.hpp
new file mode 100644
index 000000000..728e1f967
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list.hpp
@@ -0,0 +1,37 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_HPP
+# define MSGPACK_PREPROCESSOR_LIST_HPP
+#
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/list/append.hpp>
+# include <rpc/msgpack/preprocessor/list/at.hpp>
+# include <rpc/msgpack/preprocessor/list/cat.hpp>
+# include <rpc/msgpack/preprocessor/list/enum.hpp>
+# include <rpc/msgpack/preprocessor/list/filter.hpp>
+# include <rpc/msgpack/preprocessor/list/first_n.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_right.hpp>
+# include <rpc/msgpack/preprocessor/list/for_each.hpp>
+# include <rpc/msgpack/preprocessor/list/for_each_i.hpp>
+# include <rpc/msgpack/preprocessor/list/for_each_product.hpp>
+# include <rpc/msgpack/preprocessor/list/rest_n.hpp>
+# include <rpc/msgpack/preprocessor/list/reverse.hpp>
+# include <rpc/msgpack/preprocessor/list/size.hpp>
+# include <rpc/msgpack/preprocessor/list/to_array.hpp>
+# include <rpc/msgpack/preprocessor/list/to_seq.hpp>
+# include <rpc/msgpack/preprocessor/list/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/list/transform.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/adt.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/adt.hpp
new file mode 100644
index 000000000..b5cc89473
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/adt.hpp
@@ -0,0 +1,73 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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)
+# *
+# * See http://www.boost.org for most recent version.
+# */
+#
+# /* Revised by Paul Mensonides (2002) */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_ADT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_ADT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/detail/is_binary.hpp>
+# include <rpc/msgpack/preprocessor/logical/compl.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# /* MSGPACK_PP_LIST_CONS */
+#
+# define MSGPACK_PP_LIST_CONS(head, tail) (head, tail)
+#
+# /* MSGPACK_PP_LIST_NIL */
+#
+# define MSGPACK_PP_LIST_NIL MSGPACK_PP_NIL
+#
+# /* MSGPACK_PP_LIST_FIRST */
+#
+# define MSGPACK_PP_LIST_FIRST(list) MSGPACK_PP_LIST_FIRST_D(list)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_LIST_FIRST_D(list) MSGPACK_PP_LIST_FIRST_I list
+# else
+# define MSGPACK_PP_LIST_FIRST_D(list) MSGPACK_PP_LIST_FIRST_I ## list
+# endif
+#
+# define MSGPACK_PP_LIST_FIRST_I(head, tail) head
+#
+# /* MSGPACK_PP_LIST_REST */
+#
+# define MSGPACK_PP_LIST_REST(list) MSGPACK_PP_LIST_REST_D(list)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_LIST_REST_D(list) MSGPACK_PP_LIST_REST_I list
+# else
+# define MSGPACK_PP_LIST_REST_D(list) MSGPACK_PP_LIST_REST_I ## list
+# endif
+#
+# define MSGPACK_PP_LIST_REST_I(head, tail) tail
+#
+# /* MSGPACK_PP_LIST_IS_CONS */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC()
+# define MSGPACK_PP_LIST_IS_CONS(list) MSGPACK_PP_LIST_IS_CONS_D(list)
+# define MSGPACK_PP_LIST_IS_CONS_D(list) MSGPACK_PP_LIST_IS_CONS_ ## list
+# define MSGPACK_PP_LIST_IS_CONS_(head, tail) 1
+# define MSGPACK_PP_LIST_IS_CONS_MSGPACK_PP_NIL 0
+# else
+# define MSGPACK_PP_LIST_IS_CONS(list) MSGPACK_PP_IS_BINARY(list)
+# endif
+#
+# /* MSGPACK_PP_LIST_IS_NIL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC()
+# define MSGPACK_PP_LIST_IS_NIL(list) MSGPACK_PP_COMPL(MSGPACK_PP_IS_BINARY(list))
+# else
+# define MSGPACK_PP_LIST_IS_NIL(list) MSGPACK_PP_COMPL(MSGPACK_PP_LIST_IS_CONS(list))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/append.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/append.hpp
new file mode 100644
index 000000000..5fb1bd142
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/append.hpp
@@ -0,0 +1,40 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_APPEND_HPP
+# define MSGPACK_PREPROCESSOR_LIST_APPEND_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_right.hpp>
+#
+# /* MSGPACK_PP_LIST_APPEND */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_APPEND(a, b) MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_APPEND_O, b, a)
+# else
+# define MSGPACK_PP_LIST_APPEND(a, b) MSGPACK_PP_LIST_APPEND_I(a, b)
+# define MSGPACK_PP_LIST_APPEND_I(a, b) MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_APPEND_O, b, a)
+# endif
+#
+# define MSGPACK_PP_LIST_APPEND_O(d, s, x) (x, s)
+#
+# /* MSGPACK_PP_LIST_APPEND_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_APPEND_D(d, a, b) MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_APPEND_O, b, a)
+# else
+# define MSGPACK_PP_LIST_APPEND_D(d, a, b) MSGPACK_PP_LIST_APPEND_D_I(d, a, b)
+# define MSGPACK_PP_LIST_APPEND_D_I(d, a, b) MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_APPEND_O, b, a)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/at.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/at.hpp
new file mode 100644
index 000000000..6708030ab
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/at.hpp
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_AT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_AT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/list/rest_n.hpp>
+#
+# /* MSGPACK_PP_LIST_AT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_AT(list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N(index, list))
+# else
+# define MSGPACK_PP_LIST_AT(list, index) MSGPACK_PP_LIST_AT_I(list, index)
+# define MSGPACK_PP_LIST_AT_I(list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N(index, list))
+# endif
+#
+# /* MSGPACK_PP_LIST_AT_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_AT_D(d, list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N_D(d, index, list))
+# else
+# define MSGPACK_PP_LIST_AT_D(d, list, index) MSGPACK_PP_LIST_AT_D_I(d, list, index)
+# define MSGPACK_PP_LIST_AT_D_I(d, list, index) MSGPACK_PP_LIST_FIRST(MSGPACK_PP_LIST_REST_N_D(d, index, list))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/cat.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/cat.hpp
new file mode 100644
index 000000000..31793f7f6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/cat.hpp
@@ -0,0 +1,42 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_CAT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_CAT_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_left.hpp>
+#
+# /* MSGPACK_PP_LIST_CAT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_CAT(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list))
+# else
+# define MSGPACK_PP_LIST_CAT(list) MSGPACK_PP_LIST_CAT_I(list)
+# define MSGPACK_PP_LIST_CAT_I(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list))
+# endif
+#
+# define MSGPACK_PP_LIST_CAT_O(d, s, x) MSGPACK_PP_CAT(s, x)
+#
+# /* MSGPACK_PP_LIST_CAT_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_CAT_D(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list))
+# else
+# define MSGPACK_PP_LIST_CAT_D(d, list) MSGPACK_PP_LIST_CAT_D_I(d, list)
+# define MSGPACK_PP_LIST_CAT_D_I(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_CAT_O, MSGPACK_PP_LIST_FIRST(list), MSGPACK_PP_LIST_REST(list))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/dmc/fold_left.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/dmc/fold_left.hpp
new file mode 100644
index 000000000..6aac94b23
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/dmc/fold_left.hpp
@@ -0,0 +1,279 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+#
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_2, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(2, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_3, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(3, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_4, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(4, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_5, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(5, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_6, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(6, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_7, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(7, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_8, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(8, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_9, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(9, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_10, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(10, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_11, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(11, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_12, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(12, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_13, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(13, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_14, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(14, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_15, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(15, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_16, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(16, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_17, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(17, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_18, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(18, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_19, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(19, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_20, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(20, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_21, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(21, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_22, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(22, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_23, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(23, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_24, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(24, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_25, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(25, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_26, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(26, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_27, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(27, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_28, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(28, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_29, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(29, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_30, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(30, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_31, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(31, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_32, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(32, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_33, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(33, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_34, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(34, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_35, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(35, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_36, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(36, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_37, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(37, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_38, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(38, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_39, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(39, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_40, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(40, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_41, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(41, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_42, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(42, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_43, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(43, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_44, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(44, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_45, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(45, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_46, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(46, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_47, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(47, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_48, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(48, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_49, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(49, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_50, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(50, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_51, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(51, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_52, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(52, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_53, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(53, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_54, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(54, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_55, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(55, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_56, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(56, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_57, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(57, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_58, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(58, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_59, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(59, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_60, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(60, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_61, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(61, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_62, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(62, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_63, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(63, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_64, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(64, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_65, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(65, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_66, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(66, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_67, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(67, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_68, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(68, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_69, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(69, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_70, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(70, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_71, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(71, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_72, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(72, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_73, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(73, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_74, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(74, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_75, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(75, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_76, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(76, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_77, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(77, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_78, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(78, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_79, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(79, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_80, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(80, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_81, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(81, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_82, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(82, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_83, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(83, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_84, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(84, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_85, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(85, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_86, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(86, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_87, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(87, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_88, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(88, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_89, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(89, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_90, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(90, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_91, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(91, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_92, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(92, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_93, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(93, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_94, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(94, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_95, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(95, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_96, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(96, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_97, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(97, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_98, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(98, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_99, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(99, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_100, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(100, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_101, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(101, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_102, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(102, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_103, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(103, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_104, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(104, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_105, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(105, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_106, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(106, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_107, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(107, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_108, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(108, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_109, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(109, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_110, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(110, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_111, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(111, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_112, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(112, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_113, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(113, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_114, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(114, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_115, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(115, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_116, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(116, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_117, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(117, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_118, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(118, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_119, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(119, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_120, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(120, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_121, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(121, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_122, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(122, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_123, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(123, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_124, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(124, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_125, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(125, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_126, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(126, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_127, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(127, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_128, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(128, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_129, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(129, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_130, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(130, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_131, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(131, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_132, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(132, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_133, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(133, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_134, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(134, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_135, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(135, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_136, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(136, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_137, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(137, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_138, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(138, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_139, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(139, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_140, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(140, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_141, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(141, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_142, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(142, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_143, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(143, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_144, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(144, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_145, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(145, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_146, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(146, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_147, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(147, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_148, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(148, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_149, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(149, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_150, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(150, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_151, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(151, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_152, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(152, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_153, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(153, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_154, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(154, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_155, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(155, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_156, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(156, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_157, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(157, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_158, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(158, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_159, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(159, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_160, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(160, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_161, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(161, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_162, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(162, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_163, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(163, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_164, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(164, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_165, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(165, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_166, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(166, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_167, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(167, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_168, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(168, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_169, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(169, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_170, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(170, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_171, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(171, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_172, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(172, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_173, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(173, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_174, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(174, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_175, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(175, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_176, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(176, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_177, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(177, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_178, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(178, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_179, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(179, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_180, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(180, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_181, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(181, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_182, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(182, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_183, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(183, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_184, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(184, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_185, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(185, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_186, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(186, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_187, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(187, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_188, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(188, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_189, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(189, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_190, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(190, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_191, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(191, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_192, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(192, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_193, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(193, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_194, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(194, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_195, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(195, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_196, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(196, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_197, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(197, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_198, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(198, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_199, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(199, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_200, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(200, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_201, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(201, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_202, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(202, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_203, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(203, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_204, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(204, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_205, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(205, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_206, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(206, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_207, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(207, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_208, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(208, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_209, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(209, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_210, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(210, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_211, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(211, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_212, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(212, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_213, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(213, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_214, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(214, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_215, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(215, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_216, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(216, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_217, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(217, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_218, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(218, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_219, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(219, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_220, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(220, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_221, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(221, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_222, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(222, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_223, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(223, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_224, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(224, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_225, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(225, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_226, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(226, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_227, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(227, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_228, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(228, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_229, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(229, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_230, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(230, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_231, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(231, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_232, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(232, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_233, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(233, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_234, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(234, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_235, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(235, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_236, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(236, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_237, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(237, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_238, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(238, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_239, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(239, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_240, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(240, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_241, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(241, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_242, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(242, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_243, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(243, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_244, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(244, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_245, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(245, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_246, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(246, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_247, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(247, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_248, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(248, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_249, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(249, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_250, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(250, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_251, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(251, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_252, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(252, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_253, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(253, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_254, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(254, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_255, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(255, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_256, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(256, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_257, MSGPACK_PP_TUPLE_ELEM_3_1)(o, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, MSGPACK_PP_TUPLE_ELEM_3_1)(257, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_left.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_left.hpp
new file mode 100644
index 000000000..48ca48c41
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_left.hpp
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
+#
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_1_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_2_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_3_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_4_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_5_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_6_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_7_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_8_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_9_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_10_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_11_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_12_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_13_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_14_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_15_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_16_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_17_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_18_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_19_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_20_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_21_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_22_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_23_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_24_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_25_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_26_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_27_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_28_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_29_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_30_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_31_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_32_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_33_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_34_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_35_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_36_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_37_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_38_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_39_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_40_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_41_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_42_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_43_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_44_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_45_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_46_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_47_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_48_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_49_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_50_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_51_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_52_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_53_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_54_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_55_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_56_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_57_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_58_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_59_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_60_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_61_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_62_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_63_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_64_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_65_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_66_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_67_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_68_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_69_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_70_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_71_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_72_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_73_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_74_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_75_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_76_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_77_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_78_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_79_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_80_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_81_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_82_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_83_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_84_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_85_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_86_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_87_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_88_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_89_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_90_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_91_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_92_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_93_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_94_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_95_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_96_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_97_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_98_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_99_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_100_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_101_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_102_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_103_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_104_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_105_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_106_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_107_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_108_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_109_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_110_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_111_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_112_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_113_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_114_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_115_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_116_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_117_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_118_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_119_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_120_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_121_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_122_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_123_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_124_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_125_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_126_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_127_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_128_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_129_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_130_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_131_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_132_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_133_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_134_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_135_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_136_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_137_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_138_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_139_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_140_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_141_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_142_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_143_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_144_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_145_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_146_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_147_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_148_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_149_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_150_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_151_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_152_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_153_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_154_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_155_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_156_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_157_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_158_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_159_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_160_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_161_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_162_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_163_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_164_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_165_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_166_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_167_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_168_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_169_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_170_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_171_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_172_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_173_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_174_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_175_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_176_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_177_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_178_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_179_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_180_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_181_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_182_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_183_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_184_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_185_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_186_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_187_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_188_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_189_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_190_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_191_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_192_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_193_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_194_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_195_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_196_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_197_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_198_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_199_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_200_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_201_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_202_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_203_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_204_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_205_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_206_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_207_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_208_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_209_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_210_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_211_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_212_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_213_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_214_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_215_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_216_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_217_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_218_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_219_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_220_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_221_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_222_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_223_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_224_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_225_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_226_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_227_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_228_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_229_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_230_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_231_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_232_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_233_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_234_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_235_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_236_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_237_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_238_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_239_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_240_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_241_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_242_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_243_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_244_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_245_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_246_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_247_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_248_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_249_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_250_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_251_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_252_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_253_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_254_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_255_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_256_D(o, s, l)
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_1_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_2, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(2, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_2_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_3, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(3, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_3_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_4, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(4, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_4_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_5, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(5, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_5_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_6, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(6, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_6_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_7, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(7, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_7_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_8, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(8, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_8_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_9, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(9, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_9_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_10, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(10, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_10_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_11, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(11, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_11_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_12, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(12, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_12_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_13, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(13, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_13_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_14, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(14, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_14_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_15, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(15, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_15_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_16, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(16, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_16_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_17, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(17, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_17_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_18, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(18, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_18_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_19, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(19, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_19_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_20, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(20, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_20_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_21, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(21, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_21_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_22, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(22, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_22_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_23, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(23, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_23_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_24, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(24, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_24_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_25, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(25, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_25_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_26, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(26, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_26_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_27, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(27, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_27_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_28, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(28, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_28_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_29, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(29, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_29_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_30, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(30, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_30_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_31, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(31, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_31_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_32, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(32, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_32_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_33, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(33, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_33_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_34, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(34, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_34_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_35, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(35, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_35_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_36, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(36, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_36_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_37, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(37, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_37_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_38, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(38, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_38_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_39, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(39, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_39_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_40, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(40, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_40_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_41, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(41, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_41_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_42, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(42, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_42_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_43, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(43, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_43_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_44, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(44, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_44_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_45, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(45, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_45_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_46, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(46, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_46_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_47, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(47, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_47_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_48, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(48, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_48_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_49, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(49, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_49_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_50, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(50, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_50_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_51, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(51, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_51_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_52, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(52, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_52_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_53, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(53, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_53_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_54, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(54, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_54_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_55, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(55, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_55_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_56, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(56, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_56_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_57, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(57, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_57_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_58, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(58, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_58_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_59, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(59, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_59_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_60, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(60, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_60_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_61, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(61, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_61_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_62, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(62, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_62_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_63, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(63, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_63_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_64, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(64, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_64_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_65, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(65, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_65_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_66, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(66, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_66_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_67, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(67, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_67_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_68, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(68, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_68_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_69, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(69, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_69_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_70, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(70, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_70_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_71, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(71, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_71_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_72, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(72, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_72_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_73, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(73, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_73_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_74, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(74, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_74_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_75, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(75, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_75_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_76, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(76, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_76_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_77, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(77, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_77_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_78, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(78, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_78_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_79, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(79, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_79_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_80, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(80, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_80_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_81, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(81, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_81_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_82, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(82, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_82_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_83, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(83, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_83_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_84, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(84, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_84_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_85, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(85, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_85_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_86, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(86, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_86_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_87, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(87, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_87_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_88, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(88, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_88_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_89, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(89, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_89_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_90, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(90, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_90_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_91, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(91, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_91_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_92, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(92, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_92_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_93, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(93, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_93_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_94, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(94, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_94_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_95, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(95, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_95_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_96, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(96, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_96_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_97, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(97, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_97_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_98, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(98, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_98_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_99, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(99, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_99_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_100, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(100, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_100_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_101, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(101, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_101_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_102, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(102, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_102_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_103, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(103, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_103_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_104, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(104, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_104_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_105, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(105, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_105_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_106, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(106, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_106_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_107, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(107, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_107_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_108, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(108, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_108_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_109, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(109, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_109_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_110, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(110, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_110_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_111, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(111, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_111_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_112, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(112, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_112_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_113, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(113, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_113_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_114, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(114, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_114_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_115, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(115, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_115_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_116, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(116, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_116_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_117, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(117, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_117_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_118, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(118, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_118_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_119, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(119, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_119_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_120, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(120, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_120_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_121, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(121, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_121_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_122, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(122, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_122_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_123, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(123, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_123_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_124, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(124, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_124_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_125, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(125, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_125_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_126, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(126, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_126_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_127, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(127, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_127_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_128, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(128, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_128_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_129, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(129, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_129_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_130, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(130, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_130_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_131, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(131, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_131_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_132, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(132, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_132_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_133, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(133, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_133_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_134, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(134, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_134_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_135, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(135, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_135_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_136, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(136, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_136_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_137, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(137, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_137_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_138, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(138, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_138_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_139, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(139, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_139_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_140, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(140, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_140_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_141, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(141, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_141_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_142, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(142, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_142_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_143, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(143, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_143_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_144, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(144, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_144_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_145, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(145, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_145_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_146, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(146, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_146_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_147, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(147, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_147_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_148, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(148, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_148_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_149, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(149, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_149_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_150, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(150, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_150_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_151, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(151, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_151_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_152, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(152, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_152_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_153, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(153, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_153_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_154, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(154, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_154_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_155, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(155, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_155_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_156, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(156, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_156_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_157, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(157, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_157_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_158, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(158, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_158_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_159, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(159, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_159_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_160, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(160, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_160_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_161, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(161, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_161_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_162, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(162, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_162_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_163, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(163, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_163_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_164, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(164, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_164_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_165, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(165, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_165_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_166, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(166, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_166_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_167, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(167, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_167_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_168, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(168, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_168_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_169, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(169, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_169_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_170, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(170, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_170_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_171, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(171, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_171_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_172, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(172, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_172_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_173, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(173, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_173_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_174, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(174, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_174_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_175, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(175, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_175_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_176, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(176, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_176_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_177, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(177, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_177_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_178, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(178, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_178_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_179, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(179, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_179_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_180, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(180, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_180_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_181, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(181, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_181_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_182, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(182, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_182_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_183, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(183, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_183_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_184, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(184, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_184_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_185, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(185, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_185_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_186, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(186, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_186_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_187, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(187, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_187_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_188, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(188, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_188_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_189, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(189, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_189_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_190, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(190, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_190_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_191, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(191, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_191_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_192, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(192, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_192_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_193, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(193, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_193_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_194, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(194, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_194_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_195, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(195, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_195_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_196, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(196, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_196_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_197, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(197, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_197_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_198, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(198, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_198_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_199, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(199, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_199_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_200, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(200, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_200_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_201, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(201, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_201_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_202, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(202, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_202_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_203, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(203, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_203_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_204, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(204, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_204_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_205, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(205, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_205_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_206, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(206, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_206_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_207, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(207, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_207_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_208, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(208, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_208_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_209, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(209, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_209_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_210, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(210, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_210_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_211, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(211, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_211_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_212, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(212, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_212_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_213, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(213, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_213_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_214, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(214, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_214_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_215, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(215, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_215_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_216, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(216, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_216_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_217, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(217, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_217_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_218, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(218, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_218_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_219, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(219, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_219_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_220, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(220, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_220_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_221, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(221, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_221_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_222, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(222, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_222_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_223, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(223, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_223_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_224, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(224, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_224_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_225, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(225, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_225_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_226, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(226, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_226_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_227, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(227, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_227_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_228, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(228, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_228_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_229, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(229, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_229_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_230, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(230, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_230_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_231, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(231, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_231_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_232, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(232, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_232_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_233, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(233, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_233_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_234, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(234, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_234_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_235, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(235, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_235_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_236, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(236, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_236_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_237, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(237, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_237_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_238, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(238, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_238_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_239, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(239, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_239_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_240, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(240, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_240_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_241, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(241, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_241_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_242, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(242, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_242_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_243, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(243, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_243_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_244, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(244, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_244_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_245, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(245, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_245_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_246, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(246, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_246_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_247, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(247, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_247_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_248, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(248, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_248_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_249, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(249, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_249_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_250, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(250, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_250_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_251, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(251, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_251_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_252, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(252, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_252_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_253, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(253, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_253_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_254, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(254, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_254_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_255, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(255, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_255_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_256, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(256, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_256_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_257, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(257, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_right.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_right.hpp
new file mode 100644
index 000000000..3cf5fd7af
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/edg/fold_right.hpp
@@ -0,0 +1,794 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
+#
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT_1(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_1_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_2(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_2_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_3(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_3_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_4(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_4_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_5(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_5_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_6(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_6_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_7(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_7_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_8(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_8_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_9(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_9_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_10(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_10_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_11(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_11_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_12(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_12_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_13(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_13_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_14(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_14_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_15(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_15_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_16(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_16_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_17(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_17_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_18(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_18_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_19(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_19_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_20(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_20_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_21(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_21_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_22(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_22_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_23(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_23_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_24(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_24_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_25(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_25_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_26(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_26_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_27(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_27_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_28(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_28_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_29(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_29_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_30(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_30_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_31(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_31_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_32(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_32_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_33(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_33_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_34(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_34_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_35(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_35_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_36(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_36_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_37(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_37_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_38(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_38_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_39(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_39_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_40(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_40_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_41(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_41_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_42(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_42_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_43(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_43_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_44(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_44_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_45(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_45_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_46(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_46_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_47(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_47_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_48(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_48_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_49(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_49_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_50(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_50_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_51(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_51_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_52(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_52_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_53(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_53_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_54(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_54_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_55(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_55_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_56(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_56_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_57(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_57_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_58(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_58_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_59(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_59_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_60(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_60_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_61(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_61_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_62(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_62_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_63(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_63_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_64(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_64_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_65(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_65_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_66(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_66_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_67(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_67_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_68(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_68_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_69(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_69_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_70(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_70_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_71(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_71_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_72(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_72_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_73(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_73_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_74(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_74_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_75(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_75_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_76(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_76_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_77(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_77_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_78(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_78_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_79(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_79_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_80(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_80_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_81(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_81_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_82(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_82_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_83(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_83_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_84(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_84_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_85(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_85_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_86(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_86_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_87(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_87_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_88(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_88_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_89(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_89_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_90(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_90_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_91(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_91_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_92(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_92_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_93(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_93_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_94(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_94_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_95(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_95_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_96(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_96_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_97(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_97_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_98(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_98_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_99(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_99_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_100(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_100_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_101(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_101_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_102(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_102_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_103(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_103_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_104(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_104_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_105(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_105_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_106(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_106_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_107(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_107_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_108(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_108_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_109(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_109_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_110(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_110_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_111(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_111_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_112(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_112_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_113(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_113_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_114(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_114_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_115(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_115_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_116(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_116_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_117(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_117_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_118(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_118_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_119(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_119_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_120(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_120_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_121(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_121_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_122(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_122_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_123(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_123_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_124(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_124_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_125(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_125_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_126(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_126_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_127(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_127_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_128(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_128_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_129(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_129_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_130(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_130_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_131(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_131_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_132(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_132_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_133(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_133_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_134(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_134_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_135(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_135_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_136(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_136_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_137(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_137_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_138(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_138_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_139(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_139_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_140(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_140_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_141(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_141_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_142(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_142_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_143(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_143_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_144(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_144_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_145(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_145_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_146(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_146_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_147(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_147_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_148(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_148_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_149(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_149_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_150(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_150_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_151(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_151_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_152(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_152_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_153(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_153_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_154(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_154_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_155(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_155_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_156(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_156_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_157(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_157_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_158(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_158_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_159(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_159_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_160(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_160_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_161(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_161_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_162(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_162_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_163(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_163_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_164(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_164_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_165(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_165_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_166(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_166_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_167(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_167_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_168(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_168_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_169(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_169_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_170(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_170_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_171(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_171_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_172(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_172_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_173(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_173_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_174(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_174_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_175(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_175_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_176(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_176_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_177(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_177_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_178(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_178_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_179(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_179_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_180(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_180_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_181(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_181_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_182(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_182_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_183(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_183_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_184(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_184_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_185(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_185_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_186(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_186_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_187(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_187_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_188(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_188_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_189(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_189_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_190(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_190_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_191(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_191_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_192(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_192_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_193(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_193_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_194(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_194_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_195(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_195_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_196(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_196_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_197(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_197_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_198(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_198_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_199(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_199_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_200(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_200_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_201(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_201_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_202(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_202_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_203(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_203_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_204(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_204_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_205(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_205_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_206(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_206_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_207(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_207_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_208(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_208_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_209(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_209_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_210(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_210_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_211(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_211_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_212(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_212_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_213(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_213_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_214(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_214_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_215(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_215_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_216(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_216_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_217(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_217_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_218(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_218_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_219(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_219_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_220(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_220_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_221(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_221_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_222(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_222_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_223(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_223_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_224(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_224_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_225(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_225_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_226(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_226_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_227(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_227_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_228(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_228_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_229(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_229_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_230(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_230_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_231(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_231_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_232(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_232_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_233(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_233_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_234(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_234_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_235(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_235_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_236(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_236_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_237(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_237_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_238(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_238_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_239(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_239_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_240(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_240_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_241(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_241_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_242(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_242_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_243(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_243_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_244(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_244_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_245(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_245_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_246(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_246_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_247(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_247_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_248(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_248_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_249(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_249_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_250(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_250_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_251(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_251_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_252(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_252_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_253(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_253_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_254(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_254_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_255(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_255_D(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_256(o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_256_D(o, s, l)
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT_1_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(2, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_2, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_2_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(3, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_3, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_3_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(4, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_4, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_4_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(5, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_5, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_5_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(6, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_6, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_6_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(7, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_7, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_7_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(8, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_8, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_8_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(9, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_9, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_9_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(10, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_10, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_10_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(11, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_11, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_11_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(12, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_12, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_12_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(13, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_13, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_13_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(14, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_14, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_14_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(15, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_15, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_15_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(16, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_16, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_16_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(17, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_17, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_17_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(18, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_18, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_18_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(19, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_19, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_19_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(20, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_20, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_20_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(21, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_21, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_21_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(22, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_22, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_22_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(23, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_23, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_23_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(24, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_24, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_24_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(25, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_25, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_25_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(26, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_26, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_26_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(27, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_27, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_27_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(28, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_28, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_28_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(29, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_29, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_29_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(30, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_30, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_30_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(31, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_31, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_31_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(32, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_32, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_32_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(33, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_33, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_33_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(34, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_34, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_34_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(35, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_35, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_35_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(36, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_36, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_36_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(37, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_37, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_37_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(38, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_38, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_38_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(39, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_39, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_39_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(40, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_40, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_40_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(41, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_41, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_41_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(42, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_42, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_42_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(43, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_43, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_43_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(44, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_44, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_44_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(45, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_45, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_45_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(46, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_46, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_46_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(47, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_47, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_47_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(48, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_48, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_48_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(49, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_49, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_49_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(50, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_50, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_50_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(51, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_51, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_51_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(52, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_52, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_52_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(53, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_53, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_53_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(54, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_54, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_54_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(55, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_55, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_55_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(56, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_56, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_56_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(57, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_57, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_57_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(58, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_58, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_58_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(59, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_59, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_59_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(60, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_60, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_60_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(61, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_61, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_61_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(62, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_62, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_62_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(63, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_63, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_63_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(64, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_64, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_64_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(65, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_65, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_65_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(66, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_66, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_66_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(67, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_67, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_67_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(68, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_68, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_68_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(69, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_69, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_69_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(70, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_70, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_70_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(71, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_71, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_71_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(72, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_72, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_72_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(73, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_73, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_73_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(74, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_74, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_74_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(75, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_75, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_75_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(76, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_76, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_76_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(77, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_77, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_77_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(78, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_78, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_78_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(79, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_79, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_79_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(80, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_80, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_80_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(81, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_81, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_81_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(82, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_82, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_82_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(83, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_83, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_83_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(84, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_84, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_84_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(85, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_85, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_85_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(86, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_86, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_86_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(87, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_87, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_87_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(88, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_88, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_88_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(89, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_89, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_89_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(90, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_90, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_90_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(91, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_91, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_91_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(92, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_92, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_92_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(93, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_93, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_93_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(94, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_94, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_94_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(95, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_95, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_95_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(96, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_96, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_96_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(97, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_97, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_97_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(98, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_98, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_98_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(99, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_99, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_99_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(100, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_100, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_100_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(101, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_101, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_101_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(102, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_102, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_102_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(103, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_103, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_103_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(104, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_104, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_104_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(105, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_105, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_105_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(106, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_106, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_106_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(107, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_107, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_107_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(108, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_108, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_108_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(109, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_109, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_109_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(110, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_110, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_110_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(111, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_111, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_111_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(112, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_112, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_112_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(113, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_113, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_113_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(114, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_114, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_114_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(115, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_115, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_115_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(116, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_116, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_116_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(117, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_117, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_117_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(118, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_118, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_118_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(119, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_119, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_119_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(120, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_120, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_120_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(121, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_121, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_121_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(122, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_122, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_122_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(123, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_123, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_123_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(124, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_124, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_124_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(125, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_125, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_125_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(126, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_126, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_126_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(127, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_127, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_127_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(128, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_128, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_128_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(129, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_129, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_129_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(130, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_130, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_130_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(131, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_131, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_131_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(132, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_132, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_132_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(133, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_133, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_133_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(134, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_134, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_134_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(135, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_135, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_135_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(136, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_136, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_136_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(137, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_137, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_137_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(138, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_138, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_138_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(139, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_139, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_139_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(140, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_140, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_140_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(141, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_141, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_141_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(142, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_142, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_142_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(143, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_143, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_143_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(144, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_144, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_144_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(145, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_145, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_145_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(146, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_146, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_146_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(147, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_147, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_147_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(148, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_148, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_148_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(149, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_149, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_149_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(150, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_150, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_150_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(151, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_151, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_151_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(152, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_152, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_152_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(153, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_153, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_153_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(154, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_154, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_154_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(155, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_155, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_155_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(156, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_156, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_156_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(157, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_157, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_157_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(158, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_158, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_158_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(159, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_159, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_159_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(160, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_160, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_160_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(161, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_161, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_161_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(162, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_162, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_162_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(163, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_163, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_163_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(164, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_164, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_164_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(165, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_165, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_165_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(166, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_166, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_166_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(167, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_167, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_167_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(168, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_168, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_168_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(169, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_169, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_169_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(170, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_170, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_170_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(171, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_171, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_171_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(172, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_172, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_172_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(173, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_173, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_173_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(174, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_174, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_174_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(175, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_175, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_175_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(176, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_176, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_176_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(177, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_177, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_177_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(178, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_178, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_178_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(179, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_179, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_179_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(180, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_180, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_180_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(181, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_181, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_181_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(182, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_182, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_182_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(183, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_183, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_183_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(184, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_184, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_184_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(185, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_185, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_185_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(186, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_186, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_186_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(187, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_187, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_187_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(188, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_188, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_188_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(189, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_189, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_189_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(190, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_190, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_190_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(191, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_191, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_191_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(192, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_192, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_192_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(193, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_193, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_193_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(194, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_194, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_194_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(195, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_195, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_195_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(196, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_196, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_196_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(197, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_197, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_197_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(198, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_198, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_198_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(199, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_199, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_199_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(200, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_200, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_200_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(201, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_201, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_201_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(202, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_202, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_202_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(203, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_203, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_203_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(204, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_204, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_204_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(205, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_205, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_205_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(206, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_206, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_206_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(207, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_207, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_207_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(208, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_208, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_208_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(209, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_209, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_209_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(210, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_210, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_210_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(211, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_211, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_211_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(212, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_212, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_212_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(213, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_213, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_213_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(214, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_214, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_214_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(215, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_215, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_215_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(216, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_216, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_216_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(217, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_217, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_217_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(218, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_218, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_218_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(219, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_219, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_219_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(220, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_220, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_220_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(221, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_221, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_221_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(222, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_222, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_222_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(223, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_223, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_223_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(224, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_224, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_224_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(225, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_225, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_225_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(226, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_226, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_226_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(227, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_227, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_227_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(228, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_228, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_228_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(229, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_229, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_229_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(230, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_230, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_230_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(231, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_231, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_231_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(232, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_232, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_232_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(233, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_233, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_233_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(234, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_234, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_234_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(235, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_235, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_235_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(236, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_236, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_236_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(237, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_237, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_237_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(238, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_238, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_238_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(239, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_239, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_239_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(240, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_240, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_240_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(241, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_241, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_241_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(242, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_242, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_242_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(243, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_243, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_243_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(244, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_244, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_244_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(245, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_245, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_245_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(246, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_246, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_246_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(247, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_247, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_247_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(248, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_248, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_248_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(249, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_249, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_249_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(250, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_250, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_250_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(251, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_251, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_251_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(252, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_252, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_252_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(253, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_253, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_253_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(254, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_254, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_254_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(255, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_255, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_255_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(256, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_256, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_256_D(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), o, s MSGPACK_PP_TUPLE_EAT_3)(257, MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_RIGHT_257, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3)(o, s, MSGPACK_PP_LIST_REST(l)), MSGPACK_PP_LIST_FIRST(l))
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_NIL 1
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_1(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_2(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_3(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_4(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_5(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_6(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_7(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_8(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_9(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_10(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_11(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_12(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_13(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_14(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_15(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_16(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_17(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_18(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_19(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_20(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_21(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_22(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_23(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_24(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_25(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_26(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_27(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_28(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_29(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_30(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_31(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_32(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_33(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_34(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_35(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_36(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_37(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_38(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_39(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_40(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_41(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_42(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_43(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_44(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_45(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_46(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_47(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_48(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_49(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_50(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_51(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_52(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_53(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_54(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_55(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_56(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_57(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_58(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_59(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_60(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_61(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_62(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_63(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_64(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_65(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_66(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_67(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_68(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_69(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_70(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_71(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_72(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_73(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_74(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_75(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_76(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_77(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_78(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_79(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_80(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_81(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_82(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_83(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_84(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_85(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_86(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_87(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_88(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_89(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_90(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_91(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_92(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_93(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_94(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_95(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_96(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_97(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_98(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_99(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_100(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_101(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_102(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_103(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_104(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_105(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_106(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_107(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_108(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_109(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_110(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_111(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_112(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_113(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_114(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_115(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_116(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_117(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_118(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_119(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_120(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_121(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_122(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_123(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_124(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_125(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_126(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_127(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_128(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_129(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_130(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_131(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_132(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_133(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_134(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_135(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_136(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_137(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_138(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_139(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_140(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_141(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_142(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_143(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_144(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_145(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_146(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_147(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_148(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_149(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_150(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_151(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_152(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_153(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_154(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_155(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_156(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_157(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_158(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_159(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_160(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_161(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_162(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_163(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_164(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_165(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_166(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_167(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_168(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_169(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_170(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_171(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_172(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_173(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_174(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_175(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_176(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_177(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_178(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_179(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_180(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_181(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_182(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_183(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_184(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_185(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_186(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_187(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_188(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_189(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_190(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_191(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_192(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_193(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_194(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_195(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_196(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_197(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_198(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_199(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_200(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_201(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_202(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_203(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_204(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_205(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_206(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_207(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_208(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_209(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_210(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_211(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_212(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_213(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_214(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_215(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_216(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_217(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_218(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_219(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_220(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_221(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_222(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_223(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_224(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_225(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_226(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_227(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_228(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_229(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_230(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_231(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_232(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_233(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_234(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_235(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_236(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_237(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_238(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_239(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_240(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_241(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_242(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_243(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_244(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_245(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_246(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_247(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_248(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_249(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_250(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_251(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_252(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_253(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_254(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_255(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT_CHECK_MSGPACK_PP_LIST_FOLD_RIGHT_256(o, s, l) 0
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_left.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_left.hpp
new file mode 100644
index 000000000..f642ef8f1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_left.hpp
@@ -0,0 +1,279 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
+#
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_2, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(2, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_3, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(3, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_4, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(4, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_5, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(5, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_6, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(6, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_7, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(7, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_8, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(8, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_9, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(9, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_10, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(10, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_11, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(11, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_12, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(12, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_13, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(13, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_14, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(14, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_15, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(15, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_16, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(16, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_17, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(17, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_18, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(18, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_19, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(19, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_20, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(20, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_21, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(21, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_22, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(22, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_23, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(23, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_24, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(24, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_25, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(25, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_26, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(26, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_27, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(27, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_28, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(28, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_29, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(29, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_30, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(30, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_31, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(31, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_32, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(32, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_33, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(33, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_34, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(34, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_35, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(35, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_36, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(36, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_37, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(37, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_38, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(38, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_39, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(39, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_40, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(40, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_41, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(41, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_42, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(42, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_43, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(43, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_44, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(44, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_45, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(45, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_46, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(46, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_47, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(47, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_48, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(48, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_49, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(49, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_50, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(50, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_51, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(51, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_52, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(52, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_53, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(53, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_54, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(54, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_55, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(55, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_56, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(56, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_57, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(57, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_58, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(58, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_59, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(59, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_60, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(60, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_61, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(61, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_62, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(62, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_63, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(63, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_64, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(64, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_65, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(65, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_66, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(66, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_67, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(67, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_68, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(68, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_69, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(69, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_70, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(70, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_71, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(71, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_72, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(72, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_73, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(73, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_74, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(74, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_75, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(75, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_76, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(76, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_77, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(77, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_78, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(78, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_79, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(79, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_80, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(80, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_81, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(81, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_82, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(82, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_83, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(83, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_84, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(84, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_85, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(85, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_86, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(86, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_87, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(87, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_88, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(88, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_89, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(89, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_90, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(90, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_91, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(91, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_92, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(92, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_93, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(93, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_94, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(94, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_95, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(95, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_96, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(96, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_97, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(97, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_98, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(98, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_99, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(99, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_100, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(100, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_101, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(101, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_102, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(102, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_103, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(103, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_104, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(104, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_105, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(105, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_106, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(106, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_107, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(107, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_108, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(108, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_109, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(109, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_110, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(110, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_111, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(111, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_112, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(112, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_113, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(113, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_114, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(114, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_115, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(115, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_116, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(116, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_117, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(117, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_118, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(118, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_119, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(119, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_120, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(120, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_121, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(121, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_122, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(122, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_123, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(123, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_124, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(124, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_125, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(125, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_126, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(126, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_127, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(127, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_128, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(128, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_129, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(129, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_130, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(130, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_131, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(131, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_132, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(132, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_133, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(133, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_134, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(134, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_135, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(135, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_136, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(136, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_137, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(137, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_138, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(138, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_139, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(139, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_140, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(140, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_141, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(141, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_142, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(142, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_143, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(143, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_144, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(144, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_145, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(145, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_146, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(146, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_147, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(147, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_148, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(148, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_149, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(149, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_150, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(150, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_151, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(151, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_152, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(152, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_153, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(153, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_154, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(154, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_155, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(155, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_156, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(156, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_157, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(157, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_158, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(158, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_159, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(159, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_160, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(160, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_161, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(161, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_162, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(162, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_163, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(163, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_164, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(164, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_165, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(165, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_166, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(166, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_167, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(167, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_168, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(168, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_169, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(169, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_170, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(170, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_171, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(171, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_172, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(172, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_173, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(173, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_174, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(174, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_175, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(175, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_176, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(176, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_177, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(177, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_178, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(178, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_179, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(179, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_180, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(180, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_181, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(181, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_182, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(182, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_183, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(183, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_184, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(184, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_185, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(185, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_186, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(186, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_187, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(187, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_188, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(188, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_189, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(189, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_190, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(190, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_191, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(191, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_192, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(192, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_193, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(193, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_194, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(194, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_195, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(195, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_196, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(196, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_197, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(197, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_198, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(198, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_199, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(199, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_200, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(200, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_201, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(201, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_202, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(202, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_203, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(203, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_204, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(204, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_205, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(205, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_206, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(206, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_207, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(207, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_208, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(208, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_209, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(209, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_210, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(210, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_211, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(211, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_212, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(212, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_213, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(213, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_214, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(214, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_215, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(215, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_216, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(216, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_217, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(217, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_218, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(218, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_219, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(219, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_220, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(220, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_221, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(221, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_222, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(222, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_223, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(223, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_224, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(224, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_225, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(225, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_226, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(226, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_227, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(227, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_228, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(228, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_229, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(229, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_230, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(230, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_231, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(231, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_232, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(232, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_233, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(233, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_234, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(234, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_235, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(235, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_236, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(236, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_237, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(237, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_238, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(238, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_239, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(239, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_240, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(240, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_241, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(241, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_242, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(242, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_243, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(243, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_244, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(244, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_245, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(245, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_246, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(246, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_247, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(247, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_248, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(248, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_249, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(249, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_250, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(250, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_251, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(251, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_252, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(252, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_253, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(253, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_254, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(254, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_255, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(255, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_256, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(256, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+# define MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) MSGPACK_PP_IIF(MSGPACK_PP_LIST_IS_CONS(l), MSGPACK_PP_LIST_FOLD_LEFT_257, s MSGPACK_PP_TUPLE_EAT_3)(o, MSGPACK_PP_EXPR_IIF(MSGPACK_PP_LIST_IS_CONS(l), o)(257, s, MSGPACK_PP_LIST_FIRST(l)), MSGPACK_PP_LIST_REST(l))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_right.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_right.hpp
new file mode 100644
index 000000000..405a1e924
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/detail/fold_right.hpp
@@ -0,0 +1,277 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
+#
+# include <rpc/msgpack/preprocessor/list/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/list/reverse.hpp>
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT_1(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, MSGPACK_PP_LIST_REVERSE_D(1, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_2(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, MSGPACK_PP_LIST_REVERSE_D(2, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_3(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, MSGPACK_PP_LIST_REVERSE_D(3, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_4(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, MSGPACK_PP_LIST_REVERSE_D(4, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_5(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, MSGPACK_PP_LIST_REVERSE_D(5, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_6(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, MSGPACK_PP_LIST_REVERSE_D(6, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_7(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, MSGPACK_PP_LIST_REVERSE_D(7, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_8(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, MSGPACK_PP_LIST_REVERSE_D(8, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_9(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, MSGPACK_PP_LIST_REVERSE_D(9, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_10(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, MSGPACK_PP_LIST_REVERSE_D(10, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_11(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, MSGPACK_PP_LIST_REVERSE_D(11, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_12(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, MSGPACK_PP_LIST_REVERSE_D(12, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_13(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, MSGPACK_PP_LIST_REVERSE_D(13, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_14(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, MSGPACK_PP_LIST_REVERSE_D(14, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_15(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, MSGPACK_PP_LIST_REVERSE_D(15, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_16(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, MSGPACK_PP_LIST_REVERSE_D(16, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_17(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, MSGPACK_PP_LIST_REVERSE_D(17, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_18(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, MSGPACK_PP_LIST_REVERSE_D(18, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_19(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, MSGPACK_PP_LIST_REVERSE_D(19, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_20(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, MSGPACK_PP_LIST_REVERSE_D(20, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_21(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, MSGPACK_PP_LIST_REVERSE_D(21, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_22(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, MSGPACK_PP_LIST_REVERSE_D(22, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_23(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, MSGPACK_PP_LIST_REVERSE_D(23, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_24(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, MSGPACK_PP_LIST_REVERSE_D(24, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_25(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, MSGPACK_PP_LIST_REVERSE_D(25, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_26(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, MSGPACK_PP_LIST_REVERSE_D(26, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_27(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, MSGPACK_PP_LIST_REVERSE_D(27, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_28(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, MSGPACK_PP_LIST_REVERSE_D(28, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_29(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, MSGPACK_PP_LIST_REVERSE_D(29, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_30(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, MSGPACK_PP_LIST_REVERSE_D(30, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_31(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, MSGPACK_PP_LIST_REVERSE_D(31, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_32(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, MSGPACK_PP_LIST_REVERSE_D(32, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_33(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, MSGPACK_PP_LIST_REVERSE_D(33, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_34(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, MSGPACK_PP_LIST_REVERSE_D(34, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_35(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, MSGPACK_PP_LIST_REVERSE_D(35, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_36(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, MSGPACK_PP_LIST_REVERSE_D(36, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_37(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, MSGPACK_PP_LIST_REVERSE_D(37, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_38(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, MSGPACK_PP_LIST_REVERSE_D(38, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_39(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, MSGPACK_PP_LIST_REVERSE_D(39, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_40(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, MSGPACK_PP_LIST_REVERSE_D(40, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_41(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, MSGPACK_PP_LIST_REVERSE_D(41, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_42(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, MSGPACK_PP_LIST_REVERSE_D(42, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_43(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, MSGPACK_PP_LIST_REVERSE_D(43, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_44(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, MSGPACK_PP_LIST_REVERSE_D(44, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_45(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, MSGPACK_PP_LIST_REVERSE_D(45, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_46(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, MSGPACK_PP_LIST_REVERSE_D(46, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_47(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, MSGPACK_PP_LIST_REVERSE_D(47, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_48(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, MSGPACK_PP_LIST_REVERSE_D(48, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_49(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, MSGPACK_PP_LIST_REVERSE_D(49, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_50(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, MSGPACK_PP_LIST_REVERSE_D(50, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_51(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, MSGPACK_PP_LIST_REVERSE_D(51, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_52(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, MSGPACK_PP_LIST_REVERSE_D(52, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_53(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, MSGPACK_PP_LIST_REVERSE_D(53, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_54(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, MSGPACK_PP_LIST_REVERSE_D(54, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_55(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, MSGPACK_PP_LIST_REVERSE_D(55, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_56(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, MSGPACK_PP_LIST_REVERSE_D(56, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_57(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, MSGPACK_PP_LIST_REVERSE_D(57, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_58(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, MSGPACK_PP_LIST_REVERSE_D(58, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_59(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, MSGPACK_PP_LIST_REVERSE_D(59, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_60(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, MSGPACK_PP_LIST_REVERSE_D(60, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_61(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, MSGPACK_PP_LIST_REVERSE_D(61, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_62(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, MSGPACK_PP_LIST_REVERSE_D(62, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_63(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, MSGPACK_PP_LIST_REVERSE_D(63, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_64(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, MSGPACK_PP_LIST_REVERSE_D(64, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_65(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, MSGPACK_PP_LIST_REVERSE_D(65, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_66(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, MSGPACK_PP_LIST_REVERSE_D(66, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_67(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, MSGPACK_PP_LIST_REVERSE_D(67, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_68(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, MSGPACK_PP_LIST_REVERSE_D(68, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_69(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, MSGPACK_PP_LIST_REVERSE_D(69, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_70(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, MSGPACK_PP_LIST_REVERSE_D(70, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_71(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, MSGPACK_PP_LIST_REVERSE_D(71, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_72(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, MSGPACK_PP_LIST_REVERSE_D(72, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_73(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, MSGPACK_PP_LIST_REVERSE_D(73, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_74(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, MSGPACK_PP_LIST_REVERSE_D(74, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_75(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, MSGPACK_PP_LIST_REVERSE_D(75, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_76(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, MSGPACK_PP_LIST_REVERSE_D(76, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_77(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, MSGPACK_PP_LIST_REVERSE_D(77, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_78(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, MSGPACK_PP_LIST_REVERSE_D(78, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_79(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, MSGPACK_PP_LIST_REVERSE_D(79, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_80(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, MSGPACK_PP_LIST_REVERSE_D(80, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_81(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, MSGPACK_PP_LIST_REVERSE_D(81, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_82(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, MSGPACK_PP_LIST_REVERSE_D(82, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_83(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, MSGPACK_PP_LIST_REVERSE_D(83, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_84(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, MSGPACK_PP_LIST_REVERSE_D(84, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_85(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, MSGPACK_PP_LIST_REVERSE_D(85, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_86(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, MSGPACK_PP_LIST_REVERSE_D(86, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_87(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, MSGPACK_PP_LIST_REVERSE_D(87, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_88(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, MSGPACK_PP_LIST_REVERSE_D(88, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_89(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, MSGPACK_PP_LIST_REVERSE_D(89, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_90(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, MSGPACK_PP_LIST_REVERSE_D(90, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_91(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, MSGPACK_PP_LIST_REVERSE_D(91, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_92(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, MSGPACK_PP_LIST_REVERSE_D(92, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_93(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, MSGPACK_PP_LIST_REVERSE_D(93, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_94(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, MSGPACK_PP_LIST_REVERSE_D(94, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_95(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, MSGPACK_PP_LIST_REVERSE_D(95, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_96(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, MSGPACK_PP_LIST_REVERSE_D(96, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_97(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, MSGPACK_PP_LIST_REVERSE_D(97, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_98(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, MSGPACK_PP_LIST_REVERSE_D(98, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_99(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, MSGPACK_PP_LIST_REVERSE_D(99, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_100(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, MSGPACK_PP_LIST_REVERSE_D(100, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_101(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, MSGPACK_PP_LIST_REVERSE_D(101, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_102(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, MSGPACK_PP_LIST_REVERSE_D(102, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_103(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, MSGPACK_PP_LIST_REVERSE_D(103, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_104(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, MSGPACK_PP_LIST_REVERSE_D(104, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_105(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, MSGPACK_PP_LIST_REVERSE_D(105, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_106(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, MSGPACK_PP_LIST_REVERSE_D(106, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_107(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, MSGPACK_PP_LIST_REVERSE_D(107, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_108(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, MSGPACK_PP_LIST_REVERSE_D(108, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_109(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, MSGPACK_PP_LIST_REVERSE_D(109, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_110(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, MSGPACK_PP_LIST_REVERSE_D(110, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_111(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, MSGPACK_PP_LIST_REVERSE_D(111, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_112(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, MSGPACK_PP_LIST_REVERSE_D(112, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_113(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, MSGPACK_PP_LIST_REVERSE_D(113, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_114(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, MSGPACK_PP_LIST_REVERSE_D(114, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_115(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, MSGPACK_PP_LIST_REVERSE_D(115, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_116(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, MSGPACK_PP_LIST_REVERSE_D(116, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_117(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, MSGPACK_PP_LIST_REVERSE_D(117, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_118(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, MSGPACK_PP_LIST_REVERSE_D(118, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_119(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, MSGPACK_PP_LIST_REVERSE_D(119, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_120(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, MSGPACK_PP_LIST_REVERSE_D(120, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_121(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, MSGPACK_PP_LIST_REVERSE_D(121, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_122(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, MSGPACK_PP_LIST_REVERSE_D(122, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_123(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, MSGPACK_PP_LIST_REVERSE_D(123, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_124(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, MSGPACK_PP_LIST_REVERSE_D(124, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_125(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, MSGPACK_PP_LIST_REVERSE_D(125, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_126(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, MSGPACK_PP_LIST_REVERSE_D(126, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_127(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, MSGPACK_PP_LIST_REVERSE_D(127, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_128(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, MSGPACK_PP_LIST_REVERSE_D(128, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_129(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, MSGPACK_PP_LIST_REVERSE_D(129, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_130(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, MSGPACK_PP_LIST_REVERSE_D(130, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_131(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, MSGPACK_PP_LIST_REVERSE_D(131, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_132(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, MSGPACK_PP_LIST_REVERSE_D(132, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_133(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, MSGPACK_PP_LIST_REVERSE_D(133, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_134(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, MSGPACK_PP_LIST_REVERSE_D(134, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_135(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, MSGPACK_PP_LIST_REVERSE_D(135, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_136(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, MSGPACK_PP_LIST_REVERSE_D(136, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_137(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, MSGPACK_PP_LIST_REVERSE_D(137, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_138(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, MSGPACK_PP_LIST_REVERSE_D(138, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_139(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, MSGPACK_PP_LIST_REVERSE_D(139, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_140(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, MSGPACK_PP_LIST_REVERSE_D(140, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_141(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, MSGPACK_PP_LIST_REVERSE_D(141, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_142(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, MSGPACK_PP_LIST_REVERSE_D(142, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_143(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, MSGPACK_PP_LIST_REVERSE_D(143, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_144(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, MSGPACK_PP_LIST_REVERSE_D(144, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_145(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, MSGPACK_PP_LIST_REVERSE_D(145, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_146(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, MSGPACK_PP_LIST_REVERSE_D(146, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_147(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, MSGPACK_PP_LIST_REVERSE_D(147, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_148(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, MSGPACK_PP_LIST_REVERSE_D(148, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_149(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, MSGPACK_PP_LIST_REVERSE_D(149, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_150(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, MSGPACK_PP_LIST_REVERSE_D(150, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_151(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, MSGPACK_PP_LIST_REVERSE_D(151, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_152(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, MSGPACK_PP_LIST_REVERSE_D(152, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_153(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, MSGPACK_PP_LIST_REVERSE_D(153, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_154(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, MSGPACK_PP_LIST_REVERSE_D(154, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_155(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, MSGPACK_PP_LIST_REVERSE_D(155, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_156(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, MSGPACK_PP_LIST_REVERSE_D(156, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_157(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, MSGPACK_PP_LIST_REVERSE_D(157, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_158(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, MSGPACK_PP_LIST_REVERSE_D(158, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_159(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, MSGPACK_PP_LIST_REVERSE_D(159, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_160(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, MSGPACK_PP_LIST_REVERSE_D(160, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_161(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, MSGPACK_PP_LIST_REVERSE_D(161, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_162(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, MSGPACK_PP_LIST_REVERSE_D(162, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_163(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, MSGPACK_PP_LIST_REVERSE_D(163, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_164(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, MSGPACK_PP_LIST_REVERSE_D(164, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_165(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, MSGPACK_PP_LIST_REVERSE_D(165, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_166(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, MSGPACK_PP_LIST_REVERSE_D(166, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_167(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, MSGPACK_PP_LIST_REVERSE_D(167, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_168(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, MSGPACK_PP_LIST_REVERSE_D(168, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_169(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, MSGPACK_PP_LIST_REVERSE_D(169, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_170(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, MSGPACK_PP_LIST_REVERSE_D(170, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_171(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, MSGPACK_PP_LIST_REVERSE_D(171, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_172(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, MSGPACK_PP_LIST_REVERSE_D(172, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_173(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, MSGPACK_PP_LIST_REVERSE_D(173, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_174(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, MSGPACK_PP_LIST_REVERSE_D(174, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_175(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, MSGPACK_PP_LIST_REVERSE_D(175, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_176(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, MSGPACK_PP_LIST_REVERSE_D(176, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_177(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, MSGPACK_PP_LIST_REVERSE_D(177, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_178(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, MSGPACK_PP_LIST_REVERSE_D(178, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_179(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, MSGPACK_PP_LIST_REVERSE_D(179, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_180(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, MSGPACK_PP_LIST_REVERSE_D(180, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_181(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, MSGPACK_PP_LIST_REVERSE_D(181, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_182(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, MSGPACK_PP_LIST_REVERSE_D(182, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_183(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, MSGPACK_PP_LIST_REVERSE_D(183, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_184(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, MSGPACK_PP_LIST_REVERSE_D(184, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_185(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, MSGPACK_PP_LIST_REVERSE_D(185, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_186(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, MSGPACK_PP_LIST_REVERSE_D(186, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_187(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, MSGPACK_PP_LIST_REVERSE_D(187, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_188(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, MSGPACK_PP_LIST_REVERSE_D(188, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_189(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, MSGPACK_PP_LIST_REVERSE_D(189, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_190(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, MSGPACK_PP_LIST_REVERSE_D(190, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_191(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, MSGPACK_PP_LIST_REVERSE_D(191, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_192(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, MSGPACK_PP_LIST_REVERSE_D(192, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_193(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, MSGPACK_PP_LIST_REVERSE_D(193, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_194(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, MSGPACK_PP_LIST_REVERSE_D(194, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_195(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, MSGPACK_PP_LIST_REVERSE_D(195, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_196(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, MSGPACK_PP_LIST_REVERSE_D(196, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_197(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, MSGPACK_PP_LIST_REVERSE_D(197, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_198(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, MSGPACK_PP_LIST_REVERSE_D(198, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_199(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, MSGPACK_PP_LIST_REVERSE_D(199, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_200(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, MSGPACK_PP_LIST_REVERSE_D(200, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_201(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, MSGPACK_PP_LIST_REVERSE_D(201, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_202(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, MSGPACK_PP_LIST_REVERSE_D(202, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_203(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, MSGPACK_PP_LIST_REVERSE_D(203, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_204(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, MSGPACK_PP_LIST_REVERSE_D(204, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_205(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, MSGPACK_PP_LIST_REVERSE_D(205, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_206(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, MSGPACK_PP_LIST_REVERSE_D(206, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_207(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, MSGPACK_PP_LIST_REVERSE_D(207, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_208(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, MSGPACK_PP_LIST_REVERSE_D(208, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_209(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, MSGPACK_PP_LIST_REVERSE_D(209, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_210(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, MSGPACK_PP_LIST_REVERSE_D(210, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_211(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, MSGPACK_PP_LIST_REVERSE_D(211, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_212(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, MSGPACK_PP_LIST_REVERSE_D(212, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_213(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, MSGPACK_PP_LIST_REVERSE_D(213, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_214(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, MSGPACK_PP_LIST_REVERSE_D(214, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_215(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, MSGPACK_PP_LIST_REVERSE_D(215, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_216(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, MSGPACK_PP_LIST_REVERSE_D(216, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_217(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, MSGPACK_PP_LIST_REVERSE_D(217, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_218(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, MSGPACK_PP_LIST_REVERSE_D(218, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_219(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, MSGPACK_PP_LIST_REVERSE_D(219, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_220(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, MSGPACK_PP_LIST_REVERSE_D(220, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_221(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, MSGPACK_PP_LIST_REVERSE_D(221, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_222(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, MSGPACK_PP_LIST_REVERSE_D(222, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_223(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, MSGPACK_PP_LIST_REVERSE_D(223, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_224(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, MSGPACK_PP_LIST_REVERSE_D(224, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_225(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, MSGPACK_PP_LIST_REVERSE_D(225, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_226(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, MSGPACK_PP_LIST_REVERSE_D(226, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_227(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, MSGPACK_PP_LIST_REVERSE_D(227, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_228(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, MSGPACK_PP_LIST_REVERSE_D(228, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_229(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, MSGPACK_PP_LIST_REVERSE_D(229, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_230(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, MSGPACK_PP_LIST_REVERSE_D(230, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_231(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, MSGPACK_PP_LIST_REVERSE_D(231, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_232(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, MSGPACK_PP_LIST_REVERSE_D(232, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_233(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, MSGPACK_PP_LIST_REVERSE_D(233, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_234(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, MSGPACK_PP_LIST_REVERSE_D(234, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_235(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, MSGPACK_PP_LIST_REVERSE_D(235, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_236(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, MSGPACK_PP_LIST_REVERSE_D(236, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_237(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, MSGPACK_PP_LIST_REVERSE_D(237, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_238(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, MSGPACK_PP_LIST_REVERSE_D(238, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_239(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, MSGPACK_PP_LIST_REVERSE_D(239, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_240(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, MSGPACK_PP_LIST_REVERSE_D(240, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_241(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, MSGPACK_PP_LIST_REVERSE_D(241, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_242(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, MSGPACK_PP_LIST_REVERSE_D(242, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_243(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, MSGPACK_PP_LIST_REVERSE_D(243, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_244(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, MSGPACK_PP_LIST_REVERSE_D(244, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_245(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, MSGPACK_PP_LIST_REVERSE_D(245, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_246(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, MSGPACK_PP_LIST_REVERSE_D(246, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_247(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, MSGPACK_PP_LIST_REVERSE_D(247, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_248(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, MSGPACK_PP_LIST_REVERSE_D(248, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_249(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, MSGPACK_PP_LIST_REVERSE_D(249, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_250(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, MSGPACK_PP_LIST_REVERSE_D(250, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_251(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, MSGPACK_PP_LIST_REVERSE_D(251, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_252(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, MSGPACK_PP_LIST_REVERSE_D(252, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_253(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, MSGPACK_PP_LIST_REVERSE_D(253, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_254(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, MSGPACK_PP_LIST_REVERSE_D(254, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_255(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, MSGPACK_PP_LIST_REVERSE_D(255, l))
+# define MSGPACK_PP_LIST_FOLD_RIGHT_256(o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, MSGPACK_PP_LIST_REVERSE_D(256, l))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/enum.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/enum.hpp
new file mode 100644
index 000000000..4b3bbc339
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/enum.hpp
@@ -0,0 +1,41 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_ENUM_HPP
+# define MSGPACK_PREPROCESSOR_LIST_ENUM_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/for_each_i.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+#
+# /* MSGPACK_PP_LIST_ENUM */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_ENUM(list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list)
+# else
+# define MSGPACK_PP_LIST_ENUM(list) MSGPACK_PP_LIST_ENUM_I(list)
+# define MSGPACK_PP_LIST_ENUM_I(list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list)
+# endif
+#
+# define MSGPACK_PP_LIST_ENUM_O(r, _, i, elem) MSGPACK_PP_COMMA_IF(i) elem
+#
+# /* MSGPACK_PP_LIST_ENUM_R */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_ENUM_R(r, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list)
+# else
+# define MSGPACK_PP_LIST_ENUM_R(r, list) MSGPACK_PP_LIST_ENUM_R_I(r, list)
+# define MSGPACK_PP_LIST_ENUM_R_I(r, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_ENUM_O, MSGPACK_PP_NIL, list)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/filter.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/filter.hpp
new file mode 100644
index 000000000..081080d85
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/filter.hpp
@@ -0,0 +1,54 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_FILTER_HPP
+# define MSGPACK_PREPROCESSOR_LIST_FILTER_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_right.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_LIST_FILTER */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FILTER(pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))
+# else
+# define MSGPACK_PP_LIST_FILTER(pred, data, list) MSGPACK_PP_LIST_FILTER_I(pred, data, list)
+# define MSGPACK_PP_LIST_FILTER_I(pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FILTER_O(d, pdr, elem) MSGPACK_PP_LIST_FILTER_O_D(d, MSGPACK_PP_TUPLE_ELEM(3, 0, pdr), MSGPACK_PP_TUPLE_ELEM(3, 1, pdr), MSGPACK_PP_TUPLE_ELEM(3, 2, pdr), elem)
+# else
+# define MSGPACK_PP_LIST_FILTER_O(d, pdr, elem) MSGPACK_PP_LIST_FILTER_O_I(d, MSGPACK_PP_TUPLE_REM_3 pdr, elem)
+# define MSGPACK_PP_LIST_FILTER_O_I(d, im, elem) MSGPACK_PP_LIST_FILTER_O_D(d, im, elem)
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# define MSGPACK_PP_LIST_FILTER_O_D(d, pred, data, res, elem) (pred, data, MSGPACK_PP_IF(pred(d, data, elem), (elem, res), res))
+# else
+# define MSGPACK_PP_LIST_FILTER_O_D(d, pred, data, res, elem) (pred, data, MSGPACK_PP_IF(pred##(d, data, elem), (elem, res), res))
+# endif
+#
+# /* MSGPACK_PP_LIST_FILTER_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FILTER_D(d, pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))
+# else
+# define MSGPACK_PP_LIST_FILTER_D(d, pred, data, list) MSGPACK_PP_LIST_FILTER_D_I(d, pred, data, list)
+# define MSGPACK_PP_LIST_FILTER_D_I(d, pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/first_n.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/first_n.hpp
new file mode 100644
index 000000000..87cb9a940
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/first_n.hpp
@@ -0,0 +1,58 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_FIRST_N_HPP
+# define MSGPACK_PREPROCESSOR_LIST_FIRST_N_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/list/reverse.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_LIST_FIRST_N */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FIRST_N(count, list) MSGPACK_PP_LIST_REVERSE(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL))))
+# else
+# define MSGPACK_PP_LIST_FIRST_N(count, list) MSGPACK_PP_LIST_FIRST_N_I(count, list)
+# define MSGPACK_PP_LIST_FIRST_N_I(count, list) MSGPACK_PP_LIST_REVERSE(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL))))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FIRST_N_P(d, data) MSGPACK_PP_TUPLE_ELEM(3, 0, data)
+# else
+# define MSGPACK_PP_LIST_FIRST_N_P(d, data) MSGPACK_PP_LIST_FIRST_N_P_I data
+# define MSGPACK_PP_LIST_FIRST_N_P_I(c, l, nl) c
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_LIST_FIRST_N_O(d, data) MSGPACK_PP_LIST_FIRST_N_O_D data
+# else
+# define MSGPACK_PP_LIST_FIRST_N_O(d, data) MSGPACK_PP_LIST_FIRST_N_O_D(MSGPACK_PP_TUPLE_ELEM(3, 0, data), MSGPACK_PP_TUPLE_ELEM(3, 1, data), MSGPACK_PP_TUPLE_ELEM(3, 2, data))
+# endif
+#
+# define MSGPACK_PP_LIST_FIRST_N_O_D(c, l, nl) (MSGPACK_PP_DEC(c), MSGPACK_PP_LIST_REST(l), (MSGPACK_PP_LIST_FIRST(l), nl))
+#
+# /* MSGPACK_PP_LIST_FIRST_N_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FIRST_N_D(d, count, list) MSGPACK_PP_LIST_REVERSE_D(d, MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL))))
+# else
+# define MSGPACK_PP_LIST_FIRST_N_D(d, count, list) MSGPACK_PP_LIST_FIRST_N_D_I(d, count, list)
+# define MSGPACK_PP_LIST_FIRST_N_D_I(d, count, list) MSGPACK_PP_LIST_REVERSE_D(d, MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_FIRST_N_P, MSGPACK_PP_LIST_FIRST_N_O, (count, list, MSGPACK_PP_NIL))))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_left.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_left.hpp
new file mode 100644
index 000000000..207b75758
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_left.hpp
@@ -0,0 +1,303 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_FOLD_LEFT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_FOLD_LEFT_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+#
+# /* MSGPACK_PP_LIST_FOLD_LEFT */
+#
+# if 0
+# define MSGPACK_PP_LIST_FOLD_LEFT(op, state, list)
+# endif
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_LEFT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256))
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_257(o, s, l) MSGPACK_PP_ERROR(0x0004)
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_D(d, o, s, l) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_LEFT_2ND MSGPACK_PP_LIST_FOLD_LEFT
+# define MSGPACK_PP_LIST_FOLD_LEFT_2ND_D MSGPACK_PP_LIST_FOLD_LEFT_D
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# include <rpc/msgpack/preprocessor/list/detail/edg/fold_left.hpp>
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# include <rpc/msgpack/preprocessor/list/detail/dmc/fold_left.hpp>
+# else
+# include <rpc/msgpack/preprocessor/list/detail/fold_left.hpp>
+# endif
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_NIL 1
+#
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_1(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_2(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_3(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_4(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_5(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_6(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_7(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_8(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_9(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_10(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_11(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_12(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_13(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_14(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_15(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_16(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_17(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_18(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_19(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_20(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_21(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_22(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_23(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_24(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_25(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_26(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_27(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_28(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_29(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_30(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_31(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_32(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_33(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_34(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_35(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_36(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_37(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_38(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_39(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_40(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_41(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_42(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_43(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_44(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_45(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_46(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_47(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_48(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_49(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_50(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_51(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_52(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_53(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_54(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_55(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_56(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_57(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_58(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_59(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_60(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_61(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_62(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_63(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_64(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_65(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_66(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_67(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_68(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_69(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_70(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_71(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_72(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_73(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_74(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_75(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_76(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_77(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_78(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_79(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_80(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_81(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_82(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_83(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_84(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_85(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_86(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_87(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_88(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_89(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_90(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_91(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_92(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_93(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_94(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_95(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_96(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_97(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_98(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_99(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_100(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_101(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_102(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_103(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_104(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_105(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_106(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_107(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_108(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_109(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_110(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_111(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_112(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_113(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_114(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_115(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_116(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_117(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_118(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_119(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_120(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_121(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_122(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_123(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_124(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_125(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_126(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_127(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_128(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_129(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_130(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_131(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_132(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_133(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_134(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_135(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_136(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_137(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_138(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_139(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_140(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_141(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_142(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_143(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_144(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_145(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_146(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_147(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_148(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_149(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_150(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_151(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_152(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_153(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_154(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_155(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_156(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_157(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_158(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_159(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_160(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_161(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_162(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_163(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_164(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_165(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_166(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_167(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_168(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_169(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_170(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_171(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_172(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_173(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_174(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_175(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_176(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_177(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_178(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_179(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_180(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_181(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_182(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_183(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_184(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_185(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_186(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_187(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_188(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_189(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_190(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_191(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_192(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_193(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_194(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_195(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_196(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_197(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_198(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_199(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_200(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_201(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_202(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_203(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_204(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_205(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_206(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_207(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_208(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_209(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_210(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_211(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_212(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_213(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_214(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_215(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_216(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_217(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_218(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_219(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_220(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_221(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_222(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_223(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_224(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_225(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_226(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_227(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_228(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_229(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_230(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_231(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_232(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_233(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_234(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_235(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_236(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_237(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_238(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_239(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_240(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_241(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_242(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_243(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_244(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_245(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_246(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_247(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_248(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_249(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_250(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_251(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_252(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_253(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_254(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_255(o, s, l) 0
+# define MSGPACK_PP_LIST_FOLD_LEFT_CHECK_MSGPACK_PP_LIST_FOLD_LEFT_256(o, s, l) 0
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_right.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_right.hpp
new file mode 100644
index 000000000..c766a458a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/fold_right.hpp
@@ -0,0 +1,40 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+#
+# if 0
+# define MSGPACK_PP_LIST_FOLD_RIGHT(op, state, list)
+# endif
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT MSGPACK_PP_CAT(MSGPACK_PP_LIST_FOLD_RIGHT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256))
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT_257(o, s, l) MSGPACK_PP_ERROR(0x0004)
+#
+# define MSGPACK_PP_LIST_FOLD_RIGHT_D(d, o, s, l) MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(o, s, l)
+# define MSGPACK_PP_LIST_FOLD_RIGHT_2ND MSGPACK_PP_LIST_FOLD_RIGHT
+# define MSGPACK_PP_LIST_FOLD_RIGHT_2ND_D MSGPACK_PP_LIST_FOLD_RIGHT_D
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# include <rpc/msgpack/preprocessor/list/detail/edg/fold_right.hpp>
+# else
+# include <rpc/msgpack/preprocessor/list/detail/fold_right.hpp>
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each.hpp
new file mode 100644
index 000000000..eab58a76a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each.hpp
@@ -0,0 +1,49 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_FOR_EACH_HPP
+# define MSGPACK_PREPROCESSOR_LIST_FOR_EACH_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/for_each_i.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_LIST_FOR_EACH */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_X(macro, data, list)
+# define MSGPACK_PP_LIST_FOR_EACH_X(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I(MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list)
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_O(r, md, i, elem) MSGPACK_PP_LIST_FOR_EACH_O_D(r, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md), elem)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_O(r, md, i, elem) MSGPACK_PP_LIST_FOR_EACH_O_I(r, MSGPACK_PP_TUPLE_REM_2 md, elem)
+# define MSGPACK_PP_LIST_FOR_EACH_O_I(r, im, elem) MSGPACK_PP_LIST_FOR_EACH_O_D(r, im, elem)
+# endif
+#
+# define MSGPACK_PP_LIST_FOR_EACH_O_D(r, m, d, elem) m(r, d, elem)
+#
+# /* MSGPACK_PP_LIST_FOR_EACH_R */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_R(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_R(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_R_X(r, macro, data, list)
+# define MSGPACK_PP_LIST_FOR_EACH_R_X(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_R(r, MSGPACK_PP_LIST_FOR_EACH_O, (macro, data), list)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_i.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_i.hpp
new file mode 100644
index 000000000..3b14ec5b3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_i.hpp
@@ -0,0 +1,65 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
+# define MSGPACK_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_LIST_FOR_EACH_I */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() && ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_LIST_FOR_EACH_I(macro, data, list) MSGPACK_PP_FOR((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_I(macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_I(macro, data, list)
+# define MSGPACK_PP_LIST_FOR_EACH_I_I(macro, data, list) MSGPACK_PP_FOR((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M)
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_LIST_FOR_EACH_I_P(r, x) MSGPACK_PP_LIST_FOR_EACH_I_P_D x
+# define MSGPACK_PP_LIST_FOR_EACH_I_P_D(m, d, l, i) MSGPACK_PP_LIST_IS_CONS(l)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_I_P(r, x) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(4, 2, x))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_LIST_FOR_EACH_I_O(r, x) MSGPACK_PP_LIST_FOR_EACH_I_O_D x
+# define MSGPACK_PP_LIST_FOR_EACH_I_O_D(m, d, l, i) (m, d, MSGPACK_PP_LIST_REST(l), MSGPACK_PP_INC(i))
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_I_O(r, x) (MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(4, 2, x)), MSGPACK_PP_INC(MSGPACK_PP_TUPLE_ELEM(4, 3, x)))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_I_M(r, x) MSGPACK_PP_LIST_FOR_EACH_I_M_D(r, MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_TUPLE_ELEM(4, 2, x), MSGPACK_PP_TUPLE_ELEM(4, 3, x))
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_I_M(r, x) MSGPACK_PP_LIST_FOR_EACH_I_M_I(r, MSGPACK_PP_TUPLE_REM_4 x)
+# define MSGPACK_PP_LIST_FOR_EACH_I_M_I(r, x_e) MSGPACK_PP_LIST_FOR_EACH_I_M_D(r, x_e)
+# endif
+#
+# define MSGPACK_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, MSGPACK_PP_LIST_FIRST(l))
+#
+# /* MSGPACK_PP_LIST_FOR_EACH_I_R */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_I_R(r, macro, data, list) MSGPACK_PP_FOR_ ## r((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_I_R(r, macro, data, list) MSGPACK_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list)
+# define MSGPACK_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) MSGPACK_PP_FOR_ ## r((macro, data, list, 0), MSGPACK_PP_LIST_FOR_EACH_I_P, MSGPACK_PP_LIST_FOR_EACH_I_O, MSGPACK_PP_LIST_FOR_EACH_I_M)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_product.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_product.hpp
new file mode 100644
index 000000000..ecac3ed6b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/for_each_product.hpp
@@ -0,0 +1,141 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_FOR_EACH_PRODUCT_HPP
+# define MSGPACK_PREPROCESSOR_LIST_FOR_EACH_PRODUCT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/list/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_list.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/reverse.hpp>
+#
+# /* MSGPACK_PP_LIST_FOR_EACH_PRODUCT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT(macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple))
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT(macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_Q(macro, size, tuple)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_Q(macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple))
+# endif
+#
+# /* MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R(r, macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR_ ## r, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple))
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R(r, macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R_Q(r, macro, size, tuple)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_R_Q(r, macro, size, tuple) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR_ ## r, macro, size, MSGPACK_PP_TUPLE_TO_LIST(size, tuple))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(impl, macro, size, lists) impl((MSGPACK_PP_LIST_FIRST(lists), MSGPACK_PP_LIST_REST(lists), MSGPACK_PP_NIL, macro, size), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_0)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E(impl, macro, size, lists) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E_D(impl, macro, size, lists)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_E_D(impl, macro, size, lists) impl((MSGPACK_PP_LIST_FIRST(lists), MSGPACK_PP_LIST_REST(lists), MSGPACK_PP_NIL, macro, size), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_0)
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P_I data
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P_I(a, b, res, macro, size) MSGPACK_PP_LIST_IS_CONS(a)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(5, 0, data))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O_I data
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O_I(a, b, res, macro, size) (MSGPACK_PP_LIST_REST(a), b, res, macro, size)
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O(r, data) (MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(5, 0, data)), MSGPACK_PP_TUPLE_ELEM(5, 1, data), MSGPACK_PP_TUPLE_ELEM(5, 2, data), MSGPACK_PP_TUPLE_ELEM(5, 3, data), MSGPACK_PP_TUPLE_ELEM(5, 4, data))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_I(r, MSGPACK_PP_TUPLE_ELEM(5, 0, data), MSGPACK_PP_TUPLE_ELEM(5, 1, data), MSGPACK_PP_TUPLE_ELEM(5, 2, data), MSGPACK_PP_TUPLE_ELEM(5, 3, data), MSGPACK_PP_TUPLE_ELEM(5, 4, data))
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_D(r, MSGPACK_PP_TUPLE_REM_5 data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_D(r, data_e) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_I(r, data_e)
+# endif
+#
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_I(r, a, b, res, macro, size) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_II(r, macro, MSGPACK_PP_LIST_TO_TUPLE_R(r, (MSGPACK_PP_LIST_FIRST(a), res)), size)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_II(r, macro, args, size) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_III(r, macro, args, size)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I_III(r, macro, args, size) macro(r, MSGPACK_PP_TUPLE_REVERSE(size, args))
+#
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, i) MSGPACK_PP_IF(MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(5, 1, data)), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_ ## i, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_I)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H_I data
+# else
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H_I(MSGPACK_PP_TUPLE_ELEM(5, 0, data), MSGPACK_PP_TUPLE_ELEM(5, 1, data), MSGPACK_PP_TUPLE_ELEM(5, 2, data), MSGPACK_PP_TUPLE_ELEM(5, 3, data), MSGPACK_PP_TUPLE_ELEM(5, 4, data))
+# endif
+#
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H_I(a, b, res, macro, size) (MSGPACK_PP_LIST_FIRST(b), MSGPACK_PP_LIST_REST(b), (MSGPACK_PP_LIST_FIRST(a), res), macro, size)
+#
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_0(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 0)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_1(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 1)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_2(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 2)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_3(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 3)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_4(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 4)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_5(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 5)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_6(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 6)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_7(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 7)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_8(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 8)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_9(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 9)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_10(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 10)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_11(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 11)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_12(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 12)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_13(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 13)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_14(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 14)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_15(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 15)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_16(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 16)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_17(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 17)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_18(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 18)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_19(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 19)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_20(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 20)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_21(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 21)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_22(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 22)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_23(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 23)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_24(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 24)(r, data)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_25(r, data) MSGPACK_PP_LIST_FOR_EACH_PRODUCT_C(data, 25)(r, data)
+#
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_0(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_1)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_1(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_2)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_2(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_3)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_3(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_4)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_4(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_5)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_5(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_6)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_6(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_7)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_7(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_8)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_8(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_9)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_9(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_10)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_10(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_11)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_11(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_12)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_12(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_13)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_13(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_14)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_14(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_15)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_15(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_16)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_16(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_17)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_17(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_18)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_18(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_19)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_19(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_20)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_20(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_21)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_21(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_22)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_22(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_23)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_23(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_24)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_24(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_25)
+# define MSGPACK_PP_LIST_FOR_EACH_PRODUCT_N_25(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_LIST_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_LIST_FOR_EACH_PRODUCT_P, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_O, MSGPACK_PP_LIST_FOR_EACH_PRODUCT_M_26)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/rest_n.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/rest_n.hpp
new file mode 100644
index 000000000..5df2e4178
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/rest_n.hpp
@@ -0,0 +1,55 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_REST_N_HPP
+# define MSGPACK_PREPROCESSOR_LIST_REST_N_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_LIST_REST_N */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_REST_N(count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count)))
+# else
+# define MSGPACK_PP_LIST_REST_N(count, list) MSGPACK_PP_LIST_REST_N_I(count, list)
+# define MSGPACK_PP_LIST_REST_N_I(count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count)))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_REST_N_P(d, lc) MSGPACK_PP_TUPLE_ELEM(2, 1, lc)
+# else
+# define MSGPACK_PP_LIST_REST_N_P(d, lc) MSGPACK_PP_LIST_REST_N_P_I lc
+# define MSGPACK_PP_LIST_REST_N_P_I(list, count) count
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_REST_N_O(d, lc) (MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(2, 0, lc)), MSGPACK_PP_DEC(MSGPACK_PP_TUPLE_ELEM(2, 1, lc)))
+# else
+# define MSGPACK_PP_LIST_REST_N_O(d, lc) MSGPACK_PP_LIST_REST_N_O_I lc
+# define MSGPACK_PP_LIST_REST_N_O_I(list, count) (MSGPACK_PP_LIST_REST(list), MSGPACK_PP_DEC(count))
+# endif
+#
+# /* MSGPACK_PP_LIST_REST_N_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_REST_N_D(d, count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count)))
+# else
+# define MSGPACK_PP_LIST_REST_N_D(d, count, list) MSGPACK_PP_LIST_REST_N_D_I(d, count, list)
+# define MSGPACK_PP_LIST_REST_N_D_I(d, count, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_REST_N_P, MSGPACK_PP_LIST_REST_N_O, (list, count)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/reverse.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/reverse.hpp
new file mode 100644
index 000000000..7f34e875b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/reverse.hpp
@@ -0,0 +1,40 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_REVERSE_HPP
+# define MSGPACK_PREPROCESSOR_LIST_REVERSE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_left.hpp>
+#
+# /* MSGPACK_PP_LIST_REVERSE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_REVERSE(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list)
+# else
+# define MSGPACK_PP_LIST_REVERSE(list) MSGPACK_PP_LIST_REVERSE_I(list)
+# define MSGPACK_PP_LIST_REVERSE_I(list) MSGPACK_PP_LIST_FOLD_LEFT(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list)
+# endif
+#
+# define MSGPACK_PP_LIST_REVERSE_O(d, s, x) (x, s)
+#
+# /* MSGPACK_PP_LIST_REVERSE_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_REVERSE_D(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list)
+# else
+# define MSGPACK_PP_LIST_REVERSE_D(d, list) MSGPACK_PP_LIST_REVERSE_D_I(d, list)
+# define MSGPACK_PP_LIST_REVERSE_D_I(d, list) MSGPACK_PP_LIST_FOLD_LEFT_ ## d(MSGPACK_PP_LIST_REVERSE_O, MSGPACK_PP_NIL, list)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/size.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/size.hpp
new file mode 100644
index 000000000..a5d39d7de
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/size.hpp
@@ -0,0 +1,58 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_SIZE_HPP
+# define MSGPACK_PREPROCESSOR_LIST_SIZE_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_LIST_SIZE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_SIZE(list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list)))
+# else
+# define MSGPACK_PP_LIST_SIZE(list) MSGPACK_PP_LIST_SIZE_I(list)
+# define MSGPACK_PP_LIST_SIZE_I(list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list)))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_SIZE_P(d, rl) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(2, 1, rl))
+# else
+# define MSGPACK_PP_LIST_SIZE_P(d, rl) MSGPACK_PP_LIST_SIZE_P_I(MSGPACK_PP_TUPLE_REM_2 rl)
+# define MSGPACK_PP_LIST_SIZE_P_I(im) MSGPACK_PP_LIST_SIZE_P_II(im)
+# define MSGPACK_PP_LIST_SIZE_P_II(r, l) MSGPACK_PP_LIST_IS_CONS(l)
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_SIZE_O(d, rl) (MSGPACK_PP_INC(MSGPACK_PP_TUPLE_ELEM(2, 0, rl)), MSGPACK_PP_LIST_REST(MSGPACK_PP_TUPLE_ELEM(2, 1, rl)))
+# else
+# define MSGPACK_PP_LIST_SIZE_O(d, rl) MSGPACK_PP_LIST_SIZE_O_I(MSGPACK_PP_TUPLE_REM_2 rl)
+# define MSGPACK_PP_LIST_SIZE_O_I(im) MSGPACK_PP_LIST_SIZE_O_II(im)
+# define MSGPACK_PP_LIST_SIZE_O_II(r, l) (MSGPACK_PP_INC(r), MSGPACK_PP_LIST_REST(l))
+# endif
+#
+# /* MSGPACK_PP_LIST_SIZE_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_SIZE_D(d, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list)))
+# else
+# define MSGPACK_PP_LIST_SIZE_D(d, list) MSGPACK_PP_LIST_SIZE_D_I(d, list)
+# define MSGPACK_PP_LIST_SIZE_D_I(d, list) MSGPACK_PP_TUPLE_ELEM(2, 0, MSGPACK_PP_WHILE_ ## d(MSGPACK_PP_LIST_SIZE_P, MSGPACK_PP_LIST_SIZE_O, (0, list)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_array.hpp
new file mode 100644
index 000000000..6e4197a51
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_array.hpp
@@ -0,0 +1,155 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2011.
+# * (C) Copyright Edward Diener 2011,2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_TO_ARRAY_HPP
+# define MSGPACK_PREPROCESSOR_LIST_TO_ARRAY_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/list/adt.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC && (_MSC_VER <= 1400)
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# endif
+#
+# /* MSGPACK_PP_LIST_TO_ARRAY */
+#
+# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC && (_MSC_VER <= 1400)
+# define MSGPACK_PP_LIST_TO_ARRAY(list) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_LIST_IS_NIL(list), \
+ MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_EMPTY, \
+ MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_DO \
+ ) \
+ (list) \
+/**/
+# define MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_EMPTY(list) (0,())
+# define MSGPACK_PP_LIST_TO_ARRAY_VC8ORLESS_DO(list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE, list)
+# else
+# define MSGPACK_PP_LIST_TO_ARRAY(list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE, list)
+# endif
+
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_LIST_TO_ARRAY_I(w, list) \
+ MSGPACK_PP_LIST_TO_ARRAY_II(((MSGPACK_PP_TUPLE_REM_CTOR( \
+ 3, \
+ w(MSGPACK_PP_LIST_TO_ARRAY_P, MSGPACK_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \
+ )))) \
+ /**/
+# define MSGPACK_PP_LIST_TO_ARRAY_II(p) MSGPACK_PP_LIST_TO_ARRAY_II_B(p)
+# define MSGPACK_PP_LIST_TO_ARRAY_II_B(p) MSGPACK_PP_LIST_TO_ARRAY_II_C ## p
+# define MSGPACK_PP_LIST_TO_ARRAY_II_C(p) MSGPACK_PP_LIST_TO_ARRAY_III p
+# else
+# define MSGPACK_PP_LIST_TO_ARRAY_I(w, list) \
+ MSGPACK_PP_LIST_TO_ARRAY_II(MSGPACK_PP_TUPLE_REM_CTOR( \
+ 3, \
+ w(MSGPACK_PP_LIST_TO_ARRAY_P, MSGPACK_PP_LIST_TO_ARRAY_O, (list, 1, (~))) \
+ )) \
+ /**/
+# define MSGPACK_PP_LIST_TO_ARRAY_II(im) MSGPACK_PP_LIST_TO_ARRAY_III(im)
+# endif
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_LIST_TO_ARRAY_III(list, size, tuple) (MSGPACK_PP_DEC(size), MSGPACK_PP_LIST_TO_ARRAY_IV tuple)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV(_, ...) (__VA_ARGS__)
+# else
+# define MSGPACK_PP_LIST_TO_ARRAY_III(list, size, tuple) (MSGPACK_PP_DEC(size), MSGPACK_PP_LIST_TO_ARRAY_IV_ ## size tuple)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_2(_, e0) (e0)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_3(_, e0, e1) (e0, e1)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_4(_, e0, e1, e2) (e0, e1, e2)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_5(_, e0, e1, e2, e3) (e0, e1, e2, e3)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_6(_, e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_7(_, e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_8(_, e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_9(_, e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_10(_, e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_11(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_12(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_13(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_14(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_15(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_16(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_17(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_18(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_19(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_20(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_21(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_22(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_23(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_24(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_25(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_26(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_27(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_28(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_29(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_30(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_31(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_32(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_33(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_34(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_35(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_36(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_37(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_38(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_39(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_40(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_41(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_42(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_43(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_44(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_45(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_46(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_47(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_48(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_49(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_50(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_51(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_52(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_53(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_54(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_55(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_56(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_57(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_58(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_59(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_60(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_61(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_62(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_63(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
+# define MSGPACK_PP_LIST_TO_ARRAY_IV_64(_, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
+# endif
+# define MSGPACK_PP_LIST_TO_ARRAY_P(d, state) MSGPACK_PP_LIST_IS_CONS(MSGPACK_PP_TUPLE_ELEM(3, 0, state))
+# define MSGPACK_PP_LIST_TO_ARRAY_O(d, state) MSGPACK_PP_LIST_TO_ARRAY_O_I state
+# define MSGPACK_PP_LIST_TO_ARRAY_O_I(list, size, tuple) (MSGPACK_PP_LIST_REST(list), MSGPACK_PP_INC(size), (MSGPACK_PP_TUPLE_REM(size) tuple, MSGPACK_PP_LIST_FIRST(list)))
+#
+# /* MSGPACK_PP_LIST_TO_ARRAY_D */
+#
+# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC && (_MSC_VER <= 1400)
+# define MSGPACK_PP_LIST_TO_ARRAY_D(d, list) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_LIST_IS_NIL(list), \
+ MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_EMPTY, \
+ MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_DO \
+ ) \
+ (d, list) \
+/**/
+# define MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_EMPTY(d, list) (0,())
+# define MSGPACK_PP_LIST_TO_ARRAY_D_VC8ORLESS_DO(d, list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE_ ## d, list)
+# else
+# define MSGPACK_PP_LIST_TO_ARRAY_D(d, list) MSGPACK_PP_LIST_TO_ARRAY_I(MSGPACK_PP_WHILE_ ## d, list)
+# endif
+#
+# endif /* MSGPACK_PREPROCESSOR_LIST_TO_ARRAY_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_seq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_seq.hpp
new file mode 100644
index 000000000..fc80a6f54
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_seq.hpp
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011.
+# * 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 Paul Mensonides (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_TO_SEQ_HPP
+# define MSGPACK_PREPROCESSOR_LIST_TO_SEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/list/for_each.hpp>
+#
+# /* MSGPACK_PP_LIST_TO_SEQ */
+#
+# define MSGPACK_PP_LIST_TO_SEQ(list) \
+ MSGPACK_PP_LIST_FOR_EACH(MSGPACK_PP_LIST_TO_SEQ_MACRO, ~, list) \
+ /**/
+# define MSGPACK_PP_LIST_TO_SEQ_MACRO(r, data, elem) (elem)
+#
+# /* MSGPACK_PP_LIST_TO_SEQ_R */
+#
+# define MSGPACK_PP_LIST_TO_SEQ_R(r, list) \
+ MSGPACK_PP_LIST_FOR_EACH_R(r, MSGPACK_PP_LIST_TO_SEQ_MACRO, ~, list) \
+ /**/
+#
+# endif /* MSGPACK_PREPROCESSOR_LIST_TO_SEQ_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_tuple.hpp
new file mode 100644
index 000000000..2ff32fd34
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/to_tuple.hpp
@@ -0,0 +1,61 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_TO_TUPLE_HPP
+# define MSGPACK_PREPROCESSOR_LIST_TO_TUPLE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/enum.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+#
+# /* MSGPACK_PP_LIST_TO_TUPLE */
+#
+# define MSGPACK_PP_LIST_TO_TUPLE(list) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_LIST_IS_NIL(list), \
+ MSGPACK_PP_LIST_TO_TUPLE_EMPTY, \
+ MSGPACK_PP_LIST_TO_TUPLE_DO \
+ ) \
+ (list) \
+/**/
+# define MSGPACK_PP_LIST_TO_TUPLE_EMPTY(list)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_TO_TUPLE_DO(list) (MSGPACK_PP_LIST_ENUM(list))
+# else
+# define MSGPACK_PP_LIST_TO_TUPLE_DO(list) MSGPACK_PP_LIST_TO_TUPLE_I(list)
+# define MSGPACK_PP_LIST_TO_TUPLE_I(list) (MSGPACK_PP_LIST_ENUM(list))
+# endif
+#
+# /* MSGPACK_PP_LIST_TO_TUPLE_R */
+#
+# define MSGPACK_PP_LIST_TO_TUPLE_R(r, list) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_LIST_IS_NIL(list), \
+ MSGPACK_PP_LIST_TO_TUPLE_R_EMPTY, \
+ MSGPACK_PP_LIST_TO_TUPLE_R_DO \
+ ) \
+ (r, list) \
+/**/
+# define MSGPACK_PP_LIST_TO_TUPLE_R_EMPTY(r,list)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_TO_TUPLE_R_DO(r, list) (MSGPACK_PP_LIST_ENUM_R(r, list))
+# else
+# define MSGPACK_PP_LIST_TO_TUPLE_R_DO(r, list) MSGPACK_PP_LIST_TO_TUPLE_R_I(r, list)
+# define MSGPACK_PP_LIST_TO_TUPLE_R_I(r, list) (MSGPACK_PP_LIST_ENUM_R(r, list))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/transform.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/transform.hpp
new file mode 100644
index 000000000..3b9fb8711
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/list/transform.hpp
@@ -0,0 +1,49 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LIST_TRANSFORM_HPP
+# define MSGPACK_PREPROCESSOR_LIST_TRANSFORM_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/list/fold_right.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_LIST_TRANSFORM */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_TRANSFORM(op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
+# else
+# define MSGPACK_PP_LIST_TRANSFORM(op, data, list) MSGPACK_PP_LIST_TRANSFORM_I(op, data, list)
+# define MSGPACK_PP_LIST_TRANSFORM_I(op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_TRANSFORM_O(d, odr, elem) MSGPACK_PP_LIST_TRANSFORM_O_D(d, MSGPACK_PP_TUPLE_ELEM(3, 0, odr), MSGPACK_PP_TUPLE_ELEM(3, 1, odr), MSGPACK_PP_TUPLE_ELEM(3, 2, odr), elem)
+# else
+# define MSGPACK_PP_LIST_TRANSFORM_O(d, odr, elem) MSGPACK_PP_LIST_TRANSFORM_O_I(d, MSGPACK_PP_TUPLE_REM_3 odr, elem)
+# define MSGPACK_PP_LIST_TRANSFORM_O_I(d, im, elem) MSGPACK_PP_LIST_TRANSFORM_O_D(d, im, elem)
+# endif
+#
+# define MSGPACK_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res))
+#
+# /* MSGPACK_PP_LIST_TRANSFORM_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LIST_TRANSFORM_D(d, op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
+# else
+# define MSGPACK_PP_LIST_TRANSFORM_D(d, op, data, list) MSGPACK_PP_LIST_TRANSFORM_D_I(d, op, data, list)
+# define MSGPACK_PP_LIST_TRANSFORM_D_I(d, op, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical.hpp
new file mode 100644
index 000000000..e9215f789
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical.hpp
@@ -0,0 +1,29 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_HPP
+#
+# include <rpc/msgpack/preprocessor/logical/and.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitand.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitnor.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitor.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitxor.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/logical/compl.hpp>
+# include <rpc/msgpack/preprocessor/logical/nor.hpp>
+# include <rpc/msgpack/preprocessor/logical/not.hpp>
+# include <rpc/msgpack/preprocessor/logical/or.hpp>
+# include <rpc/msgpack/preprocessor/logical/xor.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/and.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/and.hpp
new file mode 100644
index 000000000..d4477c39c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/and.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_AND_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_AND_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitand.hpp>
+#
+# /* MSGPACK_PP_AND */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_AND(p, q) MSGPACK_PP_BITAND(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# else
+# define MSGPACK_PP_AND(p, q) MSGPACK_PP_AND_I(p, q)
+# define MSGPACK_PP_AND_I(p, q) MSGPACK_PP_BITAND(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitand.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitand.hpp
new file mode 100644
index 000000000..1f92ee2e4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitand.hpp
@@ -0,0 +1,38 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITAND_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_BITAND_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_BITAND */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_BITAND(x, y) MSGPACK_PP_BITAND_I(x, y)
+# else
+# define MSGPACK_PP_BITAND(x, y) MSGPACK_PP_BITAND_OO((x, y))
+# define MSGPACK_PP_BITAND_OO(par) MSGPACK_PP_BITAND_I ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_BITAND_I(x, y) MSGPACK_PP_BITAND_ ## x ## y
+# else
+# define MSGPACK_PP_BITAND_I(x, y) MSGPACK_PP_BITAND_ID(MSGPACK_PP_BITAND_ ## x ## y)
+# define MSGPACK_PP_BITAND_ID(res) res
+# endif
+#
+# define MSGPACK_PP_BITAND_00 0
+# define MSGPACK_PP_BITAND_01 0
+# define MSGPACK_PP_BITAND_10 0
+# define MSGPACK_PP_BITAND_11 1
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitnor.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitnor.hpp
new file mode 100644
index 000000000..fdf5792e6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitnor.hpp
@@ -0,0 +1,38 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITNOR_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_BITNOR_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_BITNOR */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_BITNOR(x, y) MSGPACK_PP_BITNOR_I(x, y)
+# else
+# define MSGPACK_PP_BITNOR(x, y) MSGPACK_PP_BITNOR_OO((x, y))
+# define MSGPACK_PP_BITNOR_OO(par) MSGPACK_PP_BITNOR_I ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_BITNOR_I(x, y) MSGPACK_PP_BITNOR_ ## x ## y
+# else
+# define MSGPACK_PP_BITNOR_I(x, y) MSGPACK_PP_BITNOR_ID(MSGPACK_PP_BITNOR_ ## x ## y)
+# define MSGPACK_PP_BITNOR_ID(id) id
+# endif
+#
+# define MSGPACK_PP_BITNOR_00 1
+# define MSGPACK_PP_BITNOR_01 0
+# define MSGPACK_PP_BITNOR_10 0
+# define MSGPACK_PP_BITNOR_11 0
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitor.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitor.hpp
new file mode 100644
index 000000000..ceb6e1087
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitor.hpp
@@ -0,0 +1,38 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITOR_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_BITOR_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_BITOR */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_BITOR(x, y) MSGPACK_PP_BITOR_I(x, y)
+# else
+# define MSGPACK_PP_BITOR(x, y) MSGPACK_PP_BITOR_OO((x, y))
+# define MSGPACK_PP_BITOR_OO(par) MSGPACK_PP_BITOR_I ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_BITOR_I(x, y) MSGPACK_PP_BITOR_ ## x ## y
+# else
+# define MSGPACK_PP_BITOR_I(x, y) MSGPACK_PP_BITOR_ID(MSGPACK_PP_BITOR_ ## x ## y)
+# define MSGPACK_PP_BITOR_ID(id) id
+# endif
+#
+# define MSGPACK_PP_BITOR_00 0
+# define MSGPACK_PP_BITOR_01 1
+# define MSGPACK_PP_BITOR_10 1
+# define MSGPACK_PP_BITOR_11 1
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitxor.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitxor.hpp
new file mode 100644
index 000000000..f4437044a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bitxor.hpp
@@ -0,0 +1,38 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BITXOR_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_BITXOR_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_BITXOR */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_BITXOR(x, y) MSGPACK_PP_BITXOR_I(x, y)
+# else
+# define MSGPACK_PP_BITXOR(x, y) MSGPACK_PP_BITXOR_OO((x, y))
+# define MSGPACK_PP_BITXOR_OO(par) MSGPACK_PP_BITXOR_I ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_BITXOR_I(x, y) MSGPACK_PP_BITXOR_ ## x ## y
+# else
+# define MSGPACK_PP_BITXOR_I(x, y) MSGPACK_PP_BITXOR_ID(MSGPACK_PP_BITXOR_ ## x ## y)
+# define MSGPACK_PP_BITXOR_ID(id) id
+# endif
+#
+# define MSGPACK_PP_BITXOR_00 0
+# define MSGPACK_PP_BITXOR_01 1
+# define MSGPACK_PP_BITXOR_10 1
+# define MSGPACK_PP_BITXOR_11 0
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bool.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bool.hpp
new file mode 100644
index 000000000..7e38ece05
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/bool.hpp
@@ -0,0 +1,288 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_BOOL_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_BOOL_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_BOOL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_BOOL(x) MSGPACK_PP_BOOL_I(x)
+# else
+# define MSGPACK_PP_BOOL(x) MSGPACK_PP_BOOL_OO((x))
+# define MSGPACK_PP_BOOL_OO(par) MSGPACK_PP_BOOL_I ## par
+# endif
+#
+# define MSGPACK_PP_BOOL_I(x) MSGPACK_PP_BOOL_ ## x
+#
+# define MSGPACK_PP_BOOL_0 0
+# define MSGPACK_PP_BOOL_1 1
+# define MSGPACK_PP_BOOL_2 1
+# define MSGPACK_PP_BOOL_3 1
+# define MSGPACK_PP_BOOL_4 1
+# define MSGPACK_PP_BOOL_5 1
+# define MSGPACK_PP_BOOL_6 1
+# define MSGPACK_PP_BOOL_7 1
+# define MSGPACK_PP_BOOL_8 1
+# define MSGPACK_PP_BOOL_9 1
+# define MSGPACK_PP_BOOL_10 1
+# define MSGPACK_PP_BOOL_11 1
+# define MSGPACK_PP_BOOL_12 1
+# define MSGPACK_PP_BOOL_13 1
+# define MSGPACK_PP_BOOL_14 1
+# define MSGPACK_PP_BOOL_15 1
+# define MSGPACK_PP_BOOL_16 1
+# define MSGPACK_PP_BOOL_17 1
+# define MSGPACK_PP_BOOL_18 1
+# define MSGPACK_PP_BOOL_19 1
+# define MSGPACK_PP_BOOL_20 1
+# define MSGPACK_PP_BOOL_21 1
+# define MSGPACK_PP_BOOL_22 1
+# define MSGPACK_PP_BOOL_23 1
+# define MSGPACK_PP_BOOL_24 1
+# define MSGPACK_PP_BOOL_25 1
+# define MSGPACK_PP_BOOL_26 1
+# define MSGPACK_PP_BOOL_27 1
+# define MSGPACK_PP_BOOL_28 1
+# define MSGPACK_PP_BOOL_29 1
+# define MSGPACK_PP_BOOL_30 1
+# define MSGPACK_PP_BOOL_31 1
+# define MSGPACK_PP_BOOL_32 1
+# define MSGPACK_PP_BOOL_33 1
+# define MSGPACK_PP_BOOL_34 1
+# define MSGPACK_PP_BOOL_35 1
+# define MSGPACK_PP_BOOL_36 1
+# define MSGPACK_PP_BOOL_37 1
+# define MSGPACK_PP_BOOL_38 1
+# define MSGPACK_PP_BOOL_39 1
+# define MSGPACK_PP_BOOL_40 1
+# define MSGPACK_PP_BOOL_41 1
+# define MSGPACK_PP_BOOL_42 1
+# define MSGPACK_PP_BOOL_43 1
+# define MSGPACK_PP_BOOL_44 1
+# define MSGPACK_PP_BOOL_45 1
+# define MSGPACK_PP_BOOL_46 1
+# define MSGPACK_PP_BOOL_47 1
+# define MSGPACK_PP_BOOL_48 1
+# define MSGPACK_PP_BOOL_49 1
+# define MSGPACK_PP_BOOL_50 1
+# define MSGPACK_PP_BOOL_51 1
+# define MSGPACK_PP_BOOL_52 1
+# define MSGPACK_PP_BOOL_53 1
+# define MSGPACK_PP_BOOL_54 1
+# define MSGPACK_PP_BOOL_55 1
+# define MSGPACK_PP_BOOL_56 1
+# define MSGPACK_PP_BOOL_57 1
+# define MSGPACK_PP_BOOL_58 1
+# define MSGPACK_PP_BOOL_59 1
+# define MSGPACK_PP_BOOL_60 1
+# define MSGPACK_PP_BOOL_61 1
+# define MSGPACK_PP_BOOL_62 1
+# define MSGPACK_PP_BOOL_63 1
+# define MSGPACK_PP_BOOL_64 1
+# define MSGPACK_PP_BOOL_65 1
+# define MSGPACK_PP_BOOL_66 1
+# define MSGPACK_PP_BOOL_67 1
+# define MSGPACK_PP_BOOL_68 1
+# define MSGPACK_PP_BOOL_69 1
+# define MSGPACK_PP_BOOL_70 1
+# define MSGPACK_PP_BOOL_71 1
+# define MSGPACK_PP_BOOL_72 1
+# define MSGPACK_PP_BOOL_73 1
+# define MSGPACK_PP_BOOL_74 1
+# define MSGPACK_PP_BOOL_75 1
+# define MSGPACK_PP_BOOL_76 1
+# define MSGPACK_PP_BOOL_77 1
+# define MSGPACK_PP_BOOL_78 1
+# define MSGPACK_PP_BOOL_79 1
+# define MSGPACK_PP_BOOL_80 1
+# define MSGPACK_PP_BOOL_81 1
+# define MSGPACK_PP_BOOL_82 1
+# define MSGPACK_PP_BOOL_83 1
+# define MSGPACK_PP_BOOL_84 1
+# define MSGPACK_PP_BOOL_85 1
+# define MSGPACK_PP_BOOL_86 1
+# define MSGPACK_PP_BOOL_87 1
+# define MSGPACK_PP_BOOL_88 1
+# define MSGPACK_PP_BOOL_89 1
+# define MSGPACK_PP_BOOL_90 1
+# define MSGPACK_PP_BOOL_91 1
+# define MSGPACK_PP_BOOL_92 1
+# define MSGPACK_PP_BOOL_93 1
+# define MSGPACK_PP_BOOL_94 1
+# define MSGPACK_PP_BOOL_95 1
+# define MSGPACK_PP_BOOL_96 1
+# define MSGPACK_PP_BOOL_97 1
+# define MSGPACK_PP_BOOL_98 1
+# define MSGPACK_PP_BOOL_99 1
+# define MSGPACK_PP_BOOL_100 1
+# define MSGPACK_PP_BOOL_101 1
+# define MSGPACK_PP_BOOL_102 1
+# define MSGPACK_PP_BOOL_103 1
+# define MSGPACK_PP_BOOL_104 1
+# define MSGPACK_PP_BOOL_105 1
+# define MSGPACK_PP_BOOL_106 1
+# define MSGPACK_PP_BOOL_107 1
+# define MSGPACK_PP_BOOL_108 1
+# define MSGPACK_PP_BOOL_109 1
+# define MSGPACK_PP_BOOL_110 1
+# define MSGPACK_PP_BOOL_111 1
+# define MSGPACK_PP_BOOL_112 1
+# define MSGPACK_PP_BOOL_113 1
+# define MSGPACK_PP_BOOL_114 1
+# define MSGPACK_PP_BOOL_115 1
+# define MSGPACK_PP_BOOL_116 1
+# define MSGPACK_PP_BOOL_117 1
+# define MSGPACK_PP_BOOL_118 1
+# define MSGPACK_PP_BOOL_119 1
+# define MSGPACK_PP_BOOL_120 1
+# define MSGPACK_PP_BOOL_121 1
+# define MSGPACK_PP_BOOL_122 1
+# define MSGPACK_PP_BOOL_123 1
+# define MSGPACK_PP_BOOL_124 1
+# define MSGPACK_PP_BOOL_125 1
+# define MSGPACK_PP_BOOL_126 1
+# define MSGPACK_PP_BOOL_127 1
+# define MSGPACK_PP_BOOL_128 1
+# define MSGPACK_PP_BOOL_129 1
+# define MSGPACK_PP_BOOL_130 1
+# define MSGPACK_PP_BOOL_131 1
+# define MSGPACK_PP_BOOL_132 1
+# define MSGPACK_PP_BOOL_133 1
+# define MSGPACK_PP_BOOL_134 1
+# define MSGPACK_PP_BOOL_135 1
+# define MSGPACK_PP_BOOL_136 1
+# define MSGPACK_PP_BOOL_137 1
+# define MSGPACK_PP_BOOL_138 1
+# define MSGPACK_PP_BOOL_139 1
+# define MSGPACK_PP_BOOL_140 1
+# define MSGPACK_PP_BOOL_141 1
+# define MSGPACK_PP_BOOL_142 1
+# define MSGPACK_PP_BOOL_143 1
+# define MSGPACK_PP_BOOL_144 1
+# define MSGPACK_PP_BOOL_145 1
+# define MSGPACK_PP_BOOL_146 1
+# define MSGPACK_PP_BOOL_147 1
+# define MSGPACK_PP_BOOL_148 1
+# define MSGPACK_PP_BOOL_149 1
+# define MSGPACK_PP_BOOL_150 1
+# define MSGPACK_PP_BOOL_151 1
+# define MSGPACK_PP_BOOL_152 1
+# define MSGPACK_PP_BOOL_153 1
+# define MSGPACK_PP_BOOL_154 1
+# define MSGPACK_PP_BOOL_155 1
+# define MSGPACK_PP_BOOL_156 1
+# define MSGPACK_PP_BOOL_157 1
+# define MSGPACK_PP_BOOL_158 1
+# define MSGPACK_PP_BOOL_159 1
+# define MSGPACK_PP_BOOL_160 1
+# define MSGPACK_PP_BOOL_161 1
+# define MSGPACK_PP_BOOL_162 1
+# define MSGPACK_PP_BOOL_163 1
+# define MSGPACK_PP_BOOL_164 1
+# define MSGPACK_PP_BOOL_165 1
+# define MSGPACK_PP_BOOL_166 1
+# define MSGPACK_PP_BOOL_167 1
+# define MSGPACK_PP_BOOL_168 1
+# define MSGPACK_PP_BOOL_169 1
+# define MSGPACK_PP_BOOL_170 1
+# define MSGPACK_PP_BOOL_171 1
+# define MSGPACK_PP_BOOL_172 1
+# define MSGPACK_PP_BOOL_173 1
+# define MSGPACK_PP_BOOL_174 1
+# define MSGPACK_PP_BOOL_175 1
+# define MSGPACK_PP_BOOL_176 1
+# define MSGPACK_PP_BOOL_177 1
+# define MSGPACK_PP_BOOL_178 1
+# define MSGPACK_PP_BOOL_179 1
+# define MSGPACK_PP_BOOL_180 1
+# define MSGPACK_PP_BOOL_181 1
+# define MSGPACK_PP_BOOL_182 1
+# define MSGPACK_PP_BOOL_183 1
+# define MSGPACK_PP_BOOL_184 1
+# define MSGPACK_PP_BOOL_185 1
+# define MSGPACK_PP_BOOL_186 1
+# define MSGPACK_PP_BOOL_187 1
+# define MSGPACK_PP_BOOL_188 1
+# define MSGPACK_PP_BOOL_189 1
+# define MSGPACK_PP_BOOL_190 1
+# define MSGPACK_PP_BOOL_191 1
+# define MSGPACK_PP_BOOL_192 1
+# define MSGPACK_PP_BOOL_193 1
+# define MSGPACK_PP_BOOL_194 1
+# define MSGPACK_PP_BOOL_195 1
+# define MSGPACK_PP_BOOL_196 1
+# define MSGPACK_PP_BOOL_197 1
+# define MSGPACK_PP_BOOL_198 1
+# define MSGPACK_PP_BOOL_199 1
+# define MSGPACK_PP_BOOL_200 1
+# define MSGPACK_PP_BOOL_201 1
+# define MSGPACK_PP_BOOL_202 1
+# define MSGPACK_PP_BOOL_203 1
+# define MSGPACK_PP_BOOL_204 1
+# define MSGPACK_PP_BOOL_205 1
+# define MSGPACK_PP_BOOL_206 1
+# define MSGPACK_PP_BOOL_207 1
+# define MSGPACK_PP_BOOL_208 1
+# define MSGPACK_PP_BOOL_209 1
+# define MSGPACK_PP_BOOL_210 1
+# define MSGPACK_PP_BOOL_211 1
+# define MSGPACK_PP_BOOL_212 1
+# define MSGPACK_PP_BOOL_213 1
+# define MSGPACK_PP_BOOL_214 1
+# define MSGPACK_PP_BOOL_215 1
+# define MSGPACK_PP_BOOL_216 1
+# define MSGPACK_PP_BOOL_217 1
+# define MSGPACK_PP_BOOL_218 1
+# define MSGPACK_PP_BOOL_219 1
+# define MSGPACK_PP_BOOL_220 1
+# define MSGPACK_PP_BOOL_221 1
+# define MSGPACK_PP_BOOL_222 1
+# define MSGPACK_PP_BOOL_223 1
+# define MSGPACK_PP_BOOL_224 1
+# define MSGPACK_PP_BOOL_225 1
+# define MSGPACK_PP_BOOL_226 1
+# define MSGPACK_PP_BOOL_227 1
+# define MSGPACK_PP_BOOL_228 1
+# define MSGPACK_PP_BOOL_229 1
+# define MSGPACK_PP_BOOL_230 1
+# define MSGPACK_PP_BOOL_231 1
+# define MSGPACK_PP_BOOL_232 1
+# define MSGPACK_PP_BOOL_233 1
+# define MSGPACK_PP_BOOL_234 1
+# define MSGPACK_PP_BOOL_235 1
+# define MSGPACK_PP_BOOL_236 1
+# define MSGPACK_PP_BOOL_237 1
+# define MSGPACK_PP_BOOL_238 1
+# define MSGPACK_PP_BOOL_239 1
+# define MSGPACK_PP_BOOL_240 1
+# define MSGPACK_PP_BOOL_241 1
+# define MSGPACK_PP_BOOL_242 1
+# define MSGPACK_PP_BOOL_243 1
+# define MSGPACK_PP_BOOL_244 1
+# define MSGPACK_PP_BOOL_245 1
+# define MSGPACK_PP_BOOL_246 1
+# define MSGPACK_PP_BOOL_247 1
+# define MSGPACK_PP_BOOL_248 1
+# define MSGPACK_PP_BOOL_249 1
+# define MSGPACK_PP_BOOL_250 1
+# define MSGPACK_PP_BOOL_251 1
+# define MSGPACK_PP_BOOL_252 1
+# define MSGPACK_PP_BOOL_253 1
+# define MSGPACK_PP_BOOL_254 1
+# define MSGPACK_PP_BOOL_255 1
+# define MSGPACK_PP_BOOL_256 1
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/compl.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/compl.hpp
new file mode 100644
index 000000000..5d0517079
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/compl.hpp
@@ -0,0 +1,36 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_COMPL_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_COMPL_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_COMPL */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_COMPL(x) MSGPACK_PP_COMPL_I(x)
+# else
+# define MSGPACK_PP_COMPL(x) MSGPACK_PP_COMPL_OO((x))
+# define MSGPACK_PP_COMPL_OO(par) MSGPACK_PP_COMPL_I ## par
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_COMPL_I(x) MSGPACK_PP_COMPL_ ## x
+# else
+# define MSGPACK_PP_COMPL_I(x) MSGPACK_PP_COMPL_ID(MSGPACK_PP_COMPL_ ## x)
+# define MSGPACK_PP_COMPL_ID(id) id
+# endif
+#
+# define MSGPACK_PP_COMPL_0 1
+# define MSGPACK_PP_COMPL_1 0
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/nor.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/nor.hpp
new file mode 100644
index 000000000..55cf271cd
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/nor.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_NOR_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_NOR_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitnor.hpp>
+#
+# /* MSGPACK_PP_NOR */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_NOR(p, q) MSGPACK_PP_BITNOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# else
+# define MSGPACK_PP_NOR(p, q) MSGPACK_PP_NOR_I(p, q)
+# define MSGPACK_PP_NOR_I(p, q) MSGPACK_PP_BITNOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/not.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/not.hpp
new file mode 100644
index 000000000..b43ad99ce
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/not.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_NOT_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_NOT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/logical/compl.hpp>
+#
+# /* MSGPACK_PP_NOT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_NOT(x) MSGPACK_PP_COMPL(MSGPACK_PP_BOOL(x))
+# else
+# define MSGPACK_PP_NOT(x) MSGPACK_PP_NOT_I(x)
+# define MSGPACK_PP_NOT_I(x) MSGPACK_PP_COMPL(MSGPACK_PP_BOOL(x))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/or.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/or.hpp
new file mode 100644
index 000000000..6f6c117a0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/or.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_OR_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_OR_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitor.hpp>
+#
+# /* MSGPACK_PP_OR */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_OR(p, q) MSGPACK_PP_BITOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# else
+# define MSGPACK_PP_OR(p, q) MSGPACK_PP_OR_I(p, q)
+# define MSGPACK_PP_OR_I(p, q) MSGPACK_PP_BITOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/xor.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/xor.hpp
new file mode 100644
index 000000000..6e2932004
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/logical/xor.hpp
@@ -0,0 +1,30 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_LOGICAL_XOR_HPP
+# define MSGPACK_PREPROCESSOR_LOGICAL_XOR_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/logical/bitxor.hpp>
+#
+# /* MSGPACK_PP_XOR */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_XOR(p, q) MSGPACK_PP_BITXOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# else
+# define MSGPACK_PP_XOR(p, q) MSGPACK_PP_XOR_I(p, q)
+# define MSGPACK_PP_XOR_I(p, q) MSGPACK_PP_BITXOR(MSGPACK_PP_BOOL(p), MSGPACK_PP_BOOL(q))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/max.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/max.hpp
new file mode 100644
index 000000000..5ad60754c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/max.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_MAX_HPP
+# define MSGPACK_PREPROCESSOR_MAX_HPP
+#
+# include <rpc/msgpack/preprocessor/selection/max.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/min.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/min.hpp
new file mode 100644
index 000000000..cb9fc8d42
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/min.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_MIN_HPP
+# define MSGPACK_PREPROCESSOR_MIN_HPP
+#
+# include <rpc/msgpack/preprocessor/selection/min.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation.hpp
new file mode 100644
index 000000000..65382ef35
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation.hpp
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_HPP
+# define MSGPACK_PREPROCESSOR_PUNCTUATION_HPP
+#
+# include <rpc/msgpack/preprocessor/punctuation/comma.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/paren.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/paren_if.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/remove_parens.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma.hpp
new file mode 100644
index 000000000..0e1de6f44
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma.hpp
@@ -0,0 +1,21 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_HPP
+# define MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_HPP
+#
+# /* MSGPACK_PP_COMMA */
+#
+# define MSGPACK_PP_COMMA() ,
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma_if.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma_if.hpp
new file mode 100644
index 000000000..705867d66
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/comma_if.hpp
@@ -0,0 +1,31 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
+# define MSGPACK_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma.hpp>
+#
+# /* MSGPACK_PP_COMMA_IF */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_COMMA_IF(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_COMMA, MSGPACK_PP_EMPTY)()
+# else
+# define MSGPACK_PP_COMMA_IF(cond) MSGPACK_PP_COMMA_IF_I(cond)
+# define MSGPACK_PP_COMMA_IF_I(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_COMMA, MSGPACK_PP_EMPTY)()
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp
new file mode 100644
index 000000000..b79dad031
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp
@@ -0,0 +1,48 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+#ifndef MSGPACK_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP
+#define MSGPACK_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP
+
+#if MSGPACK_PP_VARIADICS_MSVC
+
+#include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+
+#define MSGPACK_PP_DETAIL_VD_IBP_CAT(a, b) MSGPACK_PP_DETAIL_VD_IBP_CAT_I(a, b)
+#define MSGPACK_PP_DETAIL_VD_IBP_CAT_I(a, b) MSGPACK_PP_DETAIL_VD_IBP_CAT_II(a ## b)
+#define MSGPACK_PP_DETAIL_VD_IBP_CAT_II(res) res
+
+#define MSGPACK_PP_DETAIL_IBP_SPLIT(i, ...) \
+ MSGPACK_PP_DETAIL_VD_IBP_CAT(MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(MSGPACK_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__),MSGPACK_PP_EMPTY()) \
+/**/
+
+#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1 1
+
+#else
+
+#define MSGPACK_PP_DETAIL_IBP_SPLIT(i, ...) \
+ MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(MSGPACK_PP_DETAIL_IBP_SPLIT_,i)(__VA_ARGS__) \
+/**/
+
+#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C(...) 1
+
+#endif /* MSGPACK_PP_VARIADICS_MSVC */
+
+#define MSGPACK_PP_DETAIL_IBP_SPLIT_0(a, ...) a
+#define MSGPACK_PP_DETAIL_IBP_SPLIT_1(a, ...) __VA_ARGS__
+
+#define MSGPACK_PP_DETAIL_IBP_CAT(a, ...) MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(a,__VA_ARGS__)
+#define MSGPACK_PP_DETAIL_IBP_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
+
+#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_1 1,
+#define MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C 0,
+
+#endif /* MSGPACK_PREPROCESSOR_DETAIL_IS_BEGIN_PARENS_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp
new file mode 100644
index 000000000..de1724d1c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp
@@ -0,0 +1,51 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_IS_BEGIN_PARENS_HPP
+# define MSGPACK_PREPROCESSOR_IS_BEGIN_PARENS_HPP
+
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+
+#if MSGPACK_PP_VARIADICS
+
+#include <rpc/msgpack/preprocessor/punctuation/detail/is_begin_parens.hpp>
+
+#if MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400
+
+#define MSGPACK_PP_IS_BEGIN_PARENS(param) \
+ MSGPACK_PP_DETAIL_IBP_SPLIT \
+ ( \
+ 0, \
+ MSGPACK_PP_DETAIL_IBP_CAT \
+ ( \
+ MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_, \
+ MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C param \
+ ) \
+ ) \
+/**/
+
+#else
+
+#define MSGPACK_PP_IS_BEGIN_PARENS(...) \
+ MSGPACK_PP_DETAIL_IBP_SPLIT \
+ ( \
+ 0, \
+ MSGPACK_PP_DETAIL_IBP_CAT \
+ ( \
+ MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_R_, \
+ MSGPACK_PP_DETAIL_IBP_IS_VARIADIC_C __VA_ARGS__ \
+ ) \
+ ) \
+/**/
+
+#endif /* MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400 */
+#endif /* MSGPACK_PP_VARIADICS */
+#endif /* MSGPACK_PREPROCESSOR_IS_BEGIN_PARENS_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren.hpp
new file mode 100644
index 000000000..b2cf00edd
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren.hpp
@@ -0,0 +1,23 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_HPP
+# define MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_HPP
+#
+# /* MSGPACK_PP_LPAREN */
+#
+# define MSGPACK_PP_LPAREN() (
+#
+# /* MSGPACK_PP_RPAREN */
+#
+# define MSGPACK_PP_RPAREN() )
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren_if.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren_if.hpp
new file mode 100644
index 000000000..04a6a9a27
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/paren_if.hpp
@@ -0,0 +1,38 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP
+# define MSGPACK_PREPROCESSOR_PUNCTUATION_PAREN_IF_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/paren.hpp>
+#
+# /* MSGPACK_PP_LPAREN_IF */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_LPAREN_IF(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_LPAREN, MSGPACK_PP_EMPTY)()
+# else
+# define MSGPACK_PP_LPAREN_IF(cond) MSGPACK_PP_LPAREN_IF_I(cond)
+# define MSGPACK_PP_LPAREN_IF_I(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_LPAREN, MSGPACK_PP_EMPTY)()
+# endif
+#
+# /* MSGPACK_PP_RPAREN_IF */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_RPAREN_IF(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_RPAREN, MSGPACK_PP_EMPTY)()
+# else
+# define MSGPACK_PP_RPAREN_IF(cond) MSGPACK_PP_RPAREN_IF_I(cond)
+# define MSGPACK_PP_RPAREN_IF_I(cond) MSGPACK_PP_IF(cond, MSGPACK_PP_RPAREN, MSGPACK_PP_EMPTY)()
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/remove_parens.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/remove_parens.hpp
new file mode 100644
index 000000000..5cda0eacc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/punctuation/remove_parens.hpp
@@ -0,0 +1,39 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+#ifndef MSGPACK_PREPROCESSOR_REMOVE_PARENS_HPP
+#define MSGPACK_PREPROCESSOR_REMOVE_PARENS_HPP
+
+#include <rpc/msgpack/preprocessor/config/config.hpp>
+
+#if MSGPACK_PP_VARIADICS
+
+#include <rpc/msgpack/preprocessor/control/iif.hpp>
+#include <rpc/msgpack/preprocessor/facilities/identity.hpp>
+#include <rpc/msgpack/preprocessor/punctuation/is_begin_parens.hpp>
+#include <rpc/msgpack/preprocessor/tuple/enum.hpp>
+
+#define MSGPACK_PP_REMOVE_PARENS(param) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_IS_BEGIN_PARENS(param), \
+ MSGPACK_PP_REMOVE_PARENS_DO, \
+ MSGPACK_PP_IDENTITY \
+ ) \
+ (param)() \
+/**/
+
+#define MSGPACK_PP_REMOVE_PARENS_DO(param) \
+ MSGPACK_PP_IDENTITY(MSGPACK_PP_TUPLE_ENUM(param)) \
+/**/
+
+#endif /* MSGPACK_PP_VARIADICS */
+#endif /* MSGPACK_PREPROCESSOR_REMOVE_PARENS_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat.hpp
new file mode 100644
index 000000000..f4813831c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPEAT_HPP
+# define MSGPACK_PREPROCESSOR_REPEAT_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_2nd.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_2nd.hpp
new file mode 100644
index 000000000..9e4a4b1db
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_2nd.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPEAT_2ND_HPP
+# define MSGPACK_PREPROCESSOR_REPEAT_2ND_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_3rd.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_3rd.hpp
new file mode 100644
index 000000000..094734afa
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_3rd.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPEAT_3RD_HPP
+# define MSGPACK_PREPROCESSOR_REPEAT_3RD_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to.hpp
new file mode 100644
index 000000000..fe84ccff5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_HPP
+# define MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_2nd.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_2nd.hpp
new file mode 100644
index 000000000..f53957404
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_2nd.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP
+# define MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_3rd.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_3rd.hpp
new file mode 100644
index 000000000..a437dbba5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repeat_from_to_3rd.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP
+# define MSGPACK_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition.hpp
new file mode 100644
index 000000000..1311811f8
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition.hpp
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_HPP
+#
+# include <rpc/msgpack/preprocessor/repetition/deduce_r.hpp>
+# include <rpc/msgpack/preprocessor/repetition/deduce_z.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_params.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_shifted.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_shifted_params.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_trailing.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_trailing_params.hpp>
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_r.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_r.hpp
new file mode 100644
index 000000000..4520ce78e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_r.hpp
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_R_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_R_HPP
+#
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+#
+# /* MSGPACK_PP_DEDUCE_R */
+#
+# define MSGPACK_PP_DEDUCE_R() MSGPACK_PP_AUTO_REC(MSGPACK_PP_FOR_P, 256)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_z.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_z.hpp
new file mode 100644
index 000000000..460e5ff09
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/deduce_z.hpp
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP
+#
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+#
+# /* MSGPACK_PP_DEDUCE_Z */
+#
+# define MSGPACK_PP_DEDUCE_Z() MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/dmc/for.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/dmc/for.hpp
new file mode 100644
index 000000000..196daf003
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/dmc/for.hpp
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+#
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_FOR_1_C(MSGPACK_PP_BOOL(p##(2, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_FOR_2_C(MSGPACK_PP_BOOL(p##(3, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_FOR_3_C(MSGPACK_PP_BOOL(p##(4, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_FOR_4_C(MSGPACK_PP_BOOL(p##(5, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_FOR_5_C(MSGPACK_PP_BOOL(p##(6, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_FOR_6_C(MSGPACK_PP_BOOL(p##(7, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_FOR_7_C(MSGPACK_PP_BOOL(p##(8, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_FOR_8_C(MSGPACK_PP_BOOL(p##(9, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_FOR_9_C(MSGPACK_PP_BOOL(p##(10, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_FOR_10_C(MSGPACK_PP_BOOL(p##(11, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_FOR_11_C(MSGPACK_PP_BOOL(p##(12, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_FOR_12_C(MSGPACK_PP_BOOL(p##(13, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_FOR_13_C(MSGPACK_PP_BOOL(p##(14, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_FOR_14_C(MSGPACK_PP_BOOL(p##(15, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_FOR_15_C(MSGPACK_PP_BOOL(p##(16, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_FOR_16_C(MSGPACK_PP_BOOL(p##(17, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_FOR_17_C(MSGPACK_PP_BOOL(p##(18, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_FOR_18_C(MSGPACK_PP_BOOL(p##(19, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_FOR_19_C(MSGPACK_PP_BOOL(p##(20, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_FOR_20_C(MSGPACK_PP_BOOL(p##(21, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_FOR_21_C(MSGPACK_PP_BOOL(p##(22, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_FOR_22_C(MSGPACK_PP_BOOL(p##(23, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_FOR_23_C(MSGPACK_PP_BOOL(p##(24, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_FOR_24_C(MSGPACK_PP_BOOL(p##(25, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_FOR_25_C(MSGPACK_PP_BOOL(p##(26, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_FOR_26_C(MSGPACK_PP_BOOL(p##(27, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_FOR_27_C(MSGPACK_PP_BOOL(p##(28, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_FOR_28_C(MSGPACK_PP_BOOL(p##(29, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_FOR_29_C(MSGPACK_PP_BOOL(p##(30, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_FOR_30_C(MSGPACK_PP_BOOL(p##(31, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_FOR_31_C(MSGPACK_PP_BOOL(p##(32, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_FOR_32_C(MSGPACK_PP_BOOL(p##(33, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_FOR_33_C(MSGPACK_PP_BOOL(p##(34, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_FOR_34_C(MSGPACK_PP_BOOL(p##(35, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_FOR_35_C(MSGPACK_PP_BOOL(p##(36, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_FOR_36_C(MSGPACK_PP_BOOL(p##(37, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_FOR_37_C(MSGPACK_PP_BOOL(p##(38, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_FOR_38_C(MSGPACK_PP_BOOL(p##(39, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_FOR_39_C(MSGPACK_PP_BOOL(p##(40, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_FOR_40_C(MSGPACK_PP_BOOL(p##(41, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_FOR_41_C(MSGPACK_PP_BOOL(p##(42, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_FOR_42_C(MSGPACK_PP_BOOL(p##(43, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_FOR_43_C(MSGPACK_PP_BOOL(p##(44, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_FOR_44_C(MSGPACK_PP_BOOL(p##(45, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_FOR_45_C(MSGPACK_PP_BOOL(p##(46, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_FOR_46_C(MSGPACK_PP_BOOL(p##(47, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_FOR_47_C(MSGPACK_PP_BOOL(p##(48, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_FOR_48_C(MSGPACK_PP_BOOL(p##(49, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_FOR_49_C(MSGPACK_PP_BOOL(p##(50, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_FOR_50_C(MSGPACK_PP_BOOL(p##(51, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_FOR_51_C(MSGPACK_PP_BOOL(p##(52, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_FOR_52_C(MSGPACK_PP_BOOL(p##(53, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_FOR_53_C(MSGPACK_PP_BOOL(p##(54, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_FOR_54_C(MSGPACK_PP_BOOL(p##(55, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_FOR_55_C(MSGPACK_PP_BOOL(p##(56, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_FOR_56_C(MSGPACK_PP_BOOL(p##(57, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_FOR_57_C(MSGPACK_PP_BOOL(p##(58, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_FOR_58_C(MSGPACK_PP_BOOL(p##(59, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_FOR_59_C(MSGPACK_PP_BOOL(p##(60, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_FOR_60_C(MSGPACK_PP_BOOL(p##(61, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_FOR_61_C(MSGPACK_PP_BOOL(p##(62, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_FOR_62_C(MSGPACK_PP_BOOL(p##(63, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_FOR_63_C(MSGPACK_PP_BOOL(p##(64, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_FOR_64_C(MSGPACK_PP_BOOL(p##(65, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_FOR_65_C(MSGPACK_PP_BOOL(p##(66, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_FOR_66_C(MSGPACK_PP_BOOL(p##(67, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_FOR_67_C(MSGPACK_PP_BOOL(p##(68, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_FOR_68_C(MSGPACK_PP_BOOL(p##(69, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_FOR_69_C(MSGPACK_PP_BOOL(p##(70, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_FOR_70_C(MSGPACK_PP_BOOL(p##(71, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_FOR_71_C(MSGPACK_PP_BOOL(p##(72, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_FOR_72_C(MSGPACK_PP_BOOL(p##(73, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_FOR_73_C(MSGPACK_PP_BOOL(p##(74, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_FOR_74_C(MSGPACK_PP_BOOL(p##(75, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_FOR_75_C(MSGPACK_PP_BOOL(p##(76, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_FOR_76_C(MSGPACK_PP_BOOL(p##(77, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_FOR_77_C(MSGPACK_PP_BOOL(p##(78, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_FOR_78_C(MSGPACK_PP_BOOL(p##(79, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_FOR_79_C(MSGPACK_PP_BOOL(p##(80, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_FOR_80_C(MSGPACK_PP_BOOL(p##(81, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_FOR_81_C(MSGPACK_PP_BOOL(p##(82, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_FOR_82_C(MSGPACK_PP_BOOL(p##(83, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_FOR_83_C(MSGPACK_PP_BOOL(p##(84, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_FOR_84_C(MSGPACK_PP_BOOL(p##(85, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_FOR_85_C(MSGPACK_PP_BOOL(p##(86, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_FOR_86_C(MSGPACK_PP_BOOL(p##(87, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_FOR_87_C(MSGPACK_PP_BOOL(p##(88, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_FOR_88_C(MSGPACK_PP_BOOL(p##(89, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_FOR_89_C(MSGPACK_PP_BOOL(p##(90, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_FOR_90_C(MSGPACK_PP_BOOL(p##(91, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_FOR_91_C(MSGPACK_PP_BOOL(p##(92, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_FOR_92_C(MSGPACK_PP_BOOL(p##(93, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_FOR_93_C(MSGPACK_PP_BOOL(p##(94, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_FOR_94_C(MSGPACK_PP_BOOL(p##(95, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_FOR_95_C(MSGPACK_PP_BOOL(p##(96, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_FOR_96_C(MSGPACK_PP_BOOL(p##(97, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_FOR_97_C(MSGPACK_PP_BOOL(p##(98, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_FOR_98_C(MSGPACK_PP_BOOL(p##(99, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_FOR_99_C(MSGPACK_PP_BOOL(p##(100, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_FOR_100_C(MSGPACK_PP_BOOL(p##(101, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_FOR_101_C(MSGPACK_PP_BOOL(p##(102, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_FOR_102_C(MSGPACK_PP_BOOL(p##(103, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_FOR_103_C(MSGPACK_PP_BOOL(p##(104, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_FOR_104_C(MSGPACK_PP_BOOL(p##(105, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_FOR_105_C(MSGPACK_PP_BOOL(p##(106, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_FOR_106_C(MSGPACK_PP_BOOL(p##(107, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_FOR_107_C(MSGPACK_PP_BOOL(p##(108, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_FOR_108_C(MSGPACK_PP_BOOL(p##(109, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_FOR_109_C(MSGPACK_PP_BOOL(p##(110, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_FOR_110_C(MSGPACK_PP_BOOL(p##(111, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_FOR_111_C(MSGPACK_PP_BOOL(p##(112, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_FOR_112_C(MSGPACK_PP_BOOL(p##(113, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_FOR_113_C(MSGPACK_PP_BOOL(p##(114, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_FOR_114_C(MSGPACK_PP_BOOL(p##(115, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_FOR_115_C(MSGPACK_PP_BOOL(p##(116, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_FOR_116_C(MSGPACK_PP_BOOL(p##(117, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_FOR_117_C(MSGPACK_PP_BOOL(p##(118, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_FOR_118_C(MSGPACK_PP_BOOL(p##(119, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_FOR_119_C(MSGPACK_PP_BOOL(p##(120, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_FOR_120_C(MSGPACK_PP_BOOL(p##(121, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_FOR_121_C(MSGPACK_PP_BOOL(p##(122, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_FOR_122_C(MSGPACK_PP_BOOL(p##(123, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_FOR_123_C(MSGPACK_PP_BOOL(p##(124, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_FOR_124_C(MSGPACK_PP_BOOL(p##(125, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_FOR_125_C(MSGPACK_PP_BOOL(p##(126, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_FOR_126_C(MSGPACK_PP_BOOL(p##(127, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_FOR_127_C(MSGPACK_PP_BOOL(p##(128, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_FOR_128_C(MSGPACK_PP_BOOL(p##(129, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_FOR_129_C(MSGPACK_PP_BOOL(p##(130, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_FOR_130_C(MSGPACK_PP_BOOL(p##(131, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_FOR_131_C(MSGPACK_PP_BOOL(p##(132, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_FOR_132_C(MSGPACK_PP_BOOL(p##(133, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_FOR_133_C(MSGPACK_PP_BOOL(p##(134, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_FOR_134_C(MSGPACK_PP_BOOL(p##(135, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_FOR_135_C(MSGPACK_PP_BOOL(p##(136, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_FOR_136_C(MSGPACK_PP_BOOL(p##(137, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_FOR_137_C(MSGPACK_PP_BOOL(p##(138, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_FOR_138_C(MSGPACK_PP_BOOL(p##(139, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_FOR_139_C(MSGPACK_PP_BOOL(p##(140, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_FOR_140_C(MSGPACK_PP_BOOL(p##(141, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_FOR_141_C(MSGPACK_PP_BOOL(p##(142, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_FOR_142_C(MSGPACK_PP_BOOL(p##(143, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_FOR_143_C(MSGPACK_PP_BOOL(p##(144, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_FOR_144_C(MSGPACK_PP_BOOL(p##(145, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_FOR_145_C(MSGPACK_PP_BOOL(p##(146, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_FOR_146_C(MSGPACK_PP_BOOL(p##(147, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_FOR_147_C(MSGPACK_PP_BOOL(p##(148, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_FOR_148_C(MSGPACK_PP_BOOL(p##(149, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_FOR_149_C(MSGPACK_PP_BOOL(p##(150, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_FOR_150_C(MSGPACK_PP_BOOL(p##(151, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_FOR_151_C(MSGPACK_PP_BOOL(p##(152, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_FOR_152_C(MSGPACK_PP_BOOL(p##(153, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_FOR_153_C(MSGPACK_PP_BOOL(p##(154, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_FOR_154_C(MSGPACK_PP_BOOL(p##(155, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_FOR_155_C(MSGPACK_PP_BOOL(p##(156, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_FOR_156_C(MSGPACK_PP_BOOL(p##(157, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_FOR_157_C(MSGPACK_PP_BOOL(p##(158, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_FOR_158_C(MSGPACK_PP_BOOL(p##(159, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_FOR_159_C(MSGPACK_PP_BOOL(p##(160, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_FOR_160_C(MSGPACK_PP_BOOL(p##(161, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_FOR_161_C(MSGPACK_PP_BOOL(p##(162, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_FOR_162_C(MSGPACK_PP_BOOL(p##(163, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_FOR_163_C(MSGPACK_PP_BOOL(p##(164, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_FOR_164_C(MSGPACK_PP_BOOL(p##(165, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_FOR_165_C(MSGPACK_PP_BOOL(p##(166, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_FOR_166_C(MSGPACK_PP_BOOL(p##(167, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_FOR_167_C(MSGPACK_PP_BOOL(p##(168, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_FOR_168_C(MSGPACK_PP_BOOL(p##(169, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_FOR_169_C(MSGPACK_PP_BOOL(p##(170, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_FOR_170_C(MSGPACK_PP_BOOL(p##(171, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_FOR_171_C(MSGPACK_PP_BOOL(p##(172, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_FOR_172_C(MSGPACK_PP_BOOL(p##(173, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_FOR_173_C(MSGPACK_PP_BOOL(p##(174, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_FOR_174_C(MSGPACK_PP_BOOL(p##(175, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_FOR_175_C(MSGPACK_PP_BOOL(p##(176, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_FOR_176_C(MSGPACK_PP_BOOL(p##(177, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_FOR_177_C(MSGPACK_PP_BOOL(p##(178, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_FOR_178_C(MSGPACK_PP_BOOL(p##(179, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_FOR_179_C(MSGPACK_PP_BOOL(p##(180, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_FOR_180_C(MSGPACK_PP_BOOL(p##(181, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_FOR_181_C(MSGPACK_PP_BOOL(p##(182, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_FOR_182_C(MSGPACK_PP_BOOL(p##(183, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_FOR_183_C(MSGPACK_PP_BOOL(p##(184, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_FOR_184_C(MSGPACK_PP_BOOL(p##(185, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_FOR_185_C(MSGPACK_PP_BOOL(p##(186, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_FOR_186_C(MSGPACK_PP_BOOL(p##(187, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_FOR_187_C(MSGPACK_PP_BOOL(p##(188, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_FOR_188_C(MSGPACK_PP_BOOL(p##(189, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_FOR_189_C(MSGPACK_PP_BOOL(p##(190, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_FOR_190_C(MSGPACK_PP_BOOL(p##(191, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_FOR_191_C(MSGPACK_PP_BOOL(p##(192, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_FOR_192_C(MSGPACK_PP_BOOL(p##(193, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_FOR_193_C(MSGPACK_PP_BOOL(p##(194, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_FOR_194_C(MSGPACK_PP_BOOL(p##(195, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_FOR_195_C(MSGPACK_PP_BOOL(p##(196, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_FOR_196_C(MSGPACK_PP_BOOL(p##(197, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_FOR_197_C(MSGPACK_PP_BOOL(p##(198, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_FOR_198_C(MSGPACK_PP_BOOL(p##(199, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_FOR_199_C(MSGPACK_PP_BOOL(p##(200, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_FOR_200_C(MSGPACK_PP_BOOL(p##(201, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_FOR_201_C(MSGPACK_PP_BOOL(p##(202, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_FOR_202_C(MSGPACK_PP_BOOL(p##(203, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_FOR_203_C(MSGPACK_PP_BOOL(p##(204, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_FOR_204_C(MSGPACK_PP_BOOL(p##(205, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_FOR_205_C(MSGPACK_PP_BOOL(p##(206, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_FOR_206_C(MSGPACK_PP_BOOL(p##(207, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_FOR_207_C(MSGPACK_PP_BOOL(p##(208, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_FOR_208_C(MSGPACK_PP_BOOL(p##(209, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_FOR_209_C(MSGPACK_PP_BOOL(p##(210, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_FOR_210_C(MSGPACK_PP_BOOL(p##(211, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_FOR_211_C(MSGPACK_PP_BOOL(p##(212, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_FOR_212_C(MSGPACK_PP_BOOL(p##(213, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_FOR_213_C(MSGPACK_PP_BOOL(p##(214, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_FOR_214_C(MSGPACK_PP_BOOL(p##(215, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_FOR_215_C(MSGPACK_PP_BOOL(p##(216, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_FOR_216_C(MSGPACK_PP_BOOL(p##(217, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_FOR_217_C(MSGPACK_PP_BOOL(p##(218, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_FOR_218_C(MSGPACK_PP_BOOL(p##(219, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_FOR_219_C(MSGPACK_PP_BOOL(p##(220, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_FOR_220_C(MSGPACK_PP_BOOL(p##(221, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_FOR_221_C(MSGPACK_PP_BOOL(p##(222, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_FOR_222_C(MSGPACK_PP_BOOL(p##(223, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_FOR_223_C(MSGPACK_PP_BOOL(p##(224, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_FOR_224_C(MSGPACK_PP_BOOL(p##(225, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_FOR_225_C(MSGPACK_PP_BOOL(p##(226, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_FOR_226_C(MSGPACK_PP_BOOL(p##(227, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_FOR_227_C(MSGPACK_PP_BOOL(p##(228, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_FOR_228_C(MSGPACK_PP_BOOL(p##(229, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_FOR_229_C(MSGPACK_PP_BOOL(p##(230, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_FOR_230_C(MSGPACK_PP_BOOL(p##(231, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_FOR_231_C(MSGPACK_PP_BOOL(p##(232, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_FOR_232_C(MSGPACK_PP_BOOL(p##(233, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_FOR_233_C(MSGPACK_PP_BOOL(p##(234, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_FOR_234_C(MSGPACK_PP_BOOL(p##(235, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_FOR_235_C(MSGPACK_PP_BOOL(p##(236, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_FOR_236_C(MSGPACK_PP_BOOL(p##(237, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_FOR_237_C(MSGPACK_PP_BOOL(p##(238, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_FOR_238_C(MSGPACK_PP_BOOL(p##(239, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_FOR_239_C(MSGPACK_PP_BOOL(p##(240, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_FOR_240_C(MSGPACK_PP_BOOL(p##(241, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_FOR_241_C(MSGPACK_PP_BOOL(p##(242, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_FOR_242_C(MSGPACK_PP_BOOL(p##(243, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_FOR_243_C(MSGPACK_PP_BOOL(p##(244, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_FOR_244_C(MSGPACK_PP_BOOL(p##(245, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_FOR_245_C(MSGPACK_PP_BOOL(p##(246, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_FOR_246_C(MSGPACK_PP_BOOL(p##(247, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_FOR_247_C(MSGPACK_PP_BOOL(p##(248, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_FOR_248_C(MSGPACK_PP_BOOL(p##(249, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_FOR_249_C(MSGPACK_PP_BOOL(p##(250, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_FOR_250_C(MSGPACK_PP_BOOL(p##(251, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_FOR_251_C(MSGPACK_PP_BOOL(p##(252, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_FOR_252_C(MSGPACK_PP_BOOL(p##(253, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_FOR_253_C(MSGPACK_PP_BOOL(p##(254, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_FOR_254_C(MSGPACK_PP_BOOL(p##(255, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_FOR_255_C(MSGPACK_PP_BOOL(p##(256, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_FOR_256_C(MSGPACK_PP_BOOL(p##(257, s)), s, p, o, m)
+#
+# define MSGPACK_PP_FOR_1_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(2, s), p, o, m)
+# define MSGPACK_PP_FOR_2_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(3, s), p, o, m)
+# define MSGPACK_PP_FOR_3_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(4, s), p, o, m)
+# define MSGPACK_PP_FOR_4_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(5, s), p, o, m)
+# define MSGPACK_PP_FOR_5_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(6, s), p, o, m)
+# define MSGPACK_PP_FOR_6_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(7, s), p, o, m)
+# define MSGPACK_PP_FOR_7_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(8, s), p, o, m)
+# define MSGPACK_PP_FOR_8_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(9, s), p, o, m)
+# define MSGPACK_PP_FOR_9_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(10, s), p, o, m)
+# define MSGPACK_PP_FOR_10_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(11, s), p, o, m)
+# define MSGPACK_PP_FOR_11_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(12, s), p, o, m)
+# define MSGPACK_PP_FOR_12_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(13, s), p, o, m)
+# define MSGPACK_PP_FOR_13_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(14, s), p, o, m)
+# define MSGPACK_PP_FOR_14_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(15, s), p, o, m)
+# define MSGPACK_PP_FOR_15_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(16, s), p, o, m)
+# define MSGPACK_PP_FOR_16_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(17, s), p, o, m)
+# define MSGPACK_PP_FOR_17_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(18, s), p, o, m)
+# define MSGPACK_PP_FOR_18_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(19, s), p, o, m)
+# define MSGPACK_PP_FOR_19_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(20, s), p, o, m)
+# define MSGPACK_PP_FOR_20_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(21, s), p, o, m)
+# define MSGPACK_PP_FOR_21_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(22, s), p, o, m)
+# define MSGPACK_PP_FOR_22_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(23, s), p, o, m)
+# define MSGPACK_PP_FOR_23_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(24, s), p, o, m)
+# define MSGPACK_PP_FOR_24_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(25, s), p, o, m)
+# define MSGPACK_PP_FOR_25_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(26, s), p, o, m)
+# define MSGPACK_PP_FOR_26_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(27, s), p, o, m)
+# define MSGPACK_PP_FOR_27_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(28, s), p, o, m)
+# define MSGPACK_PP_FOR_28_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(29, s), p, o, m)
+# define MSGPACK_PP_FOR_29_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(30, s), p, o, m)
+# define MSGPACK_PP_FOR_30_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(31, s), p, o, m)
+# define MSGPACK_PP_FOR_31_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(32, s), p, o, m)
+# define MSGPACK_PP_FOR_32_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(33, s), p, o, m)
+# define MSGPACK_PP_FOR_33_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(34, s), p, o, m)
+# define MSGPACK_PP_FOR_34_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(35, s), p, o, m)
+# define MSGPACK_PP_FOR_35_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(36, s), p, o, m)
+# define MSGPACK_PP_FOR_36_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(37, s), p, o, m)
+# define MSGPACK_PP_FOR_37_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(38, s), p, o, m)
+# define MSGPACK_PP_FOR_38_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(39, s), p, o, m)
+# define MSGPACK_PP_FOR_39_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(40, s), p, o, m)
+# define MSGPACK_PP_FOR_40_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(41, s), p, o, m)
+# define MSGPACK_PP_FOR_41_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(42, s), p, o, m)
+# define MSGPACK_PP_FOR_42_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(43, s), p, o, m)
+# define MSGPACK_PP_FOR_43_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(44, s), p, o, m)
+# define MSGPACK_PP_FOR_44_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(45, s), p, o, m)
+# define MSGPACK_PP_FOR_45_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(46, s), p, o, m)
+# define MSGPACK_PP_FOR_46_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(47, s), p, o, m)
+# define MSGPACK_PP_FOR_47_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(48, s), p, o, m)
+# define MSGPACK_PP_FOR_48_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(49, s), p, o, m)
+# define MSGPACK_PP_FOR_49_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(50, s), p, o, m)
+# define MSGPACK_PP_FOR_50_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(51, s), p, o, m)
+# define MSGPACK_PP_FOR_51_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(52, s), p, o, m)
+# define MSGPACK_PP_FOR_52_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(53, s), p, o, m)
+# define MSGPACK_PP_FOR_53_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(54, s), p, o, m)
+# define MSGPACK_PP_FOR_54_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(55, s), p, o, m)
+# define MSGPACK_PP_FOR_55_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(56, s), p, o, m)
+# define MSGPACK_PP_FOR_56_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(57, s), p, o, m)
+# define MSGPACK_PP_FOR_57_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(58, s), p, o, m)
+# define MSGPACK_PP_FOR_58_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(59, s), p, o, m)
+# define MSGPACK_PP_FOR_59_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(60, s), p, o, m)
+# define MSGPACK_PP_FOR_60_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(61, s), p, o, m)
+# define MSGPACK_PP_FOR_61_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(62, s), p, o, m)
+# define MSGPACK_PP_FOR_62_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(63, s), p, o, m)
+# define MSGPACK_PP_FOR_63_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(64, s), p, o, m)
+# define MSGPACK_PP_FOR_64_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(65, s), p, o, m)
+# define MSGPACK_PP_FOR_65_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(66, s), p, o, m)
+# define MSGPACK_PP_FOR_66_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(67, s), p, o, m)
+# define MSGPACK_PP_FOR_67_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(68, s), p, o, m)
+# define MSGPACK_PP_FOR_68_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(69, s), p, o, m)
+# define MSGPACK_PP_FOR_69_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(70, s), p, o, m)
+# define MSGPACK_PP_FOR_70_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(71, s), p, o, m)
+# define MSGPACK_PP_FOR_71_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(72, s), p, o, m)
+# define MSGPACK_PP_FOR_72_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(73, s), p, o, m)
+# define MSGPACK_PP_FOR_73_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(74, s), p, o, m)
+# define MSGPACK_PP_FOR_74_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(75, s), p, o, m)
+# define MSGPACK_PP_FOR_75_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(76, s), p, o, m)
+# define MSGPACK_PP_FOR_76_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(77, s), p, o, m)
+# define MSGPACK_PP_FOR_77_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(78, s), p, o, m)
+# define MSGPACK_PP_FOR_78_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(79, s), p, o, m)
+# define MSGPACK_PP_FOR_79_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(80, s), p, o, m)
+# define MSGPACK_PP_FOR_80_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(81, s), p, o, m)
+# define MSGPACK_PP_FOR_81_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(82, s), p, o, m)
+# define MSGPACK_PP_FOR_82_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(83, s), p, o, m)
+# define MSGPACK_PP_FOR_83_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(84, s), p, o, m)
+# define MSGPACK_PP_FOR_84_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(85, s), p, o, m)
+# define MSGPACK_PP_FOR_85_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(86, s), p, o, m)
+# define MSGPACK_PP_FOR_86_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(87, s), p, o, m)
+# define MSGPACK_PP_FOR_87_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(88, s), p, o, m)
+# define MSGPACK_PP_FOR_88_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(89, s), p, o, m)
+# define MSGPACK_PP_FOR_89_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(90, s), p, o, m)
+# define MSGPACK_PP_FOR_90_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(91, s), p, o, m)
+# define MSGPACK_PP_FOR_91_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(92, s), p, o, m)
+# define MSGPACK_PP_FOR_92_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(93, s), p, o, m)
+# define MSGPACK_PP_FOR_93_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(94, s), p, o, m)
+# define MSGPACK_PP_FOR_94_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(95, s), p, o, m)
+# define MSGPACK_PP_FOR_95_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(96, s), p, o, m)
+# define MSGPACK_PP_FOR_96_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(97, s), p, o, m)
+# define MSGPACK_PP_FOR_97_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(98, s), p, o, m)
+# define MSGPACK_PP_FOR_98_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(99, s), p, o, m)
+# define MSGPACK_PP_FOR_99_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(100, s), p, o, m)
+# define MSGPACK_PP_FOR_100_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(101, s), p, o, m)
+# define MSGPACK_PP_FOR_101_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(102, s), p, o, m)
+# define MSGPACK_PP_FOR_102_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(103, s), p, o, m)
+# define MSGPACK_PP_FOR_103_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(104, s), p, o, m)
+# define MSGPACK_PP_FOR_104_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(105, s), p, o, m)
+# define MSGPACK_PP_FOR_105_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(106, s), p, o, m)
+# define MSGPACK_PP_FOR_106_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(107, s), p, o, m)
+# define MSGPACK_PP_FOR_107_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(108, s), p, o, m)
+# define MSGPACK_PP_FOR_108_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(109, s), p, o, m)
+# define MSGPACK_PP_FOR_109_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(110, s), p, o, m)
+# define MSGPACK_PP_FOR_110_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(111, s), p, o, m)
+# define MSGPACK_PP_FOR_111_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(112, s), p, o, m)
+# define MSGPACK_PP_FOR_112_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(113, s), p, o, m)
+# define MSGPACK_PP_FOR_113_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(114, s), p, o, m)
+# define MSGPACK_PP_FOR_114_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(115, s), p, o, m)
+# define MSGPACK_PP_FOR_115_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(116, s), p, o, m)
+# define MSGPACK_PP_FOR_116_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(117, s), p, o, m)
+# define MSGPACK_PP_FOR_117_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(118, s), p, o, m)
+# define MSGPACK_PP_FOR_118_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(119, s), p, o, m)
+# define MSGPACK_PP_FOR_119_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(120, s), p, o, m)
+# define MSGPACK_PP_FOR_120_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(121, s), p, o, m)
+# define MSGPACK_PP_FOR_121_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(122, s), p, o, m)
+# define MSGPACK_PP_FOR_122_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(123, s), p, o, m)
+# define MSGPACK_PP_FOR_123_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(124, s), p, o, m)
+# define MSGPACK_PP_FOR_124_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(125, s), p, o, m)
+# define MSGPACK_PP_FOR_125_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(126, s), p, o, m)
+# define MSGPACK_PP_FOR_126_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(127, s), p, o, m)
+# define MSGPACK_PP_FOR_127_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(128, s), p, o, m)
+# define MSGPACK_PP_FOR_128_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(129, s), p, o, m)
+# define MSGPACK_PP_FOR_129_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(130, s), p, o, m)
+# define MSGPACK_PP_FOR_130_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(131, s), p, o, m)
+# define MSGPACK_PP_FOR_131_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(132, s), p, o, m)
+# define MSGPACK_PP_FOR_132_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(133, s), p, o, m)
+# define MSGPACK_PP_FOR_133_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(134, s), p, o, m)
+# define MSGPACK_PP_FOR_134_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(135, s), p, o, m)
+# define MSGPACK_PP_FOR_135_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(136, s), p, o, m)
+# define MSGPACK_PP_FOR_136_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(137, s), p, o, m)
+# define MSGPACK_PP_FOR_137_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(138, s), p, o, m)
+# define MSGPACK_PP_FOR_138_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(139, s), p, o, m)
+# define MSGPACK_PP_FOR_139_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(140, s), p, o, m)
+# define MSGPACK_PP_FOR_140_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(141, s), p, o, m)
+# define MSGPACK_PP_FOR_141_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(142, s), p, o, m)
+# define MSGPACK_PP_FOR_142_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(143, s), p, o, m)
+# define MSGPACK_PP_FOR_143_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(144, s), p, o, m)
+# define MSGPACK_PP_FOR_144_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(145, s), p, o, m)
+# define MSGPACK_PP_FOR_145_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(146, s), p, o, m)
+# define MSGPACK_PP_FOR_146_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(147, s), p, o, m)
+# define MSGPACK_PP_FOR_147_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(148, s), p, o, m)
+# define MSGPACK_PP_FOR_148_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(149, s), p, o, m)
+# define MSGPACK_PP_FOR_149_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(150, s), p, o, m)
+# define MSGPACK_PP_FOR_150_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(151, s), p, o, m)
+# define MSGPACK_PP_FOR_151_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(152, s), p, o, m)
+# define MSGPACK_PP_FOR_152_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(153, s), p, o, m)
+# define MSGPACK_PP_FOR_153_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(154, s), p, o, m)
+# define MSGPACK_PP_FOR_154_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(155, s), p, o, m)
+# define MSGPACK_PP_FOR_155_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(156, s), p, o, m)
+# define MSGPACK_PP_FOR_156_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(157, s), p, o, m)
+# define MSGPACK_PP_FOR_157_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(158, s), p, o, m)
+# define MSGPACK_PP_FOR_158_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(159, s), p, o, m)
+# define MSGPACK_PP_FOR_159_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(160, s), p, o, m)
+# define MSGPACK_PP_FOR_160_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(161, s), p, o, m)
+# define MSGPACK_PP_FOR_161_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(162, s), p, o, m)
+# define MSGPACK_PP_FOR_162_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(163, s), p, o, m)
+# define MSGPACK_PP_FOR_163_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(164, s), p, o, m)
+# define MSGPACK_PP_FOR_164_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(165, s), p, o, m)
+# define MSGPACK_PP_FOR_165_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(166, s), p, o, m)
+# define MSGPACK_PP_FOR_166_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(167, s), p, o, m)
+# define MSGPACK_PP_FOR_167_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(168, s), p, o, m)
+# define MSGPACK_PP_FOR_168_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(169, s), p, o, m)
+# define MSGPACK_PP_FOR_169_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(170, s), p, o, m)
+# define MSGPACK_PP_FOR_170_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(171, s), p, o, m)
+# define MSGPACK_PP_FOR_171_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(172, s), p, o, m)
+# define MSGPACK_PP_FOR_172_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(173, s), p, o, m)
+# define MSGPACK_PP_FOR_173_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(174, s), p, o, m)
+# define MSGPACK_PP_FOR_174_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(175, s), p, o, m)
+# define MSGPACK_PP_FOR_175_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(176, s), p, o, m)
+# define MSGPACK_PP_FOR_176_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(177, s), p, o, m)
+# define MSGPACK_PP_FOR_177_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(178, s), p, o, m)
+# define MSGPACK_PP_FOR_178_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(179, s), p, o, m)
+# define MSGPACK_PP_FOR_179_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(180, s), p, o, m)
+# define MSGPACK_PP_FOR_180_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(181, s), p, o, m)
+# define MSGPACK_PP_FOR_181_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(182, s), p, o, m)
+# define MSGPACK_PP_FOR_182_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(183, s), p, o, m)
+# define MSGPACK_PP_FOR_183_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(184, s), p, o, m)
+# define MSGPACK_PP_FOR_184_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(185, s), p, o, m)
+# define MSGPACK_PP_FOR_185_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(186, s), p, o, m)
+# define MSGPACK_PP_FOR_186_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(187, s), p, o, m)
+# define MSGPACK_PP_FOR_187_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(188, s), p, o, m)
+# define MSGPACK_PP_FOR_188_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(189, s), p, o, m)
+# define MSGPACK_PP_FOR_189_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(190, s), p, o, m)
+# define MSGPACK_PP_FOR_190_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(191, s), p, o, m)
+# define MSGPACK_PP_FOR_191_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(192, s), p, o, m)
+# define MSGPACK_PP_FOR_192_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(193, s), p, o, m)
+# define MSGPACK_PP_FOR_193_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(194, s), p, o, m)
+# define MSGPACK_PP_FOR_194_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(195, s), p, o, m)
+# define MSGPACK_PP_FOR_195_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(196, s), p, o, m)
+# define MSGPACK_PP_FOR_196_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(197, s), p, o, m)
+# define MSGPACK_PP_FOR_197_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(198, s), p, o, m)
+# define MSGPACK_PP_FOR_198_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(199, s), p, o, m)
+# define MSGPACK_PP_FOR_199_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(200, s), p, o, m)
+# define MSGPACK_PP_FOR_200_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(201, s), p, o, m)
+# define MSGPACK_PP_FOR_201_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(202, s), p, o, m)
+# define MSGPACK_PP_FOR_202_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(203, s), p, o, m)
+# define MSGPACK_PP_FOR_203_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(204, s), p, o, m)
+# define MSGPACK_PP_FOR_204_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(205, s), p, o, m)
+# define MSGPACK_PP_FOR_205_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(206, s), p, o, m)
+# define MSGPACK_PP_FOR_206_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(207, s), p, o, m)
+# define MSGPACK_PP_FOR_207_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(208, s), p, o, m)
+# define MSGPACK_PP_FOR_208_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(209, s), p, o, m)
+# define MSGPACK_PP_FOR_209_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(210, s), p, o, m)
+# define MSGPACK_PP_FOR_210_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(211, s), p, o, m)
+# define MSGPACK_PP_FOR_211_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(212, s), p, o, m)
+# define MSGPACK_PP_FOR_212_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(213, s), p, o, m)
+# define MSGPACK_PP_FOR_213_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(214, s), p, o, m)
+# define MSGPACK_PP_FOR_214_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(215, s), p, o, m)
+# define MSGPACK_PP_FOR_215_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(216, s), p, o, m)
+# define MSGPACK_PP_FOR_216_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(217, s), p, o, m)
+# define MSGPACK_PP_FOR_217_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(218, s), p, o, m)
+# define MSGPACK_PP_FOR_218_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(219, s), p, o, m)
+# define MSGPACK_PP_FOR_219_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(220, s), p, o, m)
+# define MSGPACK_PP_FOR_220_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(221, s), p, o, m)
+# define MSGPACK_PP_FOR_221_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(222, s), p, o, m)
+# define MSGPACK_PP_FOR_222_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(223, s), p, o, m)
+# define MSGPACK_PP_FOR_223_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(224, s), p, o, m)
+# define MSGPACK_PP_FOR_224_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(225, s), p, o, m)
+# define MSGPACK_PP_FOR_225_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(226, s), p, o, m)
+# define MSGPACK_PP_FOR_226_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(227, s), p, o, m)
+# define MSGPACK_PP_FOR_227_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(228, s), p, o, m)
+# define MSGPACK_PP_FOR_228_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(229, s), p, o, m)
+# define MSGPACK_PP_FOR_229_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(230, s), p, o, m)
+# define MSGPACK_PP_FOR_230_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(231, s), p, o, m)
+# define MSGPACK_PP_FOR_231_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(232, s), p, o, m)
+# define MSGPACK_PP_FOR_232_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(233, s), p, o, m)
+# define MSGPACK_PP_FOR_233_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(234, s), p, o, m)
+# define MSGPACK_PP_FOR_234_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(235, s), p, o, m)
+# define MSGPACK_PP_FOR_235_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(236, s), p, o, m)
+# define MSGPACK_PP_FOR_236_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(237, s), p, o, m)
+# define MSGPACK_PP_FOR_237_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(238, s), p, o, m)
+# define MSGPACK_PP_FOR_238_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(239, s), p, o, m)
+# define MSGPACK_PP_FOR_239_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(240, s), p, o, m)
+# define MSGPACK_PP_FOR_240_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(241, s), p, o, m)
+# define MSGPACK_PP_FOR_241_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(242, s), p, o, m)
+# define MSGPACK_PP_FOR_242_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(243, s), p, o, m)
+# define MSGPACK_PP_FOR_243_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(244, s), p, o, m)
+# define MSGPACK_PP_FOR_244_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(245, s), p, o, m)
+# define MSGPACK_PP_FOR_245_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(246, s), p, o, m)
+# define MSGPACK_PP_FOR_246_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(247, s), p, o, m)
+# define MSGPACK_PP_FOR_247_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(248, s), p, o, m)
+# define MSGPACK_PP_FOR_248_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(249, s), p, o, m)
+# define MSGPACK_PP_FOR_249_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(250, s), p, o, m)
+# define MSGPACK_PP_FOR_250_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(251, s), p, o, m)
+# define MSGPACK_PP_FOR_251_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(252, s), p, o, m)
+# define MSGPACK_PP_FOR_252_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(253, s), p, o, m)
+# define MSGPACK_PP_FOR_253_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(254, s), p, o, m)
+# define MSGPACK_PP_FOR_254_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(255, s), p, o, m)
+# define MSGPACK_PP_FOR_255_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(256, s), p, o, m)
+# define MSGPACK_PP_FOR_256_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(257, s), p, o, m)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/edg/for.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/edg/for.hpp
new file mode 100644
index 000000000..9145cb849
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/edg/for.hpp
@@ -0,0 +1,534 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
+#
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_FOR_1_I(s, p, o, m)
+# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_FOR_2_I(s, p, o, m)
+# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_FOR_3_I(s, p, o, m)
+# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_FOR_4_I(s, p, o, m)
+# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_FOR_5_I(s, p, o, m)
+# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_FOR_6_I(s, p, o, m)
+# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_FOR_7_I(s, p, o, m)
+# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_FOR_8_I(s, p, o, m)
+# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_FOR_9_I(s, p, o, m)
+# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_FOR_10_I(s, p, o, m)
+# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_FOR_11_I(s, p, o, m)
+# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_FOR_12_I(s, p, o, m)
+# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_FOR_13_I(s, p, o, m)
+# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_FOR_14_I(s, p, o, m)
+# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_FOR_15_I(s, p, o, m)
+# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_FOR_16_I(s, p, o, m)
+# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_FOR_17_I(s, p, o, m)
+# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_FOR_18_I(s, p, o, m)
+# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_FOR_19_I(s, p, o, m)
+# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_FOR_20_I(s, p, o, m)
+# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_FOR_21_I(s, p, o, m)
+# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_FOR_22_I(s, p, o, m)
+# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_FOR_23_I(s, p, o, m)
+# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_FOR_24_I(s, p, o, m)
+# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_FOR_25_I(s, p, o, m)
+# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_FOR_26_I(s, p, o, m)
+# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_FOR_27_I(s, p, o, m)
+# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_FOR_28_I(s, p, o, m)
+# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_FOR_29_I(s, p, o, m)
+# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_FOR_30_I(s, p, o, m)
+# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_FOR_31_I(s, p, o, m)
+# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_FOR_32_I(s, p, o, m)
+# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_FOR_33_I(s, p, o, m)
+# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_FOR_34_I(s, p, o, m)
+# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_FOR_35_I(s, p, o, m)
+# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_FOR_36_I(s, p, o, m)
+# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_FOR_37_I(s, p, o, m)
+# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_FOR_38_I(s, p, o, m)
+# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_FOR_39_I(s, p, o, m)
+# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_FOR_40_I(s, p, o, m)
+# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_FOR_41_I(s, p, o, m)
+# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_FOR_42_I(s, p, o, m)
+# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_FOR_43_I(s, p, o, m)
+# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_FOR_44_I(s, p, o, m)
+# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_FOR_45_I(s, p, o, m)
+# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_FOR_46_I(s, p, o, m)
+# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_FOR_47_I(s, p, o, m)
+# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_FOR_48_I(s, p, o, m)
+# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_FOR_49_I(s, p, o, m)
+# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_FOR_50_I(s, p, o, m)
+# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_FOR_51_I(s, p, o, m)
+# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_FOR_52_I(s, p, o, m)
+# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_FOR_53_I(s, p, o, m)
+# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_FOR_54_I(s, p, o, m)
+# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_FOR_55_I(s, p, o, m)
+# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_FOR_56_I(s, p, o, m)
+# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_FOR_57_I(s, p, o, m)
+# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_FOR_58_I(s, p, o, m)
+# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_FOR_59_I(s, p, o, m)
+# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_FOR_60_I(s, p, o, m)
+# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_FOR_61_I(s, p, o, m)
+# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_FOR_62_I(s, p, o, m)
+# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_FOR_63_I(s, p, o, m)
+# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_FOR_64_I(s, p, o, m)
+# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_FOR_65_I(s, p, o, m)
+# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_FOR_66_I(s, p, o, m)
+# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_FOR_67_I(s, p, o, m)
+# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_FOR_68_I(s, p, o, m)
+# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_FOR_69_I(s, p, o, m)
+# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_FOR_70_I(s, p, o, m)
+# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_FOR_71_I(s, p, o, m)
+# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_FOR_72_I(s, p, o, m)
+# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_FOR_73_I(s, p, o, m)
+# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_FOR_74_I(s, p, o, m)
+# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_FOR_75_I(s, p, o, m)
+# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_FOR_76_I(s, p, o, m)
+# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_FOR_77_I(s, p, o, m)
+# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_FOR_78_I(s, p, o, m)
+# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_FOR_79_I(s, p, o, m)
+# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_FOR_80_I(s, p, o, m)
+# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_FOR_81_I(s, p, o, m)
+# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_FOR_82_I(s, p, o, m)
+# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_FOR_83_I(s, p, o, m)
+# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_FOR_84_I(s, p, o, m)
+# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_FOR_85_I(s, p, o, m)
+# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_FOR_86_I(s, p, o, m)
+# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_FOR_87_I(s, p, o, m)
+# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_FOR_88_I(s, p, o, m)
+# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_FOR_89_I(s, p, o, m)
+# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_FOR_90_I(s, p, o, m)
+# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_FOR_91_I(s, p, o, m)
+# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_FOR_92_I(s, p, o, m)
+# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_FOR_93_I(s, p, o, m)
+# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_FOR_94_I(s, p, o, m)
+# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_FOR_95_I(s, p, o, m)
+# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_FOR_96_I(s, p, o, m)
+# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_FOR_97_I(s, p, o, m)
+# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_FOR_98_I(s, p, o, m)
+# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_FOR_99_I(s, p, o, m)
+# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_FOR_100_I(s, p, o, m)
+# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_FOR_101_I(s, p, o, m)
+# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_FOR_102_I(s, p, o, m)
+# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_FOR_103_I(s, p, o, m)
+# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_FOR_104_I(s, p, o, m)
+# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_FOR_105_I(s, p, o, m)
+# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_FOR_106_I(s, p, o, m)
+# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_FOR_107_I(s, p, o, m)
+# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_FOR_108_I(s, p, o, m)
+# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_FOR_109_I(s, p, o, m)
+# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_FOR_110_I(s, p, o, m)
+# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_FOR_111_I(s, p, o, m)
+# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_FOR_112_I(s, p, o, m)
+# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_FOR_113_I(s, p, o, m)
+# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_FOR_114_I(s, p, o, m)
+# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_FOR_115_I(s, p, o, m)
+# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_FOR_116_I(s, p, o, m)
+# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_FOR_117_I(s, p, o, m)
+# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_FOR_118_I(s, p, o, m)
+# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_FOR_119_I(s, p, o, m)
+# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_FOR_120_I(s, p, o, m)
+# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_FOR_121_I(s, p, o, m)
+# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_FOR_122_I(s, p, o, m)
+# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_FOR_123_I(s, p, o, m)
+# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_FOR_124_I(s, p, o, m)
+# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_FOR_125_I(s, p, o, m)
+# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_FOR_126_I(s, p, o, m)
+# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_FOR_127_I(s, p, o, m)
+# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_FOR_128_I(s, p, o, m)
+# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_FOR_129_I(s, p, o, m)
+# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_FOR_130_I(s, p, o, m)
+# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_FOR_131_I(s, p, o, m)
+# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_FOR_132_I(s, p, o, m)
+# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_FOR_133_I(s, p, o, m)
+# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_FOR_134_I(s, p, o, m)
+# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_FOR_135_I(s, p, o, m)
+# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_FOR_136_I(s, p, o, m)
+# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_FOR_137_I(s, p, o, m)
+# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_FOR_138_I(s, p, o, m)
+# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_FOR_139_I(s, p, o, m)
+# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_FOR_140_I(s, p, o, m)
+# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_FOR_141_I(s, p, o, m)
+# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_FOR_142_I(s, p, o, m)
+# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_FOR_143_I(s, p, o, m)
+# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_FOR_144_I(s, p, o, m)
+# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_FOR_145_I(s, p, o, m)
+# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_FOR_146_I(s, p, o, m)
+# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_FOR_147_I(s, p, o, m)
+# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_FOR_148_I(s, p, o, m)
+# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_FOR_149_I(s, p, o, m)
+# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_FOR_150_I(s, p, o, m)
+# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_FOR_151_I(s, p, o, m)
+# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_FOR_152_I(s, p, o, m)
+# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_FOR_153_I(s, p, o, m)
+# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_FOR_154_I(s, p, o, m)
+# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_FOR_155_I(s, p, o, m)
+# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_FOR_156_I(s, p, o, m)
+# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_FOR_157_I(s, p, o, m)
+# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_FOR_158_I(s, p, o, m)
+# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_FOR_159_I(s, p, o, m)
+# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_FOR_160_I(s, p, o, m)
+# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_FOR_161_I(s, p, o, m)
+# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_FOR_162_I(s, p, o, m)
+# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_FOR_163_I(s, p, o, m)
+# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_FOR_164_I(s, p, o, m)
+# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_FOR_165_I(s, p, o, m)
+# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_FOR_166_I(s, p, o, m)
+# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_FOR_167_I(s, p, o, m)
+# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_FOR_168_I(s, p, o, m)
+# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_FOR_169_I(s, p, o, m)
+# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_FOR_170_I(s, p, o, m)
+# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_FOR_171_I(s, p, o, m)
+# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_FOR_172_I(s, p, o, m)
+# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_FOR_173_I(s, p, o, m)
+# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_FOR_174_I(s, p, o, m)
+# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_FOR_175_I(s, p, o, m)
+# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_FOR_176_I(s, p, o, m)
+# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_FOR_177_I(s, p, o, m)
+# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_FOR_178_I(s, p, o, m)
+# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_FOR_179_I(s, p, o, m)
+# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_FOR_180_I(s, p, o, m)
+# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_FOR_181_I(s, p, o, m)
+# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_FOR_182_I(s, p, o, m)
+# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_FOR_183_I(s, p, o, m)
+# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_FOR_184_I(s, p, o, m)
+# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_FOR_185_I(s, p, o, m)
+# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_FOR_186_I(s, p, o, m)
+# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_FOR_187_I(s, p, o, m)
+# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_FOR_188_I(s, p, o, m)
+# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_FOR_189_I(s, p, o, m)
+# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_FOR_190_I(s, p, o, m)
+# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_FOR_191_I(s, p, o, m)
+# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_FOR_192_I(s, p, o, m)
+# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_FOR_193_I(s, p, o, m)
+# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_FOR_194_I(s, p, o, m)
+# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_FOR_195_I(s, p, o, m)
+# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_FOR_196_I(s, p, o, m)
+# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_FOR_197_I(s, p, o, m)
+# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_FOR_198_I(s, p, o, m)
+# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_FOR_199_I(s, p, o, m)
+# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_FOR_200_I(s, p, o, m)
+# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_FOR_201_I(s, p, o, m)
+# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_FOR_202_I(s, p, o, m)
+# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_FOR_203_I(s, p, o, m)
+# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_FOR_204_I(s, p, o, m)
+# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_FOR_205_I(s, p, o, m)
+# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_FOR_206_I(s, p, o, m)
+# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_FOR_207_I(s, p, o, m)
+# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_FOR_208_I(s, p, o, m)
+# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_FOR_209_I(s, p, o, m)
+# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_FOR_210_I(s, p, o, m)
+# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_FOR_211_I(s, p, o, m)
+# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_FOR_212_I(s, p, o, m)
+# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_FOR_213_I(s, p, o, m)
+# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_FOR_214_I(s, p, o, m)
+# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_FOR_215_I(s, p, o, m)
+# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_FOR_216_I(s, p, o, m)
+# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_FOR_217_I(s, p, o, m)
+# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_FOR_218_I(s, p, o, m)
+# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_FOR_219_I(s, p, o, m)
+# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_FOR_220_I(s, p, o, m)
+# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_FOR_221_I(s, p, o, m)
+# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_FOR_222_I(s, p, o, m)
+# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_FOR_223_I(s, p, o, m)
+# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_FOR_224_I(s, p, o, m)
+# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_FOR_225_I(s, p, o, m)
+# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_FOR_226_I(s, p, o, m)
+# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_FOR_227_I(s, p, o, m)
+# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_FOR_228_I(s, p, o, m)
+# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_FOR_229_I(s, p, o, m)
+# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_FOR_230_I(s, p, o, m)
+# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_FOR_231_I(s, p, o, m)
+# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_FOR_232_I(s, p, o, m)
+# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_FOR_233_I(s, p, o, m)
+# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_FOR_234_I(s, p, o, m)
+# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_FOR_235_I(s, p, o, m)
+# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_FOR_236_I(s, p, o, m)
+# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_FOR_237_I(s, p, o, m)
+# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_FOR_238_I(s, p, o, m)
+# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_FOR_239_I(s, p, o, m)
+# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_FOR_240_I(s, p, o, m)
+# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_FOR_241_I(s, p, o, m)
+# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_FOR_242_I(s, p, o, m)
+# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_FOR_243_I(s, p, o, m)
+# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_FOR_244_I(s, p, o, m)
+# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_FOR_245_I(s, p, o, m)
+# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_FOR_246_I(s, p, o, m)
+# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_FOR_247_I(s, p, o, m)
+# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_FOR_248_I(s, p, o, m)
+# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_FOR_249_I(s, p, o, m)
+# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_FOR_250_I(s, p, o, m)
+# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_FOR_251_I(s, p, o, m)
+# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_FOR_252_I(s, p, o, m)
+# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_FOR_253_I(s, p, o, m)
+# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_FOR_254_I(s, p, o, m)
+# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_FOR_255_I(s, p, o, m)
+# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_FOR_256_I(s, p, o, m)
+#
+# define MSGPACK_PP_FOR_1_I(s, p, o, m) MSGPACK_PP_IF(p(2, s), m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
+# define MSGPACK_PP_FOR_2_I(s, p, o, m) MSGPACK_PP_IF(p(3, s), m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
+# define MSGPACK_PP_FOR_3_I(s, p, o, m) MSGPACK_PP_IF(p(4, s), m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
+# define MSGPACK_PP_FOR_4_I(s, p, o, m) MSGPACK_PP_IF(p(5, s), m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
+# define MSGPACK_PP_FOR_5_I(s, p, o, m) MSGPACK_PP_IF(p(6, s), m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
+# define MSGPACK_PP_FOR_6_I(s, p, o, m) MSGPACK_PP_IF(p(7, s), m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
+# define MSGPACK_PP_FOR_7_I(s, p, o, m) MSGPACK_PP_IF(p(8, s), m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
+# define MSGPACK_PP_FOR_8_I(s, p, o, m) MSGPACK_PP_IF(p(9, s), m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
+# define MSGPACK_PP_FOR_9_I(s, p, o, m) MSGPACK_PP_IF(p(10, s), m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
+# define MSGPACK_PP_FOR_10_I(s, p, o, m) MSGPACK_PP_IF(p(11, s), m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
+# define MSGPACK_PP_FOR_11_I(s, p, o, m) MSGPACK_PP_IF(p(12, s), m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
+# define MSGPACK_PP_FOR_12_I(s, p, o, m) MSGPACK_PP_IF(p(13, s), m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
+# define MSGPACK_PP_FOR_13_I(s, p, o, m) MSGPACK_PP_IF(p(14, s), m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
+# define MSGPACK_PP_FOR_14_I(s, p, o, m) MSGPACK_PP_IF(p(15, s), m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
+# define MSGPACK_PP_FOR_15_I(s, p, o, m) MSGPACK_PP_IF(p(16, s), m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
+# define MSGPACK_PP_FOR_16_I(s, p, o, m) MSGPACK_PP_IF(p(17, s), m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
+# define MSGPACK_PP_FOR_17_I(s, p, o, m) MSGPACK_PP_IF(p(18, s), m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
+# define MSGPACK_PP_FOR_18_I(s, p, o, m) MSGPACK_PP_IF(p(19, s), m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
+# define MSGPACK_PP_FOR_19_I(s, p, o, m) MSGPACK_PP_IF(p(20, s), m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
+# define MSGPACK_PP_FOR_20_I(s, p, o, m) MSGPACK_PP_IF(p(21, s), m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
+# define MSGPACK_PP_FOR_21_I(s, p, o, m) MSGPACK_PP_IF(p(22, s), m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
+# define MSGPACK_PP_FOR_22_I(s, p, o, m) MSGPACK_PP_IF(p(23, s), m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
+# define MSGPACK_PP_FOR_23_I(s, p, o, m) MSGPACK_PP_IF(p(24, s), m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
+# define MSGPACK_PP_FOR_24_I(s, p, o, m) MSGPACK_PP_IF(p(25, s), m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
+# define MSGPACK_PP_FOR_25_I(s, p, o, m) MSGPACK_PP_IF(p(26, s), m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
+# define MSGPACK_PP_FOR_26_I(s, p, o, m) MSGPACK_PP_IF(p(27, s), m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
+# define MSGPACK_PP_FOR_27_I(s, p, o, m) MSGPACK_PP_IF(p(28, s), m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
+# define MSGPACK_PP_FOR_28_I(s, p, o, m) MSGPACK_PP_IF(p(29, s), m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
+# define MSGPACK_PP_FOR_29_I(s, p, o, m) MSGPACK_PP_IF(p(30, s), m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
+# define MSGPACK_PP_FOR_30_I(s, p, o, m) MSGPACK_PP_IF(p(31, s), m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
+# define MSGPACK_PP_FOR_31_I(s, p, o, m) MSGPACK_PP_IF(p(32, s), m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
+# define MSGPACK_PP_FOR_32_I(s, p, o, m) MSGPACK_PP_IF(p(33, s), m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
+# define MSGPACK_PP_FOR_33_I(s, p, o, m) MSGPACK_PP_IF(p(34, s), m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
+# define MSGPACK_PP_FOR_34_I(s, p, o, m) MSGPACK_PP_IF(p(35, s), m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
+# define MSGPACK_PP_FOR_35_I(s, p, o, m) MSGPACK_PP_IF(p(36, s), m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
+# define MSGPACK_PP_FOR_36_I(s, p, o, m) MSGPACK_PP_IF(p(37, s), m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
+# define MSGPACK_PP_FOR_37_I(s, p, o, m) MSGPACK_PP_IF(p(38, s), m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
+# define MSGPACK_PP_FOR_38_I(s, p, o, m) MSGPACK_PP_IF(p(39, s), m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
+# define MSGPACK_PP_FOR_39_I(s, p, o, m) MSGPACK_PP_IF(p(40, s), m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
+# define MSGPACK_PP_FOR_40_I(s, p, o, m) MSGPACK_PP_IF(p(41, s), m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
+# define MSGPACK_PP_FOR_41_I(s, p, o, m) MSGPACK_PP_IF(p(42, s), m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
+# define MSGPACK_PP_FOR_42_I(s, p, o, m) MSGPACK_PP_IF(p(43, s), m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
+# define MSGPACK_PP_FOR_43_I(s, p, o, m) MSGPACK_PP_IF(p(44, s), m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
+# define MSGPACK_PP_FOR_44_I(s, p, o, m) MSGPACK_PP_IF(p(45, s), m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
+# define MSGPACK_PP_FOR_45_I(s, p, o, m) MSGPACK_PP_IF(p(46, s), m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
+# define MSGPACK_PP_FOR_46_I(s, p, o, m) MSGPACK_PP_IF(p(47, s), m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
+# define MSGPACK_PP_FOR_47_I(s, p, o, m) MSGPACK_PP_IF(p(48, s), m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
+# define MSGPACK_PP_FOR_48_I(s, p, o, m) MSGPACK_PP_IF(p(49, s), m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
+# define MSGPACK_PP_FOR_49_I(s, p, o, m) MSGPACK_PP_IF(p(50, s), m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
+# define MSGPACK_PP_FOR_50_I(s, p, o, m) MSGPACK_PP_IF(p(51, s), m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
+# define MSGPACK_PP_FOR_51_I(s, p, o, m) MSGPACK_PP_IF(p(52, s), m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
+# define MSGPACK_PP_FOR_52_I(s, p, o, m) MSGPACK_PP_IF(p(53, s), m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
+# define MSGPACK_PP_FOR_53_I(s, p, o, m) MSGPACK_PP_IF(p(54, s), m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
+# define MSGPACK_PP_FOR_54_I(s, p, o, m) MSGPACK_PP_IF(p(55, s), m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
+# define MSGPACK_PP_FOR_55_I(s, p, o, m) MSGPACK_PP_IF(p(56, s), m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
+# define MSGPACK_PP_FOR_56_I(s, p, o, m) MSGPACK_PP_IF(p(57, s), m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
+# define MSGPACK_PP_FOR_57_I(s, p, o, m) MSGPACK_PP_IF(p(58, s), m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
+# define MSGPACK_PP_FOR_58_I(s, p, o, m) MSGPACK_PP_IF(p(59, s), m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
+# define MSGPACK_PP_FOR_59_I(s, p, o, m) MSGPACK_PP_IF(p(60, s), m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
+# define MSGPACK_PP_FOR_60_I(s, p, o, m) MSGPACK_PP_IF(p(61, s), m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
+# define MSGPACK_PP_FOR_61_I(s, p, o, m) MSGPACK_PP_IF(p(62, s), m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
+# define MSGPACK_PP_FOR_62_I(s, p, o, m) MSGPACK_PP_IF(p(63, s), m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
+# define MSGPACK_PP_FOR_63_I(s, p, o, m) MSGPACK_PP_IF(p(64, s), m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
+# define MSGPACK_PP_FOR_64_I(s, p, o, m) MSGPACK_PP_IF(p(65, s), m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
+# define MSGPACK_PP_FOR_65_I(s, p, o, m) MSGPACK_PP_IF(p(66, s), m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
+# define MSGPACK_PP_FOR_66_I(s, p, o, m) MSGPACK_PP_IF(p(67, s), m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
+# define MSGPACK_PP_FOR_67_I(s, p, o, m) MSGPACK_PP_IF(p(68, s), m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
+# define MSGPACK_PP_FOR_68_I(s, p, o, m) MSGPACK_PP_IF(p(69, s), m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
+# define MSGPACK_PP_FOR_69_I(s, p, o, m) MSGPACK_PP_IF(p(70, s), m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
+# define MSGPACK_PP_FOR_70_I(s, p, o, m) MSGPACK_PP_IF(p(71, s), m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
+# define MSGPACK_PP_FOR_71_I(s, p, o, m) MSGPACK_PP_IF(p(72, s), m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
+# define MSGPACK_PP_FOR_72_I(s, p, o, m) MSGPACK_PP_IF(p(73, s), m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
+# define MSGPACK_PP_FOR_73_I(s, p, o, m) MSGPACK_PP_IF(p(74, s), m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
+# define MSGPACK_PP_FOR_74_I(s, p, o, m) MSGPACK_PP_IF(p(75, s), m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
+# define MSGPACK_PP_FOR_75_I(s, p, o, m) MSGPACK_PP_IF(p(76, s), m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
+# define MSGPACK_PP_FOR_76_I(s, p, o, m) MSGPACK_PP_IF(p(77, s), m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
+# define MSGPACK_PP_FOR_77_I(s, p, o, m) MSGPACK_PP_IF(p(78, s), m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
+# define MSGPACK_PP_FOR_78_I(s, p, o, m) MSGPACK_PP_IF(p(79, s), m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
+# define MSGPACK_PP_FOR_79_I(s, p, o, m) MSGPACK_PP_IF(p(80, s), m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
+# define MSGPACK_PP_FOR_80_I(s, p, o, m) MSGPACK_PP_IF(p(81, s), m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
+# define MSGPACK_PP_FOR_81_I(s, p, o, m) MSGPACK_PP_IF(p(82, s), m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
+# define MSGPACK_PP_FOR_82_I(s, p, o, m) MSGPACK_PP_IF(p(83, s), m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
+# define MSGPACK_PP_FOR_83_I(s, p, o, m) MSGPACK_PP_IF(p(84, s), m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
+# define MSGPACK_PP_FOR_84_I(s, p, o, m) MSGPACK_PP_IF(p(85, s), m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
+# define MSGPACK_PP_FOR_85_I(s, p, o, m) MSGPACK_PP_IF(p(86, s), m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
+# define MSGPACK_PP_FOR_86_I(s, p, o, m) MSGPACK_PP_IF(p(87, s), m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
+# define MSGPACK_PP_FOR_87_I(s, p, o, m) MSGPACK_PP_IF(p(88, s), m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
+# define MSGPACK_PP_FOR_88_I(s, p, o, m) MSGPACK_PP_IF(p(89, s), m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
+# define MSGPACK_PP_FOR_89_I(s, p, o, m) MSGPACK_PP_IF(p(90, s), m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
+# define MSGPACK_PP_FOR_90_I(s, p, o, m) MSGPACK_PP_IF(p(91, s), m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
+# define MSGPACK_PP_FOR_91_I(s, p, o, m) MSGPACK_PP_IF(p(92, s), m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
+# define MSGPACK_PP_FOR_92_I(s, p, o, m) MSGPACK_PP_IF(p(93, s), m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
+# define MSGPACK_PP_FOR_93_I(s, p, o, m) MSGPACK_PP_IF(p(94, s), m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
+# define MSGPACK_PP_FOR_94_I(s, p, o, m) MSGPACK_PP_IF(p(95, s), m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
+# define MSGPACK_PP_FOR_95_I(s, p, o, m) MSGPACK_PP_IF(p(96, s), m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
+# define MSGPACK_PP_FOR_96_I(s, p, o, m) MSGPACK_PP_IF(p(97, s), m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
+# define MSGPACK_PP_FOR_97_I(s, p, o, m) MSGPACK_PP_IF(p(98, s), m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
+# define MSGPACK_PP_FOR_98_I(s, p, o, m) MSGPACK_PP_IF(p(99, s), m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
+# define MSGPACK_PP_FOR_99_I(s, p, o, m) MSGPACK_PP_IF(p(100, s), m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
+# define MSGPACK_PP_FOR_100_I(s, p, o, m) MSGPACK_PP_IF(p(101, s), m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
+# define MSGPACK_PP_FOR_101_I(s, p, o, m) MSGPACK_PP_IF(p(102, s), m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
+# define MSGPACK_PP_FOR_102_I(s, p, o, m) MSGPACK_PP_IF(p(103, s), m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
+# define MSGPACK_PP_FOR_103_I(s, p, o, m) MSGPACK_PP_IF(p(104, s), m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
+# define MSGPACK_PP_FOR_104_I(s, p, o, m) MSGPACK_PP_IF(p(105, s), m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
+# define MSGPACK_PP_FOR_105_I(s, p, o, m) MSGPACK_PP_IF(p(106, s), m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
+# define MSGPACK_PP_FOR_106_I(s, p, o, m) MSGPACK_PP_IF(p(107, s), m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
+# define MSGPACK_PP_FOR_107_I(s, p, o, m) MSGPACK_PP_IF(p(108, s), m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
+# define MSGPACK_PP_FOR_108_I(s, p, o, m) MSGPACK_PP_IF(p(109, s), m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
+# define MSGPACK_PP_FOR_109_I(s, p, o, m) MSGPACK_PP_IF(p(110, s), m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
+# define MSGPACK_PP_FOR_110_I(s, p, o, m) MSGPACK_PP_IF(p(111, s), m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
+# define MSGPACK_PP_FOR_111_I(s, p, o, m) MSGPACK_PP_IF(p(112, s), m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
+# define MSGPACK_PP_FOR_112_I(s, p, o, m) MSGPACK_PP_IF(p(113, s), m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
+# define MSGPACK_PP_FOR_113_I(s, p, o, m) MSGPACK_PP_IF(p(114, s), m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
+# define MSGPACK_PP_FOR_114_I(s, p, o, m) MSGPACK_PP_IF(p(115, s), m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
+# define MSGPACK_PP_FOR_115_I(s, p, o, m) MSGPACK_PP_IF(p(116, s), m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
+# define MSGPACK_PP_FOR_116_I(s, p, o, m) MSGPACK_PP_IF(p(117, s), m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
+# define MSGPACK_PP_FOR_117_I(s, p, o, m) MSGPACK_PP_IF(p(118, s), m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
+# define MSGPACK_PP_FOR_118_I(s, p, o, m) MSGPACK_PP_IF(p(119, s), m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
+# define MSGPACK_PP_FOR_119_I(s, p, o, m) MSGPACK_PP_IF(p(120, s), m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
+# define MSGPACK_PP_FOR_120_I(s, p, o, m) MSGPACK_PP_IF(p(121, s), m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
+# define MSGPACK_PP_FOR_121_I(s, p, o, m) MSGPACK_PP_IF(p(122, s), m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
+# define MSGPACK_PP_FOR_122_I(s, p, o, m) MSGPACK_PP_IF(p(123, s), m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
+# define MSGPACK_PP_FOR_123_I(s, p, o, m) MSGPACK_PP_IF(p(124, s), m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
+# define MSGPACK_PP_FOR_124_I(s, p, o, m) MSGPACK_PP_IF(p(125, s), m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
+# define MSGPACK_PP_FOR_125_I(s, p, o, m) MSGPACK_PP_IF(p(126, s), m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
+# define MSGPACK_PP_FOR_126_I(s, p, o, m) MSGPACK_PP_IF(p(127, s), m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
+# define MSGPACK_PP_FOR_127_I(s, p, o, m) MSGPACK_PP_IF(p(128, s), m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
+# define MSGPACK_PP_FOR_128_I(s, p, o, m) MSGPACK_PP_IF(p(129, s), m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
+# define MSGPACK_PP_FOR_129_I(s, p, o, m) MSGPACK_PP_IF(p(130, s), m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
+# define MSGPACK_PP_FOR_130_I(s, p, o, m) MSGPACK_PP_IF(p(131, s), m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
+# define MSGPACK_PP_FOR_131_I(s, p, o, m) MSGPACK_PP_IF(p(132, s), m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
+# define MSGPACK_PP_FOR_132_I(s, p, o, m) MSGPACK_PP_IF(p(133, s), m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
+# define MSGPACK_PP_FOR_133_I(s, p, o, m) MSGPACK_PP_IF(p(134, s), m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
+# define MSGPACK_PP_FOR_134_I(s, p, o, m) MSGPACK_PP_IF(p(135, s), m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
+# define MSGPACK_PP_FOR_135_I(s, p, o, m) MSGPACK_PP_IF(p(136, s), m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
+# define MSGPACK_PP_FOR_136_I(s, p, o, m) MSGPACK_PP_IF(p(137, s), m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
+# define MSGPACK_PP_FOR_137_I(s, p, o, m) MSGPACK_PP_IF(p(138, s), m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
+# define MSGPACK_PP_FOR_138_I(s, p, o, m) MSGPACK_PP_IF(p(139, s), m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
+# define MSGPACK_PP_FOR_139_I(s, p, o, m) MSGPACK_PP_IF(p(140, s), m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
+# define MSGPACK_PP_FOR_140_I(s, p, o, m) MSGPACK_PP_IF(p(141, s), m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
+# define MSGPACK_PP_FOR_141_I(s, p, o, m) MSGPACK_PP_IF(p(142, s), m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
+# define MSGPACK_PP_FOR_142_I(s, p, o, m) MSGPACK_PP_IF(p(143, s), m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
+# define MSGPACK_PP_FOR_143_I(s, p, o, m) MSGPACK_PP_IF(p(144, s), m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
+# define MSGPACK_PP_FOR_144_I(s, p, o, m) MSGPACK_PP_IF(p(145, s), m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
+# define MSGPACK_PP_FOR_145_I(s, p, o, m) MSGPACK_PP_IF(p(146, s), m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
+# define MSGPACK_PP_FOR_146_I(s, p, o, m) MSGPACK_PP_IF(p(147, s), m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
+# define MSGPACK_PP_FOR_147_I(s, p, o, m) MSGPACK_PP_IF(p(148, s), m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
+# define MSGPACK_PP_FOR_148_I(s, p, o, m) MSGPACK_PP_IF(p(149, s), m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
+# define MSGPACK_PP_FOR_149_I(s, p, o, m) MSGPACK_PP_IF(p(150, s), m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
+# define MSGPACK_PP_FOR_150_I(s, p, o, m) MSGPACK_PP_IF(p(151, s), m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
+# define MSGPACK_PP_FOR_151_I(s, p, o, m) MSGPACK_PP_IF(p(152, s), m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
+# define MSGPACK_PP_FOR_152_I(s, p, o, m) MSGPACK_PP_IF(p(153, s), m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
+# define MSGPACK_PP_FOR_153_I(s, p, o, m) MSGPACK_PP_IF(p(154, s), m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
+# define MSGPACK_PP_FOR_154_I(s, p, o, m) MSGPACK_PP_IF(p(155, s), m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
+# define MSGPACK_PP_FOR_155_I(s, p, o, m) MSGPACK_PP_IF(p(156, s), m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
+# define MSGPACK_PP_FOR_156_I(s, p, o, m) MSGPACK_PP_IF(p(157, s), m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
+# define MSGPACK_PP_FOR_157_I(s, p, o, m) MSGPACK_PP_IF(p(158, s), m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
+# define MSGPACK_PP_FOR_158_I(s, p, o, m) MSGPACK_PP_IF(p(159, s), m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
+# define MSGPACK_PP_FOR_159_I(s, p, o, m) MSGPACK_PP_IF(p(160, s), m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
+# define MSGPACK_PP_FOR_160_I(s, p, o, m) MSGPACK_PP_IF(p(161, s), m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
+# define MSGPACK_PP_FOR_161_I(s, p, o, m) MSGPACK_PP_IF(p(162, s), m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
+# define MSGPACK_PP_FOR_162_I(s, p, o, m) MSGPACK_PP_IF(p(163, s), m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
+# define MSGPACK_PP_FOR_163_I(s, p, o, m) MSGPACK_PP_IF(p(164, s), m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
+# define MSGPACK_PP_FOR_164_I(s, p, o, m) MSGPACK_PP_IF(p(165, s), m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
+# define MSGPACK_PP_FOR_165_I(s, p, o, m) MSGPACK_PP_IF(p(166, s), m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
+# define MSGPACK_PP_FOR_166_I(s, p, o, m) MSGPACK_PP_IF(p(167, s), m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
+# define MSGPACK_PP_FOR_167_I(s, p, o, m) MSGPACK_PP_IF(p(168, s), m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
+# define MSGPACK_PP_FOR_168_I(s, p, o, m) MSGPACK_PP_IF(p(169, s), m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
+# define MSGPACK_PP_FOR_169_I(s, p, o, m) MSGPACK_PP_IF(p(170, s), m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
+# define MSGPACK_PP_FOR_170_I(s, p, o, m) MSGPACK_PP_IF(p(171, s), m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
+# define MSGPACK_PP_FOR_171_I(s, p, o, m) MSGPACK_PP_IF(p(172, s), m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
+# define MSGPACK_PP_FOR_172_I(s, p, o, m) MSGPACK_PP_IF(p(173, s), m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
+# define MSGPACK_PP_FOR_173_I(s, p, o, m) MSGPACK_PP_IF(p(174, s), m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
+# define MSGPACK_PP_FOR_174_I(s, p, o, m) MSGPACK_PP_IF(p(175, s), m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
+# define MSGPACK_PP_FOR_175_I(s, p, o, m) MSGPACK_PP_IF(p(176, s), m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
+# define MSGPACK_PP_FOR_176_I(s, p, o, m) MSGPACK_PP_IF(p(177, s), m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
+# define MSGPACK_PP_FOR_177_I(s, p, o, m) MSGPACK_PP_IF(p(178, s), m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
+# define MSGPACK_PP_FOR_178_I(s, p, o, m) MSGPACK_PP_IF(p(179, s), m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
+# define MSGPACK_PP_FOR_179_I(s, p, o, m) MSGPACK_PP_IF(p(180, s), m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
+# define MSGPACK_PP_FOR_180_I(s, p, o, m) MSGPACK_PP_IF(p(181, s), m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
+# define MSGPACK_PP_FOR_181_I(s, p, o, m) MSGPACK_PP_IF(p(182, s), m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
+# define MSGPACK_PP_FOR_182_I(s, p, o, m) MSGPACK_PP_IF(p(183, s), m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
+# define MSGPACK_PP_FOR_183_I(s, p, o, m) MSGPACK_PP_IF(p(184, s), m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
+# define MSGPACK_PP_FOR_184_I(s, p, o, m) MSGPACK_PP_IF(p(185, s), m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
+# define MSGPACK_PP_FOR_185_I(s, p, o, m) MSGPACK_PP_IF(p(186, s), m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
+# define MSGPACK_PP_FOR_186_I(s, p, o, m) MSGPACK_PP_IF(p(187, s), m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
+# define MSGPACK_PP_FOR_187_I(s, p, o, m) MSGPACK_PP_IF(p(188, s), m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
+# define MSGPACK_PP_FOR_188_I(s, p, o, m) MSGPACK_PP_IF(p(189, s), m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
+# define MSGPACK_PP_FOR_189_I(s, p, o, m) MSGPACK_PP_IF(p(190, s), m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
+# define MSGPACK_PP_FOR_190_I(s, p, o, m) MSGPACK_PP_IF(p(191, s), m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
+# define MSGPACK_PP_FOR_191_I(s, p, o, m) MSGPACK_PP_IF(p(192, s), m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
+# define MSGPACK_PP_FOR_192_I(s, p, o, m) MSGPACK_PP_IF(p(193, s), m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
+# define MSGPACK_PP_FOR_193_I(s, p, o, m) MSGPACK_PP_IF(p(194, s), m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
+# define MSGPACK_PP_FOR_194_I(s, p, o, m) MSGPACK_PP_IF(p(195, s), m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
+# define MSGPACK_PP_FOR_195_I(s, p, o, m) MSGPACK_PP_IF(p(196, s), m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
+# define MSGPACK_PP_FOR_196_I(s, p, o, m) MSGPACK_PP_IF(p(197, s), m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
+# define MSGPACK_PP_FOR_197_I(s, p, o, m) MSGPACK_PP_IF(p(198, s), m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
+# define MSGPACK_PP_FOR_198_I(s, p, o, m) MSGPACK_PP_IF(p(199, s), m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
+# define MSGPACK_PP_FOR_199_I(s, p, o, m) MSGPACK_PP_IF(p(200, s), m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
+# define MSGPACK_PP_FOR_200_I(s, p, o, m) MSGPACK_PP_IF(p(201, s), m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
+# define MSGPACK_PP_FOR_201_I(s, p, o, m) MSGPACK_PP_IF(p(202, s), m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
+# define MSGPACK_PP_FOR_202_I(s, p, o, m) MSGPACK_PP_IF(p(203, s), m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
+# define MSGPACK_PP_FOR_203_I(s, p, o, m) MSGPACK_PP_IF(p(204, s), m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
+# define MSGPACK_PP_FOR_204_I(s, p, o, m) MSGPACK_PP_IF(p(205, s), m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
+# define MSGPACK_PP_FOR_205_I(s, p, o, m) MSGPACK_PP_IF(p(206, s), m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
+# define MSGPACK_PP_FOR_206_I(s, p, o, m) MSGPACK_PP_IF(p(207, s), m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
+# define MSGPACK_PP_FOR_207_I(s, p, o, m) MSGPACK_PP_IF(p(208, s), m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
+# define MSGPACK_PP_FOR_208_I(s, p, o, m) MSGPACK_PP_IF(p(209, s), m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
+# define MSGPACK_PP_FOR_209_I(s, p, o, m) MSGPACK_PP_IF(p(210, s), m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
+# define MSGPACK_PP_FOR_210_I(s, p, o, m) MSGPACK_PP_IF(p(211, s), m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
+# define MSGPACK_PP_FOR_211_I(s, p, o, m) MSGPACK_PP_IF(p(212, s), m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
+# define MSGPACK_PP_FOR_212_I(s, p, o, m) MSGPACK_PP_IF(p(213, s), m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
+# define MSGPACK_PP_FOR_213_I(s, p, o, m) MSGPACK_PP_IF(p(214, s), m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
+# define MSGPACK_PP_FOR_214_I(s, p, o, m) MSGPACK_PP_IF(p(215, s), m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
+# define MSGPACK_PP_FOR_215_I(s, p, o, m) MSGPACK_PP_IF(p(216, s), m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
+# define MSGPACK_PP_FOR_216_I(s, p, o, m) MSGPACK_PP_IF(p(217, s), m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
+# define MSGPACK_PP_FOR_217_I(s, p, o, m) MSGPACK_PP_IF(p(218, s), m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
+# define MSGPACK_PP_FOR_218_I(s, p, o, m) MSGPACK_PP_IF(p(219, s), m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
+# define MSGPACK_PP_FOR_219_I(s, p, o, m) MSGPACK_PP_IF(p(220, s), m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
+# define MSGPACK_PP_FOR_220_I(s, p, o, m) MSGPACK_PP_IF(p(221, s), m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
+# define MSGPACK_PP_FOR_221_I(s, p, o, m) MSGPACK_PP_IF(p(222, s), m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
+# define MSGPACK_PP_FOR_222_I(s, p, o, m) MSGPACK_PP_IF(p(223, s), m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
+# define MSGPACK_PP_FOR_223_I(s, p, o, m) MSGPACK_PP_IF(p(224, s), m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
+# define MSGPACK_PP_FOR_224_I(s, p, o, m) MSGPACK_PP_IF(p(225, s), m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
+# define MSGPACK_PP_FOR_225_I(s, p, o, m) MSGPACK_PP_IF(p(226, s), m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
+# define MSGPACK_PP_FOR_226_I(s, p, o, m) MSGPACK_PP_IF(p(227, s), m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
+# define MSGPACK_PP_FOR_227_I(s, p, o, m) MSGPACK_PP_IF(p(228, s), m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
+# define MSGPACK_PP_FOR_228_I(s, p, o, m) MSGPACK_PP_IF(p(229, s), m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
+# define MSGPACK_PP_FOR_229_I(s, p, o, m) MSGPACK_PP_IF(p(230, s), m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
+# define MSGPACK_PP_FOR_230_I(s, p, o, m) MSGPACK_PP_IF(p(231, s), m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
+# define MSGPACK_PP_FOR_231_I(s, p, o, m) MSGPACK_PP_IF(p(232, s), m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
+# define MSGPACK_PP_FOR_232_I(s, p, o, m) MSGPACK_PP_IF(p(233, s), m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
+# define MSGPACK_PP_FOR_233_I(s, p, o, m) MSGPACK_PP_IF(p(234, s), m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
+# define MSGPACK_PP_FOR_234_I(s, p, o, m) MSGPACK_PP_IF(p(235, s), m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
+# define MSGPACK_PP_FOR_235_I(s, p, o, m) MSGPACK_PP_IF(p(236, s), m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
+# define MSGPACK_PP_FOR_236_I(s, p, o, m) MSGPACK_PP_IF(p(237, s), m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
+# define MSGPACK_PP_FOR_237_I(s, p, o, m) MSGPACK_PP_IF(p(238, s), m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
+# define MSGPACK_PP_FOR_238_I(s, p, o, m) MSGPACK_PP_IF(p(239, s), m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
+# define MSGPACK_PP_FOR_239_I(s, p, o, m) MSGPACK_PP_IF(p(240, s), m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
+# define MSGPACK_PP_FOR_240_I(s, p, o, m) MSGPACK_PP_IF(p(241, s), m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
+# define MSGPACK_PP_FOR_241_I(s, p, o, m) MSGPACK_PP_IF(p(242, s), m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
+# define MSGPACK_PP_FOR_242_I(s, p, o, m) MSGPACK_PP_IF(p(243, s), m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
+# define MSGPACK_PP_FOR_243_I(s, p, o, m) MSGPACK_PP_IF(p(244, s), m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
+# define MSGPACK_PP_FOR_244_I(s, p, o, m) MSGPACK_PP_IF(p(245, s), m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
+# define MSGPACK_PP_FOR_245_I(s, p, o, m) MSGPACK_PP_IF(p(246, s), m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
+# define MSGPACK_PP_FOR_246_I(s, p, o, m) MSGPACK_PP_IF(p(247, s), m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
+# define MSGPACK_PP_FOR_247_I(s, p, o, m) MSGPACK_PP_IF(p(248, s), m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
+# define MSGPACK_PP_FOR_248_I(s, p, o, m) MSGPACK_PP_IF(p(249, s), m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
+# define MSGPACK_PP_FOR_249_I(s, p, o, m) MSGPACK_PP_IF(p(250, s), m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
+# define MSGPACK_PP_FOR_250_I(s, p, o, m) MSGPACK_PP_IF(p(251, s), m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
+# define MSGPACK_PP_FOR_251_I(s, p, o, m) MSGPACK_PP_IF(p(252, s), m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
+# define MSGPACK_PP_FOR_252_I(s, p, o, m) MSGPACK_PP_IF(p(253, s), m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
+# define MSGPACK_PP_FOR_253_I(s, p, o, m) MSGPACK_PP_IF(p(254, s), m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
+# define MSGPACK_PP_FOR_254_I(s, p, o, m) MSGPACK_PP_IF(p(255, s), m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
+# define MSGPACK_PP_FOR_255_I(s, p, o, m) MSGPACK_PP_IF(p(256, s), m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
+# define MSGPACK_PP_FOR_256_I(s, p, o, m) MSGPACK_PP_IF(p(257, s), m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/for.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/for.hpp
new file mode 100644
index 000000000..57ec6c1f3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/for.hpp
@@ -0,0 +1,536 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
+#
+# include <rpc/msgpack/preprocessor/control/expr_iif.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/logical/bool.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_FOR_1_C(MSGPACK_PP_BOOL(p(2, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_FOR_2_C(MSGPACK_PP_BOOL(p(3, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_FOR_3_C(MSGPACK_PP_BOOL(p(4, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_FOR_4_C(MSGPACK_PP_BOOL(p(5, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_FOR_5_C(MSGPACK_PP_BOOL(p(6, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_FOR_6_C(MSGPACK_PP_BOOL(p(7, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_FOR_7_C(MSGPACK_PP_BOOL(p(8, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_FOR_8_C(MSGPACK_PP_BOOL(p(9, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_FOR_9_C(MSGPACK_PP_BOOL(p(10, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_FOR_10_C(MSGPACK_PP_BOOL(p(11, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_FOR_11_C(MSGPACK_PP_BOOL(p(12, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_FOR_12_C(MSGPACK_PP_BOOL(p(13, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_FOR_13_C(MSGPACK_PP_BOOL(p(14, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_FOR_14_C(MSGPACK_PP_BOOL(p(15, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_FOR_15_C(MSGPACK_PP_BOOL(p(16, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_FOR_16_C(MSGPACK_PP_BOOL(p(17, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_FOR_17_C(MSGPACK_PP_BOOL(p(18, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_FOR_18_C(MSGPACK_PP_BOOL(p(19, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_FOR_19_C(MSGPACK_PP_BOOL(p(20, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_FOR_20_C(MSGPACK_PP_BOOL(p(21, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_FOR_21_C(MSGPACK_PP_BOOL(p(22, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_FOR_22_C(MSGPACK_PP_BOOL(p(23, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_FOR_23_C(MSGPACK_PP_BOOL(p(24, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_FOR_24_C(MSGPACK_PP_BOOL(p(25, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_FOR_25_C(MSGPACK_PP_BOOL(p(26, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_FOR_26_C(MSGPACK_PP_BOOL(p(27, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_FOR_27_C(MSGPACK_PP_BOOL(p(28, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_FOR_28_C(MSGPACK_PP_BOOL(p(29, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_FOR_29_C(MSGPACK_PP_BOOL(p(30, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_FOR_30_C(MSGPACK_PP_BOOL(p(31, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_FOR_31_C(MSGPACK_PP_BOOL(p(32, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_FOR_32_C(MSGPACK_PP_BOOL(p(33, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_FOR_33_C(MSGPACK_PP_BOOL(p(34, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_FOR_34_C(MSGPACK_PP_BOOL(p(35, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_FOR_35_C(MSGPACK_PP_BOOL(p(36, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_FOR_36_C(MSGPACK_PP_BOOL(p(37, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_FOR_37_C(MSGPACK_PP_BOOL(p(38, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_FOR_38_C(MSGPACK_PP_BOOL(p(39, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_FOR_39_C(MSGPACK_PP_BOOL(p(40, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_FOR_40_C(MSGPACK_PP_BOOL(p(41, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_FOR_41_C(MSGPACK_PP_BOOL(p(42, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_FOR_42_C(MSGPACK_PP_BOOL(p(43, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_FOR_43_C(MSGPACK_PP_BOOL(p(44, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_FOR_44_C(MSGPACK_PP_BOOL(p(45, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_FOR_45_C(MSGPACK_PP_BOOL(p(46, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_FOR_46_C(MSGPACK_PP_BOOL(p(47, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_FOR_47_C(MSGPACK_PP_BOOL(p(48, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_FOR_48_C(MSGPACK_PP_BOOL(p(49, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_FOR_49_C(MSGPACK_PP_BOOL(p(50, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_FOR_50_C(MSGPACK_PP_BOOL(p(51, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_FOR_51_C(MSGPACK_PP_BOOL(p(52, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_FOR_52_C(MSGPACK_PP_BOOL(p(53, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_FOR_53_C(MSGPACK_PP_BOOL(p(54, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_FOR_54_C(MSGPACK_PP_BOOL(p(55, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_FOR_55_C(MSGPACK_PP_BOOL(p(56, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_FOR_56_C(MSGPACK_PP_BOOL(p(57, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_FOR_57_C(MSGPACK_PP_BOOL(p(58, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_FOR_58_C(MSGPACK_PP_BOOL(p(59, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_FOR_59_C(MSGPACK_PP_BOOL(p(60, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_FOR_60_C(MSGPACK_PP_BOOL(p(61, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_FOR_61_C(MSGPACK_PP_BOOL(p(62, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_FOR_62_C(MSGPACK_PP_BOOL(p(63, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_FOR_63_C(MSGPACK_PP_BOOL(p(64, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_FOR_64_C(MSGPACK_PP_BOOL(p(65, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_FOR_65_C(MSGPACK_PP_BOOL(p(66, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_FOR_66_C(MSGPACK_PP_BOOL(p(67, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_FOR_67_C(MSGPACK_PP_BOOL(p(68, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_FOR_68_C(MSGPACK_PP_BOOL(p(69, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_FOR_69_C(MSGPACK_PP_BOOL(p(70, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_FOR_70_C(MSGPACK_PP_BOOL(p(71, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_FOR_71_C(MSGPACK_PP_BOOL(p(72, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_FOR_72_C(MSGPACK_PP_BOOL(p(73, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_FOR_73_C(MSGPACK_PP_BOOL(p(74, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_FOR_74_C(MSGPACK_PP_BOOL(p(75, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_FOR_75_C(MSGPACK_PP_BOOL(p(76, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_FOR_76_C(MSGPACK_PP_BOOL(p(77, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_FOR_77_C(MSGPACK_PP_BOOL(p(78, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_FOR_78_C(MSGPACK_PP_BOOL(p(79, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_FOR_79_C(MSGPACK_PP_BOOL(p(80, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_FOR_80_C(MSGPACK_PP_BOOL(p(81, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_FOR_81_C(MSGPACK_PP_BOOL(p(82, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_FOR_82_C(MSGPACK_PP_BOOL(p(83, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_FOR_83_C(MSGPACK_PP_BOOL(p(84, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_FOR_84_C(MSGPACK_PP_BOOL(p(85, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_FOR_85_C(MSGPACK_PP_BOOL(p(86, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_FOR_86_C(MSGPACK_PP_BOOL(p(87, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_FOR_87_C(MSGPACK_PP_BOOL(p(88, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_FOR_88_C(MSGPACK_PP_BOOL(p(89, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_FOR_89_C(MSGPACK_PP_BOOL(p(90, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_FOR_90_C(MSGPACK_PP_BOOL(p(91, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_FOR_91_C(MSGPACK_PP_BOOL(p(92, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_FOR_92_C(MSGPACK_PP_BOOL(p(93, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_FOR_93_C(MSGPACK_PP_BOOL(p(94, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_FOR_94_C(MSGPACK_PP_BOOL(p(95, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_FOR_95_C(MSGPACK_PP_BOOL(p(96, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_FOR_96_C(MSGPACK_PP_BOOL(p(97, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_FOR_97_C(MSGPACK_PP_BOOL(p(98, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_FOR_98_C(MSGPACK_PP_BOOL(p(99, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_FOR_99_C(MSGPACK_PP_BOOL(p(100, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_FOR_100_C(MSGPACK_PP_BOOL(p(101, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_FOR_101_C(MSGPACK_PP_BOOL(p(102, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_FOR_102_C(MSGPACK_PP_BOOL(p(103, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_FOR_103_C(MSGPACK_PP_BOOL(p(104, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_FOR_104_C(MSGPACK_PP_BOOL(p(105, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_FOR_105_C(MSGPACK_PP_BOOL(p(106, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_FOR_106_C(MSGPACK_PP_BOOL(p(107, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_FOR_107_C(MSGPACK_PP_BOOL(p(108, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_FOR_108_C(MSGPACK_PP_BOOL(p(109, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_FOR_109_C(MSGPACK_PP_BOOL(p(110, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_FOR_110_C(MSGPACK_PP_BOOL(p(111, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_FOR_111_C(MSGPACK_PP_BOOL(p(112, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_FOR_112_C(MSGPACK_PP_BOOL(p(113, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_FOR_113_C(MSGPACK_PP_BOOL(p(114, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_FOR_114_C(MSGPACK_PP_BOOL(p(115, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_FOR_115_C(MSGPACK_PP_BOOL(p(116, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_FOR_116_C(MSGPACK_PP_BOOL(p(117, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_FOR_117_C(MSGPACK_PP_BOOL(p(118, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_FOR_118_C(MSGPACK_PP_BOOL(p(119, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_FOR_119_C(MSGPACK_PP_BOOL(p(120, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_FOR_120_C(MSGPACK_PP_BOOL(p(121, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_FOR_121_C(MSGPACK_PP_BOOL(p(122, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_FOR_122_C(MSGPACK_PP_BOOL(p(123, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_FOR_123_C(MSGPACK_PP_BOOL(p(124, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_FOR_124_C(MSGPACK_PP_BOOL(p(125, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_FOR_125_C(MSGPACK_PP_BOOL(p(126, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_FOR_126_C(MSGPACK_PP_BOOL(p(127, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_FOR_127_C(MSGPACK_PP_BOOL(p(128, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_FOR_128_C(MSGPACK_PP_BOOL(p(129, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_FOR_129_C(MSGPACK_PP_BOOL(p(130, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_FOR_130_C(MSGPACK_PP_BOOL(p(131, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_FOR_131_C(MSGPACK_PP_BOOL(p(132, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_FOR_132_C(MSGPACK_PP_BOOL(p(133, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_FOR_133_C(MSGPACK_PP_BOOL(p(134, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_FOR_134_C(MSGPACK_PP_BOOL(p(135, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_FOR_135_C(MSGPACK_PP_BOOL(p(136, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_FOR_136_C(MSGPACK_PP_BOOL(p(137, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_FOR_137_C(MSGPACK_PP_BOOL(p(138, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_FOR_138_C(MSGPACK_PP_BOOL(p(139, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_FOR_139_C(MSGPACK_PP_BOOL(p(140, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_FOR_140_C(MSGPACK_PP_BOOL(p(141, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_FOR_141_C(MSGPACK_PP_BOOL(p(142, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_FOR_142_C(MSGPACK_PP_BOOL(p(143, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_FOR_143_C(MSGPACK_PP_BOOL(p(144, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_FOR_144_C(MSGPACK_PP_BOOL(p(145, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_FOR_145_C(MSGPACK_PP_BOOL(p(146, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_FOR_146_C(MSGPACK_PP_BOOL(p(147, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_FOR_147_C(MSGPACK_PP_BOOL(p(148, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_FOR_148_C(MSGPACK_PP_BOOL(p(149, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_FOR_149_C(MSGPACK_PP_BOOL(p(150, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_FOR_150_C(MSGPACK_PP_BOOL(p(151, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_FOR_151_C(MSGPACK_PP_BOOL(p(152, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_FOR_152_C(MSGPACK_PP_BOOL(p(153, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_FOR_153_C(MSGPACK_PP_BOOL(p(154, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_FOR_154_C(MSGPACK_PP_BOOL(p(155, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_FOR_155_C(MSGPACK_PP_BOOL(p(156, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_FOR_156_C(MSGPACK_PP_BOOL(p(157, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_FOR_157_C(MSGPACK_PP_BOOL(p(158, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_FOR_158_C(MSGPACK_PP_BOOL(p(159, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_FOR_159_C(MSGPACK_PP_BOOL(p(160, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_FOR_160_C(MSGPACK_PP_BOOL(p(161, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_FOR_161_C(MSGPACK_PP_BOOL(p(162, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_FOR_162_C(MSGPACK_PP_BOOL(p(163, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_FOR_163_C(MSGPACK_PP_BOOL(p(164, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_FOR_164_C(MSGPACK_PP_BOOL(p(165, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_FOR_165_C(MSGPACK_PP_BOOL(p(166, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_FOR_166_C(MSGPACK_PP_BOOL(p(167, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_FOR_167_C(MSGPACK_PP_BOOL(p(168, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_FOR_168_C(MSGPACK_PP_BOOL(p(169, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_FOR_169_C(MSGPACK_PP_BOOL(p(170, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_FOR_170_C(MSGPACK_PP_BOOL(p(171, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_FOR_171_C(MSGPACK_PP_BOOL(p(172, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_FOR_172_C(MSGPACK_PP_BOOL(p(173, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_FOR_173_C(MSGPACK_PP_BOOL(p(174, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_FOR_174_C(MSGPACK_PP_BOOL(p(175, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_FOR_175_C(MSGPACK_PP_BOOL(p(176, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_FOR_176_C(MSGPACK_PP_BOOL(p(177, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_FOR_177_C(MSGPACK_PP_BOOL(p(178, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_FOR_178_C(MSGPACK_PP_BOOL(p(179, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_FOR_179_C(MSGPACK_PP_BOOL(p(180, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_FOR_180_C(MSGPACK_PP_BOOL(p(181, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_FOR_181_C(MSGPACK_PP_BOOL(p(182, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_FOR_182_C(MSGPACK_PP_BOOL(p(183, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_FOR_183_C(MSGPACK_PP_BOOL(p(184, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_FOR_184_C(MSGPACK_PP_BOOL(p(185, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_FOR_185_C(MSGPACK_PP_BOOL(p(186, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_FOR_186_C(MSGPACK_PP_BOOL(p(187, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_FOR_187_C(MSGPACK_PP_BOOL(p(188, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_FOR_188_C(MSGPACK_PP_BOOL(p(189, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_FOR_189_C(MSGPACK_PP_BOOL(p(190, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_FOR_190_C(MSGPACK_PP_BOOL(p(191, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_FOR_191_C(MSGPACK_PP_BOOL(p(192, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_FOR_192_C(MSGPACK_PP_BOOL(p(193, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_FOR_193_C(MSGPACK_PP_BOOL(p(194, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_FOR_194_C(MSGPACK_PP_BOOL(p(195, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_FOR_195_C(MSGPACK_PP_BOOL(p(196, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_FOR_196_C(MSGPACK_PP_BOOL(p(197, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_FOR_197_C(MSGPACK_PP_BOOL(p(198, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_FOR_198_C(MSGPACK_PP_BOOL(p(199, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_FOR_199_C(MSGPACK_PP_BOOL(p(200, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_FOR_200_C(MSGPACK_PP_BOOL(p(201, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_FOR_201_C(MSGPACK_PP_BOOL(p(202, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_FOR_202_C(MSGPACK_PP_BOOL(p(203, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_FOR_203_C(MSGPACK_PP_BOOL(p(204, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_FOR_204_C(MSGPACK_PP_BOOL(p(205, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_FOR_205_C(MSGPACK_PP_BOOL(p(206, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_FOR_206_C(MSGPACK_PP_BOOL(p(207, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_FOR_207_C(MSGPACK_PP_BOOL(p(208, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_FOR_208_C(MSGPACK_PP_BOOL(p(209, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_FOR_209_C(MSGPACK_PP_BOOL(p(210, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_FOR_210_C(MSGPACK_PP_BOOL(p(211, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_FOR_211_C(MSGPACK_PP_BOOL(p(212, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_FOR_212_C(MSGPACK_PP_BOOL(p(213, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_FOR_213_C(MSGPACK_PP_BOOL(p(214, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_FOR_214_C(MSGPACK_PP_BOOL(p(215, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_FOR_215_C(MSGPACK_PP_BOOL(p(216, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_FOR_216_C(MSGPACK_PP_BOOL(p(217, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_FOR_217_C(MSGPACK_PP_BOOL(p(218, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_FOR_218_C(MSGPACK_PP_BOOL(p(219, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_FOR_219_C(MSGPACK_PP_BOOL(p(220, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_FOR_220_C(MSGPACK_PP_BOOL(p(221, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_FOR_221_C(MSGPACK_PP_BOOL(p(222, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_FOR_222_C(MSGPACK_PP_BOOL(p(223, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_FOR_223_C(MSGPACK_PP_BOOL(p(224, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_FOR_224_C(MSGPACK_PP_BOOL(p(225, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_FOR_225_C(MSGPACK_PP_BOOL(p(226, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_FOR_226_C(MSGPACK_PP_BOOL(p(227, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_FOR_227_C(MSGPACK_PP_BOOL(p(228, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_FOR_228_C(MSGPACK_PP_BOOL(p(229, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_FOR_229_C(MSGPACK_PP_BOOL(p(230, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_FOR_230_C(MSGPACK_PP_BOOL(p(231, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_FOR_231_C(MSGPACK_PP_BOOL(p(232, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_FOR_232_C(MSGPACK_PP_BOOL(p(233, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_FOR_233_C(MSGPACK_PP_BOOL(p(234, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_FOR_234_C(MSGPACK_PP_BOOL(p(235, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_FOR_235_C(MSGPACK_PP_BOOL(p(236, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_FOR_236_C(MSGPACK_PP_BOOL(p(237, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_FOR_237_C(MSGPACK_PP_BOOL(p(238, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_FOR_238_C(MSGPACK_PP_BOOL(p(239, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_FOR_239_C(MSGPACK_PP_BOOL(p(240, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_FOR_240_C(MSGPACK_PP_BOOL(p(241, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_FOR_241_C(MSGPACK_PP_BOOL(p(242, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_FOR_242_C(MSGPACK_PP_BOOL(p(243, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_FOR_243_C(MSGPACK_PP_BOOL(p(244, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_FOR_244_C(MSGPACK_PP_BOOL(p(245, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_FOR_245_C(MSGPACK_PP_BOOL(p(246, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_FOR_246_C(MSGPACK_PP_BOOL(p(247, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_FOR_247_C(MSGPACK_PP_BOOL(p(248, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_FOR_248_C(MSGPACK_PP_BOOL(p(249, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_FOR_249_C(MSGPACK_PP_BOOL(p(250, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_FOR_250_C(MSGPACK_PP_BOOL(p(251, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_FOR_251_C(MSGPACK_PP_BOOL(p(252, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_FOR_252_C(MSGPACK_PP_BOOL(p(253, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_FOR_253_C(MSGPACK_PP_BOOL(p(254, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_FOR_254_C(MSGPACK_PP_BOOL(p(255, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_FOR_255_C(MSGPACK_PP_BOOL(p(256, s)), s, p, o, m)
+# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_FOR_256_C(MSGPACK_PP_BOOL(p(257, s)), s, p, o, m)
+#
+# define MSGPACK_PP_FOR_1_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(2, s), p, o, m)
+# define MSGPACK_PP_FOR_2_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(3, s), p, o, m)
+# define MSGPACK_PP_FOR_3_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(4, s), p, o, m)
+# define MSGPACK_PP_FOR_4_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(5, s), p, o, m)
+# define MSGPACK_PP_FOR_5_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(6, s), p, o, m)
+# define MSGPACK_PP_FOR_6_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(7, s), p, o, m)
+# define MSGPACK_PP_FOR_7_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(8, s), p, o, m)
+# define MSGPACK_PP_FOR_8_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(9, s), p, o, m)
+# define MSGPACK_PP_FOR_9_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(10, s), p, o, m)
+# define MSGPACK_PP_FOR_10_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(11, s), p, o, m)
+# define MSGPACK_PP_FOR_11_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(12, s), p, o, m)
+# define MSGPACK_PP_FOR_12_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(13, s), p, o, m)
+# define MSGPACK_PP_FOR_13_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(14, s), p, o, m)
+# define MSGPACK_PP_FOR_14_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(15, s), p, o, m)
+# define MSGPACK_PP_FOR_15_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(16, s), p, o, m)
+# define MSGPACK_PP_FOR_16_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(17, s), p, o, m)
+# define MSGPACK_PP_FOR_17_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(18, s), p, o, m)
+# define MSGPACK_PP_FOR_18_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(19, s), p, o, m)
+# define MSGPACK_PP_FOR_19_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(20, s), p, o, m)
+# define MSGPACK_PP_FOR_20_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(21, s), p, o, m)
+# define MSGPACK_PP_FOR_21_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(22, s), p, o, m)
+# define MSGPACK_PP_FOR_22_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(23, s), p, o, m)
+# define MSGPACK_PP_FOR_23_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(24, s), p, o, m)
+# define MSGPACK_PP_FOR_24_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(25, s), p, o, m)
+# define MSGPACK_PP_FOR_25_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(26, s), p, o, m)
+# define MSGPACK_PP_FOR_26_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(27, s), p, o, m)
+# define MSGPACK_PP_FOR_27_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(28, s), p, o, m)
+# define MSGPACK_PP_FOR_28_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(29, s), p, o, m)
+# define MSGPACK_PP_FOR_29_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(30, s), p, o, m)
+# define MSGPACK_PP_FOR_30_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(31, s), p, o, m)
+# define MSGPACK_PP_FOR_31_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(32, s), p, o, m)
+# define MSGPACK_PP_FOR_32_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(33, s), p, o, m)
+# define MSGPACK_PP_FOR_33_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(34, s), p, o, m)
+# define MSGPACK_PP_FOR_34_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(35, s), p, o, m)
+# define MSGPACK_PP_FOR_35_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(36, s), p, o, m)
+# define MSGPACK_PP_FOR_36_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(37, s), p, o, m)
+# define MSGPACK_PP_FOR_37_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(38, s), p, o, m)
+# define MSGPACK_PP_FOR_38_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(39, s), p, o, m)
+# define MSGPACK_PP_FOR_39_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(40, s), p, o, m)
+# define MSGPACK_PP_FOR_40_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(41, s), p, o, m)
+# define MSGPACK_PP_FOR_41_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(42, s), p, o, m)
+# define MSGPACK_PP_FOR_42_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(43, s), p, o, m)
+# define MSGPACK_PP_FOR_43_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(44, s), p, o, m)
+# define MSGPACK_PP_FOR_44_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(45, s), p, o, m)
+# define MSGPACK_PP_FOR_45_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(46, s), p, o, m)
+# define MSGPACK_PP_FOR_46_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(47, s), p, o, m)
+# define MSGPACK_PP_FOR_47_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(48, s), p, o, m)
+# define MSGPACK_PP_FOR_48_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(49, s), p, o, m)
+# define MSGPACK_PP_FOR_49_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(50, s), p, o, m)
+# define MSGPACK_PP_FOR_50_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(51, s), p, o, m)
+# define MSGPACK_PP_FOR_51_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(52, s), p, o, m)
+# define MSGPACK_PP_FOR_52_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(53, s), p, o, m)
+# define MSGPACK_PP_FOR_53_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(54, s), p, o, m)
+# define MSGPACK_PP_FOR_54_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(55, s), p, o, m)
+# define MSGPACK_PP_FOR_55_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(56, s), p, o, m)
+# define MSGPACK_PP_FOR_56_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(57, s), p, o, m)
+# define MSGPACK_PP_FOR_57_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(58, s), p, o, m)
+# define MSGPACK_PP_FOR_58_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(59, s), p, o, m)
+# define MSGPACK_PP_FOR_59_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(60, s), p, o, m)
+# define MSGPACK_PP_FOR_60_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(61, s), p, o, m)
+# define MSGPACK_PP_FOR_61_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(62, s), p, o, m)
+# define MSGPACK_PP_FOR_62_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(63, s), p, o, m)
+# define MSGPACK_PP_FOR_63_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(64, s), p, o, m)
+# define MSGPACK_PP_FOR_64_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(65, s), p, o, m)
+# define MSGPACK_PP_FOR_65_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(66, s), p, o, m)
+# define MSGPACK_PP_FOR_66_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(67, s), p, o, m)
+# define MSGPACK_PP_FOR_67_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(68, s), p, o, m)
+# define MSGPACK_PP_FOR_68_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(69, s), p, o, m)
+# define MSGPACK_PP_FOR_69_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(70, s), p, o, m)
+# define MSGPACK_PP_FOR_70_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(71, s), p, o, m)
+# define MSGPACK_PP_FOR_71_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(72, s), p, o, m)
+# define MSGPACK_PP_FOR_72_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(73, s), p, o, m)
+# define MSGPACK_PP_FOR_73_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(74, s), p, o, m)
+# define MSGPACK_PP_FOR_74_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(75, s), p, o, m)
+# define MSGPACK_PP_FOR_75_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(76, s), p, o, m)
+# define MSGPACK_PP_FOR_76_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(77, s), p, o, m)
+# define MSGPACK_PP_FOR_77_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(78, s), p, o, m)
+# define MSGPACK_PP_FOR_78_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(79, s), p, o, m)
+# define MSGPACK_PP_FOR_79_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(80, s), p, o, m)
+# define MSGPACK_PP_FOR_80_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(81, s), p, o, m)
+# define MSGPACK_PP_FOR_81_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(82, s), p, o, m)
+# define MSGPACK_PP_FOR_82_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(83, s), p, o, m)
+# define MSGPACK_PP_FOR_83_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(84, s), p, o, m)
+# define MSGPACK_PP_FOR_84_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(85, s), p, o, m)
+# define MSGPACK_PP_FOR_85_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(86, s), p, o, m)
+# define MSGPACK_PP_FOR_86_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(87, s), p, o, m)
+# define MSGPACK_PP_FOR_87_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(88, s), p, o, m)
+# define MSGPACK_PP_FOR_88_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(89, s), p, o, m)
+# define MSGPACK_PP_FOR_89_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(90, s), p, o, m)
+# define MSGPACK_PP_FOR_90_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(91, s), p, o, m)
+# define MSGPACK_PP_FOR_91_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(92, s), p, o, m)
+# define MSGPACK_PP_FOR_92_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(93, s), p, o, m)
+# define MSGPACK_PP_FOR_93_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(94, s), p, o, m)
+# define MSGPACK_PP_FOR_94_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(95, s), p, o, m)
+# define MSGPACK_PP_FOR_95_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(96, s), p, o, m)
+# define MSGPACK_PP_FOR_96_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(97, s), p, o, m)
+# define MSGPACK_PP_FOR_97_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(98, s), p, o, m)
+# define MSGPACK_PP_FOR_98_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(99, s), p, o, m)
+# define MSGPACK_PP_FOR_99_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(100, s), p, o, m)
+# define MSGPACK_PP_FOR_100_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(101, s), p, o, m)
+# define MSGPACK_PP_FOR_101_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(102, s), p, o, m)
+# define MSGPACK_PP_FOR_102_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(103, s), p, o, m)
+# define MSGPACK_PP_FOR_103_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(104, s), p, o, m)
+# define MSGPACK_PP_FOR_104_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(105, s), p, o, m)
+# define MSGPACK_PP_FOR_105_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(106, s), p, o, m)
+# define MSGPACK_PP_FOR_106_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(107, s), p, o, m)
+# define MSGPACK_PP_FOR_107_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(108, s), p, o, m)
+# define MSGPACK_PP_FOR_108_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(109, s), p, o, m)
+# define MSGPACK_PP_FOR_109_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(110, s), p, o, m)
+# define MSGPACK_PP_FOR_110_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(111, s), p, o, m)
+# define MSGPACK_PP_FOR_111_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(112, s), p, o, m)
+# define MSGPACK_PP_FOR_112_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(113, s), p, o, m)
+# define MSGPACK_PP_FOR_113_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(114, s), p, o, m)
+# define MSGPACK_PP_FOR_114_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(115, s), p, o, m)
+# define MSGPACK_PP_FOR_115_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(116, s), p, o, m)
+# define MSGPACK_PP_FOR_116_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(117, s), p, o, m)
+# define MSGPACK_PP_FOR_117_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(118, s), p, o, m)
+# define MSGPACK_PP_FOR_118_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(119, s), p, o, m)
+# define MSGPACK_PP_FOR_119_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(120, s), p, o, m)
+# define MSGPACK_PP_FOR_120_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(121, s), p, o, m)
+# define MSGPACK_PP_FOR_121_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(122, s), p, o, m)
+# define MSGPACK_PP_FOR_122_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(123, s), p, o, m)
+# define MSGPACK_PP_FOR_123_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(124, s), p, o, m)
+# define MSGPACK_PP_FOR_124_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(125, s), p, o, m)
+# define MSGPACK_PP_FOR_125_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(126, s), p, o, m)
+# define MSGPACK_PP_FOR_126_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(127, s), p, o, m)
+# define MSGPACK_PP_FOR_127_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(128, s), p, o, m)
+# define MSGPACK_PP_FOR_128_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(129, s), p, o, m)
+# define MSGPACK_PP_FOR_129_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(130, s), p, o, m)
+# define MSGPACK_PP_FOR_130_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(131, s), p, o, m)
+# define MSGPACK_PP_FOR_131_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(132, s), p, o, m)
+# define MSGPACK_PP_FOR_132_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(133, s), p, o, m)
+# define MSGPACK_PP_FOR_133_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(134, s), p, o, m)
+# define MSGPACK_PP_FOR_134_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(135, s), p, o, m)
+# define MSGPACK_PP_FOR_135_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(136, s), p, o, m)
+# define MSGPACK_PP_FOR_136_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(137, s), p, o, m)
+# define MSGPACK_PP_FOR_137_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(138, s), p, o, m)
+# define MSGPACK_PP_FOR_138_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(139, s), p, o, m)
+# define MSGPACK_PP_FOR_139_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(140, s), p, o, m)
+# define MSGPACK_PP_FOR_140_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(141, s), p, o, m)
+# define MSGPACK_PP_FOR_141_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(142, s), p, o, m)
+# define MSGPACK_PP_FOR_142_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(143, s), p, o, m)
+# define MSGPACK_PP_FOR_143_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(144, s), p, o, m)
+# define MSGPACK_PP_FOR_144_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(145, s), p, o, m)
+# define MSGPACK_PP_FOR_145_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(146, s), p, o, m)
+# define MSGPACK_PP_FOR_146_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(147, s), p, o, m)
+# define MSGPACK_PP_FOR_147_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(148, s), p, o, m)
+# define MSGPACK_PP_FOR_148_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(149, s), p, o, m)
+# define MSGPACK_PP_FOR_149_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(150, s), p, o, m)
+# define MSGPACK_PP_FOR_150_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(151, s), p, o, m)
+# define MSGPACK_PP_FOR_151_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(152, s), p, o, m)
+# define MSGPACK_PP_FOR_152_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(153, s), p, o, m)
+# define MSGPACK_PP_FOR_153_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(154, s), p, o, m)
+# define MSGPACK_PP_FOR_154_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(155, s), p, o, m)
+# define MSGPACK_PP_FOR_155_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(156, s), p, o, m)
+# define MSGPACK_PP_FOR_156_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(157, s), p, o, m)
+# define MSGPACK_PP_FOR_157_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(158, s), p, o, m)
+# define MSGPACK_PP_FOR_158_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(159, s), p, o, m)
+# define MSGPACK_PP_FOR_159_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(160, s), p, o, m)
+# define MSGPACK_PP_FOR_160_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(161, s), p, o, m)
+# define MSGPACK_PP_FOR_161_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(162, s), p, o, m)
+# define MSGPACK_PP_FOR_162_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(163, s), p, o, m)
+# define MSGPACK_PP_FOR_163_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(164, s), p, o, m)
+# define MSGPACK_PP_FOR_164_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(165, s), p, o, m)
+# define MSGPACK_PP_FOR_165_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(166, s), p, o, m)
+# define MSGPACK_PP_FOR_166_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(167, s), p, o, m)
+# define MSGPACK_PP_FOR_167_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(168, s), p, o, m)
+# define MSGPACK_PP_FOR_168_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(169, s), p, o, m)
+# define MSGPACK_PP_FOR_169_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(170, s), p, o, m)
+# define MSGPACK_PP_FOR_170_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(171, s), p, o, m)
+# define MSGPACK_PP_FOR_171_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(172, s), p, o, m)
+# define MSGPACK_PP_FOR_172_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(173, s), p, o, m)
+# define MSGPACK_PP_FOR_173_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(174, s), p, o, m)
+# define MSGPACK_PP_FOR_174_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(175, s), p, o, m)
+# define MSGPACK_PP_FOR_175_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(176, s), p, o, m)
+# define MSGPACK_PP_FOR_176_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(177, s), p, o, m)
+# define MSGPACK_PP_FOR_177_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(178, s), p, o, m)
+# define MSGPACK_PP_FOR_178_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(179, s), p, o, m)
+# define MSGPACK_PP_FOR_179_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(180, s), p, o, m)
+# define MSGPACK_PP_FOR_180_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(181, s), p, o, m)
+# define MSGPACK_PP_FOR_181_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(182, s), p, o, m)
+# define MSGPACK_PP_FOR_182_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(183, s), p, o, m)
+# define MSGPACK_PP_FOR_183_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(184, s), p, o, m)
+# define MSGPACK_PP_FOR_184_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(185, s), p, o, m)
+# define MSGPACK_PP_FOR_185_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(186, s), p, o, m)
+# define MSGPACK_PP_FOR_186_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(187, s), p, o, m)
+# define MSGPACK_PP_FOR_187_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(188, s), p, o, m)
+# define MSGPACK_PP_FOR_188_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(189, s), p, o, m)
+# define MSGPACK_PP_FOR_189_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(190, s), p, o, m)
+# define MSGPACK_PP_FOR_190_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(191, s), p, o, m)
+# define MSGPACK_PP_FOR_191_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(192, s), p, o, m)
+# define MSGPACK_PP_FOR_192_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(193, s), p, o, m)
+# define MSGPACK_PP_FOR_193_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(194, s), p, o, m)
+# define MSGPACK_PP_FOR_194_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(195, s), p, o, m)
+# define MSGPACK_PP_FOR_195_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(196, s), p, o, m)
+# define MSGPACK_PP_FOR_196_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(197, s), p, o, m)
+# define MSGPACK_PP_FOR_197_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(198, s), p, o, m)
+# define MSGPACK_PP_FOR_198_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(199, s), p, o, m)
+# define MSGPACK_PP_FOR_199_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(200, s), p, o, m)
+# define MSGPACK_PP_FOR_200_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(201, s), p, o, m)
+# define MSGPACK_PP_FOR_201_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(202, s), p, o, m)
+# define MSGPACK_PP_FOR_202_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(203, s), p, o, m)
+# define MSGPACK_PP_FOR_203_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(204, s), p, o, m)
+# define MSGPACK_PP_FOR_204_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(205, s), p, o, m)
+# define MSGPACK_PP_FOR_205_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(206, s), p, o, m)
+# define MSGPACK_PP_FOR_206_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(207, s), p, o, m)
+# define MSGPACK_PP_FOR_207_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(208, s), p, o, m)
+# define MSGPACK_PP_FOR_208_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(209, s), p, o, m)
+# define MSGPACK_PP_FOR_209_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(210, s), p, o, m)
+# define MSGPACK_PP_FOR_210_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(211, s), p, o, m)
+# define MSGPACK_PP_FOR_211_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(212, s), p, o, m)
+# define MSGPACK_PP_FOR_212_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(213, s), p, o, m)
+# define MSGPACK_PP_FOR_213_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(214, s), p, o, m)
+# define MSGPACK_PP_FOR_214_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(215, s), p, o, m)
+# define MSGPACK_PP_FOR_215_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(216, s), p, o, m)
+# define MSGPACK_PP_FOR_216_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(217, s), p, o, m)
+# define MSGPACK_PP_FOR_217_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(218, s), p, o, m)
+# define MSGPACK_PP_FOR_218_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(219, s), p, o, m)
+# define MSGPACK_PP_FOR_219_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(220, s), p, o, m)
+# define MSGPACK_PP_FOR_220_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(221, s), p, o, m)
+# define MSGPACK_PP_FOR_221_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(222, s), p, o, m)
+# define MSGPACK_PP_FOR_222_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(223, s), p, o, m)
+# define MSGPACK_PP_FOR_223_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(224, s), p, o, m)
+# define MSGPACK_PP_FOR_224_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(225, s), p, o, m)
+# define MSGPACK_PP_FOR_225_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(226, s), p, o, m)
+# define MSGPACK_PP_FOR_226_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(227, s), p, o, m)
+# define MSGPACK_PP_FOR_227_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(228, s), p, o, m)
+# define MSGPACK_PP_FOR_228_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(229, s), p, o, m)
+# define MSGPACK_PP_FOR_229_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(230, s), p, o, m)
+# define MSGPACK_PP_FOR_230_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(231, s), p, o, m)
+# define MSGPACK_PP_FOR_231_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(232, s), p, o, m)
+# define MSGPACK_PP_FOR_232_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(233, s), p, o, m)
+# define MSGPACK_PP_FOR_233_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(234, s), p, o, m)
+# define MSGPACK_PP_FOR_234_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(235, s), p, o, m)
+# define MSGPACK_PP_FOR_235_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(236, s), p, o, m)
+# define MSGPACK_PP_FOR_236_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(237, s), p, o, m)
+# define MSGPACK_PP_FOR_237_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(238, s), p, o, m)
+# define MSGPACK_PP_FOR_238_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(239, s), p, o, m)
+# define MSGPACK_PP_FOR_239_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(240, s), p, o, m)
+# define MSGPACK_PP_FOR_240_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(241, s), p, o, m)
+# define MSGPACK_PP_FOR_241_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(242, s), p, o, m)
+# define MSGPACK_PP_FOR_242_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(243, s), p, o, m)
+# define MSGPACK_PP_FOR_243_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(244, s), p, o, m)
+# define MSGPACK_PP_FOR_244_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(245, s), p, o, m)
+# define MSGPACK_PP_FOR_245_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(246, s), p, o, m)
+# define MSGPACK_PP_FOR_246_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(247, s), p, o, m)
+# define MSGPACK_PP_FOR_247_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(248, s), p, o, m)
+# define MSGPACK_PP_FOR_248_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(249, s), p, o, m)
+# define MSGPACK_PP_FOR_249_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(250, s), p, o, m)
+# define MSGPACK_PP_FOR_250_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(251, s), p, o, m)
+# define MSGPACK_PP_FOR_251_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(252, s), p, o, m)
+# define MSGPACK_PP_FOR_252_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(253, s), p, o, m)
+# define MSGPACK_PP_FOR_253_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(254, s), p, o, m)
+# define MSGPACK_PP_FOR_254_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(255, s), p, o, m)
+# define MSGPACK_PP_FOR_255_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(256, s), p, o, m)
+# define MSGPACK_PP_FOR_256_C(c, s, p, o, m) MSGPACK_PP_IIF(c, m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IIF(c, MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(MSGPACK_PP_EXPR_IIF(c, o)(257, s), p, o, m)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/msvc/for.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/msvc/for.hpp
new file mode 100644
index 000000000..ff8a0277e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/detail/msvc/for.hpp
@@ -0,0 +1,277 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
+#
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# define MSGPACK_PP_FOR_1(s, p, o, m) MSGPACK_PP_IF(p(2, s), m, MSGPACK_PP_TUPLE_EAT_2)(2, s) MSGPACK_PP_IF(p(2, s), MSGPACK_PP_FOR_2, MSGPACK_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
+# define MSGPACK_PP_FOR_2(s, p, o, m) MSGPACK_PP_IF(p(3, s), m, MSGPACK_PP_TUPLE_EAT_2)(3, s) MSGPACK_PP_IF(p(3, s), MSGPACK_PP_FOR_3, MSGPACK_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
+# define MSGPACK_PP_FOR_3(s, p, o, m) MSGPACK_PP_IF(p(4, s), m, MSGPACK_PP_TUPLE_EAT_2)(4, s) MSGPACK_PP_IF(p(4, s), MSGPACK_PP_FOR_4, MSGPACK_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
+# define MSGPACK_PP_FOR_4(s, p, o, m) MSGPACK_PP_IF(p(5, s), m, MSGPACK_PP_TUPLE_EAT_2)(5, s) MSGPACK_PP_IF(p(5, s), MSGPACK_PP_FOR_5, MSGPACK_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
+# define MSGPACK_PP_FOR_5(s, p, o, m) MSGPACK_PP_IF(p(6, s), m, MSGPACK_PP_TUPLE_EAT_2)(6, s) MSGPACK_PP_IF(p(6, s), MSGPACK_PP_FOR_6, MSGPACK_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
+# define MSGPACK_PP_FOR_6(s, p, o, m) MSGPACK_PP_IF(p(7, s), m, MSGPACK_PP_TUPLE_EAT_2)(7, s) MSGPACK_PP_IF(p(7, s), MSGPACK_PP_FOR_7, MSGPACK_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
+# define MSGPACK_PP_FOR_7(s, p, o, m) MSGPACK_PP_IF(p(8, s), m, MSGPACK_PP_TUPLE_EAT_2)(8, s) MSGPACK_PP_IF(p(8, s), MSGPACK_PP_FOR_8, MSGPACK_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
+# define MSGPACK_PP_FOR_8(s, p, o, m) MSGPACK_PP_IF(p(9, s), m, MSGPACK_PP_TUPLE_EAT_2)(9, s) MSGPACK_PP_IF(p(9, s), MSGPACK_PP_FOR_9, MSGPACK_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
+# define MSGPACK_PP_FOR_9(s, p, o, m) MSGPACK_PP_IF(p(10, s), m, MSGPACK_PP_TUPLE_EAT_2)(10, s) MSGPACK_PP_IF(p(10, s), MSGPACK_PP_FOR_10, MSGPACK_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
+# define MSGPACK_PP_FOR_10(s, p, o, m) MSGPACK_PP_IF(p(11, s), m, MSGPACK_PP_TUPLE_EAT_2)(11, s) MSGPACK_PP_IF(p(11, s), MSGPACK_PP_FOR_11, MSGPACK_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
+# define MSGPACK_PP_FOR_11(s, p, o, m) MSGPACK_PP_IF(p(12, s), m, MSGPACK_PP_TUPLE_EAT_2)(12, s) MSGPACK_PP_IF(p(12, s), MSGPACK_PP_FOR_12, MSGPACK_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
+# define MSGPACK_PP_FOR_12(s, p, o, m) MSGPACK_PP_IF(p(13, s), m, MSGPACK_PP_TUPLE_EAT_2)(13, s) MSGPACK_PP_IF(p(13, s), MSGPACK_PP_FOR_13, MSGPACK_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
+# define MSGPACK_PP_FOR_13(s, p, o, m) MSGPACK_PP_IF(p(14, s), m, MSGPACK_PP_TUPLE_EAT_2)(14, s) MSGPACK_PP_IF(p(14, s), MSGPACK_PP_FOR_14, MSGPACK_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
+# define MSGPACK_PP_FOR_14(s, p, o, m) MSGPACK_PP_IF(p(15, s), m, MSGPACK_PP_TUPLE_EAT_2)(15, s) MSGPACK_PP_IF(p(15, s), MSGPACK_PP_FOR_15, MSGPACK_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
+# define MSGPACK_PP_FOR_15(s, p, o, m) MSGPACK_PP_IF(p(16, s), m, MSGPACK_PP_TUPLE_EAT_2)(16, s) MSGPACK_PP_IF(p(16, s), MSGPACK_PP_FOR_16, MSGPACK_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
+# define MSGPACK_PP_FOR_16(s, p, o, m) MSGPACK_PP_IF(p(17, s), m, MSGPACK_PP_TUPLE_EAT_2)(17, s) MSGPACK_PP_IF(p(17, s), MSGPACK_PP_FOR_17, MSGPACK_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
+# define MSGPACK_PP_FOR_17(s, p, o, m) MSGPACK_PP_IF(p(18, s), m, MSGPACK_PP_TUPLE_EAT_2)(18, s) MSGPACK_PP_IF(p(18, s), MSGPACK_PP_FOR_18, MSGPACK_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
+# define MSGPACK_PP_FOR_18(s, p, o, m) MSGPACK_PP_IF(p(19, s), m, MSGPACK_PP_TUPLE_EAT_2)(19, s) MSGPACK_PP_IF(p(19, s), MSGPACK_PP_FOR_19, MSGPACK_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
+# define MSGPACK_PP_FOR_19(s, p, o, m) MSGPACK_PP_IF(p(20, s), m, MSGPACK_PP_TUPLE_EAT_2)(20, s) MSGPACK_PP_IF(p(20, s), MSGPACK_PP_FOR_20, MSGPACK_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
+# define MSGPACK_PP_FOR_20(s, p, o, m) MSGPACK_PP_IF(p(21, s), m, MSGPACK_PP_TUPLE_EAT_2)(21, s) MSGPACK_PP_IF(p(21, s), MSGPACK_PP_FOR_21, MSGPACK_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
+# define MSGPACK_PP_FOR_21(s, p, o, m) MSGPACK_PP_IF(p(22, s), m, MSGPACK_PP_TUPLE_EAT_2)(22, s) MSGPACK_PP_IF(p(22, s), MSGPACK_PP_FOR_22, MSGPACK_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
+# define MSGPACK_PP_FOR_22(s, p, o, m) MSGPACK_PP_IF(p(23, s), m, MSGPACK_PP_TUPLE_EAT_2)(23, s) MSGPACK_PP_IF(p(23, s), MSGPACK_PP_FOR_23, MSGPACK_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
+# define MSGPACK_PP_FOR_23(s, p, o, m) MSGPACK_PP_IF(p(24, s), m, MSGPACK_PP_TUPLE_EAT_2)(24, s) MSGPACK_PP_IF(p(24, s), MSGPACK_PP_FOR_24, MSGPACK_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
+# define MSGPACK_PP_FOR_24(s, p, o, m) MSGPACK_PP_IF(p(25, s), m, MSGPACK_PP_TUPLE_EAT_2)(25, s) MSGPACK_PP_IF(p(25, s), MSGPACK_PP_FOR_25, MSGPACK_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
+# define MSGPACK_PP_FOR_25(s, p, o, m) MSGPACK_PP_IF(p(26, s), m, MSGPACK_PP_TUPLE_EAT_2)(26, s) MSGPACK_PP_IF(p(26, s), MSGPACK_PP_FOR_26, MSGPACK_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
+# define MSGPACK_PP_FOR_26(s, p, o, m) MSGPACK_PP_IF(p(27, s), m, MSGPACK_PP_TUPLE_EAT_2)(27, s) MSGPACK_PP_IF(p(27, s), MSGPACK_PP_FOR_27, MSGPACK_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
+# define MSGPACK_PP_FOR_27(s, p, o, m) MSGPACK_PP_IF(p(28, s), m, MSGPACK_PP_TUPLE_EAT_2)(28, s) MSGPACK_PP_IF(p(28, s), MSGPACK_PP_FOR_28, MSGPACK_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
+# define MSGPACK_PP_FOR_28(s, p, o, m) MSGPACK_PP_IF(p(29, s), m, MSGPACK_PP_TUPLE_EAT_2)(29, s) MSGPACK_PP_IF(p(29, s), MSGPACK_PP_FOR_29, MSGPACK_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
+# define MSGPACK_PP_FOR_29(s, p, o, m) MSGPACK_PP_IF(p(30, s), m, MSGPACK_PP_TUPLE_EAT_2)(30, s) MSGPACK_PP_IF(p(30, s), MSGPACK_PP_FOR_30, MSGPACK_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
+# define MSGPACK_PP_FOR_30(s, p, o, m) MSGPACK_PP_IF(p(31, s), m, MSGPACK_PP_TUPLE_EAT_2)(31, s) MSGPACK_PP_IF(p(31, s), MSGPACK_PP_FOR_31, MSGPACK_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
+# define MSGPACK_PP_FOR_31(s, p, o, m) MSGPACK_PP_IF(p(32, s), m, MSGPACK_PP_TUPLE_EAT_2)(32, s) MSGPACK_PP_IF(p(32, s), MSGPACK_PP_FOR_32, MSGPACK_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
+# define MSGPACK_PP_FOR_32(s, p, o, m) MSGPACK_PP_IF(p(33, s), m, MSGPACK_PP_TUPLE_EAT_2)(33, s) MSGPACK_PP_IF(p(33, s), MSGPACK_PP_FOR_33, MSGPACK_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
+# define MSGPACK_PP_FOR_33(s, p, o, m) MSGPACK_PP_IF(p(34, s), m, MSGPACK_PP_TUPLE_EAT_2)(34, s) MSGPACK_PP_IF(p(34, s), MSGPACK_PP_FOR_34, MSGPACK_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
+# define MSGPACK_PP_FOR_34(s, p, o, m) MSGPACK_PP_IF(p(35, s), m, MSGPACK_PP_TUPLE_EAT_2)(35, s) MSGPACK_PP_IF(p(35, s), MSGPACK_PP_FOR_35, MSGPACK_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
+# define MSGPACK_PP_FOR_35(s, p, o, m) MSGPACK_PP_IF(p(36, s), m, MSGPACK_PP_TUPLE_EAT_2)(36, s) MSGPACK_PP_IF(p(36, s), MSGPACK_PP_FOR_36, MSGPACK_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
+# define MSGPACK_PP_FOR_36(s, p, o, m) MSGPACK_PP_IF(p(37, s), m, MSGPACK_PP_TUPLE_EAT_2)(37, s) MSGPACK_PP_IF(p(37, s), MSGPACK_PP_FOR_37, MSGPACK_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
+# define MSGPACK_PP_FOR_37(s, p, o, m) MSGPACK_PP_IF(p(38, s), m, MSGPACK_PP_TUPLE_EAT_2)(38, s) MSGPACK_PP_IF(p(38, s), MSGPACK_PP_FOR_38, MSGPACK_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
+# define MSGPACK_PP_FOR_38(s, p, o, m) MSGPACK_PP_IF(p(39, s), m, MSGPACK_PP_TUPLE_EAT_2)(39, s) MSGPACK_PP_IF(p(39, s), MSGPACK_PP_FOR_39, MSGPACK_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
+# define MSGPACK_PP_FOR_39(s, p, o, m) MSGPACK_PP_IF(p(40, s), m, MSGPACK_PP_TUPLE_EAT_2)(40, s) MSGPACK_PP_IF(p(40, s), MSGPACK_PP_FOR_40, MSGPACK_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
+# define MSGPACK_PP_FOR_40(s, p, o, m) MSGPACK_PP_IF(p(41, s), m, MSGPACK_PP_TUPLE_EAT_2)(41, s) MSGPACK_PP_IF(p(41, s), MSGPACK_PP_FOR_41, MSGPACK_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
+# define MSGPACK_PP_FOR_41(s, p, o, m) MSGPACK_PP_IF(p(42, s), m, MSGPACK_PP_TUPLE_EAT_2)(42, s) MSGPACK_PP_IF(p(42, s), MSGPACK_PP_FOR_42, MSGPACK_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
+# define MSGPACK_PP_FOR_42(s, p, o, m) MSGPACK_PP_IF(p(43, s), m, MSGPACK_PP_TUPLE_EAT_2)(43, s) MSGPACK_PP_IF(p(43, s), MSGPACK_PP_FOR_43, MSGPACK_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
+# define MSGPACK_PP_FOR_43(s, p, o, m) MSGPACK_PP_IF(p(44, s), m, MSGPACK_PP_TUPLE_EAT_2)(44, s) MSGPACK_PP_IF(p(44, s), MSGPACK_PP_FOR_44, MSGPACK_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
+# define MSGPACK_PP_FOR_44(s, p, o, m) MSGPACK_PP_IF(p(45, s), m, MSGPACK_PP_TUPLE_EAT_2)(45, s) MSGPACK_PP_IF(p(45, s), MSGPACK_PP_FOR_45, MSGPACK_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
+# define MSGPACK_PP_FOR_45(s, p, o, m) MSGPACK_PP_IF(p(46, s), m, MSGPACK_PP_TUPLE_EAT_2)(46, s) MSGPACK_PP_IF(p(46, s), MSGPACK_PP_FOR_46, MSGPACK_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
+# define MSGPACK_PP_FOR_46(s, p, o, m) MSGPACK_PP_IF(p(47, s), m, MSGPACK_PP_TUPLE_EAT_2)(47, s) MSGPACK_PP_IF(p(47, s), MSGPACK_PP_FOR_47, MSGPACK_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
+# define MSGPACK_PP_FOR_47(s, p, o, m) MSGPACK_PP_IF(p(48, s), m, MSGPACK_PP_TUPLE_EAT_2)(48, s) MSGPACK_PP_IF(p(48, s), MSGPACK_PP_FOR_48, MSGPACK_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
+# define MSGPACK_PP_FOR_48(s, p, o, m) MSGPACK_PP_IF(p(49, s), m, MSGPACK_PP_TUPLE_EAT_2)(49, s) MSGPACK_PP_IF(p(49, s), MSGPACK_PP_FOR_49, MSGPACK_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
+# define MSGPACK_PP_FOR_49(s, p, o, m) MSGPACK_PP_IF(p(50, s), m, MSGPACK_PP_TUPLE_EAT_2)(50, s) MSGPACK_PP_IF(p(50, s), MSGPACK_PP_FOR_50, MSGPACK_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
+# define MSGPACK_PP_FOR_50(s, p, o, m) MSGPACK_PP_IF(p(51, s), m, MSGPACK_PP_TUPLE_EAT_2)(51, s) MSGPACK_PP_IF(p(51, s), MSGPACK_PP_FOR_51, MSGPACK_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
+# define MSGPACK_PP_FOR_51(s, p, o, m) MSGPACK_PP_IF(p(52, s), m, MSGPACK_PP_TUPLE_EAT_2)(52, s) MSGPACK_PP_IF(p(52, s), MSGPACK_PP_FOR_52, MSGPACK_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
+# define MSGPACK_PP_FOR_52(s, p, o, m) MSGPACK_PP_IF(p(53, s), m, MSGPACK_PP_TUPLE_EAT_2)(53, s) MSGPACK_PP_IF(p(53, s), MSGPACK_PP_FOR_53, MSGPACK_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
+# define MSGPACK_PP_FOR_53(s, p, o, m) MSGPACK_PP_IF(p(54, s), m, MSGPACK_PP_TUPLE_EAT_2)(54, s) MSGPACK_PP_IF(p(54, s), MSGPACK_PP_FOR_54, MSGPACK_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
+# define MSGPACK_PP_FOR_54(s, p, o, m) MSGPACK_PP_IF(p(55, s), m, MSGPACK_PP_TUPLE_EAT_2)(55, s) MSGPACK_PP_IF(p(55, s), MSGPACK_PP_FOR_55, MSGPACK_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
+# define MSGPACK_PP_FOR_55(s, p, o, m) MSGPACK_PP_IF(p(56, s), m, MSGPACK_PP_TUPLE_EAT_2)(56, s) MSGPACK_PP_IF(p(56, s), MSGPACK_PP_FOR_56, MSGPACK_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
+# define MSGPACK_PP_FOR_56(s, p, o, m) MSGPACK_PP_IF(p(57, s), m, MSGPACK_PP_TUPLE_EAT_2)(57, s) MSGPACK_PP_IF(p(57, s), MSGPACK_PP_FOR_57, MSGPACK_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
+# define MSGPACK_PP_FOR_57(s, p, o, m) MSGPACK_PP_IF(p(58, s), m, MSGPACK_PP_TUPLE_EAT_2)(58, s) MSGPACK_PP_IF(p(58, s), MSGPACK_PP_FOR_58, MSGPACK_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
+# define MSGPACK_PP_FOR_58(s, p, o, m) MSGPACK_PP_IF(p(59, s), m, MSGPACK_PP_TUPLE_EAT_2)(59, s) MSGPACK_PP_IF(p(59, s), MSGPACK_PP_FOR_59, MSGPACK_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
+# define MSGPACK_PP_FOR_59(s, p, o, m) MSGPACK_PP_IF(p(60, s), m, MSGPACK_PP_TUPLE_EAT_2)(60, s) MSGPACK_PP_IF(p(60, s), MSGPACK_PP_FOR_60, MSGPACK_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
+# define MSGPACK_PP_FOR_60(s, p, o, m) MSGPACK_PP_IF(p(61, s), m, MSGPACK_PP_TUPLE_EAT_2)(61, s) MSGPACK_PP_IF(p(61, s), MSGPACK_PP_FOR_61, MSGPACK_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
+# define MSGPACK_PP_FOR_61(s, p, o, m) MSGPACK_PP_IF(p(62, s), m, MSGPACK_PP_TUPLE_EAT_2)(62, s) MSGPACK_PP_IF(p(62, s), MSGPACK_PP_FOR_62, MSGPACK_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
+# define MSGPACK_PP_FOR_62(s, p, o, m) MSGPACK_PP_IF(p(63, s), m, MSGPACK_PP_TUPLE_EAT_2)(63, s) MSGPACK_PP_IF(p(63, s), MSGPACK_PP_FOR_63, MSGPACK_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
+# define MSGPACK_PP_FOR_63(s, p, o, m) MSGPACK_PP_IF(p(64, s), m, MSGPACK_PP_TUPLE_EAT_2)(64, s) MSGPACK_PP_IF(p(64, s), MSGPACK_PP_FOR_64, MSGPACK_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
+# define MSGPACK_PP_FOR_64(s, p, o, m) MSGPACK_PP_IF(p(65, s), m, MSGPACK_PP_TUPLE_EAT_2)(65, s) MSGPACK_PP_IF(p(65, s), MSGPACK_PP_FOR_65, MSGPACK_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
+# define MSGPACK_PP_FOR_65(s, p, o, m) MSGPACK_PP_IF(p(66, s), m, MSGPACK_PP_TUPLE_EAT_2)(66, s) MSGPACK_PP_IF(p(66, s), MSGPACK_PP_FOR_66, MSGPACK_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
+# define MSGPACK_PP_FOR_66(s, p, o, m) MSGPACK_PP_IF(p(67, s), m, MSGPACK_PP_TUPLE_EAT_2)(67, s) MSGPACK_PP_IF(p(67, s), MSGPACK_PP_FOR_67, MSGPACK_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
+# define MSGPACK_PP_FOR_67(s, p, o, m) MSGPACK_PP_IF(p(68, s), m, MSGPACK_PP_TUPLE_EAT_2)(68, s) MSGPACK_PP_IF(p(68, s), MSGPACK_PP_FOR_68, MSGPACK_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
+# define MSGPACK_PP_FOR_68(s, p, o, m) MSGPACK_PP_IF(p(69, s), m, MSGPACK_PP_TUPLE_EAT_2)(69, s) MSGPACK_PP_IF(p(69, s), MSGPACK_PP_FOR_69, MSGPACK_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
+# define MSGPACK_PP_FOR_69(s, p, o, m) MSGPACK_PP_IF(p(70, s), m, MSGPACK_PP_TUPLE_EAT_2)(70, s) MSGPACK_PP_IF(p(70, s), MSGPACK_PP_FOR_70, MSGPACK_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
+# define MSGPACK_PP_FOR_70(s, p, o, m) MSGPACK_PP_IF(p(71, s), m, MSGPACK_PP_TUPLE_EAT_2)(71, s) MSGPACK_PP_IF(p(71, s), MSGPACK_PP_FOR_71, MSGPACK_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
+# define MSGPACK_PP_FOR_71(s, p, o, m) MSGPACK_PP_IF(p(72, s), m, MSGPACK_PP_TUPLE_EAT_2)(72, s) MSGPACK_PP_IF(p(72, s), MSGPACK_PP_FOR_72, MSGPACK_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
+# define MSGPACK_PP_FOR_72(s, p, o, m) MSGPACK_PP_IF(p(73, s), m, MSGPACK_PP_TUPLE_EAT_2)(73, s) MSGPACK_PP_IF(p(73, s), MSGPACK_PP_FOR_73, MSGPACK_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
+# define MSGPACK_PP_FOR_73(s, p, o, m) MSGPACK_PP_IF(p(74, s), m, MSGPACK_PP_TUPLE_EAT_2)(74, s) MSGPACK_PP_IF(p(74, s), MSGPACK_PP_FOR_74, MSGPACK_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
+# define MSGPACK_PP_FOR_74(s, p, o, m) MSGPACK_PP_IF(p(75, s), m, MSGPACK_PP_TUPLE_EAT_2)(75, s) MSGPACK_PP_IF(p(75, s), MSGPACK_PP_FOR_75, MSGPACK_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
+# define MSGPACK_PP_FOR_75(s, p, o, m) MSGPACK_PP_IF(p(76, s), m, MSGPACK_PP_TUPLE_EAT_2)(76, s) MSGPACK_PP_IF(p(76, s), MSGPACK_PP_FOR_76, MSGPACK_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
+# define MSGPACK_PP_FOR_76(s, p, o, m) MSGPACK_PP_IF(p(77, s), m, MSGPACK_PP_TUPLE_EAT_2)(77, s) MSGPACK_PP_IF(p(77, s), MSGPACK_PP_FOR_77, MSGPACK_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
+# define MSGPACK_PP_FOR_77(s, p, o, m) MSGPACK_PP_IF(p(78, s), m, MSGPACK_PP_TUPLE_EAT_2)(78, s) MSGPACK_PP_IF(p(78, s), MSGPACK_PP_FOR_78, MSGPACK_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
+# define MSGPACK_PP_FOR_78(s, p, o, m) MSGPACK_PP_IF(p(79, s), m, MSGPACK_PP_TUPLE_EAT_2)(79, s) MSGPACK_PP_IF(p(79, s), MSGPACK_PP_FOR_79, MSGPACK_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
+# define MSGPACK_PP_FOR_79(s, p, o, m) MSGPACK_PP_IF(p(80, s), m, MSGPACK_PP_TUPLE_EAT_2)(80, s) MSGPACK_PP_IF(p(80, s), MSGPACK_PP_FOR_80, MSGPACK_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
+# define MSGPACK_PP_FOR_80(s, p, o, m) MSGPACK_PP_IF(p(81, s), m, MSGPACK_PP_TUPLE_EAT_2)(81, s) MSGPACK_PP_IF(p(81, s), MSGPACK_PP_FOR_81, MSGPACK_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
+# define MSGPACK_PP_FOR_81(s, p, o, m) MSGPACK_PP_IF(p(82, s), m, MSGPACK_PP_TUPLE_EAT_2)(82, s) MSGPACK_PP_IF(p(82, s), MSGPACK_PP_FOR_82, MSGPACK_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
+# define MSGPACK_PP_FOR_82(s, p, o, m) MSGPACK_PP_IF(p(83, s), m, MSGPACK_PP_TUPLE_EAT_2)(83, s) MSGPACK_PP_IF(p(83, s), MSGPACK_PP_FOR_83, MSGPACK_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
+# define MSGPACK_PP_FOR_83(s, p, o, m) MSGPACK_PP_IF(p(84, s), m, MSGPACK_PP_TUPLE_EAT_2)(84, s) MSGPACK_PP_IF(p(84, s), MSGPACK_PP_FOR_84, MSGPACK_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
+# define MSGPACK_PP_FOR_84(s, p, o, m) MSGPACK_PP_IF(p(85, s), m, MSGPACK_PP_TUPLE_EAT_2)(85, s) MSGPACK_PP_IF(p(85, s), MSGPACK_PP_FOR_85, MSGPACK_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
+# define MSGPACK_PP_FOR_85(s, p, o, m) MSGPACK_PP_IF(p(86, s), m, MSGPACK_PP_TUPLE_EAT_2)(86, s) MSGPACK_PP_IF(p(86, s), MSGPACK_PP_FOR_86, MSGPACK_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
+# define MSGPACK_PP_FOR_86(s, p, o, m) MSGPACK_PP_IF(p(87, s), m, MSGPACK_PP_TUPLE_EAT_2)(87, s) MSGPACK_PP_IF(p(87, s), MSGPACK_PP_FOR_87, MSGPACK_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
+# define MSGPACK_PP_FOR_87(s, p, o, m) MSGPACK_PP_IF(p(88, s), m, MSGPACK_PP_TUPLE_EAT_2)(88, s) MSGPACK_PP_IF(p(88, s), MSGPACK_PP_FOR_88, MSGPACK_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
+# define MSGPACK_PP_FOR_88(s, p, o, m) MSGPACK_PP_IF(p(89, s), m, MSGPACK_PP_TUPLE_EAT_2)(89, s) MSGPACK_PP_IF(p(89, s), MSGPACK_PP_FOR_89, MSGPACK_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
+# define MSGPACK_PP_FOR_89(s, p, o, m) MSGPACK_PP_IF(p(90, s), m, MSGPACK_PP_TUPLE_EAT_2)(90, s) MSGPACK_PP_IF(p(90, s), MSGPACK_PP_FOR_90, MSGPACK_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
+# define MSGPACK_PP_FOR_90(s, p, o, m) MSGPACK_PP_IF(p(91, s), m, MSGPACK_PP_TUPLE_EAT_2)(91, s) MSGPACK_PP_IF(p(91, s), MSGPACK_PP_FOR_91, MSGPACK_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
+# define MSGPACK_PP_FOR_91(s, p, o, m) MSGPACK_PP_IF(p(92, s), m, MSGPACK_PP_TUPLE_EAT_2)(92, s) MSGPACK_PP_IF(p(92, s), MSGPACK_PP_FOR_92, MSGPACK_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
+# define MSGPACK_PP_FOR_92(s, p, o, m) MSGPACK_PP_IF(p(93, s), m, MSGPACK_PP_TUPLE_EAT_2)(93, s) MSGPACK_PP_IF(p(93, s), MSGPACK_PP_FOR_93, MSGPACK_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
+# define MSGPACK_PP_FOR_93(s, p, o, m) MSGPACK_PP_IF(p(94, s), m, MSGPACK_PP_TUPLE_EAT_2)(94, s) MSGPACK_PP_IF(p(94, s), MSGPACK_PP_FOR_94, MSGPACK_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
+# define MSGPACK_PP_FOR_94(s, p, o, m) MSGPACK_PP_IF(p(95, s), m, MSGPACK_PP_TUPLE_EAT_2)(95, s) MSGPACK_PP_IF(p(95, s), MSGPACK_PP_FOR_95, MSGPACK_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
+# define MSGPACK_PP_FOR_95(s, p, o, m) MSGPACK_PP_IF(p(96, s), m, MSGPACK_PP_TUPLE_EAT_2)(96, s) MSGPACK_PP_IF(p(96, s), MSGPACK_PP_FOR_96, MSGPACK_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
+# define MSGPACK_PP_FOR_96(s, p, o, m) MSGPACK_PP_IF(p(97, s), m, MSGPACK_PP_TUPLE_EAT_2)(97, s) MSGPACK_PP_IF(p(97, s), MSGPACK_PP_FOR_97, MSGPACK_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
+# define MSGPACK_PP_FOR_97(s, p, o, m) MSGPACK_PP_IF(p(98, s), m, MSGPACK_PP_TUPLE_EAT_2)(98, s) MSGPACK_PP_IF(p(98, s), MSGPACK_PP_FOR_98, MSGPACK_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
+# define MSGPACK_PP_FOR_98(s, p, o, m) MSGPACK_PP_IF(p(99, s), m, MSGPACK_PP_TUPLE_EAT_2)(99, s) MSGPACK_PP_IF(p(99, s), MSGPACK_PP_FOR_99, MSGPACK_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
+# define MSGPACK_PP_FOR_99(s, p, o, m) MSGPACK_PP_IF(p(100, s), m, MSGPACK_PP_TUPLE_EAT_2)(100, s) MSGPACK_PP_IF(p(100, s), MSGPACK_PP_FOR_100, MSGPACK_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
+# define MSGPACK_PP_FOR_100(s, p, o, m) MSGPACK_PP_IF(p(101, s), m, MSGPACK_PP_TUPLE_EAT_2)(101, s) MSGPACK_PP_IF(p(101, s), MSGPACK_PP_FOR_101, MSGPACK_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
+# define MSGPACK_PP_FOR_101(s, p, o, m) MSGPACK_PP_IF(p(102, s), m, MSGPACK_PP_TUPLE_EAT_2)(102, s) MSGPACK_PP_IF(p(102, s), MSGPACK_PP_FOR_102, MSGPACK_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
+# define MSGPACK_PP_FOR_102(s, p, o, m) MSGPACK_PP_IF(p(103, s), m, MSGPACK_PP_TUPLE_EAT_2)(103, s) MSGPACK_PP_IF(p(103, s), MSGPACK_PP_FOR_103, MSGPACK_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
+# define MSGPACK_PP_FOR_103(s, p, o, m) MSGPACK_PP_IF(p(104, s), m, MSGPACK_PP_TUPLE_EAT_2)(104, s) MSGPACK_PP_IF(p(104, s), MSGPACK_PP_FOR_104, MSGPACK_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
+# define MSGPACK_PP_FOR_104(s, p, o, m) MSGPACK_PP_IF(p(105, s), m, MSGPACK_PP_TUPLE_EAT_2)(105, s) MSGPACK_PP_IF(p(105, s), MSGPACK_PP_FOR_105, MSGPACK_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
+# define MSGPACK_PP_FOR_105(s, p, o, m) MSGPACK_PP_IF(p(106, s), m, MSGPACK_PP_TUPLE_EAT_2)(106, s) MSGPACK_PP_IF(p(106, s), MSGPACK_PP_FOR_106, MSGPACK_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
+# define MSGPACK_PP_FOR_106(s, p, o, m) MSGPACK_PP_IF(p(107, s), m, MSGPACK_PP_TUPLE_EAT_2)(107, s) MSGPACK_PP_IF(p(107, s), MSGPACK_PP_FOR_107, MSGPACK_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
+# define MSGPACK_PP_FOR_107(s, p, o, m) MSGPACK_PP_IF(p(108, s), m, MSGPACK_PP_TUPLE_EAT_2)(108, s) MSGPACK_PP_IF(p(108, s), MSGPACK_PP_FOR_108, MSGPACK_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
+# define MSGPACK_PP_FOR_108(s, p, o, m) MSGPACK_PP_IF(p(109, s), m, MSGPACK_PP_TUPLE_EAT_2)(109, s) MSGPACK_PP_IF(p(109, s), MSGPACK_PP_FOR_109, MSGPACK_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
+# define MSGPACK_PP_FOR_109(s, p, o, m) MSGPACK_PP_IF(p(110, s), m, MSGPACK_PP_TUPLE_EAT_2)(110, s) MSGPACK_PP_IF(p(110, s), MSGPACK_PP_FOR_110, MSGPACK_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
+# define MSGPACK_PP_FOR_110(s, p, o, m) MSGPACK_PP_IF(p(111, s), m, MSGPACK_PP_TUPLE_EAT_2)(111, s) MSGPACK_PP_IF(p(111, s), MSGPACK_PP_FOR_111, MSGPACK_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
+# define MSGPACK_PP_FOR_111(s, p, o, m) MSGPACK_PP_IF(p(112, s), m, MSGPACK_PP_TUPLE_EAT_2)(112, s) MSGPACK_PP_IF(p(112, s), MSGPACK_PP_FOR_112, MSGPACK_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
+# define MSGPACK_PP_FOR_112(s, p, o, m) MSGPACK_PP_IF(p(113, s), m, MSGPACK_PP_TUPLE_EAT_2)(113, s) MSGPACK_PP_IF(p(113, s), MSGPACK_PP_FOR_113, MSGPACK_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
+# define MSGPACK_PP_FOR_113(s, p, o, m) MSGPACK_PP_IF(p(114, s), m, MSGPACK_PP_TUPLE_EAT_2)(114, s) MSGPACK_PP_IF(p(114, s), MSGPACK_PP_FOR_114, MSGPACK_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
+# define MSGPACK_PP_FOR_114(s, p, o, m) MSGPACK_PP_IF(p(115, s), m, MSGPACK_PP_TUPLE_EAT_2)(115, s) MSGPACK_PP_IF(p(115, s), MSGPACK_PP_FOR_115, MSGPACK_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
+# define MSGPACK_PP_FOR_115(s, p, o, m) MSGPACK_PP_IF(p(116, s), m, MSGPACK_PP_TUPLE_EAT_2)(116, s) MSGPACK_PP_IF(p(116, s), MSGPACK_PP_FOR_116, MSGPACK_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
+# define MSGPACK_PP_FOR_116(s, p, o, m) MSGPACK_PP_IF(p(117, s), m, MSGPACK_PP_TUPLE_EAT_2)(117, s) MSGPACK_PP_IF(p(117, s), MSGPACK_PP_FOR_117, MSGPACK_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
+# define MSGPACK_PP_FOR_117(s, p, o, m) MSGPACK_PP_IF(p(118, s), m, MSGPACK_PP_TUPLE_EAT_2)(118, s) MSGPACK_PP_IF(p(118, s), MSGPACK_PP_FOR_118, MSGPACK_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
+# define MSGPACK_PP_FOR_118(s, p, o, m) MSGPACK_PP_IF(p(119, s), m, MSGPACK_PP_TUPLE_EAT_2)(119, s) MSGPACK_PP_IF(p(119, s), MSGPACK_PP_FOR_119, MSGPACK_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
+# define MSGPACK_PP_FOR_119(s, p, o, m) MSGPACK_PP_IF(p(120, s), m, MSGPACK_PP_TUPLE_EAT_2)(120, s) MSGPACK_PP_IF(p(120, s), MSGPACK_PP_FOR_120, MSGPACK_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
+# define MSGPACK_PP_FOR_120(s, p, o, m) MSGPACK_PP_IF(p(121, s), m, MSGPACK_PP_TUPLE_EAT_2)(121, s) MSGPACK_PP_IF(p(121, s), MSGPACK_PP_FOR_121, MSGPACK_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
+# define MSGPACK_PP_FOR_121(s, p, o, m) MSGPACK_PP_IF(p(122, s), m, MSGPACK_PP_TUPLE_EAT_2)(122, s) MSGPACK_PP_IF(p(122, s), MSGPACK_PP_FOR_122, MSGPACK_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
+# define MSGPACK_PP_FOR_122(s, p, o, m) MSGPACK_PP_IF(p(123, s), m, MSGPACK_PP_TUPLE_EAT_2)(123, s) MSGPACK_PP_IF(p(123, s), MSGPACK_PP_FOR_123, MSGPACK_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
+# define MSGPACK_PP_FOR_123(s, p, o, m) MSGPACK_PP_IF(p(124, s), m, MSGPACK_PP_TUPLE_EAT_2)(124, s) MSGPACK_PP_IF(p(124, s), MSGPACK_PP_FOR_124, MSGPACK_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
+# define MSGPACK_PP_FOR_124(s, p, o, m) MSGPACK_PP_IF(p(125, s), m, MSGPACK_PP_TUPLE_EAT_2)(125, s) MSGPACK_PP_IF(p(125, s), MSGPACK_PP_FOR_125, MSGPACK_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
+# define MSGPACK_PP_FOR_125(s, p, o, m) MSGPACK_PP_IF(p(126, s), m, MSGPACK_PP_TUPLE_EAT_2)(126, s) MSGPACK_PP_IF(p(126, s), MSGPACK_PP_FOR_126, MSGPACK_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
+# define MSGPACK_PP_FOR_126(s, p, o, m) MSGPACK_PP_IF(p(127, s), m, MSGPACK_PP_TUPLE_EAT_2)(127, s) MSGPACK_PP_IF(p(127, s), MSGPACK_PP_FOR_127, MSGPACK_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
+# define MSGPACK_PP_FOR_127(s, p, o, m) MSGPACK_PP_IF(p(128, s), m, MSGPACK_PP_TUPLE_EAT_2)(128, s) MSGPACK_PP_IF(p(128, s), MSGPACK_PP_FOR_128, MSGPACK_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
+# define MSGPACK_PP_FOR_128(s, p, o, m) MSGPACK_PP_IF(p(129, s), m, MSGPACK_PP_TUPLE_EAT_2)(129, s) MSGPACK_PP_IF(p(129, s), MSGPACK_PP_FOR_129, MSGPACK_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
+# define MSGPACK_PP_FOR_129(s, p, o, m) MSGPACK_PP_IF(p(130, s), m, MSGPACK_PP_TUPLE_EAT_2)(130, s) MSGPACK_PP_IF(p(130, s), MSGPACK_PP_FOR_130, MSGPACK_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
+# define MSGPACK_PP_FOR_130(s, p, o, m) MSGPACK_PP_IF(p(131, s), m, MSGPACK_PP_TUPLE_EAT_2)(131, s) MSGPACK_PP_IF(p(131, s), MSGPACK_PP_FOR_131, MSGPACK_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
+# define MSGPACK_PP_FOR_131(s, p, o, m) MSGPACK_PP_IF(p(132, s), m, MSGPACK_PP_TUPLE_EAT_2)(132, s) MSGPACK_PP_IF(p(132, s), MSGPACK_PP_FOR_132, MSGPACK_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
+# define MSGPACK_PP_FOR_132(s, p, o, m) MSGPACK_PP_IF(p(133, s), m, MSGPACK_PP_TUPLE_EAT_2)(133, s) MSGPACK_PP_IF(p(133, s), MSGPACK_PP_FOR_133, MSGPACK_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
+# define MSGPACK_PP_FOR_133(s, p, o, m) MSGPACK_PP_IF(p(134, s), m, MSGPACK_PP_TUPLE_EAT_2)(134, s) MSGPACK_PP_IF(p(134, s), MSGPACK_PP_FOR_134, MSGPACK_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
+# define MSGPACK_PP_FOR_134(s, p, o, m) MSGPACK_PP_IF(p(135, s), m, MSGPACK_PP_TUPLE_EAT_2)(135, s) MSGPACK_PP_IF(p(135, s), MSGPACK_PP_FOR_135, MSGPACK_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
+# define MSGPACK_PP_FOR_135(s, p, o, m) MSGPACK_PP_IF(p(136, s), m, MSGPACK_PP_TUPLE_EAT_2)(136, s) MSGPACK_PP_IF(p(136, s), MSGPACK_PP_FOR_136, MSGPACK_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
+# define MSGPACK_PP_FOR_136(s, p, o, m) MSGPACK_PP_IF(p(137, s), m, MSGPACK_PP_TUPLE_EAT_2)(137, s) MSGPACK_PP_IF(p(137, s), MSGPACK_PP_FOR_137, MSGPACK_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
+# define MSGPACK_PP_FOR_137(s, p, o, m) MSGPACK_PP_IF(p(138, s), m, MSGPACK_PP_TUPLE_EAT_2)(138, s) MSGPACK_PP_IF(p(138, s), MSGPACK_PP_FOR_138, MSGPACK_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
+# define MSGPACK_PP_FOR_138(s, p, o, m) MSGPACK_PP_IF(p(139, s), m, MSGPACK_PP_TUPLE_EAT_2)(139, s) MSGPACK_PP_IF(p(139, s), MSGPACK_PP_FOR_139, MSGPACK_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
+# define MSGPACK_PP_FOR_139(s, p, o, m) MSGPACK_PP_IF(p(140, s), m, MSGPACK_PP_TUPLE_EAT_2)(140, s) MSGPACK_PP_IF(p(140, s), MSGPACK_PP_FOR_140, MSGPACK_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
+# define MSGPACK_PP_FOR_140(s, p, o, m) MSGPACK_PP_IF(p(141, s), m, MSGPACK_PP_TUPLE_EAT_2)(141, s) MSGPACK_PP_IF(p(141, s), MSGPACK_PP_FOR_141, MSGPACK_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
+# define MSGPACK_PP_FOR_141(s, p, o, m) MSGPACK_PP_IF(p(142, s), m, MSGPACK_PP_TUPLE_EAT_2)(142, s) MSGPACK_PP_IF(p(142, s), MSGPACK_PP_FOR_142, MSGPACK_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
+# define MSGPACK_PP_FOR_142(s, p, o, m) MSGPACK_PP_IF(p(143, s), m, MSGPACK_PP_TUPLE_EAT_2)(143, s) MSGPACK_PP_IF(p(143, s), MSGPACK_PP_FOR_143, MSGPACK_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
+# define MSGPACK_PP_FOR_143(s, p, o, m) MSGPACK_PP_IF(p(144, s), m, MSGPACK_PP_TUPLE_EAT_2)(144, s) MSGPACK_PP_IF(p(144, s), MSGPACK_PP_FOR_144, MSGPACK_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
+# define MSGPACK_PP_FOR_144(s, p, o, m) MSGPACK_PP_IF(p(145, s), m, MSGPACK_PP_TUPLE_EAT_2)(145, s) MSGPACK_PP_IF(p(145, s), MSGPACK_PP_FOR_145, MSGPACK_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
+# define MSGPACK_PP_FOR_145(s, p, o, m) MSGPACK_PP_IF(p(146, s), m, MSGPACK_PP_TUPLE_EAT_2)(146, s) MSGPACK_PP_IF(p(146, s), MSGPACK_PP_FOR_146, MSGPACK_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
+# define MSGPACK_PP_FOR_146(s, p, o, m) MSGPACK_PP_IF(p(147, s), m, MSGPACK_PP_TUPLE_EAT_2)(147, s) MSGPACK_PP_IF(p(147, s), MSGPACK_PP_FOR_147, MSGPACK_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
+# define MSGPACK_PP_FOR_147(s, p, o, m) MSGPACK_PP_IF(p(148, s), m, MSGPACK_PP_TUPLE_EAT_2)(148, s) MSGPACK_PP_IF(p(148, s), MSGPACK_PP_FOR_148, MSGPACK_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
+# define MSGPACK_PP_FOR_148(s, p, o, m) MSGPACK_PP_IF(p(149, s), m, MSGPACK_PP_TUPLE_EAT_2)(149, s) MSGPACK_PP_IF(p(149, s), MSGPACK_PP_FOR_149, MSGPACK_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
+# define MSGPACK_PP_FOR_149(s, p, o, m) MSGPACK_PP_IF(p(150, s), m, MSGPACK_PP_TUPLE_EAT_2)(150, s) MSGPACK_PP_IF(p(150, s), MSGPACK_PP_FOR_150, MSGPACK_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
+# define MSGPACK_PP_FOR_150(s, p, o, m) MSGPACK_PP_IF(p(151, s), m, MSGPACK_PP_TUPLE_EAT_2)(151, s) MSGPACK_PP_IF(p(151, s), MSGPACK_PP_FOR_151, MSGPACK_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
+# define MSGPACK_PP_FOR_151(s, p, o, m) MSGPACK_PP_IF(p(152, s), m, MSGPACK_PP_TUPLE_EAT_2)(152, s) MSGPACK_PP_IF(p(152, s), MSGPACK_PP_FOR_152, MSGPACK_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
+# define MSGPACK_PP_FOR_152(s, p, o, m) MSGPACK_PP_IF(p(153, s), m, MSGPACK_PP_TUPLE_EAT_2)(153, s) MSGPACK_PP_IF(p(153, s), MSGPACK_PP_FOR_153, MSGPACK_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
+# define MSGPACK_PP_FOR_153(s, p, o, m) MSGPACK_PP_IF(p(154, s), m, MSGPACK_PP_TUPLE_EAT_2)(154, s) MSGPACK_PP_IF(p(154, s), MSGPACK_PP_FOR_154, MSGPACK_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
+# define MSGPACK_PP_FOR_154(s, p, o, m) MSGPACK_PP_IF(p(155, s), m, MSGPACK_PP_TUPLE_EAT_2)(155, s) MSGPACK_PP_IF(p(155, s), MSGPACK_PP_FOR_155, MSGPACK_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
+# define MSGPACK_PP_FOR_155(s, p, o, m) MSGPACK_PP_IF(p(156, s), m, MSGPACK_PP_TUPLE_EAT_2)(156, s) MSGPACK_PP_IF(p(156, s), MSGPACK_PP_FOR_156, MSGPACK_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
+# define MSGPACK_PP_FOR_156(s, p, o, m) MSGPACK_PP_IF(p(157, s), m, MSGPACK_PP_TUPLE_EAT_2)(157, s) MSGPACK_PP_IF(p(157, s), MSGPACK_PP_FOR_157, MSGPACK_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
+# define MSGPACK_PP_FOR_157(s, p, o, m) MSGPACK_PP_IF(p(158, s), m, MSGPACK_PP_TUPLE_EAT_2)(158, s) MSGPACK_PP_IF(p(158, s), MSGPACK_PP_FOR_158, MSGPACK_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
+# define MSGPACK_PP_FOR_158(s, p, o, m) MSGPACK_PP_IF(p(159, s), m, MSGPACK_PP_TUPLE_EAT_2)(159, s) MSGPACK_PP_IF(p(159, s), MSGPACK_PP_FOR_159, MSGPACK_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
+# define MSGPACK_PP_FOR_159(s, p, o, m) MSGPACK_PP_IF(p(160, s), m, MSGPACK_PP_TUPLE_EAT_2)(160, s) MSGPACK_PP_IF(p(160, s), MSGPACK_PP_FOR_160, MSGPACK_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
+# define MSGPACK_PP_FOR_160(s, p, o, m) MSGPACK_PP_IF(p(161, s), m, MSGPACK_PP_TUPLE_EAT_2)(161, s) MSGPACK_PP_IF(p(161, s), MSGPACK_PP_FOR_161, MSGPACK_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
+# define MSGPACK_PP_FOR_161(s, p, o, m) MSGPACK_PP_IF(p(162, s), m, MSGPACK_PP_TUPLE_EAT_2)(162, s) MSGPACK_PP_IF(p(162, s), MSGPACK_PP_FOR_162, MSGPACK_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
+# define MSGPACK_PP_FOR_162(s, p, o, m) MSGPACK_PP_IF(p(163, s), m, MSGPACK_PP_TUPLE_EAT_2)(163, s) MSGPACK_PP_IF(p(163, s), MSGPACK_PP_FOR_163, MSGPACK_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
+# define MSGPACK_PP_FOR_163(s, p, o, m) MSGPACK_PP_IF(p(164, s), m, MSGPACK_PP_TUPLE_EAT_2)(164, s) MSGPACK_PP_IF(p(164, s), MSGPACK_PP_FOR_164, MSGPACK_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
+# define MSGPACK_PP_FOR_164(s, p, o, m) MSGPACK_PP_IF(p(165, s), m, MSGPACK_PP_TUPLE_EAT_2)(165, s) MSGPACK_PP_IF(p(165, s), MSGPACK_PP_FOR_165, MSGPACK_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
+# define MSGPACK_PP_FOR_165(s, p, o, m) MSGPACK_PP_IF(p(166, s), m, MSGPACK_PP_TUPLE_EAT_2)(166, s) MSGPACK_PP_IF(p(166, s), MSGPACK_PP_FOR_166, MSGPACK_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
+# define MSGPACK_PP_FOR_166(s, p, o, m) MSGPACK_PP_IF(p(167, s), m, MSGPACK_PP_TUPLE_EAT_2)(167, s) MSGPACK_PP_IF(p(167, s), MSGPACK_PP_FOR_167, MSGPACK_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
+# define MSGPACK_PP_FOR_167(s, p, o, m) MSGPACK_PP_IF(p(168, s), m, MSGPACK_PP_TUPLE_EAT_2)(168, s) MSGPACK_PP_IF(p(168, s), MSGPACK_PP_FOR_168, MSGPACK_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
+# define MSGPACK_PP_FOR_168(s, p, o, m) MSGPACK_PP_IF(p(169, s), m, MSGPACK_PP_TUPLE_EAT_2)(169, s) MSGPACK_PP_IF(p(169, s), MSGPACK_PP_FOR_169, MSGPACK_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
+# define MSGPACK_PP_FOR_169(s, p, o, m) MSGPACK_PP_IF(p(170, s), m, MSGPACK_PP_TUPLE_EAT_2)(170, s) MSGPACK_PP_IF(p(170, s), MSGPACK_PP_FOR_170, MSGPACK_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
+# define MSGPACK_PP_FOR_170(s, p, o, m) MSGPACK_PP_IF(p(171, s), m, MSGPACK_PP_TUPLE_EAT_2)(171, s) MSGPACK_PP_IF(p(171, s), MSGPACK_PP_FOR_171, MSGPACK_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
+# define MSGPACK_PP_FOR_171(s, p, o, m) MSGPACK_PP_IF(p(172, s), m, MSGPACK_PP_TUPLE_EAT_2)(172, s) MSGPACK_PP_IF(p(172, s), MSGPACK_PP_FOR_172, MSGPACK_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
+# define MSGPACK_PP_FOR_172(s, p, o, m) MSGPACK_PP_IF(p(173, s), m, MSGPACK_PP_TUPLE_EAT_2)(173, s) MSGPACK_PP_IF(p(173, s), MSGPACK_PP_FOR_173, MSGPACK_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
+# define MSGPACK_PP_FOR_173(s, p, o, m) MSGPACK_PP_IF(p(174, s), m, MSGPACK_PP_TUPLE_EAT_2)(174, s) MSGPACK_PP_IF(p(174, s), MSGPACK_PP_FOR_174, MSGPACK_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
+# define MSGPACK_PP_FOR_174(s, p, o, m) MSGPACK_PP_IF(p(175, s), m, MSGPACK_PP_TUPLE_EAT_2)(175, s) MSGPACK_PP_IF(p(175, s), MSGPACK_PP_FOR_175, MSGPACK_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
+# define MSGPACK_PP_FOR_175(s, p, o, m) MSGPACK_PP_IF(p(176, s), m, MSGPACK_PP_TUPLE_EAT_2)(176, s) MSGPACK_PP_IF(p(176, s), MSGPACK_PP_FOR_176, MSGPACK_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
+# define MSGPACK_PP_FOR_176(s, p, o, m) MSGPACK_PP_IF(p(177, s), m, MSGPACK_PP_TUPLE_EAT_2)(177, s) MSGPACK_PP_IF(p(177, s), MSGPACK_PP_FOR_177, MSGPACK_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
+# define MSGPACK_PP_FOR_177(s, p, o, m) MSGPACK_PP_IF(p(178, s), m, MSGPACK_PP_TUPLE_EAT_2)(178, s) MSGPACK_PP_IF(p(178, s), MSGPACK_PP_FOR_178, MSGPACK_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
+# define MSGPACK_PP_FOR_178(s, p, o, m) MSGPACK_PP_IF(p(179, s), m, MSGPACK_PP_TUPLE_EAT_2)(179, s) MSGPACK_PP_IF(p(179, s), MSGPACK_PP_FOR_179, MSGPACK_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
+# define MSGPACK_PP_FOR_179(s, p, o, m) MSGPACK_PP_IF(p(180, s), m, MSGPACK_PP_TUPLE_EAT_2)(180, s) MSGPACK_PP_IF(p(180, s), MSGPACK_PP_FOR_180, MSGPACK_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
+# define MSGPACK_PP_FOR_180(s, p, o, m) MSGPACK_PP_IF(p(181, s), m, MSGPACK_PP_TUPLE_EAT_2)(181, s) MSGPACK_PP_IF(p(181, s), MSGPACK_PP_FOR_181, MSGPACK_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
+# define MSGPACK_PP_FOR_181(s, p, o, m) MSGPACK_PP_IF(p(182, s), m, MSGPACK_PP_TUPLE_EAT_2)(182, s) MSGPACK_PP_IF(p(182, s), MSGPACK_PP_FOR_182, MSGPACK_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
+# define MSGPACK_PP_FOR_182(s, p, o, m) MSGPACK_PP_IF(p(183, s), m, MSGPACK_PP_TUPLE_EAT_2)(183, s) MSGPACK_PP_IF(p(183, s), MSGPACK_PP_FOR_183, MSGPACK_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
+# define MSGPACK_PP_FOR_183(s, p, o, m) MSGPACK_PP_IF(p(184, s), m, MSGPACK_PP_TUPLE_EAT_2)(184, s) MSGPACK_PP_IF(p(184, s), MSGPACK_PP_FOR_184, MSGPACK_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
+# define MSGPACK_PP_FOR_184(s, p, o, m) MSGPACK_PP_IF(p(185, s), m, MSGPACK_PP_TUPLE_EAT_2)(185, s) MSGPACK_PP_IF(p(185, s), MSGPACK_PP_FOR_185, MSGPACK_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
+# define MSGPACK_PP_FOR_185(s, p, o, m) MSGPACK_PP_IF(p(186, s), m, MSGPACK_PP_TUPLE_EAT_2)(186, s) MSGPACK_PP_IF(p(186, s), MSGPACK_PP_FOR_186, MSGPACK_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
+# define MSGPACK_PP_FOR_186(s, p, o, m) MSGPACK_PP_IF(p(187, s), m, MSGPACK_PP_TUPLE_EAT_2)(187, s) MSGPACK_PP_IF(p(187, s), MSGPACK_PP_FOR_187, MSGPACK_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
+# define MSGPACK_PP_FOR_187(s, p, o, m) MSGPACK_PP_IF(p(188, s), m, MSGPACK_PP_TUPLE_EAT_2)(188, s) MSGPACK_PP_IF(p(188, s), MSGPACK_PP_FOR_188, MSGPACK_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
+# define MSGPACK_PP_FOR_188(s, p, o, m) MSGPACK_PP_IF(p(189, s), m, MSGPACK_PP_TUPLE_EAT_2)(189, s) MSGPACK_PP_IF(p(189, s), MSGPACK_PP_FOR_189, MSGPACK_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
+# define MSGPACK_PP_FOR_189(s, p, o, m) MSGPACK_PP_IF(p(190, s), m, MSGPACK_PP_TUPLE_EAT_2)(190, s) MSGPACK_PP_IF(p(190, s), MSGPACK_PP_FOR_190, MSGPACK_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
+# define MSGPACK_PP_FOR_190(s, p, o, m) MSGPACK_PP_IF(p(191, s), m, MSGPACK_PP_TUPLE_EAT_2)(191, s) MSGPACK_PP_IF(p(191, s), MSGPACK_PP_FOR_191, MSGPACK_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
+# define MSGPACK_PP_FOR_191(s, p, o, m) MSGPACK_PP_IF(p(192, s), m, MSGPACK_PP_TUPLE_EAT_2)(192, s) MSGPACK_PP_IF(p(192, s), MSGPACK_PP_FOR_192, MSGPACK_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
+# define MSGPACK_PP_FOR_192(s, p, o, m) MSGPACK_PP_IF(p(193, s), m, MSGPACK_PP_TUPLE_EAT_2)(193, s) MSGPACK_PP_IF(p(193, s), MSGPACK_PP_FOR_193, MSGPACK_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
+# define MSGPACK_PP_FOR_193(s, p, o, m) MSGPACK_PP_IF(p(194, s), m, MSGPACK_PP_TUPLE_EAT_2)(194, s) MSGPACK_PP_IF(p(194, s), MSGPACK_PP_FOR_194, MSGPACK_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
+# define MSGPACK_PP_FOR_194(s, p, o, m) MSGPACK_PP_IF(p(195, s), m, MSGPACK_PP_TUPLE_EAT_2)(195, s) MSGPACK_PP_IF(p(195, s), MSGPACK_PP_FOR_195, MSGPACK_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
+# define MSGPACK_PP_FOR_195(s, p, o, m) MSGPACK_PP_IF(p(196, s), m, MSGPACK_PP_TUPLE_EAT_2)(196, s) MSGPACK_PP_IF(p(196, s), MSGPACK_PP_FOR_196, MSGPACK_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
+# define MSGPACK_PP_FOR_196(s, p, o, m) MSGPACK_PP_IF(p(197, s), m, MSGPACK_PP_TUPLE_EAT_2)(197, s) MSGPACK_PP_IF(p(197, s), MSGPACK_PP_FOR_197, MSGPACK_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
+# define MSGPACK_PP_FOR_197(s, p, o, m) MSGPACK_PP_IF(p(198, s), m, MSGPACK_PP_TUPLE_EAT_2)(198, s) MSGPACK_PP_IF(p(198, s), MSGPACK_PP_FOR_198, MSGPACK_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
+# define MSGPACK_PP_FOR_198(s, p, o, m) MSGPACK_PP_IF(p(199, s), m, MSGPACK_PP_TUPLE_EAT_2)(199, s) MSGPACK_PP_IF(p(199, s), MSGPACK_PP_FOR_199, MSGPACK_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
+# define MSGPACK_PP_FOR_199(s, p, o, m) MSGPACK_PP_IF(p(200, s), m, MSGPACK_PP_TUPLE_EAT_2)(200, s) MSGPACK_PP_IF(p(200, s), MSGPACK_PP_FOR_200, MSGPACK_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
+# define MSGPACK_PP_FOR_200(s, p, o, m) MSGPACK_PP_IF(p(201, s), m, MSGPACK_PP_TUPLE_EAT_2)(201, s) MSGPACK_PP_IF(p(201, s), MSGPACK_PP_FOR_201, MSGPACK_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
+# define MSGPACK_PP_FOR_201(s, p, o, m) MSGPACK_PP_IF(p(202, s), m, MSGPACK_PP_TUPLE_EAT_2)(202, s) MSGPACK_PP_IF(p(202, s), MSGPACK_PP_FOR_202, MSGPACK_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
+# define MSGPACK_PP_FOR_202(s, p, o, m) MSGPACK_PP_IF(p(203, s), m, MSGPACK_PP_TUPLE_EAT_2)(203, s) MSGPACK_PP_IF(p(203, s), MSGPACK_PP_FOR_203, MSGPACK_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
+# define MSGPACK_PP_FOR_203(s, p, o, m) MSGPACK_PP_IF(p(204, s), m, MSGPACK_PP_TUPLE_EAT_2)(204, s) MSGPACK_PP_IF(p(204, s), MSGPACK_PP_FOR_204, MSGPACK_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
+# define MSGPACK_PP_FOR_204(s, p, o, m) MSGPACK_PP_IF(p(205, s), m, MSGPACK_PP_TUPLE_EAT_2)(205, s) MSGPACK_PP_IF(p(205, s), MSGPACK_PP_FOR_205, MSGPACK_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
+# define MSGPACK_PP_FOR_205(s, p, o, m) MSGPACK_PP_IF(p(206, s), m, MSGPACK_PP_TUPLE_EAT_2)(206, s) MSGPACK_PP_IF(p(206, s), MSGPACK_PP_FOR_206, MSGPACK_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
+# define MSGPACK_PP_FOR_206(s, p, o, m) MSGPACK_PP_IF(p(207, s), m, MSGPACK_PP_TUPLE_EAT_2)(207, s) MSGPACK_PP_IF(p(207, s), MSGPACK_PP_FOR_207, MSGPACK_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
+# define MSGPACK_PP_FOR_207(s, p, o, m) MSGPACK_PP_IF(p(208, s), m, MSGPACK_PP_TUPLE_EAT_2)(208, s) MSGPACK_PP_IF(p(208, s), MSGPACK_PP_FOR_208, MSGPACK_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
+# define MSGPACK_PP_FOR_208(s, p, o, m) MSGPACK_PP_IF(p(209, s), m, MSGPACK_PP_TUPLE_EAT_2)(209, s) MSGPACK_PP_IF(p(209, s), MSGPACK_PP_FOR_209, MSGPACK_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
+# define MSGPACK_PP_FOR_209(s, p, o, m) MSGPACK_PP_IF(p(210, s), m, MSGPACK_PP_TUPLE_EAT_2)(210, s) MSGPACK_PP_IF(p(210, s), MSGPACK_PP_FOR_210, MSGPACK_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
+# define MSGPACK_PP_FOR_210(s, p, o, m) MSGPACK_PP_IF(p(211, s), m, MSGPACK_PP_TUPLE_EAT_2)(211, s) MSGPACK_PP_IF(p(211, s), MSGPACK_PP_FOR_211, MSGPACK_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
+# define MSGPACK_PP_FOR_211(s, p, o, m) MSGPACK_PP_IF(p(212, s), m, MSGPACK_PP_TUPLE_EAT_2)(212, s) MSGPACK_PP_IF(p(212, s), MSGPACK_PP_FOR_212, MSGPACK_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
+# define MSGPACK_PP_FOR_212(s, p, o, m) MSGPACK_PP_IF(p(213, s), m, MSGPACK_PP_TUPLE_EAT_2)(213, s) MSGPACK_PP_IF(p(213, s), MSGPACK_PP_FOR_213, MSGPACK_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
+# define MSGPACK_PP_FOR_213(s, p, o, m) MSGPACK_PP_IF(p(214, s), m, MSGPACK_PP_TUPLE_EAT_2)(214, s) MSGPACK_PP_IF(p(214, s), MSGPACK_PP_FOR_214, MSGPACK_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
+# define MSGPACK_PP_FOR_214(s, p, o, m) MSGPACK_PP_IF(p(215, s), m, MSGPACK_PP_TUPLE_EAT_2)(215, s) MSGPACK_PP_IF(p(215, s), MSGPACK_PP_FOR_215, MSGPACK_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
+# define MSGPACK_PP_FOR_215(s, p, o, m) MSGPACK_PP_IF(p(216, s), m, MSGPACK_PP_TUPLE_EAT_2)(216, s) MSGPACK_PP_IF(p(216, s), MSGPACK_PP_FOR_216, MSGPACK_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
+# define MSGPACK_PP_FOR_216(s, p, o, m) MSGPACK_PP_IF(p(217, s), m, MSGPACK_PP_TUPLE_EAT_2)(217, s) MSGPACK_PP_IF(p(217, s), MSGPACK_PP_FOR_217, MSGPACK_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
+# define MSGPACK_PP_FOR_217(s, p, o, m) MSGPACK_PP_IF(p(218, s), m, MSGPACK_PP_TUPLE_EAT_2)(218, s) MSGPACK_PP_IF(p(218, s), MSGPACK_PP_FOR_218, MSGPACK_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
+# define MSGPACK_PP_FOR_218(s, p, o, m) MSGPACK_PP_IF(p(219, s), m, MSGPACK_PP_TUPLE_EAT_2)(219, s) MSGPACK_PP_IF(p(219, s), MSGPACK_PP_FOR_219, MSGPACK_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
+# define MSGPACK_PP_FOR_219(s, p, o, m) MSGPACK_PP_IF(p(220, s), m, MSGPACK_PP_TUPLE_EAT_2)(220, s) MSGPACK_PP_IF(p(220, s), MSGPACK_PP_FOR_220, MSGPACK_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
+# define MSGPACK_PP_FOR_220(s, p, o, m) MSGPACK_PP_IF(p(221, s), m, MSGPACK_PP_TUPLE_EAT_2)(221, s) MSGPACK_PP_IF(p(221, s), MSGPACK_PP_FOR_221, MSGPACK_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
+# define MSGPACK_PP_FOR_221(s, p, o, m) MSGPACK_PP_IF(p(222, s), m, MSGPACK_PP_TUPLE_EAT_2)(222, s) MSGPACK_PP_IF(p(222, s), MSGPACK_PP_FOR_222, MSGPACK_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
+# define MSGPACK_PP_FOR_222(s, p, o, m) MSGPACK_PP_IF(p(223, s), m, MSGPACK_PP_TUPLE_EAT_2)(223, s) MSGPACK_PP_IF(p(223, s), MSGPACK_PP_FOR_223, MSGPACK_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
+# define MSGPACK_PP_FOR_223(s, p, o, m) MSGPACK_PP_IF(p(224, s), m, MSGPACK_PP_TUPLE_EAT_2)(224, s) MSGPACK_PP_IF(p(224, s), MSGPACK_PP_FOR_224, MSGPACK_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
+# define MSGPACK_PP_FOR_224(s, p, o, m) MSGPACK_PP_IF(p(225, s), m, MSGPACK_PP_TUPLE_EAT_2)(225, s) MSGPACK_PP_IF(p(225, s), MSGPACK_PP_FOR_225, MSGPACK_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
+# define MSGPACK_PP_FOR_225(s, p, o, m) MSGPACK_PP_IF(p(226, s), m, MSGPACK_PP_TUPLE_EAT_2)(226, s) MSGPACK_PP_IF(p(226, s), MSGPACK_PP_FOR_226, MSGPACK_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
+# define MSGPACK_PP_FOR_226(s, p, o, m) MSGPACK_PP_IF(p(227, s), m, MSGPACK_PP_TUPLE_EAT_2)(227, s) MSGPACK_PP_IF(p(227, s), MSGPACK_PP_FOR_227, MSGPACK_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
+# define MSGPACK_PP_FOR_227(s, p, o, m) MSGPACK_PP_IF(p(228, s), m, MSGPACK_PP_TUPLE_EAT_2)(228, s) MSGPACK_PP_IF(p(228, s), MSGPACK_PP_FOR_228, MSGPACK_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
+# define MSGPACK_PP_FOR_228(s, p, o, m) MSGPACK_PP_IF(p(229, s), m, MSGPACK_PP_TUPLE_EAT_2)(229, s) MSGPACK_PP_IF(p(229, s), MSGPACK_PP_FOR_229, MSGPACK_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
+# define MSGPACK_PP_FOR_229(s, p, o, m) MSGPACK_PP_IF(p(230, s), m, MSGPACK_PP_TUPLE_EAT_2)(230, s) MSGPACK_PP_IF(p(230, s), MSGPACK_PP_FOR_230, MSGPACK_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
+# define MSGPACK_PP_FOR_230(s, p, o, m) MSGPACK_PP_IF(p(231, s), m, MSGPACK_PP_TUPLE_EAT_2)(231, s) MSGPACK_PP_IF(p(231, s), MSGPACK_PP_FOR_231, MSGPACK_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
+# define MSGPACK_PP_FOR_231(s, p, o, m) MSGPACK_PP_IF(p(232, s), m, MSGPACK_PP_TUPLE_EAT_2)(232, s) MSGPACK_PP_IF(p(232, s), MSGPACK_PP_FOR_232, MSGPACK_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
+# define MSGPACK_PP_FOR_232(s, p, o, m) MSGPACK_PP_IF(p(233, s), m, MSGPACK_PP_TUPLE_EAT_2)(233, s) MSGPACK_PP_IF(p(233, s), MSGPACK_PP_FOR_233, MSGPACK_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
+# define MSGPACK_PP_FOR_233(s, p, o, m) MSGPACK_PP_IF(p(234, s), m, MSGPACK_PP_TUPLE_EAT_2)(234, s) MSGPACK_PP_IF(p(234, s), MSGPACK_PP_FOR_234, MSGPACK_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
+# define MSGPACK_PP_FOR_234(s, p, o, m) MSGPACK_PP_IF(p(235, s), m, MSGPACK_PP_TUPLE_EAT_2)(235, s) MSGPACK_PP_IF(p(235, s), MSGPACK_PP_FOR_235, MSGPACK_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
+# define MSGPACK_PP_FOR_235(s, p, o, m) MSGPACK_PP_IF(p(236, s), m, MSGPACK_PP_TUPLE_EAT_2)(236, s) MSGPACK_PP_IF(p(236, s), MSGPACK_PP_FOR_236, MSGPACK_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
+# define MSGPACK_PP_FOR_236(s, p, o, m) MSGPACK_PP_IF(p(237, s), m, MSGPACK_PP_TUPLE_EAT_2)(237, s) MSGPACK_PP_IF(p(237, s), MSGPACK_PP_FOR_237, MSGPACK_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
+# define MSGPACK_PP_FOR_237(s, p, o, m) MSGPACK_PP_IF(p(238, s), m, MSGPACK_PP_TUPLE_EAT_2)(238, s) MSGPACK_PP_IF(p(238, s), MSGPACK_PP_FOR_238, MSGPACK_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
+# define MSGPACK_PP_FOR_238(s, p, o, m) MSGPACK_PP_IF(p(239, s), m, MSGPACK_PP_TUPLE_EAT_2)(239, s) MSGPACK_PP_IF(p(239, s), MSGPACK_PP_FOR_239, MSGPACK_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
+# define MSGPACK_PP_FOR_239(s, p, o, m) MSGPACK_PP_IF(p(240, s), m, MSGPACK_PP_TUPLE_EAT_2)(240, s) MSGPACK_PP_IF(p(240, s), MSGPACK_PP_FOR_240, MSGPACK_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
+# define MSGPACK_PP_FOR_240(s, p, o, m) MSGPACK_PP_IF(p(241, s), m, MSGPACK_PP_TUPLE_EAT_2)(241, s) MSGPACK_PP_IF(p(241, s), MSGPACK_PP_FOR_241, MSGPACK_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
+# define MSGPACK_PP_FOR_241(s, p, o, m) MSGPACK_PP_IF(p(242, s), m, MSGPACK_PP_TUPLE_EAT_2)(242, s) MSGPACK_PP_IF(p(242, s), MSGPACK_PP_FOR_242, MSGPACK_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
+# define MSGPACK_PP_FOR_242(s, p, o, m) MSGPACK_PP_IF(p(243, s), m, MSGPACK_PP_TUPLE_EAT_2)(243, s) MSGPACK_PP_IF(p(243, s), MSGPACK_PP_FOR_243, MSGPACK_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
+# define MSGPACK_PP_FOR_243(s, p, o, m) MSGPACK_PP_IF(p(244, s), m, MSGPACK_PP_TUPLE_EAT_2)(244, s) MSGPACK_PP_IF(p(244, s), MSGPACK_PP_FOR_244, MSGPACK_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
+# define MSGPACK_PP_FOR_244(s, p, o, m) MSGPACK_PP_IF(p(245, s), m, MSGPACK_PP_TUPLE_EAT_2)(245, s) MSGPACK_PP_IF(p(245, s), MSGPACK_PP_FOR_245, MSGPACK_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
+# define MSGPACK_PP_FOR_245(s, p, o, m) MSGPACK_PP_IF(p(246, s), m, MSGPACK_PP_TUPLE_EAT_2)(246, s) MSGPACK_PP_IF(p(246, s), MSGPACK_PP_FOR_246, MSGPACK_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
+# define MSGPACK_PP_FOR_246(s, p, o, m) MSGPACK_PP_IF(p(247, s), m, MSGPACK_PP_TUPLE_EAT_2)(247, s) MSGPACK_PP_IF(p(247, s), MSGPACK_PP_FOR_247, MSGPACK_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
+# define MSGPACK_PP_FOR_247(s, p, o, m) MSGPACK_PP_IF(p(248, s), m, MSGPACK_PP_TUPLE_EAT_2)(248, s) MSGPACK_PP_IF(p(248, s), MSGPACK_PP_FOR_248, MSGPACK_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
+# define MSGPACK_PP_FOR_248(s, p, o, m) MSGPACK_PP_IF(p(249, s), m, MSGPACK_PP_TUPLE_EAT_2)(249, s) MSGPACK_PP_IF(p(249, s), MSGPACK_PP_FOR_249, MSGPACK_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
+# define MSGPACK_PP_FOR_249(s, p, o, m) MSGPACK_PP_IF(p(250, s), m, MSGPACK_PP_TUPLE_EAT_2)(250, s) MSGPACK_PP_IF(p(250, s), MSGPACK_PP_FOR_250, MSGPACK_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
+# define MSGPACK_PP_FOR_250(s, p, o, m) MSGPACK_PP_IF(p(251, s), m, MSGPACK_PP_TUPLE_EAT_2)(251, s) MSGPACK_PP_IF(p(251, s), MSGPACK_PP_FOR_251, MSGPACK_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
+# define MSGPACK_PP_FOR_251(s, p, o, m) MSGPACK_PP_IF(p(252, s), m, MSGPACK_PP_TUPLE_EAT_2)(252, s) MSGPACK_PP_IF(p(252, s), MSGPACK_PP_FOR_252, MSGPACK_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
+# define MSGPACK_PP_FOR_252(s, p, o, m) MSGPACK_PP_IF(p(253, s), m, MSGPACK_PP_TUPLE_EAT_2)(253, s) MSGPACK_PP_IF(p(253, s), MSGPACK_PP_FOR_253, MSGPACK_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
+# define MSGPACK_PP_FOR_253(s, p, o, m) MSGPACK_PP_IF(p(254, s), m, MSGPACK_PP_TUPLE_EAT_2)(254, s) MSGPACK_PP_IF(p(254, s), MSGPACK_PP_FOR_254, MSGPACK_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
+# define MSGPACK_PP_FOR_254(s, p, o, m) MSGPACK_PP_IF(p(255, s), m, MSGPACK_PP_TUPLE_EAT_2)(255, s) MSGPACK_PP_IF(p(255, s), MSGPACK_PP_FOR_255, MSGPACK_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
+# define MSGPACK_PP_FOR_255(s, p, o, m) MSGPACK_PP_IF(p(256, s), m, MSGPACK_PP_TUPLE_EAT_2)(256, s) MSGPACK_PP_IF(p(256, s), MSGPACK_PP_FOR_256, MSGPACK_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
+# define MSGPACK_PP_FOR_256(s, p, o, m) MSGPACK_PP_IF(p(257, s), m, MSGPACK_PP_TUPLE_EAT_2)(257, s) MSGPACK_PP_IF(p(257, s), MSGPACK_PP_FOR_257, MSGPACK_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum.hpp
new file mode 100644
index 000000000..85521d335
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum.hpp
@@ -0,0 +1,66 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_ENUM */
+#
+# if 0
+# define MSGPACK_PP_ENUM(count, macro, data)
+# endif
+#
+# define MSGPACK_PP_ENUM MSGPACK_PP_CAT(MSGPACK_PP_ENUM_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4))
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_1(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_M_1, (m, d))
+# define MSGPACK_PP_ENUM_2(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_M_2, (m, d))
+# define MSGPACK_PP_ENUM_3(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_M_3, (m, d))
+# else
+# define MSGPACK_PP_ENUM_1(c, m, d) MSGPACK_PP_ENUM_1_I(c, m, d)
+# define MSGPACK_PP_ENUM_2(c, m, d) MSGPACK_PP_ENUM_2_I(c, m, d)
+# define MSGPACK_PP_ENUM_3(c, m, d) MSGPACK_PP_ENUM_3_I(c, m, d)
+# define MSGPACK_PP_ENUM_1_I(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_M_1, (m, d))
+# define MSGPACK_PP_ENUM_2_I(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_M_2, (m, d))
+# define MSGPACK_PP_ENUM_3_I(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_M_3, (m, d))
+# endif
+#
+# define MSGPACK_PP_ENUM_4(c, m, d) MSGPACK_PP_ERROR(0x0003)
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ENUM_M_1(z, n, md) MSGPACK_PP_ENUM_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_M_2(z, n, md) MSGPACK_PP_ENUM_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_M_3(z, n, md) MSGPACK_PP_ENUM_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_M_1_IM(z, n, im) MSGPACK_PP_ENUM_M_1_I(z, n, im)
+# define MSGPACK_PP_ENUM_M_2_IM(z, n, im) MSGPACK_PP_ENUM_M_2_I(z, n, im)
+# define MSGPACK_PP_ENUM_M_3_IM(z, n, im) MSGPACK_PP_ENUM_M_3_I(z, n, im)
+# else
+# define MSGPACK_PP_ENUM_M_1(z, n, md) MSGPACK_PP_ENUM_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# define MSGPACK_PP_ENUM_M_2(z, n, md) MSGPACK_PP_ENUM_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# define MSGPACK_PP_ENUM_M_3(z, n, md) MSGPACK_PP_ENUM_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# endif
+#
+# define MSGPACK_PP_ENUM_M_1_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, n, d)
+# define MSGPACK_PP_ENUM_M_2_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, n, d)
+# define MSGPACK_PP_ENUM_M_3_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, n, d)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp
new file mode 100644
index 000000000..a4203e4c1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp
@@ -0,0 +1,54 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_ENUM_BINARY_PARAMS */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+# else
+# define MSGPACK_PP_ENUM_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_ENUM_BINARY_PARAMS_I(count, p1, p2)
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_BINARY_PARAMS_M_IM(z, n, MSGPACK_PP_TUPLE_REM_2 pp)
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_IM(z, n, im) MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, im)
+# else
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, pp), MSGPACK_PP_TUPLE_ELEM(2, 1, pp))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2)
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) MSGPACK_PP_COMMA_IF(n) p1 ## n p2 ## n
+# else
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_COMMA_IF(n) MSGPACK_PP_CAT(p1, n) MSGPACK_PP_CAT(p2, n)
+# endif
+#
+# /* MSGPACK_PP_ENUM_BINARY_PARAMS_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+# else
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2)
+# define MSGPACK_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params.hpp
new file mode 100644
index 000000000..ceb0757d7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params.hpp
@@ -0,0 +1,41 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+#
+# /* MSGPACK_PP_ENUM_PARAMS */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_PARAMS(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_PARAMS_M, param)
+# else
+# define MSGPACK_PP_ENUM_PARAMS(count, param) MSGPACK_PP_ENUM_PARAMS_I(count, param)
+# define MSGPACK_PP_ENUM_PARAMS_I(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_PARAMS_M, param)
+# endif
+#
+# define MSGPACK_PP_ENUM_PARAMS_M(z, n, param) MSGPACK_PP_COMMA_IF(n) param ## n
+#
+# /* MSGPACK_PP_ENUM_PARAMS_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_PARAMS_Z(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_PARAMS_M, param)
+# else
+# define MSGPACK_PP_ENUM_PARAMS_Z(z, count, param) MSGPACK_PP_ENUM_PARAMS_Z_I(z, count, param)
+# define MSGPACK_PP_ENUM_PARAMS_Z_I(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_PARAMS_M, param)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp
new file mode 100644
index 000000000..f37cac419
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_a_default.hpp
@@ -0,0 +1,25 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/intercept.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp>
+#
+# /* MSGPACK_PP_ENUM_PARAMS_WITH_A_DEFAULT */
+#
+# define MSGPACK_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) MSGPACK_PP_ENUM_BINARY_PARAMS(count, param, = def MSGPACK_PP_INTERCEPT)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp
new file mode 100644
index 000000000..846f7a2e6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_params_with_defaults.hpp
@@ -0,0 +1,24 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/repetition/enum_binary_params.hpp>
+#
+# /* MSGPACK_PP_ENUM_PARAMS_WITH_DEFAULTS */
+#
+# define MSGPACK_PP_ENUM_PARAMS_WITH_DEFAULTS(count, param, def) MSGPACK_PP_ENUM_BINARY_PARAMS(count, param, = def)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted.hpp
new file mode 100644
index 000000000..cd7be70f1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted.hpp
@@ -0,0 +1,68 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_ENUM_SHIFTED */
+#
+# if 0
+# define MSGPACK_PP_ENUM_SHIFTED(count, macro, data)
+# endif
+#
+# define MSGPACK_PP_ENUM_SHIFTED MSGPACK_PP_CAT(MSGPACK_PP_ENUM_SHIFTED_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4))
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_SHIFTED_1(c, m, d) MSGPACK_PP_REPEAT_1(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_1, (m, d))
+# define MSGPACK_PP_ENUM_SHIFTED_2(c, m, d) MSGPACK_PP_REPEAT_2(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_2, (m, d))
+# define MSGPACK_PP_ENUM_SHIFTED_3(c, m, d) MSGPACK_PP_REPEAT_3(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_3, (m, d))
+# else
+# define MSGPACK_PP_ENUM_SHIFTED_1(c, m, d) MSGPACK_PP_ENUM_SHIFTED_1_I(c, m, d)
+# define MSGPACK_PP_ENUM_SHIFTED_2(c, m, d) MSGPACK_PP_ENUM_SHIFTED_1_2(c, m, d)
+# define MSGPACK_PP_ENUM_SHIFTED_3(c, m, d) MSGPACK_PP_ENUM_SHIFTED_1_3(c, m, d)
+# define MSGPACK_PP_ENUM_SHIFTED_1_I(c, m, d) MSGPACK_PP_REPEAT_1(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_1, (m, d))
+# define MSGPACK_PP_ENUM_SHIFTED_2_I(c, m, d) MSGPACK_PP_REPEAT_2(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_2, (m, d))
+# define MSGPACK_PP_ENUM_SHIFTED_3_I(c, m, d) MSGPACK_PP_REPEAT_3(MSGPACK_PP_DEC(c), MSGPACK_PP_ENUM_SHIFTED_M_3, (m, d))
+# endif
+#
+# define MSGPACK_PP_ENUM_SHIFTED_4(c, m, d) MSGPACK_PP_ERROR(0x0003)
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ENUM_SHIFTED_M_1(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_SHIFTED_M_2(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_SHIFTED_M_3(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_SHIFTED_M_1_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_M_1_I(z, n, im)
+# define MSGPACK_PP_ENUM_SHIFTED_M_2_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_M_2_I(z, n, im)
+# define MSGPACK_PP_ENUM_SHIFTED_M_3_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_M_3_I(z, n, im)
+# else
+# define MSGPACK_PP_ENUM_SHIFTED_M_1(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# define MSGPACK_PP_ENUM_SHIFTED_M_2(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# define MSGPACK_PP_ENUM_SHIFTED_M_3(z, n, md) MSGPACK_PP_ENUM_SHIFTED_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# endif
+#
+# define MSGPACK_PP_ENUM_SHIFTED_M_1_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, MSGPACK_PP_INC(n), d)
+# define MSGPACK_PP_ENUM_SHIFTED_M_2_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, MSGPACK_PP_INC(n), d)
+# define MSGPACK_PP_ENUM_SHIFTED_M_3_I(z, n, m, d) MSGPACK_PP_COMMA_IF(n) m(z, MSGPACK_PP_INC(n), d)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp
new file mode 100644
index 000000000..2877c5f2d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_binary_params.hpp
@@ -0,0 +1,51 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2005. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_BINARY_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# else
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2)
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_I(count, p1, p2) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, MSGPACK_PP_TUPLE_REM_2 pp)
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_IM(z, n, im) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, im)
+# else
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, pp), MSGPACK_PP_TUPLE_ELEM(2, 1, pp))
+# endif
+#
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_COMMA_IF(n) MSGPACK_PP_CAT(p1, MSGPACK_PP_INC(n)) MSGPACK_PP_CAT(p2, MSGPACK_PP_INC(n))
+#
+# /* MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# else
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2)
+# define MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_Z_I(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_params.hpp
new file mode 100644
index 000000000..79b71270d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_shifted_params.hpp
@@ -0,0 +1,44 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/comma_if.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+#
+# /* MSGPACK_PP_ENUM_SHIFTED_PARAMS */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_SHIFTED_PARAMS(count, param) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param)
+# else
+# define MSGPACK_PP_ENUM_SHIFTED_PARAMS(count, param) MSGPACK_PP_ENUM_SHIFTED_PARAMS_I(count, param)
+# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_I(count, param) MSGPACK_PP_REPEAT(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param)
+# endif
+#
+# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) MSGPACK_PP_COMMA_IF(n) MSGPACK_PP_CAT(param, MSGPACK_PP_INC(n))
+#
+# /* MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param)
+# else
+# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param)
+# define MSGPACK_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) MSGPACK_PP_REPEAT_ ## z(MSGPACK_PP_DEC(count), MSGPACK_PP_ENUM_SHIFTED_PARAMS_M, param)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing.hpp
new file mode 100644
index 000000000..e82b101b2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing.hpp
@@ -0,0 +1,63 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_ENUM_TRAILING */
+#
+# if 0
+# define MSGPACK_PP_ENUM_TRAILING(count, macro, data)
+# endif
+#
+# define MSGPACK_PP_ENUM_TRAILING MSGPACK_PP_CAT(MSGPACK_PP_ENUM_TRAILING_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4))
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_TRAILING_1(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_TRAILING_M_1, (m, d))
+# define MSGPACK_PP_ENUM_TRAILING_2(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_TRAILING_M_2, (m, d))
+# define MSGPACK_PP_ENUM_TRAILING_3(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_TRAILING_M_3, (m, d))
+# else
+# define MSGPACK_PP_ENUM_TRAILING_1(c, m, d) MSGPACK_PP_ENUM_TRAILING_1_I(c, m, d)
+# define MSGPACK_PP_ENUM_TRAILING_2(c, m, d) MSGPACK_PP_ENUM_TRAILING_2_I(c, m, d)
+# define MSGPACK_PP_ENUM_TRAILING_3(c, m, d) MSGPACK_PP_ENUM_TRAILING_3_I(c, m, d)
+# define MSGPACK_PP_ENUM_TRAILING_1_I(c, m, d) MSGPACK_PP_REPEAT_1(c, MSGPACK_PP_ENUM_TRAILING_M_1, (m, d))
+# define MSGPACK_PP_ENUM_TRAILING_2_I(c, m, d) MSGPACK_PP_REPEAT_2(c, MSGPACK_PP_ENUM_TRAILING_M_2, (m, d))
+# define MSGPACK_PP_ENUM_TRAILING_3_I(c, m, d) MSGPACK_PP_REPEAT_3(c, MSGPACK_PP_ENUM_TRAILING_M_3, (m, d))
+# endif
+#
+# define MSGPACK_PP_ENUM_TRAILING_4(c, m, d) MSGPACK_PP_ERROR(0x0003)
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ENUM_TRAILING_M_1(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_TRAILING_M_2(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_TRAILING_M_3(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_2 md)
+# define MSGPACK_PP_ENUM_TRAILING_M_1_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_M_1_I(z, n, im)
+# define MSGPACK_PP_ENUM_TRAILING_M_2_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_M_2_I(z, n, im)
+# define MSGPACK_PP_ENUM_TRAILING_M_3_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_M_3_I(z, n, im)
+# else
+# define MSGPACK_PP_ENUM_TRAILING_M_1(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# define MSGPACK_PP_ENUM_TRAILING_M_2(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# define MSGPACK_PP_ENUM_TRAILING_M_3(z, n, md) MSGPACK_PP_ENUM_TRAILING_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, md), MSGPACK_PP_TUPLE_ELEM(2, 1, md))
+# endif
+#
+# define MSGPACK_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d)
+# define MSGPACK_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d)
+# define MSGPACK_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp
new file mode 100644
index 000000000..b24696566
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_binary_params.hpp
@@ -0,0 +1,53 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_BINARY_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# else
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS(count, p1, p2) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2)
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_I(count, p1, p2) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, MSGPACK_PP_TUPLE_REM_2 pp)
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_IM(z, n, im) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, im)
+# else
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M(z, n, pp) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, MSGPACK_PP_TUPLE_ELEM(2, 0, pp), MSGPACK_PP_TUPLE_ELEM(2, 1, pp))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2)
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_II(z, n, p1, p2) , p1 ## n p2 ## n
+# else
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M_I(z, n, p1, p2) , MSGPACK_PP_CAT(p1, n) MSGPACK_PP_CAT(p2, n)
+# endif
+#
+# /* MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# else
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z(z, count, p1, p2) MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2)
+# define MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_Z_I(z, count, p1, p2) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_BINARY_PARAMS_M, (p1, p2))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_params.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_params.hpp
new file mode 100644
index 000000000..2ff8d6398
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/enum_trailing_params.hpp
@@ -0,0 +1,38 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+#
+# /* MSGPACK_PP_ENUM_TRAILING_PARAMS */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_TRAILING_PARAMS(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param)
+# else
+# define MSGPACK_PP_ENUM_TRAILING_PARAMS(count, param) MSGPACK_PP_ENUM_TRAILING_PARAMS_I(count, param)
+# define MSGPACK_PP_ENUM_TRAILING_PARAMS_I(count, param) MSGPACK_PP_REPEAT(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param)
+# endif
+#
+# define MSGPACK_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n
+#
+# /* MSGPACK_PP_ENUM_TRAILING_PARAMS_Z */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param)
+# else
+# define MSGPACK_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) MSGPACK_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param)
+# define MSGPACK_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) MSGPACK_PP_REPEAT_ ## z(count, MSGPACK_PP_ENUM_TRAILING_PARAMS_M, param)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/for.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/for.hpp
new file mode 100644
index 000000000..1dee369d5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/for.hpp
@@ -0,0 +1,306 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_FOR_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_FOR_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+#
+# /* MSGPACK_PP_FOR */
+#
+# if 0
+# define MSGPACK_PP_FOR(state, pred, op, macro)
+# endif
+#
+# define MSGPACK_PP_FOR MSGPACK_PP_CAT(MSGPACK_PP_FOR_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_FOR_P, 256))
+#
+# define MSGPACK_PP_FOR_P(n) MSGPACK_PP_CAT(MSGPACK_PP_FOR_CHECK_, MSGPACK_PP_FOR_ ## n(1, MSGPACK_PP_FOR_SR_P, MSGPACK_PP_FOR_SR_O, MSGPACK_PP_FOR_SR_M))
+#
+# define MSGPACK_PP_FOR_SR_P(r, s) s
+# define MSGPACK_PP_FOR_SR_O(r, s) 0
+# define MSGPACK_PP_FOR_SR_M(r, s) MSGPACK_PP_NIL
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# include <rpc/msgpack/preprocessor/repetition/detail/edg/for.hpp>
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# include <rpc/msgpack/preprocessor/repetition/detail/msvc/for.hpp>
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# include <rpc/msgpack/preprocessor/repetition/detail/dmc/for.hpp>
+# else
+# include <rpc/msgpack/preprocessor/repetition/detail/for.hpp>
+# endif
+#
+# define MSGPACK_PP_FOR_257(s, p, o, m) MSGPACK_PP_ERROR(0x0002)
+#
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_NIL 1
+#
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_1(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_2(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_3(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_4(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_5(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_6(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_7(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_8(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_9(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_10(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_11(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_12(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_13(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_14(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_15(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_16(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_17(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_18(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_19(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_20(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_21(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_22(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_23(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_24(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_25(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_26(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_27(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_28(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_29(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_30(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_31(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_32(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_33(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_34(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_35(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_36(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_37(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_38(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_39(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_40(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_41(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_42(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_43(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_44(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_45(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_46(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_47(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_48(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_49(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_50(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_51(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_52(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_53(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_54(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_55(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_56(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_57(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_58(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_59(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_60(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_61(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_62(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_63(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_64(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_65(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_66(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_67(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_68(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_69(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_70(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_71(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_72(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_73(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_74(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_75(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_76(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_77(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_78(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_79(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_80(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_81(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_82(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_83(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_84(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_85(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_86(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_87(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_88(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_89(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_90(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_91(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_92(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_93(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_94(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_95(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_96(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_97(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_98(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_99(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_100(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_101(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_102(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_103(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_104(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_105(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_106(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_107(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_108(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_109(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_110(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_111(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_112(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_113(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_114(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_115(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_116(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_117(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_118(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_119(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_120(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_121(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_122(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_123(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_124(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_125(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_126(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_127(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_128(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_129(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_130(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_131(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_132(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_133(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_134(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_135(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_136(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_137(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_138(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_139(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_140(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_141(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_142(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_143(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_144(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_145(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_146(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_147(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_148(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_149(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_150(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_151(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_152(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_153(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_154(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_155(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_156(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_157(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_158(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_159(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_160(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_161(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_162(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_163(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_164(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_165(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_166(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_167(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_168(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_169(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_170(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_171(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_172(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_173(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_174(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_175(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_176(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_177(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_178(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_179(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_180(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_181(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_182(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_183(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_184(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_185(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_186(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_187(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_188(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_189(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_190(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_191(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_192(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_193(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_194(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_195(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_196(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_197(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_198(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_199(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_200(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_201(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_202(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_203(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_204(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_205(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_206(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_207(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_208(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_209(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_210(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_211(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_212(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_213(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_214(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_215(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_216(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_217(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_218(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_219(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_220(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_221(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_222(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_223(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_224(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_225(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_226(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_227(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_228(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_229(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_230(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_231(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_232(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_233(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_234(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_235(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_236(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_237(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_238(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_239(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_240(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_241(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_242(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_243(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_244(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_245(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_246(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_247(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_248(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_249(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_250(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_251(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_252(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_253(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_254(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_255(s, p, o, m) 0
+# define MSGPACK_PP_FOR_CHECK_MSGPACK_PP_FOR_256(s, p, o, m) 0
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat.hpp
new file mode 100644
index 000000000..34be79910
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat.hpp
@@ -0,0 +1,825 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_REPEAT_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_REPEAT_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# /* MSGPACK_PP_REPEAT */
+#
+# if 0
+# define MSGPACK_PP_REPEAT(count, macro, data)
+# endif
+#
+# define MSGPACK_PP_REPEAT MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4))
+#
+# define MSGPACK_PP_REPEAT_P(n) MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_CHECK_, MSGPACK_PP_REPEAT_ ## n(1, MSGPACK_PP_NIL MSGPACK_PP_TUPLE_EAT_3, MSGPACK_PP_NIL))
+#
+# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_NIL 1
+# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_REPEAT_1(c, m, d) 0
+# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_REPEAT_2(c, m, d) 0
+# define MSGPACK_PP_REPEAT_CHECK_MSGPACK_PP_REPEAT_3(c, m, d) 0
+#
+# define MSGPACK_PP_REPEAT_1(c, m, d) MSGPACK_PP_REPEAT_1_I(c, m, d)
+# define MSGPACK_PP_REPEAT_2(c, m, d) MSGPACK_PP_REPEAT_2_I(c, m, d)
+# define MSGPACK_PP_REPEAT_3(c, m, d) MSGPACK_PP_REPEAT_3_I(c, m, d)
+# define MSGPACK_PP_REPEAT_4(c, m, d) MSGPACK_PP_ERROR(0x0003)
+#
+# define MSGPACK_PP_REPEAT_1_I(c, m, d) MSGPACK_PP_REPEAT_1_ ## c(m, d)
+# define MSGPACK_PP_REPEAT_2_I(c, m, d) MSGPACK_PP_REPEAT_2_ ## c(m, d)
+# define MSGPACK_PP_REPEAT_3_I(c, m, d) MSGPACK_PP_REPEAT_3_ ## c(m, d)
+#
+# define MSGPACK_PP_REPEAT_1ST MSGPACK_PP_REPEAT_1
+# define MSGPACK_PP_REPEAT_2ND MSGPACK_PP_REPEAT_2
+# define MSGPACK_PP_REPEAT_3RD MSGPACK_PP_REPEAT_3
+#
+# define MSGPACK_PP_REPEAT_1_0(m, d)
+# define MSGPACK_PP_REPEAT_1_1(m, d) m(2, 0, d)
+# define MSGPACK_PP_REPEAT_1_2(m, d) MSGPACK_PP_REPEAT_1_1(m, d) m(2, 1, d)
+# define MSGPACK_PP_REPEAT_1_3(m, d) MSGPACK_PP_REPEAT_1_2(m, d) m(2, 2, d)
+# define MSGPACK_PP_REPEAT_1_4(m, d) MSGPACK_PP_REPEAT_1_3(m, d) m(2, 3, d)
+# define MSGPACK_PP_REPEAT_1_5(m, d) MSGPACK_PP_REPEAT_1_4(m, d) m(2, 4, d)
+# define MSGPACK_PP_REPEAT_1_6(m, d) MSGPACK_PP_REPEAT_1_5(m, d) m(2, 5, d)
+# define MSGPACK_PP_REPEAT_1_7(m, d) MSGPACK_PP_REPEAT_1_6(m, d) m(2, 6, d)
+# define MSGPACK_PP_REPEAT_1_8(m, d) MSGPACK_PP_REPEAT_1_7(m, d) m(2, 7, d)
+# define MSGPACK_PP_REPEAT_1_9(m, d) MSGPACK_PP_REPEAT_1_8(m, d) m(2, 8, d)
+# define MSGPACK_PP_REPEAT_1_10(m, d) MSGPACK_PP_REPEAT_1_9(m, d) m(2, 9, d)
+# define MSGPACK_PP_REPEAT_1_11(m, d) MSGPACK_PP_REPEAT_1_10(m, d) m(2, 10, d)
+# define MSGPACK_PP_REPEAT_1_12(m, d) MSGPACK_PP_REPEAT_1_11(m, d) m(2, 11, d)
+# define MSGPACK_PP_REPEAT_1_13(m, d) MSGPACK_PP_REPEAT_1_12(m, d) m(2, 12, d)
+# define MSGPACK_PP_REPEAT_1_14(m, d) MSGPACK_PP_REPEAT_1_13(m, d) m(2, 13, d)
+# define MSGPACK_PP_REPEAT_1_15(m, d) MSGPACK_PP_REPEAT_1_14(m, d) m(2, 14, d)
+# define MSGPACK_PP_REPEAT_1_16(m, d) MSGPACK_PP_REPEAT_1_15(m, d) m(2, 15, d)
+# define MSGPACK_PP_REPEAT_1_17(m, d) MSGPACK_PP_REPEAT_1_16(m, d) m(2, 16, d)
+# define MSGPACK_PP_REPEAT_1_18(m, d) MSGPACK_PP_REPEAT_1_17(m, d) m(2, 17, d)
+# define MSGPACK_PP_REPEAT_1_19(m, d) MSGPACK_PP_REPEAT_1_18(m, d) m(2, 18, d)
+# define MSGPACK_PP_REPEAT_1_20(m, d) MSGPACK_PP_REPEAT_1_19(m, d) m(2, 19, d)
+# define MSGPACK_PP_REPEAT_1_21(m, d) MSGPACK_PP_REPEAT_1_20(m, d) m(2, 20, d)
+# define MSGPACK_PP_REPEAT_1_22(m, d) MSGPACK_PP_REPEAT_1_21(m, d) m(2, 21, d)
+# define MSGPACK_PP_REPEAT_1_23(m, d) MSGPACK_PP_REPEAT_1_22(m, d) m(2, 22, d)
+# define MSGPACK_PP_REPEAT_1_24(m, d) MSGPACK_PP_REPEAT_1_23(m, d) m(2, 23, d)
+# define MSGPACK_PP_REPEAT_1_25(m, d) MSGPACK_PP_REPEAT_1_24(m, d) m(2, 24, d)
+# define MSGPACK_PP_REPEAT_1_26(m, d) MSGPACK_PP_REPEAT_1_25(m, d) m(2, 25, d)
+# define MSGPACK_PP_REPEAT_1_27(m, d) MSGPACK_PP_REPEAT_1_26(m, d) m(2, 26, d)
+# define MSGPACK_PP_REPEAT_1_28(m, d) MSGPACK_PP_REPEAT_1_27(m, d) m(2, 27, d)
+# define MSGPACK_PP_REPEAT_1_29(m, d) MSGPACK_PP_REPEAT_1_28(m, d) m(2, 28, d)
+# define MSGPACK_PP_REPEAT_1_30(m, d) MSGPACK_PP_REPEAT_1_29(m, d) m(2, 29, d)
+# define MSGPACK_PP_REPEAT_1_31(m, d) MSGPACK_PP_REPEAT_1_30(m, d) m(2, 30, d)
+# define MSGPACK_PP_REPEAT_1_32(m, d) MSGPACK_PP_REPEAT_1_31(m, d) m(2, 31, d)
+# define MSGPACK_PP_REPEAT_1_33(m, d) MSGPACK_PP_REPEAT_1_32(m, d) m(2, 32, d)
+# define MSGPACK_PP_REPEAT_1_34(m, d) MSGPACK_PP_REPEAT_1_33(m, d) m(2, 33, d)
+# define MSGPACK_PP_REPEAT_1_35(m, d) MSGPACK_PP_REPEAT_1_34(m, d) m(2, 34, d)
+# define MSGPACK_PP_REPEAT_1_36(m, d) MSGPACK_PP_REPEAT_1_35(m, d) m(2, 35, d)
+# define MSGPACK_PP_REPEAT_1_37(m, d) MSGPACK_PP_REPEAT_1_36(m, d) m(2, 36, d)
+# define MSGPACK_PP_REPEAT_1_38(m, d) MSGPACK_PP_REPEAT_1_37(m, d) m(2, 37, d)
+# define MSGPACK_PP_REPEAT_1_39(m, d) MSGPACK_PP_REPEAT_1_38(m, d) m(2, 38, d)
+# define MSGPACK_PP_REPEAT_1_40(m, d) MSGPACK_PP_REPEAT_1_39(m, d) m(2, 39, d)
+# define MSGPACK_PP_REPEAT_1_41(m, d) MSGPACK_PP_REPEAT_1_40(m, d) m(2, 40, d)
+# define MSGPACK_PP_REPEAT_1_42(m, d) MSGPACK_PP_REPEAT_1_41(m, d) m(2, 41, d)
+# define MSGPACK_PP_REPEAT_1_43(m, d) MSGPACK_PP_REPEAT_1_42(m, d) m(2, 42, d)
+# define MSGPACK_PP_REPEAT_1_44(m, d) MSGPACK_PP_REPEAT_1_43(m, d) m(2, 43, d)
+# define MSGPACK_PP_REPEAT_1_45(m, d) MSGPACK_PP_REPEAT_1_44(m, d) m(2, 44, d)
+# define MSGPACK_PP_REPEAT_1_46(m, d) MSGPACK_PP_REPEAT_1_45(m, d) m(2, 45, d)
+# define MSGPACK_PP_REPEAT_1_47(m, d) MSGPACK_PP_REPEAT_1_46(m, d) m(2, 46, d)
+# define MSGPACK_PP_REPEAT_1_48(m, d) MSGPACK_PP_REPEAT_1_47(m, d) m(2, 47, d)
+# define MSGPACK_PP_REPEAT_1_49(m, d) MSGPACK_PP_REPEAT_1_48(m, d) m(2, 48, d)
+# define MSGPACK_PP_REPEAT_1_50(m, d) MSGPACK_PP_REPEAT_1_49(m, d) m(2, 49, d)
+# define MSGPACK_PP_REPEAT_1_51(m, d) MSGPACK_PP_REPEAT_1_50(m, d) m(2, 50, d)
+# define MSGPACK_PP_REPEAT_1_52(m, d) MSGPACK_PP_REPEAT_1_51(m, d) m(2, 51, d)
+# define MSGPACK_PP_REPEAT_1_53(m, d) MSGPACK_PP_REPEAT_1_52(m, d) m(2, 52, d)
+# define MSGPACK_PP_REPEAT_1_54(m, d) MSGPACK_PP_REPEAT_1_53(m, d) m(2, 53, d)
+# define MSGPACK_PP_REPEAT_1_55(m, d) MSGPACK_PP_REPEAT_1_54(m, d) m(2, 54, d)
+# define MSGPACK_PP_REPEAT_1_56(m, d) MSGPACK_PP_REPEAT_1_55(m, d) m(2, 55, d)
+# define MSGPACK_PP_REPEAT_1_57(m, d) MSGPACK_PP_REPEAT_1_56(m, d) m(2, 56, d)
+# define MSGPACK_PP_REPEAT_1_58(m, d) MSGPACK_PP_REPEAT_1_57(m, d) m(2, 57, d)
+# define MSGPACK_PP_REPEAT_1_59(m, d) MSGPACK_PP_REPEAT_1_58(m, d) m(2, 58, d)
+# define MSGPACK_PP_REPEAT_1_60(m, d) MSGPACK_PP_REPEAT_1_59(m, d) m(2, 59, d)
+# define MSGPACK_PP_REPEAT_1_61(m, d) MSGPACK_PP_REPEAT_1_60(m, d) m(2, 60, d)
+# define MSGPACK_PP_REPEAT_1_62(m, d) MSGPACK_PP_REPEAT_1_61(m, d) m(2, 61, d)
+# define MSGPACK_PP_REPEAT_1_63(m, d) MSGPACK_PP_REPEAT_1_62(m, d) m(2, 62, d)
+# define MSGPACK_PP_REPEAT_1_64(m, d) MSGPACK_PP_REPEAT_1_63(m, d) m(2, 63, d)
+# define MSGPACK_PP_REPEAT_1_65(m, d) MSGPACK_PP_REPEAT_1_64(m, d) m(2, 64, d)
+# define MSGPACK_PP_REPEAT_1_66(m, d) MSGPACK_PP_REPEAT_1_65(m, d) m(2, 65, d)
+# define MSGPACK_PP_REPEAT_1_67(m, d) MSGPACK_PP_REPEAT_1_66(m, d) m(2, 66, d)
+# define MSGPACK_PP_REPEAT_1_68(m, d) MSGPACK_PP_REPEAT_1_67(m, d) m(2, 67, d)
+# define MSGPACK_PP_REPEAT_1_69(m, d) MSGPACK_PP_REPEAT_1_68(m, d) m(2, 68, d)
+# define MSGPACK_PP_REPEAT_1_70(m, d) MSGPACK_PP_REPEAT_1_69(m, d) m(2, 69, d)
+# define MSGPACK_PP_REPEAT_1_71(m, d) MSGPACK_PP_REPEAT_1_70(m, d) m(2, 70, d)
+# define MSGPACK_PP_REPEAT_1_72(m, d) MSGPACK_PP_REPEAT_1_71(m, d) m(2, 71, d)
+# define MSGPACK_PP_REPEAT_1_73(m, d) MSGPACK_PP_REPEAT_1_72(m, d) m(2, 72, d)
+# define MSGPACK_PP_REPEAT_1_74(m, d) MSGPACK_PP_REPEAT_1_73(m, d) m(2, 73, d)
+# define MSGPACK_PP_REPEAT_1_75(m, d) MSGPACK_PP_REPEAT_1_74(m, d) m(2, 74, d)
+# define MSGPACK_PP_REPEAT_1_76(m, d) MSGPACK_PP_REPEAT_1_75(m, d) m(2, 75, d)
+# define MSGPACK_PP_REPEAT_1_77(m, d) MSGPACK_PP_REPEAT_1_76(m, d) m(2, 76, d)
+# define MSGPACK_PP_REPEAT_1_78(m, d) MSGPACK_PP_REPEAT_1_77(m, d) m(2, 77, d)
+# define MSGPACK_PP_REPEAT_1_79(m, d) MSGPACK_PP_REPEAT_1_78(m, d) m(2, 78, d)
+# define MSGPACK_PP_REPEAT_1_80(m, d) MSGPACK_PP_REPEAT_1_79(m, d) m(2, 79, d)
+# define MSGPACK_PP_REPEAT_1_81(m, d) MSGPACK_PP_REPEAT_1_80(m, d) m(2, 80, d)
+# define MSGPACK_PP_REPEAT_1_82(m, d) MSGPACK_PP_REPEAT_1_81(m, d) m(2, 81, d)
+# define MSGPACK_PP_REPEAT_1_83(m, d) MSGPACK_PP_REPEAT_1_82(m, d) m(2, 82, d)
+# define MSGPACK_PP_REPEAT_1_84(m, d) MSGPACK_PP_REPEAT_1_83(m, d) m(2, 83, d)
+# define MSGPACK_PP_REPEAT_1_85(m, d) MSGPACK_PP_REPEAT_1_84(m, d) m(2, 84, d)
+# define MSGPACK_PP_REPEAT_1_86(m, d) MSGPACK_PP_REPEAT_1_85(m, d) m(2, 85, d)
+# define MSGPACK_PP_REPEAT_1_87(m, d) MSGPACK_PP_REPEAT_1_86(m, d) m(2, 86, d)
+# define MSGPACK_PP_REPEAT_1_88(m, d) MSGPACK_PP_REPEAT_1_87(m, d) m(2, 87, d)
+# define MSGPACK_PP_REPEAT_1_89(m, d) MSGPACK_PP_REPEAT_1_88(m, d) m(2, 88, d)
+# define MSGPACK_PP_REPEAT_1_90(m, d) MSGPACK_PP_REPEAT_1_89(m, d) m(2, 89, d)
+# define MSGPACK_PP_REPEAT_1_91(m, d) MSGPACK_PP_REPEAT_1_90(m, d) m(2, 90, d)
+# define MSGPACK_PP_REPEAT_1_92(m, d) MSGPACK_PP_REPEAT_1_91(m, d) m(2, 91, d)
+# define MSGPACK_PP_REPEAT_1_93(m, d) MSGPACK_PP_REPEAT_1_92(m, d) m(2, 92, d)
+# define MSGPACK_PP_REPEAT_1_94(m, d) MSGPACK_PP_REPEAT_1_93(m, d) m(2, 93, d)
+# define MSGPACK_PP_REPEAT_1_95(m, d) MSGPACK_PP_REPEAT_1_94(m, d) m(2, 94, d)
+# define MSGPACK_PP_REPEAT_1_96(m, d) MSGPACK_PP_REPEAT_1_95(m, d) m(2, 95, d)
+# define MSGPACK_PP_REPEAT_1_97(m, d) MSGPACK_PP_REPEAT_1_96(m, d) m(2, 96, d)
+# define MSGPACK_PP_REPEAT_1_98(m, d) MSGPACK_PP_REPEAT_1_97(m, d) m(2, 97, d)
+# define MSGPACK_PP_REPEAT_1_99(m, d) MSGPACK_PP_REPEAT_1_98(m, d) m(2, 98, d)
+# define MSGPACK_PP_REPEAT_1_100(m, d) MSGPACK_PP_REPEAT_1_99(m, d) m(2, 99, d)
+# define MSGPACK_PP_REPEAT_1_101(m, d) MSGPACK_PP_REPEAT_1_100(m, d) m(2, 100, d)
+# define MSGPACK_PP_REPEAT_1_102(m, d) MSGPACK_PP_REPEAT_1_101(m, d) m(2, 101, d)
+# define MSGPACK_PP_REPEAT_1_103(m, d) MSGPACK_PP_REPEAT_1_102(m, d) m(2, 102, d)
+# define MSGPACK_PP_REPEAT_1_104(m, d) MSGPACK_PP_REPEAT_1_103(m, d) m(2, 103, d)
+# define MSGPACK_PP_REPEAT_1_105(m, d) MSGPACK_PP_REPEAT_1_104(m, d) m(2, 104, d)
+# define MSGPACK_PP_REPEAT_1_106(m, d) MSGPACK_PP_REPEAT_1_105(m, d) m(2, 105, d)
+# define MSGPACK_PP_REPEAT_1_107(m, d) MSGPACK_PP_REPEAT_1_106(m, d) m(2, 106, d)
+# define MSGPACK_PP_REPEAT_1_108(m, d) MSGPACK_PP_REPEAT_1_107(m, d) m(2, 107, d)
+# define MSGPACK_PP_REPEAT_1_109(m, d) MSGPACK_PP_REPEAT_1_108(m, d) m(2, 108, d)
+# define MSGPACK_PP_REPEAT_1_110(m, d) MSGPACK_PP_REPEAT_1_109(m, d) m(2, 109, d)
+# define MSGPACK_PP_REPEAT_1_111(m, d) MSGPACK_PP_REPEAT_1_110(m, d) m(2, 110, d)
+# define MSGPACK_PP_REPEAT_1_112(m, d) MSGPACK_PP_REPEAT_1_111(m, d) m(2, 111, d)
+# define MSGPACK_PP_REPEAT_1_113(m, d) MSGPACK_PP_REPEAT_1_112(m, d) m(2, 112, d)
+# define MSGPACK_PP_REPEAT_1_114(m, d) MSGPACK_PP_REPEAT_1_113(m, d) m(2, 113, d)
+# define MSGPACK_PP_REPEAT_1_115(m, d) MSGPACK_PP_REPEAT_1_114(m, d) m(2, 114, d)
+# define MSGPACK_PP_REPEAT_1_116(m, d) MSGPACK_PP_REPEAT_1_115(m, d) m(2, 115, d)
+# define MSGPACK_PP_REPEAT_1_117(m, d) MSGPACK_PP_REPEAT_1_116(m, d) m(2, 116, d)
+# define MSGPACK_PP_REPEAT_1_118(m, d) MSGPACK_PP_REPEAT_1_117(m, d) m(2, 117, d)
+# define MSGPACK_PP_REPEAT_1_119(m, d) MSGPACK_PP_REPEAT_1_118(m, d) m(2, 118, d)
+# define MSGPACK_PP_REPEAT_1_120(m, d) MSGPACK_PP_REPEAT_1_119(m, d) m(2, 119, d)
+# define MSGPACK_PP_REPEAT_1_121(m, d) MSGPACK_PP_REPEAT_1_120(m, d) m(2, 120, d)
+# define MSGPACK_PP_REPEAT_1_122(m, d) MSGPACK_PP_REPEAT_1_121(m, d) m(2, 121, d)
+# define MSGPACK_PP_REPEAT_1_123(m, d) MSGPACK_PP_REPEAT_1_122(m, d) m(2, 122, d)
+# define MSGPACK_PP_REPEAT_1_124(m, d) MSGPACK_PP_REPEAT_1_123(m, d) m(2, 123, d)
+# define MSGPACK_PP_REPEAT_1_125(m, d) MSGPACK_PP_REPEAT_1_124(m, d) m(2, 124, d)
+# define MSGPACK_PP_REPEAT_1_126(m, d) MSGPACK_PP_REPEAT_1_125(m, d) m(2, 125, d)
+# define MSGPACK_PP_REPEAT_1_127(m, d) MSGPACK_PP_REPEAT_1_126(m, d) m(2, 126, d)
+# define MSGPACK_PP_REPEAT_1_128(m, d) MSGPACK_PP_REPEAT_1_127(m, d) m(2, 127, d)
+# define MSGPACK_PP_REPEAT_1_129(m, d) MSGPACK_PP_REPEAT_1_128(m, d) m(2, 128, d)
+# define MSGPACK_PP_REPEAT_1_130(m, d) MSGPACK_PP_REPEAT_1_129(m, d) m(2, 129, d)
+# define MSGPACK_PP_REPEAT_1_131(m, d) MSGPACK_PP_REPEAT_1_130(m, d) m(2, 130, d)
+# define MSGPACK_PP_REPEAT_1_132(m, d) MSGPACK_PP_REPEAT_1_131(m, d) m(2, 131, d)
+# define MSGPACK_PP_REPEAT_1_133(m, d) MSGPACK_PP_REPEAT_1_132(m, d) m(2, 132, d)
+# define MSGPACK_PP_REPEAT_1_134(m, d) MSGPACK_PP_REPEAT_1_133(m, d) m(2, 133, d)
+# define MSGPACK_PP_REPEAT_1_135(m, d) MSGPACK_PP_REPEAT_1_134(m, d) m(2, 134, d)
+# define MSGPACK_PP_REPEAT_1_136(m, d) MSGPACK_PP_REPEAT_1_135(m, d) m(2, 135, d)
+# define MSGPACK_PP_REPEAT_1_137(m, d) MSGPACK_PP_REPEAT_1_136(m, d) m(2, 136, d)
+# define MSGPACK_PP_REPEAT_1_138(m, d) MSGPACK_PP_REPEAT_1_137(m, d) m(2, 137, d)
+# define MSGPACK_PP_REPEAT_1_139(m, d) MSGPACK_PP_REPEAT_1_138(m, d) m(2, 138, d)
+# define MSGPACK_PP_REPEAT_1_140(m, d) MSGPACK_PP_REPEAT_1_139(m, d) m(2, 139, d)
+# define MSGPACK_PP_REPEAT_1_141(m, d) MSGPACK_PP_REPEAT_1_140(m, d) m(2, 140, d)
+# define MSGPACK_PP_REPEAT_1_142(m, d) MSGPACK_PP_REPEAT_1_141(m, d) m(2, 141, d)
+# define MSGPACK_PP_REPEAT_1_143(m, d) MSGPACK_PP_REPEAT_1_142(m, d) m(2, 142, d)
+# define MSGPACK_PP_REPEAT_1_144(m, d) MSGPACK_PP_REPEAT_1_143(m, d) m(2, 143, d)
+# define MSGPACK_PP_REPEAT_1_145(m, d) MSGPACK_PP_REPEAT_1_144(m, d) m(2, 144, d)
+# define MSGPACK_PP_REPEAT_1_146(m, d) MSGPACK_PP_REPEAT_1_145(m, d) m(2, 145, d)
+# define MSGPACK_PP_REPEAT_1_147(m, d) MSGPACK_PP_REPEAT_1_146(m, d) m(2, 146, d)
+# define MSGPACK_PP_REPEAT_1_148(m, d) MSGPACK_PP_REPEAT_1_147(m, d) m(2, 147, d)
+# define MSGPACK_PP_REPEAT_1_149(m, d) MSGPACK_PP_REPEAT_1_148(m, d) m(2, 148, d)
+# define MSGPACK_PP_REPEAT_1_150(m, d) MSGPACK_PP_REPEAT_1_149(m, d) m(2, 149, d)
+# define MSGPACK_PP_REPEAT_1_151(m, d) MSGPACK_PP_REPEAT_1_150(m, d) m(2, 150, d)
+# define MSGPACK_PP_REPEAT_1_152(m, d) MSGPACK_PP_REPEAT_1_151(m, d) m(2, 151, d)
+# define MSGPACK_PP_REPEAT_1_153(m, d) MSGPACK_PP_REPEAT_1_152(m, d) m(2, 152, d)
+# define MSGPACK_PP_REPEAT_1_154(m, d) MSGPACK_PP_REPEAT_1_153(m, d) m(2, 153, d)
+# define MSGPACK_PP_REPEAT_1_155(m, d) MSGPACK_PP_REPEAT_1_154(m, d) m(2, 154, d)
+# define MSGPACK_PP_REPEAT_1_156(m, d) MSGPACK_PP_REPEAT_1_155(m, d) m(2, 155, d)
+# define MSGPACK_PP_REPEAT_1_157(m, d) MSGPACK_PP_REPEAT_1_156(m, d) m(2, 156, d)
+# define MSGPACK_PP_REPEAT_1_158(m, d) MSGPACK_PP_REPEAT_1_157(m, d) m(2, 157, d)
+# define MSGPACK_PP_REPEAT_1_159(m, d) MSGPACK_PP_REPEAT_1_158(m, d) m(2, 158, d)
+# define MSGPACK_PP_REPEAT_1_160(m, d) MSGPACK_PP_REPEAT_1_159(m, d) m(2, 159, d)
+# define MSGPACK_PP_REPEAT_1_161(m, d) MSGPACK_PP_REPEAT_1_160(m, d) m(2, 160, d)
+# define MSGPACK_PP_REPEAT_1_162(m, d) MSGPACK_PP_REPEAT_1_161(m, d) m(2, 161, d)
+# define MSGPACK_PP_REPEAT_1_163(m, d) MSGPACK_PP_REPEAT_1_162(m, d) m(2, 162, d)
+# define MSGPACK_PP_REPEAT_1_164(m, d) MSGPACK_PP_REPEAT_1_163(m, d) m(2, 163, d)
+# define MSGPACK_PP_REPEAT_1_165(m, d) MSGPACK_PP_REPEAT_1_164(m, d) m(2, 164, d)
+# define MSGPACK_PP_REPEAT_1_166(m, d) MSGPACK_PP_REPEAT_1_165(m, d) m(2, 165, d)
+# define MSGPACK_PP_REPEAT_1_167(m, d) MSGPACK_PP_REPEAT_1_166(m, d) m(2, 166, d)
+# define MSGPACK_PP_REPEAT_1_168(m, d) MSGPACK_PP_REPEAT_1_167(m, d) m(2, 167, d)
+# define MSGPACK_PP_REPEAT_1_169(m, d) MSGPACK_PP_REPEAT_1_168(m, d) m(2, 168, d)
+# define MSGPACK_PP_REPEAT_1_170(m, d) MSGPACK_PP_REPEAT_1_169(m, d) m(2, 169, d)
+# define MSGPACK_PP_REPEAT_1_171(m, d) MSGPACK_PP_REPEAT_1_170(m, d) m(2, 170, d)
+# define MSGPACK_PP_REPEAT_1_172(m, d) MSGPACK_PP_REPEAT_1_171(m, d) m(2, 171, d)
+# define MSGPACK_PP_REPEAT_1_173(m, d) MSGPACK_PP_REPEAT_1_172(m, d) m(2, 172, d)
+# define MSGPACK_PP_REPEAT_1_174(m, d) MSGPACK_PP_REPEAT_1_173(m, d) m(2, 173, d)
+# define MSGPACK_PP_REPEAT_1_175(m, d) MSGPACK_PP_REPEAT_1_174(m, d) m(2, 174, d)
+# define MSGPACK_PP_REPEAT_1_176(m, d) MSGPACK_PP_REPEAT_1_175(m, d) m(2, 175, d)
+# define MSGPACK_PP_REPEAT_1_177(m, d) MSGPACK_PP_REPEAT_1_176(m, d) m(2, 176, d)
+# define MSGPACK_PP_REPEAT_1_178(m, d) MSGPACK_PP_REPEAT_1_177(m, d) m(2, 177, d)
+# define MSGPACK_PP_REPEAT_1_179(m, d) MSGPACK_PP_REPEAT_1_178(m, d) m(2, 178, d)
+# define MSGPACK_PP_REPEAT_1_180(m, d) MSGPACK_PP_REPEAT_1_179(m, d) m(2, 179, d)
+# define MSGPACK_PP_REPEAT_1_181(m, d) MSGPACK_PP_REPEAT_1_180(m, d) m(2, 180, d)
+# define MSGPACK_PP_REPEAT_1_182(m, d) MSGPACK_PP_REPEAT_1_181(m, d) m(2, 181, d)
+# define MSGPACK_PP_REPEAT_1_183(m, d) MSGPACK_PP_REPEAT_1_182(m, d) m(2, 182, d)
+# define MSGPACK_PP_REPEAT_1_184(m, d) MSGPACK_PP_REPEAT_1_183(m, d) m(2, 183, d)
+# define MSGPACK_PP_REPEAT_1_185(m, d) MSGPACK_PP_REPEAT_1_184(m, d) m(2, 184, d)
+# define MSGPACK_PP_REPEAT_1_186(m, d) MSGPACK_PP_REPEAT_1_185(m, d) m(2, 185, d)
+# define MSGPACK_PP_REPEAT_1_187(m, d) MSGPACK_PP_REPEAT_1_186(m, d) m(2, 186, d)
+# define MSGPACK_PP_REPEAT_1_188(m, d) MSGPACK_PP_REPEAT_1_187(m, d) m(2, 187, d)
+# define MSGPACK_PP_REPEAT_1_189(m, d) MSGPACK_PP_REPEAT_1_188(m, d) m(2, 188, d)
+# define MSGPACK_PP_REPEAT_1_190(m, d) MSGPACK_PP_REPEAT_1_189(m, d) m(2, 189, d)
+# define MSGPACK_PP_REPEAT_1_191(m, d) MSGPACK_PP_REPEAT_1_190(m, d) m(2, 190, d)
+# define MSGPACK_PP_REPEAT_1_192(m, d) MSGPACK_PP_REPEAT_1_191(m, d) m(2, 191, d)
+# define MSGPACK_PP_REPEAT_1_193(m, d) MSGPACK_PP_REPEAT_1_192(m, d) m(2, 192, d)
+# define MSGPACK_PP_REPEAT_1_194(m, d) MSGPACK_PP_REPEAT_1_193(m, d) m(2, 193, d)
+# define MSGPACK_PP_REPEAT_1_195(m, d) MSGPACK_PP_REPEAT_1_194(m, d) m(2, 194, d)
+# define MSGPACK_PP_REPEAT_1_196(m, d) MSGPACK_PP_REPEAT_1_195(m, d) m(2, 195, d)
+# define MSGPACK_PP_REPEAT_1_197(m, d) MSGPACK_PP_REPEAT_1_196(m, d) m(2, 196, d)
+# define MSGPACK_PP_REPEAT_1_198(m, d) MSGPACK_PP_REPEAT_1_197(m, d) m(2, 197, d)
+# define MSGPACK_PP_REPEAT_1_199(m, d) MSGPACK_PP_REPEAT_1_198(m, d) m(2, 198, d)
+# define MSGPACK_PP_REPEAT_1_200(m, d) MSGPACK_PP_REPEAT_1_199(m, d) m(2, 199, d)
+# define MSGPACK_PP_REPEAT_1_201(m, d) MSGPACK_PP_REPEAT_1_200(m, d) m(2, 200, d)
+# define MSGPACK_PP_REPEAT_1_202(m, d) MSGPACK_PP_REPEAT_1_201(m, d) m(2, 201, d)
+# define MSGPACK_PP_REPEAT_1_203(m, d) MSGPACK_PP_REPEAT_1_202(m, d) m(2, 202, d)
+# define MSGPACK_PP_REPEAT_1_204(m, d) MSGPACK_PP_REPEAT_1_203(m, d) m(2, 203, d)
+# define MSGPACK_PP_REPEAT_1_205(m, d) MSGPACK_PP_REPEAT_1_204(m, d) m(2, 204, d)
+# define MSGPACK_PP_REPEAT_1_206(m, d) MSGPACK_PP_REPEAT_1_205(m, d) m(2, 205, d)
+# define MSGPACK_PP_REPEAT_1_207(m, d) MSGPACK_PP_REPEAT_1_206(m, d) m(2, 206, d)
+# define MSGPACK_PP_REPEAT_1_208(m, d) MSGPACK_PP_REPEAT_1_207(m, d) m(2, 207, d)
+# define MSGPACK_PP_REPEAT_1_209(m, d) MSGPACK_PP_REPEAT_1_208(m, d) m(2, 208, d)
+# define MSGPACK_PP_REPEAT_1_210(m, d) MSGPACK_PP_REPEAT_1_209(m, d) m(2, 209, d)
+# define MSGPACK_PP_REPEAT_1_211(m, d) MSGPACK_PP_REPEAT_1_210(m, d) m(2, 210, d)
+# define MSGPACK_PP_REPEAT_1_212(m, d) MSGPACK_PP_REPEAT_1_211(m, d) m(2, 211, d)
+# define MSGPACK_PP_REPEAT_1_213(m, d) MSGPACK_PP_REPEAT_1_212(m, d) m(2, 212, d)
+# define MSGPACK_PP_REPEAT_1_214(m, d) MSGPACK_PP_REPEAT_1_213(m, d) m(2, 213, d)
+# define MSGPACK_PP_REPEAT_1_215(m, d) MSGPACK_PP_REPEAT_1_214(m, d) m(2, 214, d)
+# define MSGPACK_PP_REPEAT_1_216(m, d) MSGPACK_PP_REPEAT_1_215(m, d) m(2, 215, d)
+# define MSGPACK_PP_REPEAT_1_217(m, d) MSGPACK_PP_REPEAT_1_216(m, d) m(2, 216, d)
+# define MSGPACK_PP_REPEAT_1_218(m, d) MSGPACK_PP_REPEAT_1_217(m, d) m(2, 217, d)
+# define MSGPACK_PP_REPEAT_1_219(m, d) MSGPACK_PP_REPEAT_1_218(m, d) m(2, 218, d)
+# define MSGPACK_PP_REPEAT_1_220(m, d) MSGPACK_PP_REPEAT_1_219(m, d) m(2, 219, d)
+# define MSGPACK_PP_REPEAT_1_221(m, d) MSGPACK_PP_REPEAT_1_220(m, d) m(2, 220, d)
+# define MSGPACK_PP_REPEAT_1_222(m, d) MSGPACK_PP_REPEAT_1_221(m, d) m(2, 221, d)
+# define MSGPACK_PP_REPEAT_1_223(m, d) MSGPACK_PP_REPEAT_1_222(m, d) m(2, 222, d)
+# define MSGPACK_PP_REPEAT_1_224(m, d) MSGPACK_PP_REPEAT_1_223(m, d) m(2, 223, d)
+# define MSGPACK_PP_REPEAT_1_225(m, d) MSGPACK_PP_REPEAT_1_224(m, d) m(2, 224, d)
+# define MSGPACK_PP_REPEAT_1_226(m, d) MSGPACK_PP_REPEAT_1_225(m, d) m(2, 225, d)
+# define MSGPACK_PP_REPEAT_1_227(m, d) MSGPACK_PP_REPEAT_1_226(m, d) m(2, 226, d)
+# define MSGPACK_PP_REPEAT_1_228(m, d) MSGPACK_PP_REPEAT_1_227(m, d) m(2, 227, d)
+# define MSGPACK_PP_REPEAT_1_229(m, d) MSGPACK_PP_REPEAT_1_228(m, d) m(2, 228, d)
+# define MSGPACK_PP_REPEAT_1_230(m, d) MSGPACK_PP_REPEAT_1_229(m, d) m(2, 229, d)
+# define MSGPACK_PP_REPEAT_1_231(m, d) MSGPACK_PP_REPEAT_1_230(m, d) m(2, 230, d)
+# define MSGPACK_PP_REPEAT_1_232(m, d) MSGPACK_PP_REPEAT_1_231(m, d) m(2, 231, d)
+# define MSGPACK_PP_REPEAT_1_233(m, d) MSGPACK_PP_REPEAT_1_232(m, d) m(2, 232, d)
+# define MSGPACK_PP_REPEAT_1_234(m, d) MSGPACK_PP_REPEAT_1_233(m, d) m(2, 233, d)
+# define MSGPACK_PP_REPEAT_1_235(m, d) MSGPACK_PP_REPEAT_1_234(m, d) m(2, 234, d)
+# define MSGPACK_PP_REPEAT_1_236(m, d) MSGPACK_PP_REPEAT_1_235(m, d) m(2, 235, d)
+# define MSGPACK_PP_REPEAT_1_237(m, d) MSGPACK_PP_REPEAT_1_236(m, d) m(2, 236, d)
+# define MSGPACK_PP_REPEAT_1_238(m, d) MSGPACK_PP_REPEAT_1_237(m, d) m(2, 237, d)
+# define MSGPACK_PP_REPEAT_1_239(m, d) MSGPACK_PP_REPEAT_1_238(m, d) m(2, 238, d)
+# define MSGPACK_PP_REPEAT_1_240(m, d) MSGPACK_PP_REPEAT_1_239(m, d) m(2, 239, d)
+# define MSGPACK_PP_REPEAT_1_241(m, d) MSGPACK_PP_REPEAT_1_240(m, d) m(2, 240, d)
+# define MSGPACK_PP_REPEAT_1_242(m, d) MSGPACK_PP_REPEAT_1_241(m, d) m(2, 241, d)
+# define MSGPACK_PP_REPEAT_1_243(m, d) MSGPACK_PP_REPEAT_1_242(m, d) m(2, 242, d)
+# define MSGPACK_PP_REPEAT_1_244(m, d) MSGPACK_PP_REPEAT_1_243(m, d) m(2, 243, d)
+# define MSGPACK_PP_REPEAT_1_245(m, d) MSGPACK_PP_REPEAT_1_244(m, d) m(2, 244, d)
+# define MSGPACK_PP_REPEAT_1_246(m, d) MSGPACK_PP_REPEAT_1_245(m, d) m(2, 245, d)
+# define MSGPACK_PP_REPEAT_1_247(m, d) MSGPACK_PP_REPEAT_1_246(m, d) m(2, 246, d)
+# define MSGPACK_PP_REPEAT_1_248(m, d) MSGPACK_PP_REPEAT_1_247(m, d) m(2, 247, d)
+# define MSGPACK_PP_REPEAT_1_249(m, d) MSGPACK_PP_REPEAT_1_248(m, d) m(2, 248, d)
+# define MSGPACK_PP_REPEAT_1_250(m, d) MSGPACK_PP_REPEAT_1_249(m, d) m(2, 249, d)
+# define MSGPACK_PP_REPEAT_1_251(m, d) MSGPACK_PP_REPEAT_1_250(m, d) m(2, 250, d)
+# define MSGPACK_PP_REPEAT_1_252(m, d) MSGPACK_PP_REPEAT_1_251(m, d) m(2, 251, d)
+# define MSGPACK_PP_REPEAT_1_253(m, d) MSGPACK_PP_REPEAT_1_252(m, d) m(2, 252, d)
+# define MSGPACK_PP_REPEAT_1_254(m, d) MSGPACK_PP_REPEAT_1_253(m, d) m(2, 253, d)
+# define MSGPACK_PP_REPEAT_1_255(m, d) MSGPACK_PP_REPEAT_1_254(m, d) m(2, 254, d)
+# define MSGPACK_PP_REPEAT_1_256(m, d) MSGPACK_PP_REPEAT_1_255(m, d) m(2, 255, d)
+#
+# define MSGPACK_PP_REPEAT_2_0(m, d)
+# define MSGPACK_PP_REPEAT_2_1(m, d) m(3, 0, d)
+# define MSGPACK_PP_REPEAT_2_2(m, d) MSGPACK_PP_REPEAT_2_1(m, d) m(3, 1, d)
+# define MSGPACK_PP_REPEAT_2_3(m, d) MSGPACK_PP_REPEAT_2_2(m, d) m(3, 2, d)
+# define MSGPACK_PP_REPEAT_2_4(m, d) MSGPACK_PP_REPEAT_2_3(m, d) m(3, 3, d)
+# define MSGPACK_PP_REPEAT_2_5(m, d) MSGPACK_PP_REPEAT_2_4(m, d) m(3, 4, d)
+# define MSGPACK_PP_REPEAT_2_6(m, d) MSGPACK_PP_REPEAT_2_5(m, d) m(3, 5, d)
+# define MSGPACK_PP_REPEAT_2_7(m, d) MSGPACK_PP_REPEAT_2_6(m, d) m(3, 6, d)
+# define MSGPACK_PP_REPEAT_2_8(m, d) MSGPACK_PP_REPEAT_2_7(m, d) m(3, 7, d)
+# define MSGPACK_PP_REPEAT_2_9(m, d) MSGPACK_PP_REPEAT_2_8(m, d) m(3, 8, d)
+# define MSGPACK_PP_REPEAT_2_10(m, d) MSGPACK_PP_REPEAT_2_9(m, d) m(3, 9, d)
+# define MSGPACK_PP_REPEAT_2_11(m, d) MSGPACK_PP_REPEAT_2_10(m, d) m(3, 10, d)
+# define MSGPACK_PP_REPEAT_2_12(m, d) MSGPACK_PP_REPEAT_2_11(m, d) m(3, 11, d)
+# define MSGPACK_PP_REPEAT_2_13(m, d) MSGPACK_PP_REPEAT_2_12(m, d) m(3, 12, d)
+# define MSGPACK_PP_REPEAT_2_14(m, d) MSGPACK_PP_REPEAT_2_13(m, d) m(3, 13, d)
+# define MSGPACK_PP_REPEAT_2_15(m, d) MSGPACK_PP_REPEAT_2_14(m, d) m(3, 14, d)
+# define MSGPACK_PP_REPEAT_2_16(m, d) MSGPACK_PP_REPEAT_2_15(m, d) m(3, 15, d)
+# define MSGPACK_PP_REPEAT_2_17(m, d) MSGPACK_PP_REPEAT_2_16(m, d) m(3, 16, d)
+# define MSGPACK_PP_REPEAT_2_18(m, d) MSGPACK_PP_REPEAT_2_17(m, d) m(3, 17, d)
+# define MSGPACK_PP_REPEAT_2_19(m, d) MSGPACK_PP_REPEAT_2_18(m, d) m(3, 18, d)
+# define MSGPACK_PP_REPEAT_2_20(m, d) MSGPACK_PP_REPEAT_2_19(m, d) m(3, 19, d)
+# define MSGPACK_PP_REPEAT_2_21(m, d) MSGPACK_PP_REPEAT_2_20(m, d) m(3, 20, d)
+# define MSGPACK_PP_REPEAT_2_22(m, d) MSGPACK_PP_REPEAT_2_21(m, d) m(3, 21, d)
+# define MSGPACK_PP_REPEAT_2_23(m, d) MSGPACK_PP_REPEAT_2_22(m, d) m(3, 22, d)
+# define MSGPACK_PP_REPEAT_2_24(m, d) MSGPACK_PP_REPEAT_2_23(m, d) m(3, 23, d)
+# define MSGPACK_PP_REPEAT_2_25(m, d) MSGPACK_PP_REPEAT_2_24(m, d) m(3, 24, d)
+# define MSGPACK_PP_REPEAT_2_26(m, d) MSGPACK_PP_REPEAT_2_25(m, d) m(3, 25, d)
+# define MSGPACK_PP_REPEAT_2_27(m, d) MSGPACK_PP_REPEAT_2_26(m, d) m(3, 26, d)
+# define MSGPACK_PP_REPEAT_2_28(m, d) MSGPACK_PP_REPEAT_2_27(m, d) m(3, 27, d)
+# define MSGPACK_PP_REPEAT_2_29(m, d) MSGPACK_PP_REPEAT_2_28(m, d) m(3, 28, d)
+# define MSGPACK_PP_REPEAT_2_30(m, d) MSGPACK_PP_REPEAT_2_29(m, d) m(3, 29, d)
+# define MSGPACK_PP_REPEAT_2_31(m, d) MSGPACK_PP_REPEAT_2_30(m, d) m(3, 30, d)
+# define MSGPACK_PP_REPEAT_2_32(m, d) MSGPACK_PP_REPEAT_2_31(m, d) m(3, 31, d)
+# define MSGPACK_PP_REPEAT_2_33(m, d) MSGPACK_PP_REPEAT_2_32(m, d) m(3, 32, d)
+# define MSGPACK_PP_REPEAT_2_34(m, d) MSGPACK_PP_REPEAT_2_33(m, d) m(3, 33, d)
+# define MSGPACK_PP_REPEAT_2_35(m, d) MSGPACK_PP_REPEAT_2_34(m, d) m(3, 34, d)
+# define MSGPACK_PP_REPEAT_2_36(m, d) MSGPACK_PP_REPEAT_2_35(m, d) m(3, 35, d)
+# define MSGPACK_PP_REPEAT_2_37(m, d) MSGPACK_PP_REPEAT_2_36(m, d) m(3, 36, d)
+# define MSGPACK_PP_REPEAT_2_38(m, d) MSGPACK_PP_REPEAT_2_37(m, d) m(3, 37, d)
+# define MSGPACK_PP_REPEAT_2_39(m, d) MSGPACK_PP_REPEAT_2_38(m, d) m(3, 38, d)
+# define MSGPACK_PP_REPEAT_2_40(m, d) MSGPACK_PP_REPEAT_2_39(m, d) m(3, 39, d)
+# define MSGPACK_PP_REPEAT_2_41(m, d) MSGPACK_PP_REPEAT_2_40(m, d) m(3, 40, d)
+# define MSGPACK_PP_REPEAT_2_42(m, d) MSGPACK_PP_REPEAT_2_41(m, d) m(3, 41, d)
+# define MSGPACK_PP_REPEAT_2_43(m, d) MSGPACK_PP_REPEAT_2_42(m, d) m(3, 42, d)
+# define MSGPACK_PP_REPEAT_2_44(m, d) MSGPACK_PP_REPEAT_2_43(m, d) m(3, 43, d)
+# define MSGPACK_PP_REPEAT_2_45(m, d) MSGPACK_PP_REPEAT_2_44(m, d) m(3, 44, d)
+# define MSGPACK_PP_REPEAT_2_46(m, d) MSGPACK_PP_REPEAT_2_45(m, d) m(3, 45, d)
+# define MSGPACK_PP_REPEAT_2_47(m, d) MSGPACK_PP_REPEAT_2_46(m, d) m(3, 46, d)
+# define MSGPACK_PP_REPEAT_2_48(m, d) MSGPACK_PP_REPEAT_2_47(m, d) m(3, 47, d)
+# define MSGPACK_PP_REPEAT_2_49(m, d) MSGPACK_PP_REPEAT_2_48(m, d) m(3, 48, d)
+# define MSGPACK_PP_REPEAT_2_50(m, d) MSGPACK_PP_REPEAT_2_49(m, d) m(3, 49, d)
+# define MSGPACK_PP_REPEAT_2_51(m, d) MSGPACK_PP_REPEAT_2_50(m, d) m(3, 50, d)
+# define MSGPACK_PP_REPEAT_2_52(m, d) MSGPACK_PP_REPEAT_2_51(m, d) m(3, 51, d)
+# define MSGPACK_PP_REPEAT_2_53(m, d) MSGPACK_PP_REPEAT_2_52(m, d) m(3, 52, d)
+# define MSGPACK_PP_REPEAT_2_54(m, d) MSGPACK_PP_REPEAT_2_53(m, d) m(3, 53, d)
+# define MSGPACK_PP_REPEAT_2_55(m, d) MSGPACK_PP_REPEAT_2_54(m, d) m(3, 54, d)
+# define MSGPACK_PP_REPEAT_2_56(m, d) MSGPACK_PP_REPEAT_2_55(m, d) m(3, 55, d)
+# define MSGPACK_PP_REPEAT_2_57(m, d) MSGPACK_PP_REPEAT_2_56(m, d) m(3, 56, d)
+# define MSGPACK_PP_REPEAT_2_58(m, d) MSGPACK_PP_REPEAT_2_57(m, d) m(3, 57, d)
+# define MSGPACK_PP_REPEAT_2_59(m, d) MSGPACK_PP_REPEAT_2_58(m, d) m(3, 58, d)
+# define MSGPACK_PP_REPEAT_2_60(m, d) MSGPACK_PP_REPEAT_2_59(m, d) m(3, 59, d)
+# define MSGPACK_PP_REPEAT_2_61(m, d) MSGPACK_PP_REPEAT_2_60(m, d) m(3, 60, d)
+# define MSGPACK_PP_REPEAT_2_62(m, d) MSGPACK_PP_REPEAT_2_61(m, d) m(3, 61, d)
+# define MSGPACK_PP_REPEAT_2_63(m, d) MSGPACK_PP_REPEAT_2_62(m, d) m(3, 62, d)
+# define MSGPACK_PP_REPEAT_2_64(m, d) MSGPACK_PP_REPEAT_2_63(m, d) m(3, 63, d)
+# define MSGPACK_PP_REPEAT_2_65(m, d) MSGPACK_PP_REPEAT_2_64(m, d) m(3, 64, d)
+# define MSGPACK_PP_REPEAT_2_66(m, d) MSGPACK_PP_REPEAT_2_65(m, d) m(3, 65, d)
+# define MSGPACK_PP_REPEAT_2_67(m, d) MSGPACK_PP_REPEAT_2_66(m, d) m(3, 66, d)
+# define MSGPACK_PP_REPEAT_2_68(m, d) MSGPACK_PP_REPEAT_2_67(m, d) m(3, 67, d)
+# define MSGPACK_PP_REPEAT_2_69(m, d) MSGPACK_PP_REPEAT_2_68(m, d) m(3, 68, d)
+# define MSGPACK_PP_REPEAT_2_70(m, d) MSGPACK_PP_REPEAT_2_69(m, d) m(3, 69, d)
+# define MSGPACK_PP_REPEAT_2_71(m, d) MSGPACK_PP_REPEAT_2_70(m, d) m(3, 70, d)
+# define MSGPACK_PP_REPEAT_2_72(m, d) MSGPACK_PP_REPEAT_2_71(m, d) m(3, 71, d)
+# define MSGPACK_PP_REPEAT_2_73(m, d) MSGPACK_PP_REPEAT_2_72(m, d) m(3, 72, d)
+# define MSGPACK_PP_REPEAT_2_74(m, d) MSGPACK_PP_REPEAT_2_73(m, d) m(3, 73, d)
+# define MSGPACK_PP_REPEAT_2_75(m, d) MSGPACK_PP_REPEAT_2_74(m, d) m(3, 74, d)
+# define MSGPACK_PP_REPEAT_2_76(m, d) MSGPACK_PP_REPEAT_2_75(m, d) m(3, 75, d)
+# define MSGPACK_PP_REPEAT_2_77(m, d) MSGPACK_PP_REPEAT_2_76(m, d) m(3, 76, d)
+# define MSGPACK_PP_REPEAT_2_78(m, d) MSGPACK_PP_REPEAT_2_77(m, d) m(3, 77, d)
+# define MSGPACK_PP_REPEAT_2_79(m, d) MSGPACK_PP_REPEAT_2_78(m, d) m(3, 78, d)
+# define MSGPACK_PP_REPEAT_2_80(m, d) MSGPACK_PP_REPEAT_2_79(m, d) m(3, 79, d)
+# define MSGPACK_PP_REPEAT_2_81(m, d) MSGPACK_PP_REPEAT_2_80(m, d) m(3, 80, d)
+# define MSGPACK_PP_REPEAT_2_82(m, d) MSGPACK_PP_REPEAT_2_81(m, d) m(3, 81, d)
+# define MSGPACK_PP_REPEAT_2_83(m, d) MSGPACK_PP_REPEAT_2_82(m, d) m(3, 82, d)
+# define MSGPACK_PP_REPEAT_2_84(m, d) MSGPACK_PP_REPEAT_2_83(m, d) m(3, 83, d)
+# define MSGPACK_PP_REPEAT_2_85(m, d) MSGPACK_PP_REPEAT_2_84(m, d) m(3, 84, d)
+# define MSGPACK_PP_REPEAT_2_86(m, d) MSGPACK_PP_REPEAT_2_85(m, d) m(3, 85, d)
+# define MSGPACK_PP_REPEAT_2_87(m, d) MSGPACK_PP_REPEAT_2_86(m, d) m(3, 86, d)
+# define MSGPACK_PP_REPEAT_2_88(m, d) MSGPACK_PP_REPEAT_2_87(m, d) m(3, 87, d)
+# define MSGPACK_PP_REPEAT_2_89(m, d) MSGPACK_PP_REPEAT_2_88(m, d) m(3, 88, d)
+# define MSGPACK_PP_REPEAT_2_90(m, d) MSGPACK_PP_REPEAT_2_89(m, d) m(3, 89, d)
+# define MSGPACK_PP_REPEAT_2_91(m, d) MSGPACK_PP_REPEAT_2_90(m, d) m(3, 90, d)
+# define MSGPACK_PP_REPEAT_2_92(m, d) MSGPACK_PP_REPEAT_2_91(m, d) m(3, 91, d)
+# define MSGPACK_PP_REPEAT_2_93(m, d) MSGPACK_PP_REPEAT_2_92(m, d) m(3, 92, d)
+# define MSGPACK_PP_REPEAT_2_94(m, d) MSGPACK_PP_REPEAT_2_93(m, d) m(3, 93, d)
+# define MSGPACK_PP_REPEAT_2_95(m, d) MSGPACK_PP_REPEAT_2_94(m, d) m(3, 94, d)
+# define MSGPACK_PP_REPEAT_2_96(m, d) MSGPACK_PP_REPEAT_2_95(m, d) m(3, 95, d)
+# define MSGPACK_PP_REPEAT_2_97(m, d) MSGPACK_PP_REPEAT_2_96(m, d) m(3, 96, d)
+# define MSGPACK_PP_REPEAT_2_98(m, d) MSGPACK_PP_REPEAT_2_97(m, d) m(3, 97, d)
+# define MSGPACK_PP_REPEAT_2_99(m, d) MSGPACK_PP_REPEAT_2_98(m, d) m(3, 98, d)
+# define MSGPACK_PP_REPEAT_2_100(m, d) MSGPACK_PP_REPEAT_2_99(m, d) m(3, 99, d)
+# define MSGPACK_PP_REPEAT_2_101(m, d) MSGPACK_PP_REPEAT_2_100(m, d) m(3, 100, d)
+# define MSGPACK_PP_REPEAT_2_102(m, d) MSGPACK_PP_REPEAT_2_101(m, d) m(3, 101, d)
+# define MSGPACK_PP_REPEAT_2_103(m, d) MSGPACK_PP_REPEAT_2_102(m, d) m(3, 102, d)
+# define MSGPACK_PP_REPEAT_2_104(m, d) MSGPACK_PP_REPEAT_2_103(m, d) m(3, 103, d)
+# define MSGPACK_PP_REPEAT_2_105(m, d) MSGPACK_PP_REPEAT_2_104(m, d) m(3, 104, d)
+# define MSGPACK_PP_REPEAT_2_106(m, d) MSGPACK_PP_REPEAT_2_105(m, d) m(3, 105, d)
+# define MSGPACK_PP_REPEAT_2_107(m, d) MSGPACK_PP_REPEAT_2_106(m, d) m(3, 106, d)
+# define MSGPACK_PP_REPEAT_2_108(m, d) MSGPACK_PP_REPEAT_2_107(m, d) m(3, 107, d)
+# define MSGPACK_PP_REPEAT_2_109(m, d) MSGPACK_PP_REPEAT_2_108(m, d) m(3, 108, d)
+# define MSGPACK_PP_REPEAT_2_110(m, d) MSGPACK_PP_REPEAT_2_109(m, d) m(3, 109, d)
+# define MSGPACK_PP_REPEAT_2_111(m, d) MSGPACK_PP_REPEAT_2_110(m, d) m(3, 110, d)
+# define MSGPACK_PP_REPEAT_2_112(m, d) MSGPACK_PP_REPEAT_2_111(m, d) m(3, 111, d)
+# define MSGPACK_PP_REPEAT_2_113(m, d) MSGPACK_PP_REPEAT_2_112(m, d) m(3, 112, d)
+# define MSGPACK_PP_REPEAT_2_114(m, d) MSGPACK_PP_REPEAT_2_113(m, d) m(3, 113, d)
+# define MSGPACK_PP_REPEAT_2_115(m, d) MSGPACK_PP_REPEAT_2_114(m, d) m(3, 114, d)
+# define MSGPACK_PP_REPEAT_2_116(m, d) MSGPACK_PP_REPEAT_2_115(m, d) m(3, 115, d)
+# define MSGPACK_PP_REPEAT_2_117(m, d) MSGPACK_PP_REPEAT_2_116(m, d) m(3, 116, d)
+# define MSGPACK_PP_REPEAT_2_118(m, d) MSGPACK_PP_REPEAT_2_117(m, d) m(3, 117, d)
+# define MSGPACK_PP_REPEAT_2_119(m, d) MSGPACK_PP_REPEAT_2_118(m, d) m(3, 118, d)
+# define MSGPACK_PP_REPEAT_2_120(m, d) MSGPACK_PP_REPEAT_2_119(m, d) m(3, 119, d)
+# define MSGPACK_PP_REPEAT_2_121(m, d) MSGPACK_PP_REPEAT_2_120(m, d) m(3, 120, d)
+# define MSGPACK_PP_REPEAT_2_122(m, d) MSGPACK_PP_REPEAT_2_121(m, d) m(3, 121, d)
+# define MSGPACK_PP_REPEAT_2_123(m, d) MSGPACK_PP_REPEAT_2_122(m, d) m(3, 122, d)
+# define MSGPACK_PP_REPEAT_2_124(m, d) MSGPACK_PP_REPEAT_2_123(m, d) m(3, 123, d)
+# define MSGPACK_PP_REPEAT_2_125(m, d) MSGPACK_PP_REPEAT_2_124(m, d) m(3, 124, d)
+# define MSGPACK_PP_REPEAT_2_126(m, d) MSGPACK_PP_REPEAT_2_125(m, d) m(3, 125, d)
+# define MSGPACK_PP_REPEAT_2_127(m, d) MSGPACK_PP_REPEAT_2_126(m, d) m(3, 126, d)
+# define MSGPACK_PP_REPEAT_2_128(m, d) MSGPACK_PP_REPEAT_2_127(m, d) m(3, 127, d)
+# define MSGPACK_PP_REPEAT_2_129(m, d) MSGPACK_PP_REPEAT_2_128(m, d) m(3, 128, d)
+# define MSGPACK_PP_REPEAT_2_130(m, d) MSGPACK_PP_REPEAT_2_129(m, d) m(3, 129, d)
+# define MSGPACK_PP_REPEAT_2_131(m, d) MSGPACK_PP_REPEAT_2_130(m, d) m(3, 130, d)
+# define MSGPACK_PP_REPEAT_2_132(m, d) MSGPACK_PP_REPEAT_2_131(m, d) m(3, 131, d)
+# define MSGPACK_PP_REPEAT_2_133(m, d) MSGPACK_PP_REPEAT_2_132(m, d) m(3, 132, d)
+# define MSGPACK_PP_REPEAT_2_134(m, d) MSGPACK_PP_REPEAT_2_133(m, d) m(3, 133, d)
+# define MSGPACK_PP_REPEAT_2_135(m, d) MSGPACK_PP_REPEAT_2_134(m, d) m(3, 134, d)
+# define MSGPACK_PP_REPEAT_2_136(m, d) MSGPACK_PP_REPEAT_2_135(m, d) m(3, 135, d)
+# define MSGPACK_PP_REPEAT_2_137(m, d) MSGPACK_PP_REPEAT_2_136(m, d) m(3, 136, d)
+# define MSGPACK_PP_REPEAT_2_138(m, d) MSGPACK_PP_REPEAT_2_137(m, d) m(3, 137, d)
+# define MSGPACK_PP_REPEAT_2_139(m, d) MSGPACK_PP_REPEAT_2_138(m, d) m(3, 138, d)
+# define MSGPACK_PP_REPEAT_2_140(m, d) MSGPACK_PP_REPEAT_2_139(m, d) m(3, 139, d)
+# define MSGPACK_PP_REPEAT_2_141(m, d) MSGPACK_PP_REPEAT_2_140(m, d) m(3, 140, d)
+# define MSGPACK_PP_REPEAT_2_142(m, d) MSGPACK_PP_REPEAT_2_141(m, d) m(3, 141, d)
+# define MSGPACK_PP_REPEAT_2_143(m, d) MSGPACK_PP_REPEAT_2_142(m, d) m(3, 142, d)
+# define MSGPACK_PP_REPEAT_2_144(m, d) MSGPACK_PP_REPEAT_2_143(m, d) m(3, 143, d)
+# define MSGPACK_PP_REPEAT_2_145(m, d) MSGPACK_PP_REPEAT_2_144(m, d) m(3, 144, d)
+# define MSGPACK_PP_REPEAT_2_146(m, d) MSGPACK_PP_REPEAT_2_145(m, d) m(3, 145, d)
+# define MSGPACK_PP_REPEAT_2_147(m, d) MSGPACK_PP_REPEAT_2_146(m, d) m(3, 146, d)
+# define MSGPACK_PP_REPEAT_2_148(m, d) MSGPACK_PP_REPEAT_2_147(m, d) m(3, 147, d)
+# define MSGPACK_PP_REPEAT_2_149(m, d) MSGPACK_PP_REPEAT_2_148(m, d) m(3, 148, d)
+# define MSGPACK_PP_REPEAT_2_150(m, d) MSGPACK_PP_REPEAT_2_149(m, d) m(3, 149, d)
+# define MSGPACK_PP_REPEAT_2_151(m, d) MSGPACK_PP_REPEAT_2_150(m, d) m(3, 150, d)
+# define MSGPACK_PP_REPEAT_2_152(m, d) MSGPACK_PP_REPEAT_2_151(m, d) m(3, 151, d)
+# define MSGPACK_PP_REPEAT_2_153(m, d) MSGPACK_PP_REPEAT_2_152(m, d) m(3, 152, d)
+# define MSGPACK_PP_REPEAT_2_154(m, d) MSGPACK_PP_REPEAT_2_153(m, d) m(3, 153, d)
+# define MSGPACK_PP_REPEAT_2_155(m, d) MSGPACK_PP_REPEAT_2_154(m, d) m(3, 154, d)
+# define MSGPACK_PP_REPEAT_2_156(m, d) MSGPACK_PP_REPEAT_2_155(m, d) m(3, 155, d)
+# define MSGPACK_PP_REPEAT_2_157(m, d) MSGPACK_PP_REPEAT_2_156(m, d) m(3, 156, d)
+# define MSGPACK_PP_REPEAT_2_158(m, d) MSGPACK_PP_REPEAT_2_157(m, d) m(3, 157, d)
+# define MSGPACK_PP_REPEAT_2_159(m, d) MSGPACK_PP_REPEAT_2_158(m, d) m(3, 158, d)
+# define MSGPACK_PP_REPEAT_2_160(m, d) MSGPACK_PP_REPEAT_2_159(m, d) m(3, 159, d)
+# define MSGPACK_PP_REPEAT_2_161(m, d) MSGPACK_PP_REPEAT_2_160(m, d) m(3, 160, d)
+# define MSGPACK_PP_REPEAT_2_162(m, d) MSGPACK_PP_REPEAT_2_161(m, d) m(3, 161, d)
+# define MSGPACK_PP_REPEAT_2_163(m, d) MSGPACK_PP_REPEAT_2_162(m, d) m(3, 162, d)
+# define MSGPACK_PP_REPEAT_2_164(m, d) MSGPACK_PP_REPEAT_2_163(m, d) m(3, 163, d)
+# define MSGPACK_PP_REPEAT_2_165(m, d) MSGPACK_PP_REPEAT_2_164(m, d) m(3, 164, d)
+# define MSGPACK_PP_REPEAT_2_166(m, d) MSGPACK_PP_REPEAT_2_165(m, d) m(3, 165, d)
+# define MSGPACK_PP_REPEAT_2_167(m, d) MSGPACK_PP_REPEAT_2_166(m, d) m(3, 166, d)
+# define MSGPACK_PP_REPEAT_2_168(m, d) MSGPACK_PP_REPEAT_2_167(m, d) m(3, 167, d)
+# define MSGPACK_PP_REPEAT_2_169(m, d) MSGPACK_PP_REPEAT_2_168(m, d) m(3, 168, d)
+# define MSGPACK_PP_REPEAT_2_170(m, d) MSGPACK_PP_REPEAT_2_169(m, d) m(3, 169, d)
+# define MSGPACK_PP_REPEAT_2_171(m, d) MSGPACK_PP_REPEAT_2_170(m, d) m(3, 170, d)
+# define MSGPACK_PP_REPEAT_2_172(m, d) MSGPACK_PP_REPEAT_2_171(m, d) m(3, 171, d)
+# define MSGPACK_PP_REPEAT_2_173(m, d) MSGPACK_PP_REPEAT_2_172(m, d) m(3, 172, d)
+# define MSGPACK_PP_REPEAT_2_174(m, d) MSGPACK_PP_REPEAT_2_173(m, d) m(3, 173, d)
+# define MSGPACK_PP_REPEAT_2_175(m, d) MSGPACK_PP_REPEAT_2_174(m, d) m(3, 174, d)
+# define MSGPACK_PP_REPEAT_2_176(m, d) MSGPACK_PP_REPEAT_2_175(m, d) m(3, 175, d)
+# define MSGPACK_PP_REPEAT_2_177(m, d) MSGPACK_PP_REPEAT_2_176(m, d) m(3, 176, d)
+# define MSGPACK_PP_REPEAT_2_178(m, d) MSGPACK_PP_REPEAT_2_177(m, d) m(3, 177, d)
+# define MSGPACK_PP_REPEAT_2_179(m, d) MSGPACK_PP_REPEAT_2_178(m, d) m(3, 178, d)
+# define MSGPACK_PP_REPEAT_2_180(m, d) MSGPACK_PP_REPEAT_2_179(m, d) m(3, 179, d)
+# define MSGPACK_PP_REPEAT_2_181(m, d) MSGPACK_PP_REPEAT_2_180(m, d) m(3, 180, d)
+# define MSGPACK_PP_REPEAT_2_182(m, d) MSGPACK_PP_REPEAT_2_181(m, d) m(3, 181, d)
+# define MSGPACK_PP_REPEAT_2_183(m, d) MSGPACK_PP_REPEAT_2_182(m, d) m(3, 182, d)
+# define MSGPACK_PP_REPEAT_2_184(m, d) MSGPACK_PP_REPEAT_2_183(m, d) m(3, 183, d)
+# define MSGPACK_PP_REPEAT_2_185(m, d) MSGPACK_PP_REPEAT_2_184(m, d) m(3, 184, d)
+# define MSGPACK_PP_REPEAT_2_186(m, d) MSGPACK_PP_REPEAT_2_185(m, d) m(3, 185, d)
+# define MSGPACK_PP_REPEAT_2_187(m, d) MSGPACK_PP_REPEAT_2_186(m, d) m(3, 186, d)
+# define MSGPACK_PP_REPEAT_2_188(m, d) MSGPACK_PP_REPEAT_2_187(m, d) m(3, 187, d)
+# define MSGPACK_PP_REPEAT_2_189(m, d) MSGPACK_PP_REPEAT_2_188(m, d) m(3, 188, d)
+# define MSGPACK_PP_REPEAT_2_190(m, d) MSGPACK_PP_REPEAT_2_189(m, d) m(3, 189, d)
+# define MSGPACK_PP_REPEAT_2_191(m, d) MSGPACK_PP_REPEAT_2_190(m, d) m(3, 190, d)
+# define MSGPACK_PP_REPEAT_2_192(m, d) MSGPACK_PP_REPEAT_2_191(m, d) m(3, 191, d)
+# define MSGPACK_PP_REPEAT_2_193(m, d) MSGPACK_PP_REPEAT_2_192(m, d) m(3, 192, d)
+# define MSGPACK_PP_REPEAT_2_194(m, d) MSGPACK_PP_REPEAT_2_193(m, d) m(3, 193, d)
+# define MSGPACK_PP_REPEAT_2_195(m, d) MSGPACK_PP_REPEAT_2_194(m, d) m(3, 194, d)
+# define MSGPACK_PP_REPEAT_2_196(m, d) MSGPACK_PP_REPEAT_2_195(m, d) m(3, 195, d)
+# define MSGPACK_PP_REPEAT_2_197(m, d) MSGPACK_PP_REPEAT_2_196(m, d) m(3, 196, d)
+# define MSGPACK_PP_REPEAT_2_198(m, d) MSGPACK_PP_REPEAT_2_197(m, d) m(3, 197, d)
+# define MSGPACK_PP_REPEAT_2_199(m, d) MSGPACK_PP_REPEAT_2_198(m, d) m(3, 198, d)
+# define MSGPACK_PP_REPEAT_2_200(m, d) MSGPACK_PP_REPEAT_2_199(m, d) m(3, 199, d)
+# define MSGPACK_PP_REPEAT_2_201(m, d) MSGPACK_PP_REPEAT_2_200(m, d) m(3, 200, d)
+# define MSGPACK_PP_REPEAT_2_202(m, d) MSGPACK_PP_REPEAT_2_201(m, d) m(3, 201, d)
+# define MSGPACK_PP_REPEAT_2_203(m, d) MSGPACK_PP_REPEAT_2_202(m, d) m(3, 202, d)
+# define MSGPACK_PP_REPEAT_2_204(m, d) MSGPACK_PP_REPEAT_2_203(m, d) m(3, 203, d)
+# define MSGPACK_PP_REPEAT_2_205(m, d) MSGPACK_PP_REPEAT_2_204(m, d) m(3, 204, d)
+# define MSGPACK_PP_REPEAT_2_206(m, d) MSGPACK_PP_REPEAT_2_205(m, d) m(3, 205, d)
+# define MSGPACK_PP_REPEAT_2_207(m, d) MSGPACK_PP_REPEAT_2_206(m, d) m(3, 206, d)
+# define MSGPACK_PP_REPEAT_2_208(m, d) MSGPACK_PP_REPEAT_2_207(m, d) m(3, 207, d)
+# define MSGPACK_PP_REPEAT_2_209(m, d) MSGPACK_PP_REPEAT_2_208(m, d) m(3, 208, d)
+# define MSGPACK_PP_REPEAT_2_210(m, d) MSGPACK_PP_REPEAT_2_209(m, d) m(3, 209, d)
+# define MSGPACK_PP_REPEAT_2_211(m, d) MSGPACK_PP_REPEAT_2_210(m, d) m(3, 210, d)
+# define MSGPACK_PP_REPEAT_2_212(m, d) MSGPACK_PP_REPEAT_2_211(m, d) m(3, 211, d)
+# define MSGPACK_PP_REPEAT_2_213(m, d) MSGPACK_PP_REPEAT_2_212(m, d) m(3, 212, d)
+# define MSGPACK_PP_REPEAT_2_214(m, d) MSGPACK_PP_REPEAT_2_213(m, d) m(3, 213, d)
+# define MSGPACK_PP_REPEAT_2_215(m, d) MSGPACK_PP_REPEAT_2_214(m, d) m(3, 214, d)
+# define MSGPACK_PP_REPEAT_2_216(m, d) MSGPACK_PP_REPEAT_2_215(m, d) m(3, 215, d)
+# define MSGPACK_PP_REPEAT_2_217(m, d) MSGPACK_PP_REPEAT_2_216(m, d) m(3, 216, d)
+# define MSGPACK_PP_REPEAT_2_218(m, d) MSGPACK_PP_REPEAT_2_217(m, d) m(3, 217, d)
+# define MSGPACK_PP_REPEAT_2_219(m, d) MSGPACK_PP_REPEAT_2_218(m, d) m(3, 218, d)
+# define MSGPACK_PP_REPEAT_2_220(m, d) MSGPACK_PP_REPEAT_2_219(m, d) m(3, 219, d)
+# define MSGPACK_PP_REPEAT_2_221(m, d) MSGPACK_PP_REPEAT_2_220(m, d) m(3, 220, d)
+# define MSGPACK_PP_REPEAT_2_222(m, d) MSGPACK_PP_REPEAT_2_221(m, d) m(3, 221, d)
+# define MSGPACK_PP_REPEAT_2_223(m, d) MSGPACK_PP_REPEAT_2_222(m, d) m(3, 222, d)
+# define MSGPACK_PP_REPEAT_2_224(m, d) MSGPACK_PP_REPEAT_2_223(m, d) m(3, 223, d)
+# define MSGPACK_PP_REPEAT_2_225(m, d) MSGPACK_PP_REPEAT_2_224(m, d) m(3, 224, d)
+# define MSGPACK_PP_REPEAT_2_226(m, d) MSGPACK_PP_REPEAT_2_225(m, d) m(3, 225, d)
+# define MSGPACK_PP_REPEAT_2_227(m, d) MSGPACK_PP_REPEAT_2_226(m, d) m(3, 226, d)
+# define MSGPACK_PP_REPEAT_2_228(m, d) MSGPACK_PP_REPEAT_2_227(m, d) m(3, 227, d)
+# define MSGPACK_PP_REPEAT_2_229(m, d) MSGPACK_PP_REPEAT_2_228(m, d) m(3, 228, d)
+# define MSGPACK_PP_REPEAT_2_230(m, d) MSGPACK_PP_REPEAT_2_229(m, d) m(3, 229, d)
+# define MSGPACK_PP_REPEAT_2_231(m, d) MSGPACK_PP_REPEAT_2_230(m, d) m(3, 230, d)
+# define MSGPACK_PP_REPEAT_2_232(m, d) MSGPACK_PP_REPEAT_2_231(m, d) m(3, 231, d)
+# define MSGPACK_PP_REPEAT_2_233(m, d) MSGPACK_PP_REPEAT_2_232(m, d) m(3, 232, d)
+# define MSGPACK_PP_REPEAT_2_234(m, d) MSGPACK_PP_REPEAT_2_233(m, d) m(3, 233, d)
+# define MSGPACK_PP_REPEAT_2_235(m, d) MSGPACK_PP_REPEAT_2_234(m, d) m(3, 234, d)
+# define MSGPACK_PP_REPEAT_2_236(m, d) MSGPACK_PP_REPEAT_2_235(m, d) m(3, 235, d)
+# define MSGPACK_PP_REPEAT_2_237(m, d) MSGPACK_PP_REPEAT_2_236(m, d) m(3, 236, d)
+# define MSGPACK_PP_REPEAT_2_238(m, d) MSGPACK_PP_REPEAT_2_237(m, d) m(3, 237, d)
+# define MSGPACK_PP_REPEAT_2_239(m, d) MSGPACK_PP_REPEAT_2_238(m, d) m(3, 238, d)
+# define MSGPACK_PP_REPEAT_2_240(m, d) MSGPACK_PP_REPEAT_2_239(m, d) m(3, 239, d)
+# define MSGPACK_PP_REPEAT_2_241(m, d) MSGPACK_PP_REPEAT_2_240(m, d) m(3, 240, d)
+# define MSGPACK_PP_REPEAT_2_242(m, d) MSGPACK_PP_REPEAT_2_241(m, d) m(3, 241, d)
+# define MSGPACK_PP_REPEAT_2_243(m, d) MSGPACK_PP_REPEAT_2_242(m, d) m(3, 242, d)
+# define MSGPACK_PP_REPEAT_2_244(m, d) MSGPACK_PP_REPEAT_2_243(m, d) m(3, 243, d)
+# define MSGPACK_PP_REPEAT_2_245(m, d) MSGPACK_PP_REPEAT_2_244(m, d) m(3, 244, d)
+# define MSGPACK_PP_REPEAT_2_246(m, d) MSGPACK_PP_REPEAT_2_245(m, d) m(3, 245, d)
+# define MSGPACK_PP_REPEAT_2_247(m, d) MSGPACK_PP_REPEAT_2_246(m, d) m(3, 246, d)
+# define MSGPACK_PP_REPEAT_2_248(m, d) MSGPACK_PP_REPEAT_2_247(m, d) m(3, 247, d)
+# define MSGPACK_PP_REPEAT_2_249(m, d) MSGPACK_PP_REPEAT_2_248(m, d) m(3, 248, d)
+# define MSGPACK_PP_REPEAT_2_250(m, d) MSGPACK_PP_REPEAT_2_249(m, d) m(3, 249, d)
+# define MSGPACK_PP_REPEAT_2_251(m, d) MSGPACK_PP_REPEAT_2_250(m, d) m(3, 250, d)
+# define MSGPACK_PP_REPEAT_2_252(m, d) MSGPACK_PP_REPEAT_2_251(m, d) m(3, 251, d)
+# define MSGPACK_PP_REPEAT_2_253(m, d) MSGPACK_PP_REPEAT_2_252(m, d) m(3, 252, d)
+# define MSGPACK_PP_REPEAT_2_254(m, d) MSGPACK_PP_REPEAT_2_253(m, d) m(3, 253, d)
+# define MSGPACK_PP_REPEAT_2_255(m, d) MSGPACK_PP_REPEAT_2_254(m, d) m(3, 254, d)
+# define MSGPACK_PP_REPEAT_2_256(m, d) MSGPACK_PP_REPEAT_2_255(m, d) m(3, 255, d)
+#
+# define MSGPACK_PP_REPEAT_3_0(m, d)
+# define MSGPACK_PP_REPEAT_3_1(m, d) m(4, 0, d)
+# define MSGPACK_PP_REPEAT_3_2(m, d) MSGPACK_PP_REPEAT_3_1(m, d) m(4, 1, d)
+# define MSGPACK_PP_REPEAT_3_3(m, d) MSGPACK_PP_REPEAT_3_2(m, d) m(4, 2, d)
+# define MSGPACK_PP_REPEAT_3_4(m, d) MSGPACK_PP_REPEAT_3_3(m, d) m(4, 3, d)
+# define MSGPACK_PP_REPEAT_3_5(m, d) MSGPACK_PP_REPEAT_3_4(m, d) m(4, 4, d)
+# define MSGPACK_PP_REPEAT_3_6(m, d) MSGPACK_PP_REPEAT_3_5(m, d) m(4, 5, d)
+# define MSGPACK_PP_REPEAT_3_7(m, d) MSGPACK_PP_REPEAT_3_6(m, d) m(4, 6, d)
+# define MSGPACK_PP_REPEAT_3_8(m, d) MSGPACK_PP_REPEAT_3_7(m, d) m(4, 7, d)
+# define MSGPACK_PP_REPEAT_3_9(m, d) MSGPACK_PP_REPEAT_3_8(m, d) m(4, 8, d)
+# define MSGPACK_PP_REPEAT_3_10(m, d) MSGPACK_PP_REPEAT_3_9(m, d) m(4, 9, d)
+# define MSGPACK_PP_REPEAT_3_11(m, d) MSGPACK_PP_REPEAT_3_10(m, d) m(4, 10, d)
+# define MSGPACK_PP_REPEAT_3_12(m, d) MSGPACK_PP_REPEAT_3_11(m, d) m(4, 11, d)
+# define MSGPACK_PP_REPEAT_3_13(m, d) MSGPACK_PP_REPEAT_3_12(m, d) m(4, 12, d)
+# define MSGPACK_PP_REPEAT_3_14(m, d) MSGPACK_PP_REPEAT_3_13(m, d) m(4, 13, d)
+# define MSGPACK_PP_REPEAT_3_15(m, d) MSGPACK_PP_REPEAT_3_14(m, d) m(4, 14, d)
+# define MSGPACK_PP_REPEAT_3_16(m, d) MSGPACK_PP_REPEAT_3_15(m, d) m(4, 15, d)
+# define MSGPACK_PP_REPEAT_3_17(m, d) MSGPACK_PP_REPEAT_3_16(m, d) m(4, 16, d)
+# define MSGPACK_PP_REPEAT_3_18(m, d) MSGPACK_PP_REPEAT_3_17(m, d) m(4, 17, d)
+# define MSGPACK_PP_REPEAT_3_19(m, d) MSGPACK_PP_REPEAT_3_18(m, d) m(4, 18, d)
+# define MSGPACK_PP_REPEAT_3_20(m, d) MSGPACK_PP_REPEAT_3_19(m, d) m(4, 19, d)
+# define MSGPACK_PP_REPEAT_3_21(m, d) MSGPACK_PP_REPEAT_3_20(m, d) m(4, 20, d)
+# define MSGPACK_PP_REPEAT_3_22(m, d) MSGPACK_PP_REPEAT_3_21(m, d) m(4, 21, d)
+# define MSGPACK_PP_REPEAT_3_23(m, d) MSGPACK_PP_REPEAT_3_22(m, d) m(4, 22, d)
+# define MSGPACK_PP_REPEAT_3_24(m, d) MSGPACK_PP_REPEAT_3_23(m, d) m(4, 23, d)
+# define MSGPACK_PP_REPEAT_3_25(m, d) MSGPACK_PP_REPEAT_3_24(m, d) m(4, 24, d)
+# define MSGPACK_PP_REPEAT_3_26(m, d) MSGPACK_PP_REPEAT_3_25(m, d) m(4, 25, d)
+# define MSGPACK_PP_REPEAT_3_27(m, d) MSGPACK_PP_REPEAT_3_26(m, d) m(4, 26, d)
+# define MSGPACK_PP_REPEAT_3_28(m, d) MSGPACK_PP_REPEAT_3_27(m, d) m(4, 27, d)
+# define MSGPACK_PP_REPEAT_3_29(m, d) MSGPACK_PP_REPEAT_3_28(m, d) m(4, 28, d)
+# define MSGPACK_PP_REPEAT_3_30(m, d) MSGPACK_PP_REPEAT_3_29(m, d) m(4, 29, d)
+# define MSGPACK_PP_REPEAT_3_31(m, d) MSGPACK_PP_REPEAT_3_30(m, d) m(4, 30, d)
+# define MSGPACK_PP_REPEAT_3_32(m, d) MSGPACK_PP_REPEAT_3_31(m, d) m(4, 31, d)
+# define MSGPACK_PP_REPEAT_3_33(m, d) MSGPACK_PP_REPEAT_3_32(m, d) m(4, 32, d)
+# define MSGPACK_PP_REPEAT_3_34(m, d) MSGPACK_PP_REPEAT_3_33(m, d) m(4, 33, d)
+# define MSGPACK_PP_REPEAT_3_35(m, d) MSGPACK_PP_REPEAT_3_34(m, d) m(4, 34, d)
+# define MSGPACK_PP_REPEAT_3_36(m, d) MSGPACK_PP_REPEAT_3_35(m, d) m(4, 35, d)
+# define MSGPACK_PP_REPEAT_3_37(m, d) MSGPACK_PP_REPEAT_3_36(m, d) m(4, 36, d)
+# define MSGPACK_PP_REPEAT_3_38(m, d) MSGPACK_PP_REPEAT_3_37(m, d) m(4, 37, d)
+# define MSGPACK_PP_REPEAT_3_39(m, d) MSGPACK_PP_REPEAT_3_38(m, d) m(4, 38, d)
+# define MSGPACK_PP_REPEAT_3_40(m, d) MSGPACK_PP_REPEAT_3_39(m, d) m(4, 39, d)
+# define MSGPACK_PP_REPEAT_3_41(m, d) MSGPACK_PP_REPEAT_3_40(m, d) m(4, 40, d)
+# define MSGPACK_PP_REPEAT_3_42(m, d) MSGPACK_PP_REPEAT_3_41(m, d) m(4, 41, d)
+# define MSGPACK_PP_REPEAT_3_43(m, d) MSGPACK_PP_REPEAT_3_42(m, d) m(4, 42, d)
+# define MSGPACK_PP_REPEAT_3_44(m, d) MSGPACK_PP_REPEAT_3_43(m, d) m(4, 43, d)
+# define MSGPACK_PP_REPEAT_3_45(m, d) MSGPACK_PP_REPEAT_3_44(m, d) m(4, 44, d)
+# define MSGPACK_PP_REPEAT_3_46(m, d) MSGPACK_PP_REPEAT_3_45(m, d) m(4, 45, d)
+# define MSGPACK_PP_REPEAT_3_47(m, d) MSGPACK_PP_REPEAT_3_46(m, d) m(4, 46, d)
+# define MSGPACK_PP_REPEAT_3_48(m, d) MSGPACK_PP_REPEAT_3_47(m, d) m(4, 47, d)
+# define MSGPACK_PP_REPEAT_3_49(m, d) MSGPACK_PP_REPEAT_3_48(m, d) m(4, 48, d)
+# define MSGPACK_PP_REPEAT_3_50(m, d) MSGPACK_PP_REPEAT_3_49(m, d) m(4, 49, d)
+# define MSGPACK_PP_REPEAT_3_51(m, d) MSGPACK_PP_REPEAT_3_50(m, d) m(4, 50, d)
+# define MSGPACK_PP_REPEAT_3_52(m, d) MSGPACK_PP_REPEAT_3_51(m, d) m(4, 51, d)
+# define MSGPACK_PP_REPEAT_3_53(m, d) MSGPACK_PP_REPEAT_3_52(m, d) m(4, 52, d)
+# define MSGPACK_PP_REPEAT_3_54(m, d) MSGPACK_PP_REPEAT_3_53(m, d) m(4, 53, d)
+# define MSGPACK_PP_REPEAT_3_55(m, d) MSGPACK_PP_REPEAT_3_54(m, d) m(4, 54, d)
+# define MSGPACK_PP_REPEAT_3_56(m, d) MSGPACK_PP_REPEAT_3_55(m, d) m(4, 55, d)
+# define MSGPACK_PP_REPEAT_3_57(m, d) MSGPACK_PP_REPEAT_3_56(m, d) m(4, 56, d)
+# define MSGPACK_PP_REPEAT_3_58(m, d) MSGPACK_PP_REPEAT_3_57(m, d) m(4, 57, d)
+# define MSGPACK_PP_REPEAT_3_59(m, d) MSGPACK_PP_REPEAT_3_58(m, d) m(4, 58, d)
+# define MSGPACK_PP_REPEAT_3_60(m, d) MSGPACK_PP_REPEAT_3_59(m, d) m(4, 59, d)
+# define MSGPACK_PP_REPEAT_3_61(m, d) MSGPACK_PP_REPEAT_3_60(m, d) m(4, 60, d)
+# define MSGPACK_PP_REPEAT_3_62(m, d) MSGPACK_PP_REPEAT_3_61(m, d) m(4, 61, d)
+# define MSGPACK_PP_REPEAT_3_63(m, d) MSGPACK_PP_REPEAT_3_62(m, d) m(4, 62, d)
+# define MSGPACK_PP_REPEAT_3_64(m, d) MSGPACK_PP_REPEAT_3_63(m, d) m(4, 63, d)
+# define MSGPACK_PP_REPEAT_3_65(m, d) MSGPACK_PP_REPEAT_3_64(m, d) m(4, 64, d)
+# define MSGPACK_PP_REPEAT_3_66(m, d) MSGPACK_PP_REPEAT_3_65(m, d) m(4, 65, d)
+# define MSGPACK_PP_REPEAT_3_67(m, d) MSGPACK_PP_REPEAT_3_66(m, d) m(4, 66, d)
+# define MSGPACK_PP_REPEAT_3_68(m, d) MSGPACK_PP_REPEAT_3_67(m, d) m(4, 67, d)
+# define MSGPACK_PP_REPEAT_3_69(m, d) MSGPACK_PP_REPEAT_3_68(m, d) m(4, 68, d)
+# define MSGPACK_PP_REPEAT_3_70(m, d) MSGPACK_PP_REPEAT_3_69(m, d) m(4, 69, d)
+# define MSGPACK_PP_REPEAT_3_71(m, d) MSGPACK_PP_REPEAT_3_70(m, d) m(4, 70, d)
+# define MSGPACK_PP_REPEAT_3_72(m, d) MSGPACK_PP_REPEAT_3_71(m, d) m(4, 71, d)
+# define MSGPACK_PP_REPEAT_3_73(m, d) MSGPACK_PP_REPEAT_3_72(m, d) m(4, 72, d)
+# define MSGPACK_PP_REPEAT_3_74(m, d) MSGPACK_PP_REPEAT_3_73(m, d) m(4, 73, d)
+# define MSGPACK_PP_REPEAT_3_75(m, d) MSGPACK_PP_REPEAT_3_74(m, d) m(4, 74, d)
+# define MSGPACK_PP_REPEAT_3_76(m, d) MSGPACK_PP_REPEAT_3_75(m, d) m(4, 75, d)
+# define MSGPACK_PP_REPEAT_3_77(m, d) MSGPACK_PP_REPEAT_3_76(m, d) m(4, 76, d)
+# define MSGPACK_PP_REPEAT_3_78(m, d) MSGPACK_PP_REPEAT_3_77(m, d) m(4, 77, d)
+# define MSGPACK_PP_REPEAT_3_79(m, d) MSGPACK_PP_REPEAT_3_78(m, d) m(4, 78, d)
+# define MSGPACK_PP_REPEAT_3_80(m, d) MSGPACK_PP_REPEAT_3_79(m, d) m(4, 79, d)
+# define MSGPACK_PP_REPEAT_3_81(m, d) MSGPACK_PP_REPEAT_3_80(m, d) m(4, 80, d)
+# define MSGPACK_PP_REPEAT_3_82(m, d) MSGPACK_PP_REPEAT_3_81(m, d) m(4, 81, d)
+# define MSGPACK_PP_REPEAT_3_83(m, d) MSGPACK_PP_REPEAT_3_82(m, d) m(4, 82, d)
+# define MSGPACK_PP_REPEAT_3_84(m, d) MSGPACK_PP_REPEAT_3_83(m, d) m(4, 83, d)
+# define MSGPACK_PP_REPEAT_3_85(m, d) MSGPACK_PP_REPEAT_3_84(m, d) m(4, 84, d)
+# define MSGPACK_PP_REPEAT_3_86(m, d) MSGPACK_PP_REPEAT_3_85(m, d) m(4, 85, d)
+# define MSGPACK_PP_REPEAT_3_87(m, d) MSGPACK_PP_REPEAT_3_86(m, d) m(4, 86, d)
+# define MSGPACK_PP_REPEAT_3_88(m, d) MSGPACK_PP_REPEAT_3_87(m, d) m(4, 87, d)
+# define MSGPACK_PP_REPEAT_3_89(m, d) MSGPACK_PP_REPEAT_3_88(m, d) m(4, 88, d)
+# define MSGPACK_PP_REPEAT_3_90(m, d) MSGPACK_PP_REPEAT_3_89(m, d) m(4, 89, d)
+# define MSGPACK_PP_REPEAT_3_91(m, d) MSGPACK_PP_REPEAT_3_90(m, d) m(4, 90, d)
+# define MSGPACK_PP_REPEAT_3_92(m, d) MSGPACK_PP_REPEAT_3_91(m, d) m(4, 91, d)
+# define MSGPACK_PP_REPEAT_3_93(m, d) MSGPACK_PP_REPEAT_3_92(m, d) m(4, 92, d)
+# define MSGPACK_PP_REPEAT_3_94(m, d) MSGPACK_PP_REPEAT_3_93(m, d) m(4, 93, d)
+# define MSGPACK_PP_REPEAT_3_95(m, d) MSGPACK_PP_REPEAT_3_94(m, d) m(4, 94, d)
+# define MSGPACK_PP_REPEAT_3_96(m, d) MSGPACK_PP_REPEAT_3_95(m, d) m(4, 95, d)
+# define MSGPACK_PP_REPEAT_3_97(m, d) MSGPACK_PP_REPEAT_3_96(m, d) m(4, 96, d)
+# define MSGPACK_PP_REPEAT_3_98(m, d) MSGPACK_PP_REPEAT_3_97(m, d) m(4, 97, d)
+# define MSGPACK_PP_REPEAT_3_99(m, d) MSGPACK_PP_REPEAT_3_98(m, d) m(4, 98, d)
+# define MSGPACK_PP_REPEAT_3_100(m, d) MSGPACK_PP_REPEAT_3_99(m, d) m(4, 99, d)
+# define MSGPACK_PP_REPEAT_3_101(m, d) MSGPACK_PP_REPEAT_3_100(m, d) m(4, 100, d)
+# define MSGPACK_PP_REPEAT_3_102(m, d) MSGPACK_PP_REPEAT_3_101(m, d) m(4, 101, d)
+# define MSGPACK_PP_REPEAT_3_103(m, d) MSGPACK_PP_REPEAT_3_102(m, d) m(4, 102, d)
+# define MSGPACK_PP_REPEAT_3_104(m, d) MSGPACK_PP_REPEAT_3_103(m, d) m(4, 103, d)
+# define MSGPACK_PP_REPEAT_3_105(m, d) MSGPACK_PP_REPEAT_3_104(m, d) m(4, 104, d)
+# define MSGPACK_PP_REPEAT_3_106(m, d) MSGPACK_PP_REPEAT_3_105(m, d) m(4, 105, d)
+# define MSGPACK_PP_REPEAT_3_107(m, d) MSGPACK_PP_REPEAT_3_106(m, d) m(4, 106, d)
+# define MSGPACK_PP_REPEAT_3_108(m, d) MSGPACK_PP_REPEAT_3_107(m, d) m(4, 107, d)
+# define MSGPACK_PP_REPEAT_3_109(m, d) MSGPACK_PP_REPEAT_3_108(m, d) m(4, 108, d)
+# define MSGPACK_PP_REPEAT_3_110(m, d) MSGPACK_PP_REPEAT_3_109(m, d) m(4, 109, d)
+# define MSGPACK_PP_REPEAT_3_111(m, d) MSGPACK_PP_REPEAT_3_110(m, d) m(4, 110, d)
+# define MSGPACK_PP_REPEAT_3_112(m, d) MSGPACK_PP_REPEAT_3_111(m, d) m(4, 111, d)
+# define MSGPACK_PP_REPEAT_3_113(m, d) MSGPACK_PP_REPEAT_3_112(m, d) m(4, 112, d)
+# define MSGPACK_PP_REPEAT_3_114(m, d) MSGPACK_PP_REPEAT_3_113(m, d) m(4, 113, d)
+# define MSGPACK_PP_REPEAT_3_115(m, d) MSGPACK_PP_REPEAT_3_114(m, d) m(4, 114, d)
+# define MSGPACK_PP_REPEAT_3_116(m, d) MSGPACK_PP_REPEAT_3_115(m, d) m(4, 115, d)
+# define MSGPACK_PP_REPEAT_3_117(m, d) MSGPACK_PP_REPEAT_3_116(m, d) m(4, 116, d)
+# define MSGPACK_PP_REPEAT_3_118(m, d) MSGPACK_PP_REPEAT_3_117(m, d) m(4, 117, d)
+# define MSGPACK_PP_REPEAT_3_119(m, d) MSGPACK_PP_REPEAT_3_118(m, d) m(4, 118, d)
+# define MSGPACK_PP_REPEAT_3_120(m, d) MSGPACK_PP_REPEAT_3_119(m, d) m(4, 119, d)
+# define MSGPACK_PP_REPEAT_3_121(m, d) MSGPACK_PP_REPEAT_3_120(m, d) m(4, 120, d)
+# define MSGPACK_PP_REPEAT_3_122(m, d) MSGPACK_PP_REPEAT_3_121(m, d) m(4, 121, d)
+# define MSGPACK_PP_REPEAT_3_123(m, d) MSGPACK_PP_REPEAT_3_122(m, d) m(4, 122, d)
+# define MSGPACK_PP_REPEAT_3_124(m, d) MSGPACK_PP_REPEAT_3_123(m, d) m(4, 123, d)
+# define MSGPACK_PP_REPEAT_3_125(m, d) MSGPACK_PP_REPEAT_3_124(m, d) m(4, 124, d)
+# define MSGPACK_PP_REPEAT_3_126(m, d) MSGPACK_PP_REPEAT_3_125(m, d) m(4, 125, d)
+# define MSGPACK_PP_REPEAT_3_127(m, d) MSGPACK_PP_REPEAT_3_126(m, d) m(4, 126, d)
+# define MSGPACK_PP_REPEAT_3_128(m, d) MSGPACK_PP_REPEAT_3_127(m, d) m(4, 127, d)
+# define MSGPACK_PP_REPEAT_3_129(m, d) MSGPACK_PP_REPEAT_3_128(m, d) m(4, 128, d)
+# define MSGPACK_PP_REPEAT_3_130(m, d) MSGPACK_PP_REPEAT_3_129(m, d) m(4, 129, d)
+# define MSGPACK_PP_REPEAT_3_131(m, d) MSGPACK_PP_REPEAT_3_130(m, d) m(4, 130, d)
+# define MSGPACK_PP_REPEAT_3_132(m, d) MSGPACK_PP_REPEAT_3_131(m, d) m(4, 131, d)
+# define MSGPACK_PP_REPEAT_3_133(m, d) MSGPACK_PP_REPEAT_3_132(m, d) m(4, 132, d)
+# define MSGPACK_PP_REPEAT_3_134(m, d) MSGPACK_PP_REPEAT_3_133(m, d) m(4, 133, d)
+# define MSGPACK_PP_REPEAT_3_135(m, d) MSGPACK_PP_REPEAT_3_134(m, d) m(4, 134, d)
+# define MSGPACK_PP_REPEAT_3_136(m, d) MSGPACK_PP_REPEAT_3_135(m, d) m(4, 135, d)
+# define MSGPACK_PP_REPEAT_3_137(m, d) MSGPACK_PP_REPEAT_3_136(m, d) m(4, 136, d)
+# define MSGPACK_PP_REPEAT_3_138(m, d) MSGPACK_PP_REPEAT_3_137(m, d) m(4, 137, d)
+# define MSGPACK_PP_REPEAT_3_139(m, d) MSGPACK_PP_REPEAT_3_138(m, d) m(4, 138, d)
+# define MSGPACK_PP_REPEAT_3_140(m, d) MSGPACK_PP_REPEAT_3_139(m, d) m(4, 139, d)
+# define MSGPACK_PP_REPEAT_3_141(m, d) MSGPACK_PP_REPEAT_3_140(m, d) m(4, 140, d)
+# define MSGPACK_PP_REPEAT_3_142(m, d) MSGPACK_PP_REPEAT_3_141(m, d) m(4, 141, d)
+# define MSGPACK_PP_REPEAT_3_143(m, d) MSGPACK_PP_REPEAT_3_142(m, d) m(4, 142, d)
+# define MSGPACK_PP_REPEAT_3_144(m, d) MSGPACK_PP_REPEAT_3_143(m, d) m(4, 143, d)
+# define MSGPACK_PP_REPEAT_3_145(m, d) MSGPACK_PP_REPEAT_3_144(m, d) m(4, 144, d)
+# define MSGPACK_PP_REPEAT_3_146(m, d) MSGPACK_PP_REPEAT_3_145(m, d) m(4, 145, d)
+# define MSGPACK_PP_REPEAT_3_147(m, d) MSGPACK_PP_REPEAT_3_146(m, d) m(4, 146, d)
+# define MSGPACK_PP_REPEAT_3_148(m, d) MSGPACK_PP_REPEAT_3_147(m, d) m(4, 147, d)
+# define MSGPACK_PP_REPEAT_3_149(m, d) MSGPACK_PP_REPEAT_3_148(m, d) m(4, 148, d)
+# define MSGPACK_PP_REPEAT_3_150(m, d) MSGPACK_PP_REPEAT_3_149(m, d) m(4, 149, d)
+# define MSGPACK_PP_REPEAT_3_151(m, d) MSGPACK_PP_REPEAT_3_150(m, d) m(4, 150, d)
+# define MSGPACK_PP_REPEAT_3_152(m, d) MSGPACK_PP_REPEAT_3_151(m, d) m(4, 151, d)
+# define MSGPACK_PP_REPEAT_3_153(m, d) MSGPACK_PP_REPEAT_3_152(m, d) m(4, 152, d)
+# define MSGPACK_PP_REPEAT_3_154(m, d) MSGPACK_PP_REPEAT_3_153(m, d) m(4, 153, d)
+# define MSGPACK_PP_REPEAT_3_155(m, d) MSGPACK_PP_REPEAT_3_154(m, d) m(4, 154, d)
+# define MSGPACK_PP_REPEAT_3_156(m, d) MSGPACK_PP_REPEAT_3_155(m, d) m(4, 155, d)
+# define MSGPACK_PP_REPEAT_3_157(m, d) MSGPACK_PP_REPEAT_3_156(m, d) m(4, 156, d)
+# define MSGPACK_PP_REPEAT_3_158(m, d) MSGPACK_PP_REPEAT_3_157(m, d) m(4, 157, d)
+# define MSGPACK_PP_REPEAT_3_159(m, d) MSGPACK_PP_REPEAT_3_158(m, d) m(4, 158, d)
+# define MSGPACK_PP_REPEAT_3_160(m, d) MSGPACK_PP_REPEAT_3_159(m, d) m(4, 159, d)
+# define MSGPACK_PP_REPEAT_3_161(m, d) MSGPACK_PP_REPEAT_3_160(m, d) m(4, 160, d)
+# define MSGPACK_PP_REPEAT_3_162(m, d) MSGPACK_PP_REPEAT_3_161(m, d) m(4, 161, d)
+# define MSGPACK_PP_REPEAT_3_163(m, d) MSGPACK_PP_REPEAT_3_162(m, d) m(4, 162, d)
+# define MSGPACK_PP_REPEAT_3_164(m, d) MSGPACK_PP_REPEAT_3_163(m, d) m(4, 163, d)
+# define MSGPACK_PP_REPEAT_3_165(m, d) MSGPACK_PP_REPEAT_3_164(m, d) m(4, 164, d)
+# define MSGPACK_PP_REPEAT_3_166(m, d) MSGPACK_PP_REPEAT_3_165(m, d) m(4, 165, d)
+# define MSGPACK_PP_REPEAT_3_167(m, d) MSGPACK_PP_REPEAT_3_166(m, d) m(4, 166, d)
+# define MSGPACK_PP_REPEAT_3_168(m, d) MSGPACK_PP_REPEAT_3_167(m, d) m(4, 167, d)
+# define MSGPACK_PP_REPEAT_3_169(m, d) MSGPACK_PP_REPEAT_3_168(m, d) m(4, 168, d)
+# define MSGPACK_PP_REPEAT_3_170(m, d) MSGPACK_PP_REPEAT_3_169(m, d) m(4, 169, d)
+# define MSGPACK_PP_REPEAT_3_171(m, d) MSGPACK_PP_REPEAT_3_170(m, d) m(4, 170, d)
+# define MSGPACK_PP_REPEAT_3_172(m, d) MSGPACK_PP_REPEAT_3_171(m, d) m(4, 171, d)
+# define MSGPACK_PP_REPEAT_3_173(m, d) MSGPACK_PP_REPEAT_3_172(m, d) m(4, 172, d)
+# define MSGPACK_PP_REPEAT_3_174(m, d) MSGPACK_PP_REPEAT_3_173(m, d) m(4, 173, d)
+# define MSGPACK_PP_REPEAT_3_175(m, d) MSGPACK_PP_REPEAT_3_174(m, d) m(4, 174, d)
+# define MSGPACK_PP_REPEAT_3_176(m, d) MSGPACK_PP_REPEAT_3_175(m, d) m(4, 175, d)
+# define MSGPACK_PP_REPEAT_3_177(m, d) MSGPACK_PP_REPEAT_3_176(m, d) m(4, 176, d)
+# define MSGPACK_PP_REPEAT_3_178(m, d) MSGPACK_PP_REPEAT_3_177(m, d) m(4, 177, d)
+# define MSGPACK_PP_REPEAT_3_179(m, d) MSGPACK_PP_REPEAT_3_178(m, d) m(4, 178, d)
+# define MSGPACK_PP_REPEAT_3_180(m, d) MSGPACK_PP_REPEAT_3_179(m, d) m(4, 179, d)
+# define MSGPACK_PP_REPEAT_3_181(m, d) MSGPACK_PP_REPEAT_3_180(m, d) m(4, 180, d)
+# define MSGPACK_PP_REPEAT_3_182(m, d) MSGPACK_PP_REPEAT_3_181(m, d) m(4, 181, d)
+# define MSGPACK_PP_REPEAT_3_183(m, d) MSGPACK_PP_REPEAT_3_182(m, d) m(4, 182, d)
+# define MSGPACK_PP_REPEAT_3_184(m, d) MSGPACK_PP_REPEAT_3_183(m, d) m(4, 183, d)
+# define MSGPACK_PP_REPEAT_3_185(m, d) MSGPACK_PP_REPEAT_3_184(m, d) m(4, 184, d)
+# define MSGPACK_PP_REPEAT_3_186(m, d) MSGPACK_PP_REPEAT_3_185(m, d) m(4, 185, d)
+# define MSGPACK_PP_REPEAT_3_187(m, d) MSGPACK_PP_REPEAT_3_186(m, d) m(4, 186, d)
+# define MSGPACK_PP_REPEAT_3_188(m, d) MSGPACK_PP_REPEAT_3_187(m, d) m(4, 187, d)
+# define MSGPACK_PP_REPEAT_3_189(m, d) MSGPACK_PP_REPEAT_3_188(m, d) m(4, 188, d)
+# define MSGPACK_PP_REPEAT_3_190(m, d) MSGPACK_PP_REPEAT_3_189(m, d) m(4, 189, d)
+# define MSGPACK_PP_REPEAT_3_191(m, d) MSGPACK_PP_REPEAT_3_190(m, d) m(4, 190, d)
+# define MSGPACK_PP_REPEAT_3_192(m, d) MSGPACK_PP_REPEAT_3_191(m, d) m(4, 191, d)
+# define MSGPACK_PP_REPEAT_3_193(m, d) MSGPACK_PP_REPEAT_3_192(m, d) m(4, 192, d)
+# define MSGPACK_PP_REPEAT_3_194(m, d) MSGPACK_PP_REPEAT_3_193(m, d) m(4, 193, d)
+# define MSGPACK_PP_REPEAT_3_195(m, d) MSGPACK_PP_REPEAT_3_194(m, d) m(4, 194, d)
+# define MSGPACK_PP_REPEAT_3_196(m, d) MSGPACK_PP_REPEAT_3_195(m, d) m(4, 195, d)
+# define MSGPACK_PP_REPEAT_3_197(m, d) MSGPACK_PP_REPEAT_3_196(m, d) m(4, 196, d)
+# define MSGPACK_PP_REPEAT_3_198(m, d) MSGPACK_PP_REPEAT_3_197(m, d) m(4, 197, d)
+# define MSGPACK_PP_REPEAT_3_199(m, d) MSGPACK_PP_REPEAT_3_198(m, d) m(4, 198, d)
+# define MSGPACK_PP_REPEAT_3_200(m, d) MSGPACK_PP_REPEAT_3_199(m, d) m(4, 199, d)
+# define MSGPACK_PP_REPEAT_3_201(m, d) MSGPACK_PP_REPEAT_3_200(m, d) m(4, 200, d)
+# define MSGPACK_PP_REPEAT_3_202(m, d) MSGPACK_PP_REPEAT_3_201(m, d) m(4, 201, d)
+# define MSGPACK_PP_REPEAT_3_203(m, d) MSGPACK_PP_REPEAT_3_202(m, d) m(4, 202, d)
+# define MSGPACK_PP_REPEAT_3_204(m, d) MSGPACK_PP_REPEAT_3_203(m, d) m(4, 203, d)
+# define MSGPACK_PP_REPEAT_3_205(m, d) MSGPACK_PP_REPEAT_3_204(m, d) m(4, 204, d)
+# define MSGPACK_PP_REPEAT_3_206(m, d) MSGPACK_PP_REPEAT_3_205(m, d) m(4, 205, d)
+# define MSGPACK_PP_REPEAT_3_207(m, d) MSGPACK_PP_REPEAT_3_206(m, d) m(4, 206, d)
+# define MSGPACK_PP_REPEAT_3_208(m, d) MSGPACK_PP_REPEAT_3_207(m, d) m(4, 207, d)
+# define MSGPACK_PP_REPEAT_3_209(m, d) MSGPACK_PP_REPEAT_3_208(m, d) m(4, 208, d)
+# define MSGPACK_PP_REPEAT_3_210(m, d) MSGPACK_PP_REPEAT_3_209(m, d) m(4, 209, d)
+# define MSGPACK_PP_REPEAT_3_211(m, d) MSGPACK_PP_REPEAT_3_210(m, d) m(4, 210, d)
+# define MSGPACK_PP_REPEAT_3_212(m, d) MSGPACK_PP_REPEAT_3_211(m, d) m(4, 211, d)
+# define MSGPACK_PP_REPEAT_3_213(m, d) MSGPACK_PP_REPEAT_3_212(m, d) m(4, 212, d)
+# define MSGPACK_PP_REPEAT_3_214(m, d) MSGPACK_PP_REPEAT_3_213(m, d) m(4, 213, d)
+# define MSGPACK_PP_REPEAT_3_215(m, d) MSGPACK_PP_REPEAT_3_214(m, d) m(4, 214, d)
+# define MSGPACK_PP_REPEAT_3_216(m, d) MSGPACK_PP_REPEAT_3_215(m, d) m(4, 215, d)
+# define MSGPACK_PP_REPEAT_3_217(m, d) MSGPACK_PP_REPEAT_3_216(m, d) m(4, 216, d)
+# define MSGPACK_PP_REPEAT_3_218(m, d) MSGPACK_PP_REPEAT_3_217(m, d) m(4, 217, d)
+# define MSGPACK_PP_REPEAT_3_219(m, d) MSGPACK_PP_REPEAT_3_218(m, d) m(4, 218, d)
+# define MSGPACK_PP_REPEAT_3_220(m, d) MSGPACK_PP_REPEAT_3_219(m, d) m(4, 219, d)
+# define MSGPACK_PP_REPEAT_3_221(m, d) MSGPACK_PP_REPEAT_3_220(m, d) m(4, 220, d)
+# define MSGPACK_PP_REPEAT_3_222(m, d) MSGPACK_PP_REPEAT_3_221(m, d) m(4, 221, d)
+# define MSGPACK_PP_REPEAT_3_223(m, d) MSGPACK_PP_REPEAT_3_222(m, d) m(4, 222, d)
+# define MSGPACK_PP_REPEAT_3_224(m, d) MSGPACK_PP_REPEAT_3_223(m, d) m(4, 223, d)
+# define MSGPACK_PP_REPEAT_3_225(m, d) MSGPACK_PP_REPEAT_3_224(m, d) m(4, 224, d)
+# define MSGPACK_PP_REPEAT_3_226(m, d) MSGPACK_PP_REPEAT_3_225(m, d) m(4, 225, d)
+# define MSGPACK_PP_REPEAT_3_227(m, d) MSGPACK_PP_REPEAT_3_226(m, d) m(4, 226, d)
+# define MSGPACK_PP_REPEAT_3_228(m, d) MSGPACK_PP_REPEAT_3_227(m, d) m(4, 227, d)
+# define MSGPACK_PP_REPEAT_3_229(m, d) MSGPACK_PP_REPEAT_3_228(m, d) m(4, 228, d)
+# define MSGPACK_PP_REPEAT_3_230(m, d) MSGPACK_PP_REPEAT_3_229(m, d) m(4, 229, d)
+# define MSGPACK_PP_REPEAT_3_231(m, d) MSGPACK_PP_REPEAT_3_230(m, d) m(4, 230, d)
+# define MSGPACK_PP_REPEAT_3_232(m, d) MSGPACK_PP_REPEAT_3_231(m, d) m(4, 231, d)
+# define MSGPACK_PP_REPEAT_3_233(m, d) MSGPACK_PP_REPEAT_3_232(m, d) m(4, 232, d)
+# define MSGPACK_PP_REPEAT_3_234(m, d) MSGPACK_PP_REPEAT_3_233(m, d) m(4, 233, d)
+# define MSGPACK_PP_REPEAT_3_235(m, d) MSGPACK_PP_REPEAT_3_234(m, d) m(4, 234, d)
+# define MSGPACK_PP_REPEAT_3_236(m, d) MSGPACK_PP_REPEAT_3_235(m, d) m(4, 235, d)
+# define MSGPACK_PP_REPEAT_3_237(m, d) MSGPACK_PP_REPEAT_3_236(m, d) m(4, 236, d)
+# define MSGPACK_PP_REPEAT_3_238(m, d) MSGPACK_PP_REPEAT_3_237(m, d) m(4, 237, d)
+# define MSGPACK_PP_REPEAT_3_239(m, d) MSGPACK_PP_REPEAT_3_238(m, d) m(4, 238, d)
+# define MSGPACK_PP_REPEAT_3_240(m, d) MSGPACK_PP_REPEAT_3_239(m, d) m(4, 239, d)
+# define MSGPACK_PP_REPEAT_3_241(m, d) MSGPACK_PP_REPEAT_3_240(m, d) m(4, 240, d)
+# define MSGPACK_PP_REPEAT_3_242(m, d) MSGPACK_PP_REPEAT_3_241(m, d) m(4, 241, d)
+# define MSGPACK_PP_REPEAT_3_243(m, d) MSGPACK_PP_REPEAT_3_242(m, d) m(4, 242, d)
+# define MSGPACK_PP_REPEAT_3_244(m, d) MSGPACK_PP_REPEAT_3_243(m, d) m(4, 243, d)
+# define MSGPACK_PP_REPEAT_3_245(m, d) MSGPACK_PP_REPEAT_3_244(m, d) m(4, 244, d)
+# define MSGPACK_PP_REPEAT_3_246(m, d) MSGPACK_PP_REPEAT_3_245(m, d) m(4, 245, d)
+# define MSGPACK_PP_REPEAT_3_247(m, d) MSGPACK_PP_REPEAT_3_246(m, d) m(4, 246, d)
+# define MSGPACK_PP_REPEAT_3_248(m, d) MSGPACK_PP_REPEAT_3_247(m, d) m(4, 247, d)
+# define MSGPACK_PP_REPEAT_3_249(m, d) MSGPACK_PP_REPEAT_3_248(m, d) m(4, 248, d)
+# define MSGPACK_PP_REPEAT_3_250(m, d) MSGPACK_PP_REPEAT_3_249(m, d) m(4, 249, d)
+# define MSGPACK_PP_REPEAT_3_251(m, d) MSGPACK_PP_REPEAT_3_250(m, d) m(4, 250, d)
+# define MSGPACK_PP_REPEAT_3_252(m, d) MSGPACK_PP_REPEAT_3_251(m, d) m(4, 251, d)
+# define MSGPACK_PP_REPEAT_3_253(m, d) MSGPACK_PP_REPEAT_3_252(m, d) m(4, 252, d)
+# define MSGPACK_PP_REPEAT_3_254(m, d) MSGPACK_PP_REPEAT_3_253(m, d) m(4, 253, d)
+# define MSGPACK_PP_REPEAT_3_255(m, d) MSGPACK_PP_REPEAT_3_254(m, d) m(4, 254, d)
+# define MSGPACK_PP_REPEAT_3_256(m, d) MSGPACK_PP_REPEAT_3_255(m, d) m(4, 255, d)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp
new file mode 100644
index 000000000..49a7373f0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/repetition/repeat_from_to.hpp
@@ -0,0 +1,87 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
+# define MSGPACK_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/add.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/sub.hpp>
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/repetition/repeat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_REPEAT_FROM_TO */
+#
+# if 0
+# define MSGPACK_PP_REPEAT_FROM_TO(first, last, macro, data)
+# endif
+#
+# define MSGPACK_PP_REPEAT_FROM_TO MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_FROM_TO_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4))
+#
+# define MSGPACK_PP_REPEAT_FROM_TO_1(f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_1(MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256), f, l, m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_2(f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_2(MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256), f, l, m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_3(f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_3(MSGPACK_PP_AUTO_REC(MSGPACK_PP_WHILE_P, 256), f, l, m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_4(f, l, m, dt) MSGPACK_PP_ERROR(0x0003)
+#
+# define MSGPACK_PP_REPEAT_FROM_TO_1ST MSGPACK_PP_REPEAT_FROM_TO_1
+# define MSGPACK_PP_REPEAT_FROM_TO_2ND MSGPACK_PP_REPEAT_FROM_TO_2
+# define MSGPACK_PP_REPEAT_FROM_TO_3RD MSGPACK_PP_REPEAT_FROM_TO_3
+#
+# /* MSGPACK_PP_REPEAT_FROM_TO_D */
+#
+# if 0
+# define MSGPACK_PP_REPEAT_FROM_TO_D(d, first, last, macro, data)
+# endif
+#
+# define MSGPACK_PP_REPEAT_FROM_TO_D MSGPACK_PP_CAT(MSGPACK_PP_REPEAT_FROM_TO_D_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_REPEAT_P, 4))
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) MSGPACK_PP_REPEAT_1(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
+# define MSGPACK_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) MSGPACK_PP_REPEAT_2(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
+# define MSGPACK_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) MSGPACK_PP_REPEAT_3(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
+# else
+# define MSGPACK_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) MSGPACK_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) MSGPACK_PP_REPEAT_1(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
+# define MSGPACK_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) MSGPACK_PP_REPEAT_2(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
+# define MSGPACK_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) MSGPACK_PP_REPEAT_3(MSGPACK_PP_SUB_D(d, l, f), MSGPACK_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_1_IM(z, n, MSGPACK_PP_TUPLE_REM_4 dfmd)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_2_IM(z, n, MSGPACK_PP_TUPLE_REM_4 dfmd)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_3_IM(z, n, MSGPACK_PP_TUPLE_REM_4 dfmd)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_1_IM(z, n, im) MSGPACK_PP_REPEAT_FROM_TO_M_1_I(z, n, im)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_2_IM(z, n, im) MSGPACK_PP_REPEAT_FROM_TO_M_2_I(z, n, im)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_3_IM(z, n, im) MSGPACK_PP_REPEAT_FROM_TO_M_3_I(z, n, im)
+# else
+# define MSGPACK_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_1_I(z, n, MSGPACK_PP_TUPLE_ELEM(4, 0, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 1, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 2, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 3, dfmd))
+# define MSGPACK_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_2_I(z, n, MSGPACK_PP_TUPLE_ELEM(4, 0, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 1, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 2, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 3, dfmd))
+# define MSGPACK_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) MSGPACK_PP_REPEAT_FROM_TO_M_3_I(z, n, MSGPACK_PP_TUPLE_ELEM(4, 0, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 1, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 2, dfmd), MSGPACK_PP_TUPLE_ELEM(4, 3, dfmd))
+# endif
+#
+# define MSGPACK_PP_REPEAT_FROM_TO_M_1_I(z, n, d, f, m, dt) MSGPACK_PP_REPEAT_FROM_TO_M_1_II(z, MSGPACK_PP_ADD_D(d, n, f), m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_2_I(z, n, d, f, m, dt) MSGPACK_PP_REPEAT_FROM_TO_M_2_II(z, MSGPACK_PP_ADD_D(d, n, f), m, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_3_I(z, n, d, f, m, dt) MSGPACK_PP_REPEAT_FROM_TO_M_3_II(z, MSGPACK_PP_ADD_D(d, n, f), m, dt)
+#
+# define MSGPACK_PP_REPEAT_FROM_TO_M_1_II(z, n, m, dt) m(z, n, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_2_II(z, n, m, dt) m(z, n, dt)
+# define MSGPACK_PP_REPEAT_FROM_TO_M_3_II(z, n, m, dt) m(z, n, dt)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection.hpp
new file mode 100644
index 000000000..9753848dc
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection.hpp
@@ -0,0 +1,18 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SELECTION_HPP
+# define MSGPACK_PREPROCESSOR_SELECTION_HPP
+#
+# include <rpc/msgpack/preprocessor/selection/max.hpp>
+# include <rpc/msgpack/preprocessor/selection/min.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/max.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/max.hpp
new file mode 100644
index 000000000..5081c85c5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/max.hpp
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SELECTION_MAX_HPP
+# define MSGPACK_PREPROCESSOR_SELECTION_MAX_HPP
+#
+# include <rpc/msgpack/preprocessor/comparison/less_equal.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+#
+# /* MSGPACK_PP_MAX */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MAX(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(x, y), y, x)
+# else
+# define MSGPACK_PP_MAX(x, y) MSGPACK_PP_MAX_I(x, y)
+# define MSGPACK_PP_MAX_I(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(x, y), y, x)
+# endif
+#
+# /* MSGPACK_PP_MAX_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MAX_D(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, x, y), y, x)
+# else
+# define MSGPACK_PP_MAX_D(d, x, y) MSGPACK_PP_MAX_D_I(d, x, y)
+# define MSGPACK_PP_MAX_D_I(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, x, y), y, x)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/min.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/min.hpp
new file mode 100644
index 000000000..3019e57b2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/selection/min.hpp
@@ -0,0 +1,39 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SELECTION_MIN_HPP
+# define MSGPACK_PREPROCESSOR_SELECTION_MIN_HPP
+#
+# include <rpc/msgpack/preprocessor/comparison/less_equal.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+#
+# /* MSGPACK_PP_MIN */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MIN(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(y, x), y, x)
+# else
+# define MSGPACK_PP_MIN(x, y) MSGPACK_PP_MIN_I(x, y)
+# define MSGPACK_PP_MIN_I(x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL(y, x), y, x)
+# endif
+#
+# /* MSGPACK_PP_MIN_D */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_MIN_D(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, y, x), y, x)
+# else
+# define MSGPACK_PP_MIN_D(d, x, y) MSGPACK_PP_MIN_D_I(d, x, y)
+# define MSGPACK_PP_MIN_D_I(d, x, y) MSGPACK_PP_IIF(MSGPACK_PP_LESS_EQUAL_D(d, y, x), y, x)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq.hpp
new file mode 100644
index 000000000..e9941861d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq.hpp
@@ -0,0 +1,44 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/seq/cat.hpp>
+# include <rpc/msgpack/preprocessor/seq/elem.hpp>
+# include <rpc/msgpack/preprocessor/seq/enum.hpp>
+# include <rpc/msgpack/preprocessor/seq/filter.hpp>
+# include <rpc/msgpack/preprocessor/seq/first_n.hpp>
+# include <rpc/msgpack/preprocessor/seq/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/seq/fold_right.hpp>
+# include <rpc/msgpack/preprocessor/seq/for_each.hpp>
+# include <rpc/msgpack/preprocessor/seq/for_each_i.hpp>
+# include <rpc/msgpack/preprocessor/seq/for_each_product.hpp>
+# include <rpc/msgpack/preprocessor/seq/insert.hpp>
+# include <rpc/msgpack/preprocessor/seq/pop_back.hpp>
+# include <rpc/msgpack/preprocessor/seq/pop_front.hpp>
+# include <rpc/msgpack/preprocessor/seq/push_back.hpp>
+# include <rpc/msgpack/preprocessor/seq/push_front.hpp>
+# include <rpc/msgpack/preprocessor/seq/remove.hpp>
+# include <rpc/msgpack/preprocessor/seq/replace.hpp>
+# include <rpc/msgpack/preprocessor/seq/rest_n.hpp>
+# include <rpc/msgpack/preprocessor/seq/reverse.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+# include <rpc/msgpack/preprocessor/seq/subseq.hpp>
+# include <rpc/msgpack/preprocessor/seq/to_array.hpp>
+# include <rpc/msgpack/preprocessor/seq/to_list.hpp>
+# include <rpc/msgpack/preprocessor/seq/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/seq/transform.hpp>
+# include <rpc/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/cat.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/cat.hpp
new file mode 100644
index 000000000..d8fd6bb1b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/cat.hpp
@@ -0,0 +1,49 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_CAT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_CAT_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/seq/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+#
+# /* MSGPACK_PP_SEQ_CAT */
+#
+# define MSGPACK_PP_SEQ_CAT(seq) \
+ MSGPACK_PP_IF( \
+ MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), \
+ MSGPACK_PP_SEQ_CAT_I, \
+ MSGPACK_PP_SEQ_HEAD \
+ )(seq) \
+ /**/
+# define MSGPACK_PP_SEQ_CAT_I(seq) MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_CAT_O, MSGPACK_PP_SEQ_HEAD(seq), MSGPACK_PP_SEQ_TAIL(seq))
+#
+# define MSGPACK_PP_SEQ_CAT_O(s, st, elem) MSGPACK_PP_SEQ_CAT_O_I(st, elem)
+# define MSGPACK_PP_SEQ_CAT_O_I(a, b) a ## b
+#
+# /* MSGPACK_PP_SEQ_CAT_S */
+#
+# define MSGPACK_PP_SEQ_CAT_S(s, seq) \
+ MSGPACK_PP_IF( \
+ MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), \
+ MSGPACK_PP_SEQ_CAT_S_I_A, \
+ MSGPACK_PP_SEQ_CAT_S_I_B \
+ )(s, seq) \
+ /**/
+# define MSGPACK_PP_SEQ_CAT_S_I_A(s, seq) MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_CAT_O, MSGPACK_PP_SEQ_HEAD(seq), MSGPACK_PP_SEQ_TAIL(seq))
+# define MSGPACK_PP_SEQ_CAT_S_I_B(s, seq) MSGPACK_PP_SEQ_HEAD(seq)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/binary_transform.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/binary_transform.hpp
new file mode 100644
index 000000000..4d16f09e5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/binary_transform.hpp
@@ -0,0 +1,48 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_DETAIL_BINARY_TRANSFORM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# include <rpc/msgpack/preprocessor/variadic/detail/is_single_return.hpp>
+#
+# /* MSGPACK_PP_SEQ_BINARY_TRANSFORM */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM(seq) MSGPACK_PP_SEQ_BINARY_TRANSFORM_I(, seq)
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_I(p, seq) MSGPACK_PP_SEQ_BINARY_TRANSFORM_II(p ## seq)
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_II(seq) MSGPACK_PP_SEQ_BINARY_TRANSFORM_III(seq)
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_III(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_BINARY_TRANSFORM_A seq, 0)
+# else
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_BINARY_TRANSFORM_A seq, 0)
+# endif
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(...) \
+ MSGPACK_PP_VARIADIC_IS_SINGLE_RETURN(MSGPACK_PP_REM_CAT,MSGPACK_PP_REM,__VA_ARGS__) \
+ /**/
+# else
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(...) MSGPACK_PP_REM
+# endif
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_A(...) (MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(__VA_ARGS__), __VA_ARGS__)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_B
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_B(...) (MSGPACK_PP_SEQ_BINARY_TRANSFORM_GET_REM(__VA_ARGS__), __VA_ARGS__)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_A
+# else
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_A(e) (MSGPACK_PP_REM, e)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_B
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_B(e) (MSGPACK_PP_REM, e)() MSGPACK_PP_SEQ_BINARY_TRANSFORM_A
+# endif
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_A0 (MSGPACK_PP_EAT, ?)
+# define MSGPACK_PP_SEQ_BINARY_TRANSFORM_B0 (MSGPACK_PP_EAT, ?)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/split.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/split.hpp
new file mode 100644
index 000000000..d04a2b31e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/detail/split.hpp
@@ -0,0 +1,284 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_SEQ_SPLIT */
+#
+# define MSGPACK_PP_SEQ_SPLIT(n, seq) MSGPACK_PP_SEQ_SPLIT_D(n, seq)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_SPLIT_D(n, seq) (MSGPACK_PP_SEQ_SPLIT_ ## n seq)
+# else
+# define MSGPACK_PP_SEQ_SPLIT_D(n, seq) (MSGPACK_PP_SEQ_SPLIT_ ## n ## seq)
+# endif
+#
+# define MSGPACK_PP_SEQ_SPLIT_1(x) (x),
+# define MSGPACK_PP_SEQ_SPLIT_2(x) (x) MSGPACK_PP_SEQ_SPLIT_1
+# define MSGPACK_PP_SEQ_SPLIT_3(x) (x) MSGPACK_PP_SEQ_SPLIT_2
+# define MSGPACK_PP_SEQ_SPLIT_4(x) (x) MSGPACK_PP_SEQ_SPLIT_3
+# define MSGPACK_PP_SEQ_SPLIT_5(x) (x) MSGPACK_PP_SEQ_SPLIT_4
+# define MSGPACK_PP_SEQ_SPLIT_6(x) (x) MSGPACK_PP_SEQ_SPLIT_5
+# define MSGPACK_PP_SEQ_SPLIT_7(x) (x) MSGPACK_PP_SEQ_SPLIT_6
+# define MSGPACK_PP_SEQ_SPLIT_8(x) (x) MSGPACK_PP_SEQ_SPLIT_7
+# define MSGPACK_PP_SEQ_SPLIT_9(x) (x) MSGPACK_PP_SEQ_SPLIT_8
+# define MSGPACK_PP_SEQ_SPLIT_10(x) (x) MSGPACK_PP_SEQ_SPLIT_9
+# define MSGPACK_PP_SEQ_SPLIT_11(x) (x) MSGPACK_PP_SEQ_SPLIT_10
+# define MSGPACK_PP_SEQ_SPLIT_12(x) (x) MSGPACK_PP_SEQ_SPLIT_11
+# define MSGPACK_PP_SEQ_SPLIT_13(x) (x) MSGPACK_PP_SEQ_SPLIT_12
+# define MSGPACK_PP_SEQ_SPLIT_14(x) (x) MSGPACK_PP_SEQ_SPLIT_13
+# define MSGPACK_PP_SEQ_SPLIT_15(x) (x) MSGPACK_PP_SEQ_SPLIT_14
+# define MSGPACK_PP_SEQ_SPLIT_16(x) (x) MSGPACK_PP_SEQ_SPLIT_15
+# define MSGPACK_PP_SEQ_SPLIT_17(x) (x) MSGPACK_PP_SEQ_SPLIT_16
+# define MSGPACK_PP_SEQ_SPLIT_18(x) (x) MSGPACK_PP_SEQ_SPLIT_17
+# define MSGPACK_PP_SEQ_SPLIT_19(x) (x) MSGPACK_PP_SEQ_SPLIT_18
+# define MSGPACK_PP_SEQ_SPLIT_20(x) (x) MSGPACK_PP_SEQ_SPLIT_19
+# define MSGPACK_PP_SEQ_SPLIT_21(x) (x) MSGPACK_PP_SEQ_SPLIT_20
+# define MSGPACK_PP_SEQ_SPLIT_22(x) (x) MSGPACK_PP_SEQ_SPLIT_21
+# define MSGPACK_PP_SEQ_SPLIT_23(x) (x) MSGPACK_PP_SEQ_SPLIT_22
+# define MSGPACK_PP_SEQ_SPLIT_24(x) (x) MSGPACK_PP_SEQ_SPLIT_23
+# define MSGPACK_PP_SEQ_SPLIT_25(x) (x) MSGPACK_PP_SEQ_SPLIT_24
+# define MSGPACK_PP_SEQ_SPLIT_26(x) (x) MSGPACK_PP_SEQ_SPLIT_25
+# define MSGPACK_PP_SEQ_SPLIT_27(x) (x) MSGPACK_PP_SEQ_SPLIT_26
+# define MSGPACK_PP_SEQ_SPLIT_28(x) (x) MSGPACK_PP_SEQ_SPLIT_27
+# define MSGPACK_PP_SEQ_SPLIT_29(x) (x) MSGPACK_PP_SEQ_SPLIT_28
+# define MSGPACK_PP_SEQ_SPLIT_30(x) (x) MSGPACK_PP_SEQ_SPLIT_29
+# define MSGPACK_PP_SEQ_SPLIT_31(x) (x) MSGPACK_PP_SEQ_SPLIT_30
+# define MSGPACK_PP_SEQ_SPLIT_32(x) (x) MSGPACK_PP_SEQ_SPLIT_31
+# define MSGPACK_PP_SEQ_SPLIT_33(x) (x) MSGPACK_PP_SEQ_SPLIT_32
+# define MSGPACK_PP_SEQ_SPLIT_34(x) (x) MSGPACK_PP_SEQ_SPLIT_33
+# define MSGPACK_PP_SEQ_SPLIT_35(x) (x) MSGPACK_PP_SEQ_SPLIT_34
+# define MSGPACK_PP_SEQ_SPLIT_36(x) (x) MSGPACK_PP_SEQ_SPLIT_35
+# define MSGPACK_PP_SEQ_SPLIT_37(x) (x) MSGPACK_PP_SEQ_SPLIT_36
+# define MSGPACK_PP_SEQ_SPLIT_38(x) (x) MSGPACK_PP_SEQ_SPLIT_37
+# define MSGPACK_PP_SEQ_SPLIT_39(x) (x) MSGPACK_PP_SEQ_SPLIT_38
+# define MSGPACK_PP_SEQ_SPLIT_40(x) (x) MSGPACK_PP_SEQ_SPLIT_39
+# define MSGPACK_PP_SEQ_SPLIT_41(x) (x) MSGPACK_PP_SEQ_SPLIT_40
+# define MSGPACK_PP_SEQ_SPLIT_42(x) (x) MSGPACK_PP_SEQ_SPLIT_41
+# define MSGPACK_PP_SEQ_SPLIT_43(x) (x) MSGPACK_PP_SEQ_SPLIT_42
+# define MSGPACK_PP_SEQ_SPLIT_44(x) (x) MSGPACK_PP_SEQ_SPLIT_43
+# define MSGPACK_PP_SEQ_SPLIT_45(x) (x) MSGPACK_PP_SEQ_SPLIT_44
+# define MSGPACK_PP_SEQ_SPLIT_46(x) (x) MSGPACK_PP_SEQ_SPLIT_45
+# define MSGPACK_PP_SEQ_SPLIT_47(x) (x) MSGPACK_PP_SEQ_SPLIT_46
+# define MSGPACK_PP_SEQ_SPLIT_48(x) (x) MSGPACK_PP_SEQ_SPLIT_47
+# define MSGPACK_PP_SEQ_SPLIT_49(x) (x) MSGPACK_PP_SEQ_SPLIT_48
+# define MSGPACK_PP_SEQ_SPLIT_50(x) (x) MSGPACK_PP_SEQ_SPLIT_49
+# define MSGPACK_PP_SEQ_SPLIT_51(x) (x) MSGPACK_PP_SEQ_SPLIT_50
+# define MSGPACK_PP_SEQ_SPLIT_52(x) (x) MSGPACK_PP_SEQ_SPLIT_51
+# define MSGPACK_PP_SEQ_SPLIT_53(x) (x) MSGPACK_PP_SEQ_SPLIT_52
+# define MSGPACK_PP_SEQ_SPLIT_54(x) (x) MSGPACK_PP_SEQ_SPLIT_53
+# define MSGPACK_PP_SEQ_SPLIT_55(x) (x) MSGPACK_PP_SEQ_SPLIT_54
+# define MSGPACK_PP_SEQ_SPLIT_56(x) (x) MSGPACK_PP_SEQ_SPLIT_55
+# define MSGPACK_PP_SEQ_SPLIT_57(x) (x) MSGPACK_PP_SEQ_SPLIT_56
+# define MSGPACK_PP_SEQ_SPLIT_58(x) (x) MSGPACK_PP_SEQ_SPLIT_57
+# define MSGPACK_PP_SEQ_SPLIT_59(x) (x) MSGPACK_PP_SEQ_SPLIT_58
+# define MSGPACK_PP_SEQ_SPLIT_60(x) (x) MSGPACK_PP_SEQ_SPLIT_59
+# define MSGPACK_PP_SEQ_SPLIT_61(x) (x) MSGPACK_PP_SEQ_SPLIT_60
+# define MSGPACK_PP_SEQ_SPLIT_62(x) (x) MSGPACK_PP_SEQ_SPLIT_61
+# define MSGPACK_PP_SEQ_SPLIT_63(x) (x) MSGPACK_PP_SEQ_SPLIT_62
+# define MSGPACK_PP_SEQ_SPLIT_64(x) (x) MSGPACK_PP_SEQ_SPLIT_63
+# define MSGPACK_PP_SEQ_SPLIT_65(x) (x) MSGPACK_PP_SEQ_SPLIT_64
+# define MSGPACK_PP_SEQ_SPLIT_66(x) (x) MSGPACK_PP_SEQ_SPLIT_65
+# define MSGPACK_PP_SEQ_SPLIT_67(x) (x) MSGPACK_PP_SEQ_SPLIT_66
+# define MSGPACK_PP_SEQ_SPLIT_68(x) (x) MSGPACK_PP_SEQ_SPLIT_67
+# define MSGPACK_PP_SEQ_SPLIT_69(x) (x) MSGPACK_PP_SEQ_SPLIT_68
+# define MSGPACK_PP_SEQ_SPLIT_70(x) (x) MSGPACK_PP_SEQ_SPLIT_69
+# define MSGPACK_PP_SEQ_SPLIT_71(x) (x) MSGPACK_PP_SEQ_SPLIT_70
+# define MSGPACK_PP_SEQ_SPLIT_72(x) (x) MSGPACK_PP_SEQ_SPLIT_71
+# define MSGPACK_PP_SEQ_SPLIT_73(x) (x) MSGPACK_PP_SEQ_SPLIT_72
+# define MSGPACK_PP_SEQ_SPLIT_74(x) (x) MSGPACK_PP_SEQ_SPLIT_73
+# define MSGPACK_PP_SEQ_SPLIT_75(x) (x) MSGPACK_PP_SEQ_SPLIT_74
+# define MSGPACK_PP_SEQ_SPLIT_76(x) (x) MSGPACK_PP_SEQ_SPLIT_75
+# define MSGPACK_PP_SEQ_SPLIT_77(x) (x) MSGPACK_PP_SEQ_SPLIT_76
+# define MSGPACK_PP_SEQ_SPLIT_78(x) (x) MSGPACK_PP_SEQ_SPLIT_77
+# define MSGPACK_PP_SEQ_SPLIT_79(x) (x) MSGPACK_PP_SEQ_SPLIT_78
+# define MSGPACK_PP_SEQ_SPLIT_80(x) (x) MSGPACK_PP_SEQ_SPLIT_79
+# define MSGPACK_PP_SEQ_SPLIT_81(x) (x) MSGPACK_PP_SEQ_SPLIT_80
+# define MSGPACK_PP_SEQ_SPLIT_82(x) (x) MSGPACK_PP_SEQ_SPLIT_81
+# define MSGPACK_PP_SEQ_SPLIT_83(x) (x) MSGPACK_PP_SEQ_SPLIT_82
+# define MSGPACK_PP_SEQ_SPLIT_84(x) (x) MSGPACK_PP_SEQ_SPLIT_83
+# define MSGPACK_PP_SEQ_SPLIT_85(x) (x) MSGPACK_PP_SEQ_SPLIT_84
+# define MSGPACK_PP_SEQ_SPLIT_86(x) (x) MSGPACK_PP_SEQ_SPLIT_85
+# define MSGPACK_PP_SEQ_SPLIT_87(x) (x) MSGPACK_PP_SEQ_SPLIT_86
+# define MSGPACK_PP_SEQ_SPLIT_88(x) (x) MSGPACK_PP_SEQ_SPLIT_87
+# define MSGPACK_PP_SEQ_SPLIT_89(x) (x) MSGPACK_PP_SEQ_SPLIT_88
+# define MSGPACK_PP_SEQ_SPLIT_90(x) (x) MSGPACK_PP_SEQ_SPLIT_89
+# define MSGPACK_PP_SEQ_SPLIT_91(x) (x) MSGPACK_PP_SEQ_SPLIT_90
+# define MSGPACK_PP_SEQ_SPLIT_92(x) (x) MSGPACK_PP_SEQ_SPLIT_91
+# define MSGPACK_PP_SEQ_SPLIT_93(x) (x) MSGPACK_PP_SEQ_SPLIT_92
+# define MSGPACK_PP_SEQ_SPLIT_94(x) (x) MSGPACK_PP_SEQ_SPLIT_93
+# define MSGPACK_PP_SEQ_SPLIT_95(x) (x) MSGPACK_PP_SEQ_SPLIT_94
+# define MSGPACK_PP_SEQ_SPLIT_96(x) (x) MSGPACK_PP_SEQ_SPLIT_95
+# define MSGPACK_PP_SEQ_SPLIT_97(x) (x) MSGPACK_PP_SEQ_SPLIT_96
+# define MSGPACK_PP_SEQ_SPLIT_98(x) (x) MSGPACK_PP_SEQ_SPLIT_97
+# define MSGPACK_PP_SEQ_SPLIT_99(x) (x) MSGPACK_PP_SEQ_SPLIT_98
+# define MSGPACK_PP_SEQ_SPLIT_100(x) (x) MSGPACK_PP_SEQ_SPLIT_99
+# define MSGPACK_PP_SEQ_SPLIT_101(x) (x) MSGPACK_PP_SEQ_SPLIT_100
+# define MSGPACK_PP_SEQ_SPLIT_102(x) (x) MSGPACK_PP_SEQ_SPLIT_101
+# define MSGPACK_PP_SEQ_SPLIT_103(x) (x) MSGPACK_PP_SEQ_SPLIT_102
+# define MSGPACK_PP_SEQ_SPLIT_104(x) (x) MSGPACK_PP_SEQ_SPLIT_103
+# define MSGPACK_PP_SEQ_SPLIT_105(x) (x) MSGPACK_PP_SEQ_SPLIT_104
+# define MSGPACK_PP_SEQ_SPLIT_106(x) (x) MSGPACK_PP_SEQ_SPLIT_105
+# define MSGPACK_PP_SEQ_SPLIT_107(x) (x) MSGPACK_PP_SEQ_SPLIT_106
+# define MSGPACK_PP_SEQ_SPLIT_108(x) (x) MSGPACK_PP_SEQ_SPLIT_107
+# define MSGPACK_PP_SEQ_SPLIT_109(x) (x) MSGPACK_PP_SEQ_SPLIT_108
+# define MSGPACK_PP_SEQ_SPLIT_110(x) (x) MSGPACK_PP_SEQ_SPLIT_109
+# define MSGPACK_PP_SEQ_SPLIT_111(x) (x) MSGPACK_PP_SEQ_SPLIT_110
+# define MSGPACK_PP_SEQ_SPLIT_112(x) (x) MSGPACK_PP_SEQ_SPLIT_111
+# define MSGPACK_PP_SEQ_SPLIT_113(x) (x) MSGPACK_PP_SEQ_SPLIT_112
+# define MSGPACK_PP_SEQ_SPLIT_114(x) (x) MSGPACK_PP_SEQ_SPLIT_113
+# define MSGPACK_PP_SEQ_SPLIT_115(x) (x) MSGPACK_PP_SEQ_SPLIT_114
+# define MSGPACK_PP_SEQ_SPLIT_116(x) (x) MSGPACK_PP_SEQ_SPLIT_115
+# define MSGPACK_PP_SEQ_SPLIT_117(x) (x) MSGPACK_PP_SEQ_SPLIT_116
+# define MSGPACK_PP_SEQ_SPLIT_118(x) (x) MSGPACK_PP_SEQ_SPLIT_117
+# define MSGPACK_PP_SEQ_SPLIT_119(x) (x) MSGPACK_PP_SEQ_SPLIT_118
+# define MSGPACK_PP_SEQ_SPLIT_120(x) (x) MSGPACK_PP_SEQ_SPLIT_119
+# define MSGPACK_PP_SEQ_SPLIT_121(x) (x) MSGPACK_PP_SEQ_SPLIT_120
+# define MSGPACK_PP_SEQ_SPLIT_122(x) (x) MSGPACK_PP_SEQ_SPLIT_121
+# define MSGPACK_PP_SEQ_SPLIT_123(x) (x) MSGPACK_PP_SEQ_SPLIT_122
+# define MSGPACK_PP_SEQ_SPLIT_124(x) (x) MSGPACK_PP_SEQ_SPLIT_123
+# define MSGPACK_PP_SEQ_SPLIT_125(x) (x) MSGPACK_PP_SEQ_SPLIT_124
+# define MSGPACK_PP_SEQ_SPLIT_126(x) (x) MSGPACK_PP_SEQ_SPLIT_125
+# define MSGPACK_PP_SEQ_SPLIT_127(x) (x) MSGPACK_PP_SEQ_SPLIT_126
+# define MSGPACK_PP_SEQ_SPLIT_128(x) (x) MSGPACK_PP_SEQ_SPLIT_127
+# define MSGPACK_PP_SEQ_SPLIT_129(x) (x) MSGPACK_PP_SEQ_SPLIT_128
+# define MSGPACK_PP_SEQ_SPLIT_130(x) (x) MSGPACK_PP_SEQ_SPLIT_129
+# define MSGPACK_PP_SEQ_SPLIT_131(x) (x) MSGPACK_PP_SEQ_SPLIT_130
+# define MSGPACK_PP_SEQ_SPLIT_132(x) (x) MSGPACK_PP_SEQ_SPLIT_131
+# define MSGPACK_PP_SEQ_SPLIT_133(x) (x) MSGPACK_PP_SEQ_SPLIT_132
+# define MSGPACK_PP_SEQ_SPLIT_134(x) (x) MSGPACK_PP_SEQ_SPLIT_133
+# define MSGPACK_PP_SEQ_SPLIT_135(x) (x) MSGPACK_PP_SEQ_SPLIT_134
+# define MSGPACK_PP_SEQ_SPLIT_136(x) (x) MSGPACK_PP_SEQ_SPLIT_135
+# define MSGPACK_PP_SEQ_SPLIT_137(x) (x) MSGPACK_PP_SEQ_SPLIT_136
+# define MSGPACK_PP_SEQ_SPLIT_138(x) (x) MSGPACK_PP_SEQ_SPLIT_137
+# define MSGPACK_PP_SEQ_SPLIT_139(x) (x) MSGPACK_PP_SEQ_SPLIT_138
+# define MSGPACK_PP_SEQ_SPLIT_140(x) (x) MSGPACK_PP_SEQ_SPLIT_139
+# define MSGPACK_PP_SEQ_SPLIT_141(x) (x) MSGPACK_PP_SEQ_SPLIT_140
+# define MSGPACK_PP_SEQ_SPLIT_142(x) (x) MSGPACK_PP_SEQ_SPLIT_141
+# define MSGPACK_PP_SEQ_SPLIT_143(x) (x) MSGPACK_PP_SEQ_SPLIT_142
+# define MSGPACK_PP_SEQ_SPLIT_144(x) (x) MSGPACK_PP_SEQ_SPLIT_143
+# define MSGPACK_PP_SEQ_SPLIT_145(x) (x) MSGPACK_PP_SEQ_SPLIT_144
+# define MSGPACK_PP_SEQ_SPLIT_146(x) (x) MSGPACK_PP_SEQ_SPLIT_145
+# define MSGPACK_PP_SEQ_SPLIT_147(x) (x) MSGPACK_PP_SEQ_SPLIT_146
+# define MSGPACK_PP_SEQ_SPLIT_148(x) (x) MSGPACK_PP_SEQ_SPLIT_147
+# define MSGPACK_PP_SEQ_SPLIT_149(x) (x) MSGPACK_PP_SEQ_SPLIT_148
+# define MSGPACK_PP_SEQ_SPLIT_150(x) (x) MSGPACK_PP_SEQ_SPLIT_149
+# define MSGPACK_PP_SEQ_SPLIT_151(x) (x) MSGPACK_PP_SEQ_SPLIT_150
+# define MSGPACK_PP_SEQ_SPLIT_152(x) (x) MSGPACK_PP_SEQ_SPLIT_151
+# define MSGPACK_PP_SEQ_SPLIT_153(x) (x) MSGPACK_PP_SEQ_SPLIT_152
+# define MSGPACK_PP_SEQ_SPLIT_154(x) (x) MSGPACK_PP_SEQ_SPLIT_153
+# define MSGPACK_PP_SEQ_SPLIT_155(x) (x) MSGPACK_PP_SEQ_SPLIT_154
+# define MSGPACK_PP_SEQ_SPLIT_156(x) (x) MSGPACK_PP_SEQ_SPLIT_155
+# define MSGPACK_PP_SEQ_SPLIT_157(x) (x) MSGPACK_PP_SEQ_SPLIT_156
+# define MSGPACK_PP_SEQ_SPLIT_158(x) (x) MSGPACK_PP_SEQ_SPLIT_157
+# define MSGPACK_PP_SEQ_SPLIT_159(x) (x) MSGPACK_PP_SEQ_SPLIT_158
+# define MSGPACK_PP_SEQ_SPLIT_160(x) (x) MSGPACK_PP_SEQ_SPLIT_159
+# define MSGPACK_PP_SEQ_SPLIT_161(x) (x) MSGPACK_PP_SEQ_SPLIT_160
+# define MSGPACK_PP_SEQ_SPLIT_162(x) (x) MSGPACK_PP_SEQ_SPLIT_161
+# define MSGPACK_PP_SEQ_SPLIT_163(x) (x) MSGPACK_PP_SEQ_SPLIT_162
+# define MSGPACK_PP_SEQ_SPLIT_164(x) (x) MSGPACK_PP_SEQ_SPLIT_163
+# define MSGPACK_PP_SEQ_SPLIT_165(x) (x) MSGPACK_PP_SEQ_SPLIT_164
+# define MSGPACK_PP_SEQ_SPLIT_166(x) (x) MSGPACK_PP_SEQ_SPLIT_165
+# define MSGPACK_PP_SEQ_SPLIT_167(x) (x) MSGPACK_PP_SEQ_SPLIT_166
+# define MSGPACK_PP_SEQ_SPLIT_168(x) (x) MSGPACK_PP_SEQ_SPLIT_167
+# define MSGPACK_PP_SEQ_SPLIT_169(x) (x) MSGPACK_PP_SEQ_SPLIT_168
+# define MSGPACK_PP_SEQ_SPLIT_170(x) (x) MSGPACK_PP_SEQ_SPLIT_169
+# define MSGPACK_PP_SEQ_SPLIT_171(x) (x) MSGPACK_PP_SEQ_SPLIT_170
+# define MSGPACK_PP_SEQ_SPLIT_172(x) (x) MSGPACK_PP_SEQ_SPLIT_171
+# define MSGPACK_PP_SEQ_SPLIT_173(x) (x) MSGPACK_PP_SEQ_SPLIT_172
+# define MSGPACK_PP_SEQ_SPLIT_174(x) (x) MSGPACK_PP_SEQ_SPLIT_173
+# define MSGPACK_PP_SEQ_SPLIT_175(x) (x) MSGPACK_PP_SEQ_SPLIT_174
+# define MSGPACK_PP_SEQ_SPLIT_176(x) (x) MSGPACK_PP_SEQ_SPLIT_175
+# define MSGPACK_PP_SEQ_SPLIT_177(x) (x) MSGPACK_PP_SEQ_SPLIT_176
+# define MSGPACK_PP_SEQ_SPLIT_178(x) (x) MSGPACK_PP_SEQ_SPLIT_177
+# define MSGPACK_PP_SEQ_SPLIT_179(x) (x) MSGPACK_PP_SEQ_SPLIT_178
+# define MSGPACK_PP_SEQ_SPLIT_180(x) (x) MSGPACK_PP_SEQ_SPLIT_179
+# define MSGPACK_PP_SEQ_SPLIT_181(x) (x) MSGPACK_PP_SEQ_SPLIT_180
+# define MSGPACK_PP_SEQ_SPLIT_182(x) (x) MSGPACK_PP_SEQ_SPLIT_181
+# define MSGPACK_PP_SEQ_SPLIT_183(x) (x) MSGPACK_PP_SEQ_SPLIT_182
+# define MSGPACK_PP_SEQ_SPLIT_184(x) (x) MSGPACK_PP_SEQ_SPLIT_183
+# define MSGPACK_PP_SEQ_SPLIT_185(x) (x) MSGPACK_PP_SEQ_SPLIT_184
+# define MSGPACK_PP_SEQ_SPLIT_186(x) (x) MSGPACK_PP_SEQ_SPLIT_185
+# define MSGPACK_PP_SEQ_SPLIT_187(x) (x) MSGPACK_PP_SEQ_SPLIT_186
+# define MSGPACK_PP_SEQ_SPLIT_188(x) (x) MSGPACK_PP_SEQ_SPLIT_187
+# define MSGPACK_PP_SEQ_SPLIT_189(x) (x) MSGPACK_PP_SEQ_SPLIT_188
+# define MSGPACK_PP_SEQ_SPLIT_190(x) (x) MSGPACK_PP_SEQ_SPLIT_189
+# define MSGPACK_PP_SEQ_SPLIT_191(x) (x) MSGPACK_PP_SEQ_SPLIT_190
+# define MSGPACK_PP_SEQ_SPLIT_192(x) (x) MSGPACK_PP_SEQ_SPLIT_191
+# define MSGPACK_PP_SEQ_SPLIT_193(x) (x) MSGPACK_PP_SEQ_SPLIT_192
+# define MSGPACK_PP_SEQ_SPLIT_194(x) (x) MSGPACK_PP_SEQ_SPLIT_193
+# define MSGPACK_PP_SEQ_SPLIT_195(x) (x) MSGPACK_PP_SEQ_SPLIT_194
+# define MSGPACK_PP_SEQ_SPLIT_196(x) (x) MSGPACK_PP_SEQ_SPLIT_195
+# define MSGPACK_PP_SEQ_SPLIT_197(x) (x) MSGPACK_PP_SEQ_SPLIT_196
+# define MSGPACK_PP_SEQ_SPLIT_198(x) (x) MSGPACK_PP_SEQ_SPLIT_197
+# define MSGPACK_PP_SEQ_SPLIT_199(x) (x) MSGPACK_PP_SEQ_SPLIT_198
+# define MSGPACK_PP_SEQ_SPLIT_200(x) (x) MSGPACK_PP_SEQ_SPLIT_199
+# define MSGPACK_PP_SEQ_SPLIT_201(x) (x) MSGPACK_PP_SEQ_SPLIT_200
+# define MSGPACK_PP_SEQ_SPLIT_202(x) (x) MSGPACK_PP_SEQ_SPLIT_201
+# define MSGPACK_PP_SEQ_SPLIT_203(x) (x) MSGPACK_PP_SEQ_SPLIT_202
+# define MSGPACK_PP_SEQ_SPLIT_204(x) (x) MSGPACK_PP_SEQ_SPLIT_203
+# define MSGPACK_PP_SEQ_SPLIT_205(x) (x) MSGPACK_PP_SEQ_SPLIT_204
+# define MSGPACK_PP_SEQ_SPLIT_206(x) (x) MSGPACK_PP_SEQ_SPLIT_205
+# define MSGPACK_PP_SEQ_SPLIT_207(x) (x) MSGPACK_PP_SEQ_SPLIT_206
+# define MSGPACK_PP_SEQ_SPLIT_208(x) (x) MSGPACK_PP_SEQ_SPLIT_207
+# define MSGPACK_PP_SEQ_SPLIT_209(x) (x) MSGPACK_PP_SEQ_SPLIT_208
+# define MSGPACK_PP_SEQ_SPLIT_210(x) (x) MSGPACK_PP_SEQ_SPLIT_209
+# define MSGPACK_PP_SEQ_SPLIT_211(x) (x) MSGPACK_PP_SEQ_SPLIT_210
+# define MSGPACK_PP_SEQ_SPLIT_212(x) (x) MSGPACK_PP_SEQ_SPLIT_211
+# define MSGPACK_PP_SEQ_SPLIT_213(x) (x) MSGPACK_PP_SEQ_SPLIT_212
+# define MSGPACK_PP_SEQ_SPLIT_214(x) (x) MSGPACK_PP_SEQ_SPLIT_213
+# define MSGPACK_PP_SEQ_SPLIT_215(x) (x) MSGPACK_PP_SEQ_SPLIT_214
+# define MSGPACK_PP_SEQ_SPLIT_216(x) (x) MSGPACK_PP_SEQ_SPLIT_215
+# define MSGPACK_PP_SEQ_SPLIT_217(x) (x) MSGPACK_PP_SEQ_SPLIT_216
+# define MSGPACK_PP_SEQ_SPLIT_218(x) (x) MSGPACK_PP_SEQ_SPLIT_217
+# define MSGPACK_PP_SEQ_SPLIT_219(x) (x) MSGPACK_PP_SEQ_SPLIT_218
+# define MSGPACK_PP_SEQ_SPLIT_220(x) (x) MSGPACK_PP_SEQ_SPLIT_219
+# define MSGPACK_PP_SEQ_SPLIT_221(x) (x) MSGPACK_PP_SEQ_SPLIT_220
+# define MSGPACK_PP_SEQ_SPLIT_222(x) (x) MSGPACK_PP_SEQ_SPLIT_221
+# define MSGPACK_PP_SEQ_SPLIT_223(x) (x) MSGPACK_PP_SEQ_SPLIT_222
+# define MSGPACK_PP_SEQ_SPLIT_224(x) (x) MSGPACK_PP_SEQ_SPLIT_223
+# define MSGPACK_PP_SEQ_SPLIT_225(x) (x) MSGPACK_PP_SEQ_SPLIT_224
+# define MSGPACK_PP_SEQ_SPLIT_226(x) (x) MSGPACK_PP_SEQ_SPLIT_225
+# define MSGPACK_PP_SEQ_SPLIT_227(x) (x) MSGPACK_PP_SEQ_SPLIT_226
+# define MSGPACK_PP_SEQ_SPLIT_228(x) (x) MSGPACK_PP_SEQ_SPLIT_227
+# define MSGPACK_PP_SEQ_SPLIT_229(x) (x) MSGPACK_PP_SEQ_SPLIT_228
+# define MSGPACK_PP_SEQ_SPLIT_230(x) (x) MSGPACK_PP_SEQ_SPLIT_229
+# define MSGPACK_PP_SEQ_SPLIT_231(x) (x) MSGPACK_PP_SEQ_SPLIT_230
+# define MSGPACK_PP_SEQ_SPLIT_232(x) (x) MSGPACK_PP_SEQ_SPLIT_231
+# define MSGPACK_PP_SEQ_SPLIT_233(x) (x) MSGPACK_PP_SEQ_SPLIT_232
+# define MSGPACK_PP_SEQ_SPLIT_234(x) (x) MSGPACK_PP_SEQ_SPLIT_233
+# define MSGPACK_PP_SEQ_SPLIT_235(x) (x) MSGPACK_PP_SEQ_SPLIT_234
+# define MSGPACK_PP_SEQ_SPLIT_236(x) (x) MSGPACK_PP_SEQ_SPLIT_235
+# define MSGPACK_PP_SEQ_SPLIT_237(x) (x) MSGPACK_PP_SEQ_SPLIT_236
+# define MSGPACK_PP_SEQ_SPLIT_238(x) (x) MSGPACK_PP_SEQ_SPLIT_237
+# define MSGPACK_PP_SEQ_SPLIT_239(x) (x) MSGPACK_PP_SEQ_SPLIT_238
+# define MSGPACK_PP_SEQ_SPLIT_240(x) (x) MSGPACK_PP_SEQ_SPLIT_239
+# define MSGPACK_PP_SEQ_SPLIT_241(x) (x) MSGPACK_PP_SEQ_SPLIT_240
+# define MSGPACK_PP_SEQ_SPLIT_242(x) (x) MSGPACK_PP_SEQ_SPLIT_241
+# define MSGPACK_PP_SEQ_SPLIT_243(x) (x) MSGPACK_PP_SEQ_SPLIT_242
+# define MSGPACK_PP_SEQ_SPLIT_244(x) (x) MSGPACK_PP_SEQ_SPLIT_243
+# define MSGPACK_PP_SEQ_SPLIT_245(x) (x) MSGPACK_PP_SEQ_SPLIT_244
+# define MSGPACK_PP_SEQ_SPLIT_246(x) (x) MSGPACK_PP_SEQ_SPLIT_245
+# define MSGPACK_PP_SEQ_SPLIT_247(x) (x) MSGPACK_PP_SEQ_SPLIT_246
+# define MSGPACK_PP_SEQ_SPLIT_248(x) (x) MSGPACK_PP_SEQ_SPLIT_247
+# define MSGPACK_PP_SEQ_SPLIT_249(x) (x) MSGPACK_PP_SEQ_SPLIT_248
+# define MSGPACK_PP_SEQ_SPLIT_250(x) (x) MSGPACK_PP_SEQ_SPLIT_249
+# define MSGPACK_PP_SEQ_SPLIT_251(x) (x) MSGPACK_PP_SEQ_SPLIT_250
+# define MSGPACK_PP_SEQ_SPLIT_252(x) (x) MSGPACK_PP_SEQ_SPLIT_251
+# define MSGPACK_PP_SEQ_SPLIT_253(x) (x) MSGPACK_PP_SEQ_SPLIT_252
+# define MSGPACK_PP_SEQ_SPLIT_254(x) (x) MSGPACK_PP_SEQ_SPLIT_253
+# define MSGPACK_PP_SEQ_SPLIT_255(x) (x) MSGPACK_PP_SEQ_SPLIT_254
+# define MSGPACK_PP_SEQ_SPLIT_256(x) (x) MSGPACK_PP_SEQ_SPLIT_255
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/elem.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/elem.hpp
new file mode 100644
index 000000000..473cd02a1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/elem.hpp
@@ -0,0 +1,304 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_ELEM_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_ELEM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+#
+# /* MSGPACK_PP_SEQ_ELEM */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_ELEM(i, seq) MSGPACK_PP_SEQ_ELEM_I(i, seq)
+# else
+# define MSGPACK_PP_SEQ_ELEM(i, seq) MSGPACK_PP_SEQ_ELEM_I((i, seq))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_SEQ_ELEM_I(i, seq) MSGPACK_PP_SEQ_ELEM_II((MSGPACK_PP_SEQ_ELEM_ ## i seq))
+# define MSGPACK_PP_SEQ_ELEM_II(res) MSGPACK_PP_SEQ_ELEM_IV(MSGPACK_PP_SEQ_ELEM_III res)
+# define MSGPACK_PP_SEQ_ELEM_III(x, _) x MSGPACK_PP_EMPTY()
+# define MSGPACK_PP_SEQ_ELEM_IV(x) x
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_ELEM_I(par) MSGPACK_PP_SEQ_ELEM_II ## par
+# define MSGPACK_PP_SEQ_ELEM_II(i, seq) MSGPACK_PP_SEQ_ELEM_III(MSGPACK_PP_SEQ_ELEM_ ## i ## seq)
+# define MSGPACK_PP_SEQ_ELEM_III(im) MSGPACK_PP_SEQ_ELEM_IV(im)
+# define MSGPACK_PP_SEQ_ELEM_IV(x, _) x
+# else
+# if defined(__IBMC__) || defined(__IBMCPP__)
+# define MSGPACK_PP_SEQ_ELEM_I(i, seq) MSGPACK_PP_SEQ_ELEM_II(MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ELEM_ ## i, seq))
+# else
+# define MSGPACK_PP_SEQ_ELEM_I(i, seq) MSGPACK_PP_SEQ_ELEM_II(MSGPACK_PP_SEQ_ELEM_ ## i seq)
+# endif
+# define MSGPACK_PP_SEQ_ELEM_II(im) MSGPACK_PP_SEQ_ELEM_III(im)
+# define MSGPACK_PP_SEQ_ELEM_III(x, _) x
+# endif
+#
+# define MSGPACK_PP_SEQ_ELEM_0(x) x, MSGPACK_PP_NIL
+# define MSGPACK_PP_SEQ_ELEM_1(_) MSGPACK_PP_SEQ_ELEM_0
+# define MSGPACK_PP_SEQ_ELEM_2(_) MSGPACK_PP_SEQ_ELEM_1
+# define MSGPACK_PP_SEQ_ELEM_3(_) MSGPACK_PP_SEQ_ELEM_2
+# define MSGPACK_PP_SEQ_ELEM_4(_) MSGPACK_PP_SEQ_ELEM_3
+# define MSGPACK_PP_SEQ_ELEM_5(_) MSGPACK_PP_SEQ_ELEM_4
+# define MSGPACK_PP_SEQ_ELEM_6(_) MSGPACK_PP_SEQ_ELEM_5
+# define MSGPACK_PP_SEQ_ELEM_7(_) MSGPACK_PP_SEQ_ELEM_6
+# define MSGPACK_PP_SEQ_ELEM_8(_) MSGPACK_PP_SEQ_ELEM_7
+# define MSGPACK_PP_SEQ_ELEM_9(_) MSGPACK_PP_SEQ_ELEM_8
+# define MSGPACK_PP_SEQ_ELEM_10(_) MSGPACK_PP_SEQ_ELEM_9
+# define MSGPACK_PP_SEQ_ELEM_11(_) MSGPACK_PP_SEQ_ELEM_10
+# define MSGPACK_PP_SEQ_ELEM_12(_) MSGPACK_PP_SEQ_ELEM_11
+# define MSGPACK_PP_SEQ_ELEM_13(_) MSGPACK_PP_SEQ_ELEM_12
+# define MSGPACK_PP_SEQ_ELEM_14(_) MSGPACK_PP_SEQ_ELEM_13
+# define MSGPACK_PP_SEQ_ELEM_15(_) MSGPACK_PP_SEQ_ELEM_14
+# define MSGPACK_PP_SEQ_ELEM_16(_) MSGPACK_PP_SEQ_ELEM_15
+# define MSGPACK_PP_SEQ_ELEM_17(_) MSGPACK_PP_SEQ_ELEM_16
+# define MSGPACK_PP_SEQ_ELEM_18(_) MSGPACK_PP_SEQ_ELEM_17
+# define MSGPACK_PP_SEQ_ELEM_19(_) MSGPACK_PP_SEQ_ELEM_18
+# define MSGPACK_PP_SEQ_ELEM_20(_) MSGPACK_PP_SEQ_ELEM_19
+# define MSGPACK_PP_SEQ_ELEM_21(_) MSGPACK_PP_SEQ_ELEM_20
+# define MSGPACK_PP_SEQ_ELEM_22(_) MSGPACK_PP_SEQ_ELEM_21
+# define MSGPACK_PP_SEQ_ELEM_23(_) MSGPACK_PP_SEQ_ELEM_22
+# define MSGPACK_PP_SEQ_ELEM_24(_) MSGPACK_PP_SEQ_ELEM_23
+# define MSGPACK_PP_SEQ_ELEM_25(_) MSGPACK_PP_SEQ_ELEM_24
+# define MSGPACK_PP_SEQ_ELEM_26(_) MSGPACK_PP_SEQ_ELEM_25
+# define MSGPACK_PP_SEQ_ELEM_27(_) MSGPACK_PP_SEQ_ELEM_26
+# define MSGPACK_PP_SEQ_ELEM_28(_) MSGPACK_PP_SEQ_ELEM_27
+# define MSGPACK_PP_SEQ_ELEM_29(_) MSGPACK_PP_SEQ_ELEM_28
+# define MSGPACK_PP_SEQ_ELEM_30(_) MSGPACK_PP_SEQ_ELEM_29
+# define MSGPACK_PP_SEQ_ELEM_31(_) MSGPACK_PP_SEQ_ELEM_30
+# define MSGPACK_PP_SEQ_ELEM_32(_) MSGPACK_PP_SEQ_ELEM_31
+# define MSGPACK_PP_SEQ_ELEM_33(_) MSGPACK_PP_SEQ_ELEM_32
+# define MSGPACK_PP_SEQ_ELEM_34(_) MSGPACK_PP_SEQ_ELEM_33
+# define MSGPACK_PP_SEQ_ELEM_35(_) MSGPACK_PP_SEQ_ELEM_34
+# define MSGPACK_PP_SEQ_ELEM_36(_) MSGPACK_PP_SEQ_ELEM_35
+# define MSGPACK_PP_SEQ_ELEM_37(_) MSGPACK_PP_SEQ_ELEM_36
+# define MSGPACK_PP_SEQ_ELEM_38(_) MSGPACK_PP_SEQ_ELEM_37
+# define MSGPACK_PP_SEQ_ELEM_39(_) MSGPACK_PP_SEQ_ELEM_38
+# define MSGPACK_PP_SEQ_ELEM_40(_) MSGPACK_PP_SEQ_ELEM_39
+# define MSGPACK_PP_SEQ_ELEM_41(_) MSGPACK_PP_SEQ_ELEM_40
+# define MSGPACK_PP_SEQ_ELEM_42(_) MSGPACK_PP_SEQ_ELEM_41
+# define MSGPACK_PP_SEQ_ELEM_43(_) MSGPACK_PP_SEQ_ELEM_42
+# define MSGPACK_PP_SEQ_ELEM_44(_) MSGPACK_PP_SEQ_ELEM_43
+# define MSGPACK_PP_SEQ_ELEM_45(_) MSGPACK_PP_SEQ_ELEM_44
+# define MSGPACK_PP_SEQ_ELEM_46(_) MSGPACK_PP_SEQ_ELEM_45
+# define MSGPACK_PP_SEQ_ELEM_47(_) MSGPACK_PP_SEQ_ELEM_46
+# define MSGPACK_PP_SEQ_ELEM_48(_) MSGPACK_PP_SEQ_ELEM_47
+# define MSGPACK_PP_SEQ_ELEM_49(_) MSGPACK_PP_SEQ_ELEM_48
+# define MSGPACK_PP_SEQ_ELEM_50(_) MSGPACK_PP_SEQ_ELEM_49
+# define MSGPACK_PP_SEQ_ELEM_51(_) MSGPACK_PP_SEQ_ELEM_50
+# define MSGPACK_PP_SEQ_ELEM_52(_) MSGPACK_PP_SEQ_ELEM_51
+# define MSGPACK_PP_SEQ_ELEM_53(_) MSGPACK_PP_SEQ_ELEM_52
+# define MSGPACK_PP_SEQ_ELEM_54(_) MSGPACK_PP_SEQ_ELEM_53
+# define MSGPACK_PP_SEQ_ELEM_55(_) MSGPACK_PP_SEQ_ELEM_54
+# define MSGPACK_PP_SEQ_ELEM_56(_) MSGPACK_PP_SEQ_ELEM_55
+# define MSGPACK_PP_SEQ_ELEM_57(_) MSGPACK_PP_SEQ_ELEM_56
+# define MSGPACK_PP_SEQ_ELEM_58(_) MSGPACK_PP_SEQ_ELEM_57
+# define MSGPACK_PP_SEQ_ELEM_59(_) MSGPACK_PP_SEQ_ELEM_58
+# define MSGPACK_PP_SEQ_ELEM_60(_) MSGPACK_PP_SEQ_ELEM_59
+# define MSGPACK_PP_SEQ_ELEM_61(_) MSGPACK_PP_SEQ_ELEM_60
+# define MSGPACK_PP_SEQ_ELEM_62(_) MSGPACK_PP_SEQ_ELEM_61
+# define MSGPACK_PP_SEQ_ELEM_63(_) MSGPACK_PP_SEQ_ELEM_62
+# define MSGPACK_PP_SEQ_ELEM_64(_) MSGPACK_PP_SEQ_ELEM_63
+# define MSGPACK_PP_SEQ_ELEM_65(_) MSGPACK_PP_SEQ_ELEM_64
+# define MSGPACK_PP_SEQ_ELEM_66(_) MSGPACK_PP_SEQ_ELEM_65
+# define MSGPACK_PP_SEQ_ELEM_67(_) MSGPACK_PP_SEQ_ELEM_66
+# define MSGPACK_PP_SEQ_ELEM_68(_) MSGPACK_PP_SEQ_ELEM_67
+# define MSGPACK_PP_SEQ_ELEM_69(_) MSGPACK_PP_SEQ_ELEM_68
+# define MSGPACK_PP_SEQ_ELEM_70(_) MSGPACK_PP_SEQ_ELEM_69
+# define MSGPACK_PP_SEQ_ELEM_71(_) MSGPACK_PP_SEQ_ELEM_70
+# define MSGPACK_PP_SEQ_ELEM_72(_) MSGPACK_PP_SEQ_ELEM_71
+# define MSGPACK_PP_SEQ_ELEM_73(_) MSGPACK_PP_SEQ_ELEM_72
+# define MSGPACK_PP_SEQ_ELEM_74(_) MSGPACK_PP_SEQ_ELEM_73
+# define MSGPACK_PP_SEQ_ELEM_75(_) MSGPACK_PP_SEQ_ELEM_74
+# define MSGPACK_PP_SEQ_ELEM_76(_) MSGPACK_PP_SEQ_ELEM_75
+# define MSGPACK_PP_SEQ_ELEM_77(_) MSGPACK_PP_SEQ_ELEM_76
+# define MSGPACK_PP_SEQ_ELEM_78(_) MSGPACK_PP_SEQ_ELEM_77
+# define MSGPACK_PP_SEQ_ELEM_79(_) MSGPACK_PP_SEQ_ELEM_78
+# define MSGPACK_PP_SEQ_ELEM_80(_) MSGPACK_PP_SEQ_ELEM_79
+# define MSGPACK_PP_SEQ_ELEM_81(_) MSGPACK_PP_SEQ_ELEM_80
+# define MSGPACK_PP_SEQ_ELEM_82(_) MSGPACK_PP_SEQ_ELEM_81
+# define MSGPACK_PP_SEQ_ELEM_83(_) MSGPACK_PP_SEQ_ELEM_82
+# define MSGPACK_PP_SEQ_ELEM_84(_) MSGPACK_PP_SEQ_ELEM_83
+# define MSGPACK_PP_SEQ_ELEM_85(_) MSGPACK_PP_SEQ_ELEM_84
+# define MSGPACK_PP_SEQ_ELEM_86(_) MSGPACK_PP_SEQ_ELEM_85
+# define MSGPACK_PP_SEQ_ELEM_87(_) MSGPACK_PP_SEQ_ELEM_86
+# define MSGPACK_PP_SEQ_ELEM_88(_) MSGPACK_PP_SEQ_ELEM_87
+# define MSGPACK_PP_SEQ_ELEM_89(_) MSGPACK_PP_SEQ_ELEM_88
+# define MSGPACK_PP_SEQ_ELEM_90(_) MSGPACK_PP_SEQ_ELEM_89
+# define MSGPACK_PP_SEQ_ELEM_91(_) MSGPACK_PP_SEQ_ELEM_90
+# define MSGPACK_PP_SEQ_ELEM_92(_) MSGPACK_PP_SEQ_ELEM_91
+# define MSGPACK_PP_SEQ_ELEM_93(_) MSGPACK_PP_SEQ_ELEM_92
+# define MSGPACK_PP_SEQ_ELEM_94(_) MSGPACK_PP_SEQ_ELEM_93
+# define MSGPACK_PP_SEQ_ELEM_95(_) MSGPACK_PP_SEQ_ELEM_94
+# define MSGPACK_PP_SEQ_ELEM_96(_) MSGPACK_PP_SEQ_ELEM_95
+# define MSGPACK_PP_SEQ_ELEM_97(_) MSGPACK_PP_SEQ_ELEM_96
+# define MSGPACK_PP_SEQ_ELEM_98(_) MSGPACK_PP_SEQ_ELEM_97
+# define MSGPACK_PP_SEQ_ELEM_99(_) MSGPACK_PP_SEQ_ELEM_98
+# define MSGPACK_PP_SEQ_ELEM_100(_) MSGPACK_PP_SEQ_ELEM_99
+# define MSGPACK_PP_SEQ_ELEM_101(_) MSGPACK_PP_SEQ_ELEM_100
+# define MSGPACK_PP_SEQ_ELEM_102(_) MSGPACK_PP_SEQ_ELEM_101
+# define MSGPACK_PP_SEQ_ELEM_103(_) MSGPACK_PP_SEQ_ELEM_102
+# define MSGPACK_PP_SEQ_ELEM_104(_) MSGPACK_PP_SEQ_ELEM_103
+# define MSGPACK_PP_SEQ_ELEM_105(_) MSGPACK_PP_SEQ_ELEM_104
+# define MSGPACK_PP_SEQ_ELEM_106(_) MSGPACK_PP_SEQ_ELEM_105
+# define MSGPACK_PP_SEQ_ELEM_107(_) MSGPACK_PP_SEQ_ELEM_106
+# define MSGPACK_PP_SEQ_ELEM_108(_) MSGPACK_PP_SEQ_ELEM_107
+# define MSGPACK_PP_SEQ_ELEM_109(_) MSGPACK_PP_SEQ_ELEM_108
+# define MSGPACK_PP_SEQ_ELEM_110(_) MSGPACK_PP_SEQ_ELEM_109
+# define MSGPACK_PP_SEQ_ELEM_111(_) MSGPACK_PP_SEQ_ELEM_110
+# define MSGPACK_PP_SEQ_ELEM_112(_) MSGPACK_PP_SEQ_ELEM_111
+# define MSGPACK_PP_SEQ_ELEM_113(_) MSGPACK_PP_SEQ_ELEM_112
+# define MSGPACK_PP_SEQ_ELEM_114(_) MSGPACK_PP_SEQ_ELEM_113
+# define MSGPACK_PP_SEQ_ELEM_115(_) MSGPACK_PP_SEQ_ELEM_114
+# define MSGPACK_PP_SEQ_ELEM_116(_) MSGPACK_PP_SEQ_ELEM_115
+# define MSGPACK_PP_SEQ_ELEM_117(_) MSGPACK_PP_SEQ_ELEM_116
+# define MSGPACK_PP_SEQ_ELEM_118(_) MSGPACK_PP_SEQ_ELEM_117
+# define MSGPACK_PP_SEQ_ELEM_119(_) MSGPACK_PP_SEQ_ELEM_118
+# define MSGPACK_PP_SEQ_ELEM_120(_) MSGPACK_PP_SEQ_ELEM_119
+# define MSGPACK_PP_SEQ_ELEM_121(_) MSGPACK_PP_SEQ_ELEM_120
+# define MSGPACK_PP_SEQ_ELEM_122(_) MSGPACK_PP_SEQ_ELEM_121
+# define MSGPACK_PP_SEQ_ELEM_123(_) MSGPACK_PP_SEQ_ELEM_122
+# define MSGPACK_PP_SEQ_ELEM_124(_) MSGPACK_PP_SEQ_ELEM_123
+# define MSGPACK_PP_SEQ_ELEM_125(_) MSGPACK_PP_SEQ_ELEM_124
+# define MSGPACK_PP_SEQ_ELEM_126(_) MSGPACK_PP_SEQ_ELEM_125
+# define MSGPACK_PP_SEQ_ELEM_127(_) MSGPACK_PP_SEQ_ELEM_126
+# define MSGPACK_PP_SEQ_ELEM_128(_) MSGPACK_PP_SEQ_ELEM_127
+# define MSGPACK_PP_SEQ_ELEM_129(_) MSGPACK_PP_SEQ_ELEM_128
+# define MSGPACK_PP_SEQ_ELEM_130(_) MSGPACK_PP_SEQ_ELEM_129
+# define MSGPACK_PP_SEQ_ELEM_131(_) MSGPACK_PP_SEQ_ELEM_130
+# define MSGPACK_PP_SEQ_ELEM_132(_) MSGPACK_PP_SEQ_ELEM_131
+# define MSGPACK_PP_SEQ_ELEM_133(_) MSGPACK_PP_SEQ_ELEM_132
+# define MSGPACK_PP_SEQ_ELEM_134(_) MSGPACK_PP_SEQ_ELEM_133
+# define MSGPACK_PP_SEQ_ELEM_135(_) MSGPACK_PP_SEQ_ELEM_134
+# define MSGPACK_PP_SEQ_ELEM_136(_) MSGPACK_PP_SEQ_ELEM_135
+# define MSGPACK_PP_SEQ_ELEM_137(_) MSGPACK_PP_SEQ_ELEM_136
+# define MSGPACK_PP_SEQ_ELEM_138(_) MSGPACK_PP_SEQ_ELEM_137
+# define MSGPACK_PP_SEQ_ELEM_139(_) MSGPACK_PP_SEQ_ELEM_138
+# define MSGPACK_PP_SEQ_ELEM_140(_) MSGPACK_PP_SEQ_ELEM_139
+# define MSGPACK_PP_SEQ_ELEM_141(_) MSGPACK_PP_SEQ_ELEM_140
+# define MSGPACK_PP_SEQ_ELEM_142(_) MSGPACK_PP_SEQ_ELEM_141
+# define MSGPACK_PP_SEQ_ELEM_143(_) MSGPACK_PP_SEQ_ELEM_142
+# define MSGPACK_PP_SEQ_ELEM_144(_) MSGPACK_PP_SEQ_ELEM_143
+# define MSGPACK_PP_SEQ_ELEM_145(_) MSGPACK_PP_SEQ_ELEM_144
+# define MSGPACK_PP_SEQ_ELEM_146(_) MSGPACK_PP_SEQ_ELEM_145
+# define MSGPACK_PP_SEQ_ELEM_147(_) MSGPACK_PP_SEQ_ELEM_146
+# define MSGPACK_PP_SEQ_ELEM_148(_) MSGPACK_PP_SEQ_ELEM_147
+# define MSGPACK_PP_SEQ_ELEM_149(_) MSGPACK_PP_SEQ_ELEM_148
+# define MSGPACK_PP_SEQ_ELEM_150(_) MSGPACK_PP_SEQ_ELEM_149
+# define MSGPACK_PP_SEQ_ELEM_151(_) MSGPACK_PP_SEQ_ELEM_150
+# define MSGPACK_PP_SEQ_ELEM_152(_) MSGPACK_PP_SEQ_ELEM_151
+# define MSGPACK_PP_SEQ_ELEM_153(_) MSGPACK_PP_SEQ_ELEM_152
+# define MSGPACK_PP_SEQ_ELEM_154(_) MSGPACK_PP_SEQ_ELEM_153
+# define MSGPACK_PP_SEQ_ELEM_155(_) MSGPACK_PP_SEQ_ELEM_154
+# define MSGPACK_PP_SEQ_ELEM_156(_) MSGPACK_PP_SEQ_ELEM_155
+# define MSGPACK_PP_SEQ_ELEM_157(_) MSGPACK_PP_SEQ_ELEM_156
+# define MSGPACK_PP_SEQ_ELEM_158(_) MSGPACK_PP_SEQ_ELEM_157
+# define MSGPACK_PP_SEQ_ELEM_159(_) MSGPACK_PP_SEQ_ELEM_158
+# define MSGPACK_PP_SEQ_ELEM_160(_) MSGPACK_PP_SEQ_ELEM_159
+# define MSGPACK_PP_SEQ_ELEM_161(_) MSGPACK_PP_SEQ_ELEM_160
+# define MSGPACK_PP_SEQ_ELEM_162(_) MSGPACK_PP_SEQ_ELEM_161
+# define MSGPACK_PP_SEQ_ELEM_163(_) MSGPACK_PP_SEQ_ELEM_162
+# define MSGPACK_PP_SEQ_ELEM_164(_) MSGPACK_PP_SEQ_ELEM_163
+# define MSGPACK_PP_SEQ_ELEM_165(_) MSGPACK_PP_SEQ_ELEM_164
+# define MSGPACK_PP_SEQ_ELEM_166(_) MSGPACK_PP_SEQ_ELEM_165
+# define MSGPACK_PP_SEQ_ELEM_167(_) MSGPACK_PP_SEQ_ELEM_166
+# define MSGPACK_PP_SEQ_ELEM_168(_) MSGPACK_PP_SEQ_ELEM_167
+# define MSGPACK_PP_SEQ_ELEM_169(_) MSGPACK_PP_SEQ_ELEM_168
+# define MSGPACK_PP_SEQ_ELEM_170(_) MSGPACK_PP_SEQ_ELEM_169
+# define MSGPACK_PP_SEQ_ELEM_171(_) MSGPACK_PP_SEQ_ELEM_170
+# define MSGPACK_PP_SEQ_ELEM_172(_) MSGPACK_PP_SEQ_ELEM_171
+# define MSGPACK_PP_SEQ_ELEM_173(_) MSGPACK_PP_SEQ_ELEM_172
+# define MSGPACK_PP_SEQ_ELEM_174(_) MSGPACK_PP_SEQ_ELEM_173
+# define MSGPACK_PP_SEQ_ELEM_175(_) MSGPACK_PP_SEQ_ELEM_174
+# define MSGPACK_PP_SEQ_ELEM_176(_) MSGPACK_PP_SEQ_ELEM_175
+# define MSGPACK_PP_SEQ_ELEM_177(_) MSGPACK_PP_SEQ_ELEM_176
+# define MSGPACK_PP_SEQ_ELEM_178(_) MSGPACK_PP_SEQ_ELEM_177
+# define MSGPACK_PP_SEQ_ELEM_179(_) MSGPACK_PP_SEQ_ELEM_178
+# define MSGPACK_PP_SEQ_ELEM_180(_) MSGPACK_PP_SEQ_ELEM_179
+# define MSGPACK_PP_SEQ_ELEM_181(_) MSGPACK_PP_SEQ_ELEM_180
+# define MSGPACK_PP_SEQ_ELEM_182(_) MSGPACK_PP_SEQ_ELEM_181
+# define MSGPACK_PP_SEQ_ELEM_183(_) MSGPACK_PP_SEQ_ELEM_182
+# define MSGPACK_PP_SEQ_ELEM_184(_) MSGPACK_PP_SEQ_ELEM_183
+# define MSGPACK_PP_SEQ_ELEM_185(_) MSGPACK_PP_SEQ_ELEM_184
+# define MSGPACK_PP_SEQ_ELEM_186(_) MSGPACK_PP_SEQ_ELEM_185
+# define MSGPACK_PP_SEQ_ELEM_187(_) MSGPACK_PP_SEQ_ELEM_186
+# define MSGPACK_PP_SEQ_ELEM_188(_) MSGPACK_PP_SEQ_ELEM_187
+# define MSGPACK_PP_SEQ_ELEM_189(_) MSGPACK_PP_SEQ_ELEM_188
+# define MSGPACK_PP_SEQ_ELEM_190(_) MSGPACK_PP_SEQ_ELEM_189
+# define MSGPACK_PP_SEQ_ELEM_191(_) MSGPACK_PP_SEQ_ELEM_190
+# define MSGPACK_PP_SEQ_ELEM_192(_) MSGPACK_PP_SEQ_ELEM_191
+# define MSGPACK_PP_SEQ_ELEM_193(_) MSGPACK_PP_SEQ_ELEM_192
+# define MSGPACK_PP_SEQ_ELEM_194(_) MSGPACK_PP_SEQ_ELEM_193
+# define MSGPACK_PP_SEQ_ELEM_195(_) MSGPACK_PP_SEQ_ELEM_194
+# define MSGPACK_PP_SEQ_ELEM_196(_) MSGPACK_PP_SEQ_ELEM_195
+# define MSGPACK_PP_SEQ_ELEM_197(_) MSGPACK_PP_SEQ_ELEM_196
+# define MSGPACK_PP_SEQ_ELEM_198(_) MSGPACK_PP_SEQ_ELEM_197
+# define MSGPACK_PP_SEQ_ELEM_199(_) MSGPACK_PP_SEQ_ELEM_198
+# define MSGPACK_PP_SEQ_ELEM_200(_) MSGPACK_PP_SEQ_ELEM_199
+# define MSGPACK_PP_SEQ_ELEM_201(_) MSGPACK_PP_SEQ_ELEM_200
+# define MSGPACK_PP_SEQ_ELEM_202(_) MSGPACK_PP_SEQ_ELEM_201
+# define MSGPACK_PP_SEQ_ELEM_203(_) MSGPACK_PP_SEQ_ELEM_202
+# define MSGPACK_PP_SEQ_ELEM_204(_) MSGPACK_PP_SEQ_ELEM_203
+# define MSGPACK_PP_SEQ_ELEM_205(_) MSGPACK_PP_SEQ_ELEM_204
+# define MSGPACK_PP_SEQ_ELEM_206(_) MSGPACK_PP_SEQ_ELEM_205
+# define MSGPACK_PP_SEQ_ELEM_207(_) MSGPACK_PP_SEQ_ELEM_206
+# define MSGPACK_PP_SEQ_ELEM_208(_) MSGPACK_PP_SEQ_ELEM_207
+# define MSGPACK_PP_SEQ_ELEM_209(_) MSGPACK_PP_SEQ_ELEM_208
+# define MSGPACK_PP_SEQ_ELEM_210(_) MSGPACK_PP_SEQ_ELEM_209
+# define MSGPACK_PP_SEQ_ELEM_211(_) MSGPACK_PP_SEQ_ELEM_210
+# define MSGPACK_PP_SEQ_ELEM_212(_) MSGPACK_PP_SEQ_ELEM_211
+# define MSGPACK_PP_SEQ_ELEM_213(_) MSGPACK_PP_SEQ_ELEM_212
+# define MSGPACK_PP_SEQ_ELEM_214(_) MSGPACK_PP_SEQ_ELEM_213
+# define MSGPACK_PP_SEQ_ELEM_215(_) MSGPACK_PP_SEQ_ELEM_214
+# define MSGPACK_PP_SEQ_ELEM_216(_) MSGPACK_PP_SEQ_ELEM_215
+# define MSGPACK_PP_SEQ_ELEM_217(_) MSGPACK_PP_SEQ_ELEM_216
+# define MSGPACK_PP_SEQ_ELEM_218(_) MSGPACK_PP_SEQ_ELEM_217
+# define MSGPACK_PP_SEQ_ELEM_219(_) MSGPACK_PP_SEQ_ELEM_218
+# define MSGPACK_PP_SEQ_ELEM_220(_) MSGPACK_PP_SEQ_ELEM_219
+# define MSGPACK_PP_SEQ_ELEM_221(_) MSGPACK_PP_SEQ_ELEM_220
+# define MSGPACK_PP_SEQ_ELEM_222(_) MSGPACK_PP_SEQ_ELEM_221
+# define MSGPACK_PP_SEQ_ELEM_223(_) MSGPACK_PP_SEQ_ELEM_222
+# define MSGPACK_PP_SEQ_ELEM_224(_) MSGPACK_PP_SEQ_ELEM_223
+# define MSGPACK_PP_SEQ_ELEM_225(_) MSGPACK_PP_SEQ_ELEM_224
+# define MSGPACK_PP_SEQ_ELEM_226(_) MSGPACK_PP_SEQ_ELEM_225
+# define MSGPACK_PP_SEQ_ELEM_227(_) MSGPACK_PP_SEQ_ELEM_226
+# define MSGPACK_PP_SEQ_ELEM_228(_) MSGPACK_PP_SEQ_ELEM_227
+# define MSGPACK_PP_SEQ_ELEM_229(_) MSGPACK_PP_SEQ_ELEM_228
+# define MSGPACK_PP_SEQ_ELEM_230(_) MSGPACK_PP_SEQ_ELEM_229
+# define MSGPACK_PP_SEQ_ELEM_231(_) MSGPACK_PP_SEQ_ELEM_230
+# define MSGPACK_PP_SEQ_ELEM_232(_) MSGPACK_PP_SEQ_ELEM_231
+# define MSGPACK_PP_SEQ_ELEM_233(_) MSGPACK_PP_SEQ_ELEM_232
+# define MSGPACK_PP_SEQ_ELEM_234(_) MSGPACK_PP_SEQ_ELEM_233
+# define MSGPACK_PP_SEQ_ELEM_235(_) MSGPACK_PP_SEQ_ELEM_234
+# define MSGPACK_PP_SEQ_ELEM_236(_) MSGPACK_PP_SEQ_ELEM_235
+# define MSGPACK_PP_SEQ_ELEM_237(_) MSGPACK_PP_SEQ_ELEM_236
+# define MSGPACK_PP_SEQ_ELEM_238(_) MSGPACK_PP_SEQ_ELEM_237
+# define MSGPACK_PP_SEQ_ELEM_239(_) MSGPACK_PP_SEQ_ELEM_238
+# define MSGPACK_PP_SEQ_ELEM_240(_) MSGPACK_PP_SEQ_ELEM_239
+# define MSGPACK_PP_SEQ_ELEM_241(_) MSGPACK_PP_SEQ_ELEM_240
+# define MSGPACK_PP_SEQ_ELEM_242(_) MSGPACK_PP_SEQ_ELEM_241
+# define MSGPACK_PP_SEQ_ELEM_243(_) MSGPACK_PP_SEQ_ELEM_242
+# define MSGPACK_PP_SEQ_ELEM_244(_) MSGPACK_PP_SEQ_ELEM_243
+# define MSGPACK_PP_SEQ_ELEM_245(_) MSGPACK_PP_SEQ_ELEM_244
+# define MSGPACK_PP_SEQ_ELEM_246(_) MSGPACK_PP_SEQ_ELEM_245
+# define MSGPACK_PP_SEQ_ELEM_247(_) MSGPACK_PP_SEQ_ELEM_246
+# define MSGPACK_PP_SEQ_ELEM_248(_) MSGPACK_PP_SEQ_ELEM_247
+# define MSGPACK_PP_SEQ_ELEM_249(_) MSGPACK_PP_SEQ_ELEM_248
+# define MSGPACK_PP_SEQ_ELEM_250(_) MSGPACK_PP_SEQ_ELEM_249
+# define MSGPACK_PP_SEQ_ELEM_251(_) MSGPACK_PP_SEQ_ELEM_250
+# define MSGPACK_PP_SEQ_ELEM_252(_) MSGPACK_PP_SEQ_ELEM_251
+# define MSGPACK_PP_SEQ_ELEM_253(_) MSGPACK_PP_SEQ_ELEM_252
+# define MSGPACK_PP_SEQ_ELEM_254(_) MSGPACK_PP_SEQ_ELEM_253
+# define MSGPACK_PP_SEQ_ELEM_255(_) MSGPACK_PP_SEQ_ELEM_254
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/enum.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/enum.hpp
new file mode 100644
index 000000000..9f634d4d2
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/enum.hpp
@@ -0,0 +1,288 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_ENUM_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_ENUM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+#
+# /* MSGPACK_PP_SEQ_ENUM */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_ENUM(seq) MSGPACK_PP_SEQ_ENUM_I(seq)
+# define MSGPACK_PP_SEQ_ENUM_I(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ENUM_, MSGPACK_PP_SEQ_SIZE(seq)) seq
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_ENUM(seq) MSGPACK_PP_SEQ_ENUM_I(MSGPACK_PP_SEQ_SIZE(seq), seq)
+# define MSGPACK_PP_SEQ_ENUM_I(size, seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ENUM_, size) seq
+# else
+# define MSGPACK_PP_SEQ_ENUM(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_ENUM_, MSGPACK_PP_SEQ_SIZE(seq)) seq
+# endif
+#
+# define MSGPACK_PP_SEQ_ENUM_1(x) x
+# define MSGPACK_PP_SEQ_ENUM_2(x) x, MSGPACK_PP_SEQ_ENUM_1
+# define MSGPACK_PP_SEQ_ENUM_3(x) x, MSGPACK_PP_SEQ_ENUM_2
+# define MSGPACK_PP_SEQ_ENUM_4(x) x, MSGPACK_PP_SEQ_ENUM_3
+# define MSGPACK_PP_SEQ_ENUM_5(x) x, MSGPACK_PP_SEQ_ENUM_4
+# define MSGPACK_PP_SEQ_ENUM_6(x) x, MSGPACK_PP_SEQ_ENUM_5
+# define MSGPACK_PP_SEQ_ENUM_7(x) x, MSGPACK_PP_SEQ_ENUM_6
+# define MSGPACK_PP_SEQ_ENUM_8(x) x, MSGPACK_PP_SEQ_ENUM_7
+# define MSGPACK_PP_SEQ_ENUM_9(x) x, MSGPACK_PP_SEQ_ENUM_8
+# define MSGPACK_PP_SEQ_ENUM_10(x) x, MSGPACK_PP_SEQ_ENUM_9
+# define MSGPACK_PP_SEQ_ENUM_11(x) x, MSGPACK_PP_SEQ_ENUM_10
+# define MSGPACK_PP_SEQ_ENUM_12(x) x, MSGPACK_PP_SEQ_ENUM_11
+# define MSGPACK_PP_SEQ_ENUM_13(x) x, MSGPACK_PP_SEQ_ENUM_12
+# define MSGPACK_PP_SEQ_ENUM_14(x) x, MSGPACK_PP_SEQ_ENUM_13
+# define MSGPACK_PP_SEQ_ENUM_15(x) x, MSGPACK_PP_SEQ_ENUM_14
+# define MSGPACK_PP_SEQ_ENUM_16(x) x, MSGPACK_PP_SEQ_ENUM_15
+# define MSGPACK_PP_SEQ_ENUM_17(x) x, MSGPACK_PP_SEQ_ENUM_16
+# define MSGPACK_PP_SEQ_ENUM_18(x) x, MSGPACK_PP_SEQ_ENUM_17
+# define MSGPACK_PP_SEQ_ENUM_19(x) x, MSGPACK_PP_SEQ_ENUM_18
+# define MSGPACK_PP_SEQ_ENUM_20(x) x, MSGPACK_PP_SEQ_ENUM_19
+# define MSGPACK_PP_SEQ_ENUM_21(x) x, MSGPACK_PP_SEQ_ENUM_20
+# define MSGPACK_PP_SEQ_ENUM_22(x) x, MSGPACK_PP_SEQ_ENUM_21
+# define MSGPACK_PP_SEQ_ENUM_23(x) x, MSGPACK_PP_SEQ_ENUM_22
+# define MSGPACK_PP_SEQ_ENUM_24(x) x, MSGPACK_PP_SEQ_ENUM_23
+# define MSGPACK_PP_SEQ_ENUM_25(x) x, MSGPACK_PP_SEQ_ENUM_24
+# define MSGPACK_PP_SEQ_ENUM_26(x) x, MSGPACK_PP_SEQ_ENUM_25
+# define MSGPACK_PP_SEQ_ENUM_27(x) x, MSGPACK_PP_SEQ_ENUM_26
+# define MSGPACK_PP_SEQ_ENUM_28(x) x, MSGPACK_PP_SEQ_ENUM_27
+# define MSGPACK_PP_SEQ_ENUM_29(x) x, MSGPACK_PP_SEQ_ENUM_28
+# define MSGPACK_PP_SEQ_ENUM_30(x) x, MSGPACK_PP_SEQ_ENUM_29
+# define MSGPACK_PP_SEQ_ENUM_31(x) x, MSGPACK_PP_SEQ_ENUM_30
+# define MSGPACK_PP_SEQ_ENUM_32(x) x, MSGPACK_PP_SEQ_ENUM_31
+# define MSGPACK_PP_SEQ_ENUM_33(x) x, MSGPACK_PP_SEQ_ENUM_32
+# define MSGPACK_PP_SEQ_ENUM_34(x) x, MSGPACK_PP_SEQ_ENUM_33
+# define MSGPACK_PP_SEQ_ENUM_35(x) x, MSGPACK_PP_SEQ_ENUM_34
+# define MSGPACK_PP_SEQ_ENUM_36(x) x, MSGPACK_PP_SEQ_ENUM_35
+# define MSGPACK_PP_SEQ_ENUM_37(x) x, MSGPACK_PP_SEQ_ENUM_36
+# define MSGPACK_PP_SEQ_ENUM_38(x) x, MSGPACK_PP_SEQ_ENUM_37
+# define MSGPACK_PP_SEQ_ENUM_39(x) x, MSGPACK_PP_SEQ_ENUM_38
+# define MSGPACK_PP_SEQ_ENUM_40(x) x, MSGPACK_PP_SEQ_ENUM_39
+# define MSGPACK_PP_SEQ_ENUM_41(x) x, MSGPACK_PP_SEQ_ENUM_40
+# define MSGPACK_PP_SEQ_ENUM_42(x) x, MSGPACK_PP_SEQ_ENUM_41
+# define MSGPACK_PP_SEQ_ENUM_43(x) x, MSGPACK_PP_SEQ_ENUM_42
+# define MSGPACK_PP_SEQ_ENUM_44(x) x, MSGPACK_PP_SEQ_ENUM_43
+# define MSGPACK_PP_SEQ_ENUM_45(x) x, MSGPACK_PP_SEQ_ENUM_44
+# define MSGPACK_PP_SEQ_ENUM_46(x) x, MSGPACK_PP_SEQ_ENUM_45
+# define MSGPACK_PP_SEQ_ENUM_47(x) x, MSGPACK_PP_SEQ_ENUM_46
+# define MSGPACK_PP_SEQ_ENUM_48(x) x, MSGPACK_PP_SEQ_ENUM_47
+# define MSGPACK_PP_SEQ_ENUM_49(x) x, MSGPACK_PP_SEQ_ENUM_48
+# define MSGPACK_PP_SEQ_ENUM_50(x) x, MSGPACK_PP_SEQ_ENUM_49
+# define MSGPACK_PP_SEQ_ENUM_51(x) x, MSGPACK_PP_SEQ_ENUM_50
+# define MSGPACK_PP_SEQ_ENUM_52(x) x, MSGPACK_PP_SEQ_ENUM_51
+# define MSGPACK_PP_SEQ_ENUM_53(x) x, MSGPACK_PP_SEQ_ENUM_52
+# define MSGPACK_PP_SEQ_ENUM_54(x) x, MSGPACK_PP_SEQ_ENUM_53
+# define MSGPACK_PP_SEQ_ENUM_55(x) x, MSGPACK_PP_SEQ_ENUM_54
+# define MSGPACK_PP_SEQ_ENUM_56(x) x, MSGPACK_PP_SEQ_ENUM_55
+# define MSGPACK_PP_SEQ_ENUM_57(x) x, MSGPACK_PP_SEQ_ENUM_56
+# define MSGPACK_PP_SEQ_ENUM_58(x) x, MSGPACK_PP_SEQ_ENUM_57
+# define MSGPACK_PP_SEQ_ENUM_59(x) x, MSGPACK_PP_SEQ_ENUM_58
+# define MSGPACK_PP_SEQ_ENUM_60(x) x, MSGPACK_PP_SEQ_ENUM_59
+# define MSGPACK_PP_SEQ_ENUM_61(x) x, MSGPACK_PP_SEQ_ENUM_60
+# define MSGPACK_PP_SEQ_ENUM_62(x) x, MSGPACK_PP_SEQ_ENUM_61
+# define MSGPACK_PP_SEQ_ENUM_63(x) x, MSGPACK_PP_SEQ_ENUM_62
+# define MSGPACK_PP_SEQ_ENUM_64(x) x, MSGPACK_PP_SEQ_ENUM_63
+# define MSGPACK_PP_SEQ_ENUM_65(x) x, MSGPACK_PP_SEQ_ENUM_64
+# define MSGPACK_PP_SEQ_ENUM_66(x) x, MSGPACK_PP_SEQ_ENUM_65
+# define MSGPACK_PP_SEQ_ENUM_67(x) x, MSGPACK_PP_SEQ_ENUM_66
+# define MSGPACK_PP_SEQ_ENUM_68(x) x, MSGPACK_PP_SEQ_ENUM_67
+# define MSGPACK_PP_SEQ_ENUM_69(x) x, MSGPACK_PP_SEQ_ENUM_68
+# define MSGPACK_PP_SEQ_ENUM_70(x) x, MSGPACK_PP_SEQ_ENUM_69
+# define MSGPACK_PP_SEQ_ENUM_71(x) x, MSGPACK_PP_SEQ_ENUM_70
+# define MSGPACK_PP_SEQ_ENUM_72(x) x, MSGPACK_PP_SEQ_ENUM_71
+# define MSGPACK_PP_SEQ_ENUM_73(x) x, MSGPACK_PP_SEQ_ENUM_72
+# define MSGPACK_PP_SEQ_ENUM_74(x) x, MSGPACK_PP_SEQ_ENUM_73
+# define MSGPACK_PP_SEQ_ENUM_75(x) x, MSGPACK_PP_SEQ_ENUM_74
+# define MSGPACK_PP_SEQ_ENUM_76(x) x, MSGPACK_PP_SEQ_ENUM_75
+# define MSGPACK_PP_SEQ_ENUM_77(x) x, MSGPACK_PP_SEQ_ENUM_76
+# define MSGPACK_PP_SEQ_ENUM_78(x) x, MSGPACK_PP_SEQ_ENUM_77
+# define MSGPACK_PP_SEQ_ENUM_79(x) x, MSGPACK_PP_SEQ_ENUM_78
+# define MSGPACK_PP_SEQ_ENUM_80(x) x, MSGPACK_PP_SEQ_ENUM_79
+# define MSGPACK_PP_SEQ_ENUM_81(x) x, MSGPACK_PP_SEQ_ENUM_80
+# define MSGPACK_PP_SEQ_ENUM_82(x) x, MSGPACK_PP_SEQ_ENUM_81
+# define MSGPACK_PP_SEQ_ENUM_83(x) x, MSGPACK_PP_SEQ_ENUM_82
+# define MSGPACK_PP_SEQ_ENUM_84(x) x, MSGPACK_PP_SEQ_ENUM_83
+# define MSGPACK_PP_SEQ_ENUM_85(x) x, MSGPACK_PP_SEQ_ENUM_84
+# define MSGPACK_PP_SEQ_ENUM_86(x) x, MSGPACK_PP_SEQ_ENUM_85
+# define MSGPACK_PP_SEQ_ENUM_87(x) x, MSGPACK_PP_SEQ_ENUM_86
+# define MSGPACK_PP_SEQ_ENUM_88(x) x, MSGPACK_PP_SEQ_ENUM_87
+# define MSGPACK_PP_SEQ_ENUM_89(x) x, MSGPACK_PP_SEQ_ENUM_88
+# define MSGPACK_PP_SEQ_ENUM_90(x) x, MSGPACK_PP_SEQ_ENUM_89
+# define MSGPACK_PP_SEQ_ENUM_91(x) x, MSGPACK_PP_SEQ_ENUM_90
+# define MSGPACK_PP_SEQ_ENUM_92(x) x, MSGPACK_PP_SEQ_ENUM_91
+# define MSGPACK_PP_SEQ_ENUM_93(x) x, MSGPACK_PP_SEQ_ENUM_92
+# define MSGPACK_PP_SEQ_ENUM_94(x) x, MSGPACK_PP_SEQ_ENUM_93
+# define MSGPACK_PP_SEQ_ENUM_95(x) x, MSGPACK_PP_SEQ_ENUM_94
+# define MSGPACK_PP_SEQ_ENUM_96(x) x, MSGPACK_PP_SEQ_ENUM_95
+# define MSGPACK_PP_SEQ_ENUM_97(x) x, MSGPACK_PP_SEQ_ENUM_96
+# define MSGPACK_PP_SEQ_ENUM_98(x) x, MSGPACK_PP_SEQ_ENUM_97
+# define MSGPACK_PP_SEQ_ENUM_99(x) x, MSGPACK_PP_SEQ_ENUM_98
+# define MSGPACK_PP_SEQ_ENUM_100(x) x, MSGPACK_PP_SEQ_ENUM_99
+# define MSGPACK_PP_SEQ_ENUM_101(x) x, MSGPACK_PP_SEQ_ENUM_100
+# define MSGPACK_PP_SEQ_ENUM_102(x) x, MSGPACK_PP_SEQ_ENUM_101
+# define MSGPACK_PP_SEQ_ENUM_103(x) x, MSGPACK_PP_SEQ_ENUM_102
+# define MSGPACK_PP_SEQ_ENUM_104(x) x, MSGPACK_PP_SEQ_ENUM_103
+# define MSGPACK_PP_SEQ_ENUM_105(x) x, MSGPACK_PP_SEQ_ENUM_104
+# define MSGPACK_PP_SEQ_ENUM_106(x) x, MSGPACK_PP_SEQ_ENUM_105
+# define MSGPACK_PP_SEQ_ENUM_107(x) x, MSGPACK_PP_SEQ_ENUM_106
+# define MSGPACK_PP_SEQ_ENUM_108(x) x, MSGPACK_PP_SEQ_ENUM_107
+# define MSGPACK_PP_SEQ_ENUM_109(x) x, MSGPACK_PP_SEQ_ENUM_108
+# define MSGPACK_PP_SEQ_ENUM_110(x) x, MSGPACK_PP_SEQ_ENUM_109
+# define MSGPACK_PP_SEQ_ENUM_111(x) x, MSGPACK_PP_SEQ_ENUM_110
+# define MSGPACK_PP_SEQ_ENUM_112(x) x, MSGPACK_PP_SEQ_ENUM_111
+# define MSGPACK_PP_SEQ_ENUM_113(x) x, MSGPACK_PP_SEQ_ENUM_112
+# define MSGPACK_PP_SEQ_ENUM_114(x) x, MSGPACK_PP_SEQ_ENUM_113
+# define MSGPACK_PP_SEQ_ENUM_115(x) x, MSGPACK_PP_SEQ_ENUM_114
+# define MSGPACK_PP_SEQ_ENUM_116(x) x, MSGPACK_PP_SEQ_ENUM_115
+# define MSGPACK_PP_SEQ_ENUM_117(x) x, MSGPACK_PP_SEQ_ENUM_116
+# define MSGPACK_PP_SEQ_ENUM_118(x) x, MSGPACK_PP_SEQ_ENUM_117
+# define MSGPACK_PP_SEQ_ENUM_119(x) x, MSGPACK_PP_SEQ_ENUM_118
+# define MSGPACK_PP_SEQ_ENUM_120(x) x, MSGPACK_PP_SEQ_ENUM_119
+# define MSGPACK_PP_SEQ_ENUM_121(x) x, MSGPACK_PP_SEQ_ENUM_120
+# define MSGPACK_PP_SEQ_ENUM_122(x) x, MSGPACK_PP_SEQ_ENUM_121
+# define MSGPACK_PP_SEQ_ENUM_123(x) x, MSGPACK_PP_SEQ_ENUM_122
+# define MSGPACK_PP_SEQ_ENUM_124(x) x, MSGPACK_PP_SEQ_ENUM_123
+# define MSGPACK_PP_SEQ_ENUM_125(x) x, MSGPACK_PP_SEQ_ENUM_124
+# define MSGPACK_PP_SEQ_ENUM_126(x) x, MSGPACK_PP_SEQ_ENUM_125
+# define MSGPACK_PP_SEQ_ENUM_127(x) x, MSGPACK_PP_SEQ_ENUM_126
+# define MSGPACK_PP_SEQ_ENUM_128(x) x, MSGPACK_PP_SEQ_ENUM_127
+# define MSGPACK_PP_SEQ_ENUM_129(x) x, MSGPACK_PP_SEQ_ENUM_128
+# define MSGPACK_PP_SEQ_ENUM_130(x) x, MSGPACK_PP_SEQ_ENUM_129
+# define MSGPACK_PP_SEQ_ENUM_131(x) x, MSGPACK_PP_SEQ_ENUM_130
+# define MSGPACK_PP_SEQ_ENUM_132(x) x, MSGPACK_PP_SEQ_ENUM_131
+# define MSGPACK_PP_SEQ_ENUM_133(x) x, MSGPACK_PP_SEQ_ENUM_132
+# define MSGPACK_PP_SEQ_ENUM_134(x) x, MSGPACK_PP_SEQ_ENUM_133
+# define MSGPACK_PP_SEQ_ENUM_135(x) x, MSGPACK_PP_SEQ_ENUM_134
+# define MSGPACK_PP_SEQ_ENUM_136(x) x, MSGPACK_PP_SEQ_ENUM_135
+# define MSGPACK_PP_SEQ_ENUM_137(x) x, MSGPACK_PP_SEQ_ENUM_136
+# define MSGPACK_PP_SEQ_ENUM_138(x) x, MSGPACK_PP_SEQ_ENUM_137
+# define MSGPACK_PP_SEQ_ENUM_139(x) x, MSGPACK_PP_SEQ_ENUM_138
+# define MSGPACK_PP_SEQ_ENUM_140(x) x, MSGPACK_PP_SEQ_ENUM_139
+# define MSGPACK_PP_SEQ_ENUM_141(x) x, MSGPACK_PP_SEQ_ENUM_140
+# define MSGPACK_PP_SEQ_ENUM_142(x) x, MSGPACK_PP_SEQ_ENUM_141
+# define MSGPACK_PP_SEQ_ENUM_143(x) x, MSGPACK_PP_SEQ_ENUM_142
+# define MSGPACK_PP_SEQ_ENUM_144(x) x, MSGPACK_PP_SEQ_ENUM_143
+# define MSGPACK_PP_SEQ_ENUM_145(x) x, MSGPACK_PP_SEQ_ENUM_144
+# define MSGPACK_PP_SEQ_ENUM_146(x) x, MSGPACK_PP_SEQ_ENUM_145
+# define MSGPACK_PP_SEQ_ENUM_147(x) x, MSGPACK_PP_SEQ_ENUM_146
+# define MSGPACK_PP_SEQ_ENUM_148(x) x, MSGPACK_PP_SEQ_ENUM_147
+# define MSGPACK_PP_SEQ_ENUM_149(x) x, MSGPACK_PP_SEQ_ENUM_148
+# define MSGPACK_PP_SEQ_ENUM_150(x) x, MSGPACK_PP_SEQ_ENUM_149
+# define MSGPACK_PP_SEQ_ENUM_151(x) x, MSGPACK_PP_SEQ_ENUM_150
+# define MSGPACK_PP_SEQ_ENUM_152(x) x, MSGPACK_PP_SEQ_ENUM_151
+# define MSGPACK_PP_SEQ_ENUM_153(x) x, MSGPACK_PP_SEQ_ENUM_152
+# define MSGPACK_PP_SEQ_ENUM_154(x) x, MSGPACK_PP_SEQ_ENUM_153
+# define MSGPACK_PP_SEQ_ENUM_155(x) x, MSGPACK_PP_SEQ_ENUM_154
+# define MSGPACK_PP_SEQ_ENUM_156(x) x, MSGPACK_PP_SEQ_ENUM_155
+# define MSGPACK_PP_SEQ_ENUM_157(x) x, MSGPACK_PP_SEQ_ENUM_156
+# define MSGPACK_PP_SEQ_ENUM_158(x) x, MSGPACK_PP_SEQ_ENUM_157
+# define MSGPACK_PP_SEQ_ENUM_159(x) x, MSGPACK_PP_SEQ_ENUM_158
+# define MSGPACK_PP_SEQ_ENUM_160(x) x, MSGPACK_PP_SEQ_ENUM_159
+# define MSGPACK_PP_SEQ_ENUM_161(x) x, MSGPACK_PP_SEQ_ENUM_160
+# define MSGPACK_PP_SEQ_ENUM_162(x) x, MSGPACK_PP_SEQ_ENUM_161
+# define MSGPACK_PP_SEQ_ENUM_163(x) x, MSGPACK_PP_SEQ_ENUM_162
+# define MSGPACK_PP_SEQ_ENUM_164(x) x, MSGPACK_PP_SEQ_ENUM_163
+# define MSGPACK_PP_SEQ_ENUM_165(x) x, MSGPACK_PP_SEQ_ENUM_164
+# define MSGPACK_PP_SEQ_ENUM_166(x) x, MSGPACK_PP_SEQ_ENUM_165
+# define MSGPACK_PP_SEQ_ENUM_167(x) x, MSGPACK_PP_SEQ_ENUM_166
+# define MSGPACK_PP_SEQ_ENUM_168(x) x, MSGPACK_PP_SEQ_ENUM_167
+# define MSGPACK_PP_SEQ_ENUM_169(x) x, MSGPACK_PP_SEQ_ENUM_168
+# define MSGPACK_PP_SEQ_ENUM_170(x) x, MSGPACK_PP_SEQ_ENUM_169
+# define MSGPACK_PP_SEQ_ENUM_171(x) x, MSGPACK_PP_SEQ_ENUM_170
+# define MSGPACK_PP_SEQ_ENUM_172(x) x, MSGPACK_PP_SEQ_ENUM_171
+# define MSGPACK_PP_SEQ_ENUM_173(x) x, MSGPACK_PP_SEQ_ENUM_172
+# define MSGPACK_PP_SEQ_ENUM_174(x) x, MSGPACK_PP_SEQ_ENUM_173
+# define MSGPACK_PP_SEQ_ENUM_175(x) x, MSGPACK_PP_SEQ_ENUM_174
+# define MSGPACK_PP_SEQ_ENUM_176(x) x, MSGPACK_PP_SEQ_ENUM_175
+# define MSGPACK_PP_SEQ_ENUM_177(x) x, MSGPACK_PP_SEQ_ENUM_176
+# define MSGPACK_PP_SEQ_ENUM_178(x) x, MSGPACK_PP_SEQ_ENUM_177
+# define MSGPACK_PP_SEQ_ENUM_179(x) x, MSGPACK_PP_SEQ_ENUM_178
+# define MSGPACK_PP_SEQ_ENUM_180(x) x, MSGPACK_PP_SEQ_ENUM_179
+# define MSGPACK_PP_SEQ_ENUM_181(x) x, MSGPACK_PP_SEQ_ENUM_180
+# define MSGPACK_PP_SEQ_ENUM_182(x) x, MSGPACK_PP_SEQ_ENUM_181
+# define MSGPACK_PP_SEQ_ENUM_183(x) x, MSGPACK_PP_SEQ_ENUM_182
+# define MSGPACK_PP_SEQ_ENUM_184(x) x, MSGPACK_PP_SEQ_ENUM_183
+# define MSGPACK_PP_SEQ_ENUM_185(x) x, MSGPACK_PP_SEQ_ENUM_184
+# define MSGPACK_PP_SEQ_ENUM_186(x) x, MSGPACK_PP_SEQ_ENUM_185
+# define MSGPACK_PP_SEQ_ENUM_187(x) x, MSGPACK_PP_SEQ_ENUM_186
+# define MSGPACK_PP_SEQ_ENUM_188(x) x, MSGPACK_PP_SEQ_ENUM_187
+# define MSGPACK_PP_SEQ_ENUM_189(x) x, MSGPACK_PP_SEQ_ENUM_188
+# define MSGPACK_PP_SEQ_ENUM_190(x) x, MSGPACK_PP_SEQ_ENUM_189
+# define MSGPACK_PP_SEQ_ENUM_191(x) x, MSGPACK_PP_SEQ_ENUM_190
+# define MSGPACK_PP_SEQ_ENUM_192(x) x, MSGPACK_PP_SEQ_ENUM_191
+# define MSGPACK_PP_SEQ_ENUM_193(x) x, MSGPACK_PP_SEQ_ENUM_192
+# define MSGPACK_PP_SEQ_ENUM_194(x) x, MSGPACK_PP_SEQ_ENUM_193
+# define MSGPACK_PP_SEQ_ENUM_195(x) x, MSGPACK_PP_SEQ_ENUM_194
+# define MSGPACK_PP_SEQ_ENUM_196(x) x, MSGPACK_PP_SEQ_ENUM_195
+# define MSGPACK_PP_SEQ_ENUM_197(x) x, MSGPACK_PP_SEQ_ENUM_196
+# define MSGPACK_PP_SEQ_ENUM_198(x) x, MSGPACK_PP_SEQ_ENUM_197
+# define MSGPACK_PP_SEQ_ENUM_199(x) x, MSGPACK_PP_SEQ_ENUM_198
+# define MSGPACK_PP_SEQ_ENUM_200(x) x, MSGPACK_PP_SEQ_ENUM_199
+# define MSGPACK_PP_SEQ_ENUM_201(x) x, MSGPACK_PP_SEQ_ENUM_200
+# define MSGPACK_PP_SEQ_ENUM_202(x) x, MSGPACK_PP_SEQ_ENUM_201
+# define MSGPACK_PP_SEQ_ENUM_203(x) x, MSGPACK_PP_SEQ_ENUM_202
+# define MSGPACK_PP_SEQ_ENUM_204(x) x, MSGPACK_PP_SEQ_ENUM_203
+# define MSGPACK_PP_SEQ_ENUM_205(x) x, MSGPACK_PP_SEQ_ENUM_204
+# define MSGPACK_PP_SEQ_ENUM_206(x) x, MSGPACK_PP_SEQ_ENUM_205
+# define MSGPACK_PP_SEQ_ENUM_207(x) x, MSGPACK_PP_SEQ_ENUM_206
+# define MSGPACK_PP_SEQ_ENUM_208(x) x, MSGPACK_PP_SEQ_ENUM_207
+# define MSGPACK_PP_SEQ_ENUM_209(x) x, MSGPACK_PP_SEQ_ENUM_208
+# define MSGPACK_PP_SEQ_ENUM_210(x) x, MSGPACK_PP_SEQ_ENUM_209
+# define MSGPACK_PP_SEQ_ENUM_211(x) x, MSGPACK_PP_SEQ_ENUM_210
+# define MSGPACK_PP_SEQ_ENUM_212(x) x, MSGPACK_PP_SEQ_ENUM_211
+# define MSGPACK_PP_SEQ_ENUM_213(x) x, MSGPACK_PP_SEQ_ENUM_212
+# define MSGPACK_PP_SEQ_ENUM_214(x) x, MSGPACK_PP_SEQ_ENUM_213
+# define MSGPACK_PP_SEQ_ENUM_215(x) x, MSGPACK_PP_SEQ_ENUM_214
+# define MSGPACK_PP_SEQ_ENUM_216(x) x, MSGPACK_PP_SEQ_ENUM_215
+# define MSGPACK_PP_SEQ_ENUM_217(x) x, MSGPACK_PP_SEQ_ENUM_216
+# define MSGPACK_PP_SEQ_ENUM_218(x) x, MSGPACK_PP_SEQ_ENUM_217
+# define MSGPACK_PP_SEQ_ENUM_219(x) x, MSGPACK_PP_SEQ_ENUM_218
+# define MSGPACK_PP_SEQ_ENUM_220(x) x, MSGPACK_PP_SEQ_ENUM_219
+# define MSGPACK_PP_SEQ_ENUM_221(x) x, MSGPACK_PP_SEQ_ENUM_220
+# define MSGPACK_PP_SEQ_ENUM_222(x) x, MSGPACK_PP_SEQ_ENUM_221
+# define MSGPACK_PP_SEQ_ENUM_223(x) x, MSGPACK_PP_SEQ_ENUM_222
+# define MSGPACK_PP_SEQ_ENUM_224(x) x, MSGPACK_PP_SEQ_ENUM_223
+# define MSGPACK_PP_SEQ_ENUM_225(x) x, MSGPACK_PP_SEQ_ENUM_224
+# define MSGPACK_PP_SEQ_ENUM_226(x) x, MSGPACK_PP_SEQ_ENUM_225
+# define MSGPACK_PP_SEQ_ENUM_227(x) x, MSGPACK_PP_SEQ_ENUM_226
+# define MSGPACK_PP_SEQ_ENUM_228(x) x, MSGPACK_PP_SEQ_ENUM_227
+# define MSGPACK_PP_SEQ_ENUM_229(x) x, MSGPACK_PP_SEQ_ENUM_228
+# define MSGPACK_PP_SEQ_ENUM_230(x) x, MSGPACK_PP_SEQ_ENUM_229
+# define MSGPACK_PP_SEQ_ENUM_231(x) x, MSGPACK_PP_SEQ_ENUM_230
+# define MSGPACK_PP_SEQ_ENUM_232(x) x, MSGPACK_PP_SEQ_ENUM_231
+# define MSGPACK_PP_SEQ_ENUM_233(x) x, MSGPACK_PP_SEQ_ENUM_232
+# define MSGPACK_PP_SEQ_ENUM_234(x) x, MSGPACK_PP_SEQ_ENUM_233
+# define MSGPACK_PP_SEQ_ENUM_235(x) x, MSGPACK_PP_SEQ_ENUM_234
+# define MSGPACK_PP_SEQ_ENUM_236(x) x, MSGPACK_PP_SEQ_ENUM_235
+# define MSGPACK_PP_SEQ_ENUM_237(x) x, MSGPACK_PP_SEQ_ENUM_236
+# define MSGPACK_PP_SEQ_ENUM_238(x) x, MSGPACK_PP_SEQ_ENUM_237
+# define MSGPACK_PP_SEQ_ENUM_239(x) x, MSGPACK_PP_SEQ_ENUM_238
+# define MSGPACK_PP_SEQ_ENUM_240(x) x, MSGPACK_PP_SEQ_ENUM_239
+# define MSGPACK_PP_SEQ_ENUM_241(x) x, MSGPACK_PP_SEQ_ENUM_240
+# define MSGPACK_PP_SEQ_ENUM_242(x) x, MSGPACK_PP_SEQ_ENUM_241
+# define MSGPACK_PP_SEQ_ENUM_243(x) x, MSGPACK_PP_SEQ_ENUM_242
+# define MSGPACK_PP_SEQ_ENUM_244(x) x, MSGPACK_PP_SEQ_ENUM_243
+# define MSGPACK_PP_SEQ_ENUM_245(x) x, MSGPACK_PP_SEQ_ENUM_244
+# define MSGPACK_PP_SEQ_ENUM_246(x) x, MSGPACK_PP_SEQ_ENUM_245
+# define MSGPACK_PP_SEQ_ENUM_247(x) x, MSGPACK_PP_SEQ_ENUM_246
+# define MSGPACK_PP_SEQ_ENUM_248(x) x, MSGPACK_PP_SEQ_ENUM_247
+# define MSGPACK_PP_SEQ_ENUM_249(x) x, MSGPACK_PP_SEQ_ENUM_248
+# define MSGPACK_PP_SEQ_ENUM_250(x) x, MSGPACK_PP_SEQ_ENUM_249
+# define MSGPACK_PP_SEQ_ENUM_251(x) x, MSGPACK_PP_SEQ_ENUM_250
+# define MSGPACK_PP_SEQ_ENUM_252(x) x, MSGPACK_PP_SEQ_ENUM_251
+# define MSGPACK_PP_SEQ_ENUM_253(x) x, MSGPACK_PP_SEQ_ENUM_252
+# define MSGPACK_PP_SEQ_ENUM_254(x) x, MSGPACK_PP_SEQ_ENUM_253
+# define MSGPACK_PP_SEQ_ENUM_255(x) x, MSGPACK_PP_SEQ_ENUM_254
+# define MSGPACK_PP_SEQ_ENUM_256(x) x, MSGPACK_PP_SEQ_ENUM_255
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/filter.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/filter.hpp
new file mode 100644
index 000000000..82efb7f6a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/filter.hpp
@@ -0,0 +1,54 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_FILTER_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_FILTER_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/expr_if.hpp>
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+# include <rpc/msgpack/preprocessor/seq/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_SEQ_FILTER */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FILTER(pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# else
+# define MSGPACK_PP_SEQ_FILTER(pred, data, seq) MSGPACK_PP_SEQ_FILTER_I(pred, data, seq)
+# define MSGPACK_PP_SEQ_FILTER_I(pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_SEQ_FILTER_O(s, st, elem) MSGPACK_PP_SEQ_FILTER_O_IM(s, MSGPACK_PP_TUPLE_REM_3 st, elem)
+# define MSGPACK_PP_SEQ_FILTER_O_IM(s, im, elem) MSGPACK_PP_SEQ_FILTER_O_I(s, im, elem)
+# else
+# define MSGPACK_PP_SEQ_FILTER_O(s, st, elem) MSGPACK_PP_SEQ_FILTER_O_I(s, MSGPACK_PP_TUPLE_ELEM(3, 0, st), MSGPACK_PP_TUPLE_ELEM(3, 1, st), MSGPACK_PP_TUPLE_ELEM(3, 2, st), elem)
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# define MSGPACK_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res MSGPACK_PP_EXPR_IF(pred(s, data, elem), (elem)))
+# else
+# define MSGPACK_PP_SEQ_FILTER_O_I(s, pred, data, res, elem) (pred, data, res MSGPACK_PP_EXPR_IF(pred##(s, data, elem), (elem)))
+# endif
+#
+# /* MSGPACK_PP_SEQ_FILTER_S */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FILTER_S(s, pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# else
+# define MSGPACK_PP_SEQ_FILTER_S(s, pred, data, seq) MSGPACK_PP_SEQ_FILTER_S_I(s, pred, data, seq)
+# define MSGPACK_PP_SEQ_FILTER_S_I(s, pred, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_FILTER_O, (pred, data, (nil)), seq)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/first_n.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/first_n.hpp
new file mode 100644
index 000000000..0bdbe0e7d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/first_n.hpp
@@ -0,0 +1,30 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_FIRST_N_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_FIRST_N_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/seq/detail/split.hpp>
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_SEQ_FIRST_N */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FIRST_N(n, seq) MSGPACK_PP_IF(n, MSGPACK_PP_TUPLE_ELEM, MSGPACK_PP_TUPLE_EAT_3)(2, 0, MSGPACK_PP_SEQ_SPLIT(n, seq (nil)))
+# else
+# define MSGPACK_PP_SEQ_FIRST_N(n, seq) MSGPACK_PP_SEQ_FIRST_N_I(n, seq)
+# define MSGPACK_PP_SEQ_FIRST_N_I(n, seq) MSGPACK_PP_IF(n, MSGPACK_PP_TUPLE_ELEM, MSGPACK_PP_TUPLE_EAT_3)(2, 0, MSGPACK_PP_SEQ_SPLIT(n, seq (nil)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_left.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_left.hpp
new file mode 100644
index 000000000..b965fde7b
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_left.hpp
@@ -0,0 +1,1070 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/debug/error.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+#
+# /* MSGPACK_PP_SEQ_FOLD_LEFT */
+#
+# if 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT(op, state, seq) ...
+# endif
+#
+# define MSGPACK_PP_SEQ_FOLD_LEFT MSGPACK_PP_CAT(MSGPACK_PP_SEQ_FOLD_LEFT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_SEQ_FOLD_LEFT_P, 256))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_P(n) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_, MSGPACK_PP_SEQ_FOLD_LEFT_I_ ## n(MSGPACK_PP_SEQ_FOLD_LEFT_O, MSGPACK_PP_NIL, (nil), 1))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_O(s, st, _) st
+#
+# define MSGPACK_PP_SEQ_FOLD_LEFT_257(op, st, ss) MSGPACK_PP_ERROR(0x0005)
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) MSGPACK_PP_ERROR(0x0005)
+#
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_NIL 1
+#
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0
+# define MSGPACK_PP_SEQ_FOLD_LEFT_CHECK_MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0
+#
+# define MSGPACK_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st
+#
+# define MSGPACK_PP_SEQ_FOLD_LEFT_1(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_2(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_3(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_4(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_5(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_6(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_7(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_8(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_9(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_10(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_11(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_12(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_13(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_14(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_15(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_16(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_17(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_18(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_19(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_20(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_21(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_22(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_23(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_24(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_25(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_26(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_27(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_28(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_29(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_30(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_31(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_32(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_33(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_34(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_35(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_36(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_37(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_38(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_39(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_40(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_41(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_42(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_43(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_44(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_45(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_46(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_47(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_48(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_49(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_50(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_51(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_52(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_53(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_54(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_55(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_56(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_57(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_58(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_59(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_60(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_61(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_62(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_63(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_64(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_65(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_66(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_67(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_68(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_69(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_70(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_71(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_72(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_73(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_74(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_75(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_76(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_77(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_78(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_79(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_80(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_81(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_82(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_83(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_84(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_85(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_86(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_87(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_88(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_89(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_90(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_91(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_92(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_93(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_94(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_95(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_96(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_97(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_98(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_99(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_100(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_101(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_102(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_103(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_104(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_105(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_106(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_107(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_108(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_109(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_110(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_111(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_112(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_113(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_114(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_115(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_116(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_117(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_118(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_119(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_120(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_121(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_122(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_123(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_124(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_125(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_126(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_127(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_128(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_129(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_130(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_131(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_132(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_133(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_134(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_135(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_136(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_137(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_138(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_139(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_140(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_141(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_142(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_143(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_144(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_145(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_146(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_147(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_148(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_149(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_150(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_151(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_152(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_153(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_154(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_155(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_156(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_157(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_158(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_159(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_160(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_161(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_162(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_163(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_164(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_165(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_166(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_167(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_168(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_169(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_170(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_171(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_172(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_173(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_174(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_175(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_176(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_177(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_178(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_179(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_180(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_181(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_182(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_183(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_184(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_185(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_186(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_187(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_188(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_189(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_190(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_191(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_192(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_193(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_194(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_195(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_196(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_197(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_198(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_199(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_200(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_201(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_202(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_203(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_204(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_205(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_206(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_207(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_208(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_209(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_210(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_211(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_212(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_213(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_214(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_215(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_216(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_217(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_218(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_219(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_220(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_221(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_222(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_223(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_224(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_225(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_226(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_227(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_228(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_229(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_230(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_231(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_232(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_233(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_234(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_235(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_236(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_237(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_238(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_239(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_240(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_241(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_242(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_243(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_244(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_245(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_246(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_247(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_248(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_249(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_250(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_251(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_252(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_253(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_254(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_255(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_256(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, MSGPACK_PP_SEQ_SIZE(ss))
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_DMC()
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_2, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_3, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_4, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_5, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_6, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_7, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_8, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_9, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_10, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_11, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_12, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_13, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_14, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_15, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_16, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_17, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_18, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_19, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_20, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_21, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_22, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_23, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_24, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_25, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_26, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_27, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_28, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_29, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_30, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_31, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_32, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_33, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_34, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_35, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_36, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_37, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_38, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_39, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_40, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_41, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_42, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_43, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_44, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_45, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_46, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_47, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_48, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_49, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_50, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_51, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_52, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_53, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_54, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_55, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_56, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_57, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_58, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_59, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_60, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_61, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_62, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_63, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_64, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_65, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_66, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_67, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_68, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_69, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_70, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_71, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_72, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_73, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_74, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_75, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_76, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_77, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_78, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_79, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_80, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_81, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_82, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_83, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_84, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_85, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_86, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_87, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_88, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_89, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_90, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_91, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_92, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_93, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_94, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_95, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_96, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_97, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_98, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_99, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_100, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_101, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_102, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_103, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_104, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_105, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_106, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_107, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_108, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_109, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_110, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_111, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_112, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_113, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_114, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_115, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_116, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_117, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_118, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_119, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_120, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_121, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_122, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_123, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_124, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_125, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_126, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_127, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_128, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_129, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_130, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_131, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_132, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_133, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_134, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_135, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_136, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_137, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_138, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_139, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_140, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_141, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_142, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_143, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_144, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_145, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_146, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_147, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_148, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_149, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_150, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_151, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_152, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_153, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_154, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_155, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_156, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_157, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_158, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_159, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_160, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_161, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_162, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_163, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_164, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_165, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_166, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_167, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_168, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_169, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_170, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_171, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_172, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_173, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_174, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_175, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_176, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_177, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_178, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_179, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_180, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_181, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_182, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_183, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_184, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_185, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_186, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_187, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_188, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_189, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_190, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_191, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_192, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_193, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_194, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_195, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_196, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_197, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_198, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_199, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_200, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_201, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_202, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_203, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_204, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_205, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_206, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_207, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_208, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_209, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_210, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_211, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_212, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_213, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_214, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_215, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_216, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_217, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_218, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_219, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_220, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_221, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_222, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_223, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_224, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_225, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_226, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_227, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_228, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_229, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_230, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_231, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_232, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_233, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_234, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_235, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_236, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_237, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_238, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_239, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_240, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_241, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_242, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_243, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_244, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_245, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_246, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_247, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_248, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_249, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_250, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_251, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_252, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_253, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_254, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_255, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_256, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_257, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# else
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_2, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_3, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_4, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_5, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_6, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_7, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_8, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_9, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_10, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_11, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_12, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_13, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_14, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_15, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_16, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_17, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_18, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_19, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_20, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_21, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_22, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_23, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_24, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_25, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_26, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_27, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_28, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_29, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_30, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_31, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_32, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_33, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_34, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_35, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_36, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_37, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_38, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_39, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_40, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_41, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_42, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_43, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_44, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_45, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_46, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_47, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_48, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_49, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_50, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_51, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_52, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_53, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_54, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_55, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_56, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_57, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_58, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_59, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_60, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_61, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_62, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_63, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_64, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_65, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_66, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_67, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_68, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_69, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_70, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_71, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_72, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_73, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_74, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_75, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_76, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_77, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_78, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_79, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_80, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_81, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_82, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_83, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_84, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_85, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_86, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_87, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_88, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_89, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_90, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_91, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_92, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_93, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_94, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_95, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_96, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_97, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_98, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_99, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_100, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_101, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_102, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_103, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_104, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_105, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_106, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_107, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_108, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_109, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_110, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_111, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_112, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_113, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_114, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_115, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_116, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_117, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_118, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_119, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_120, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_121, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_122, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_123, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_124, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_125, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_126, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_127, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_128, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_129, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_130, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_131, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_132, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_133, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_134, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_135, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_136, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_137, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_138, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_139, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_140, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_141, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_142, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_143, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_144, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_145, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_146, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_147, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_148, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_149, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_150, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_151, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_152, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_153, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_154, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_155, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_156, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_157, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_158, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_159, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_160, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_161, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_162, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_163, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_164, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_165, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_166, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_167, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_168, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_169, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_170, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_171, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_172, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_173, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_174, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_175, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_176, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_177, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_178, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_179, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_180, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_181, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_182, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_183, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_184, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_185, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_186, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_187, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_188, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_189, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_190, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_191, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_192, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_193, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_194, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_195, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_196, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_197, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_198, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_199, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_200, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_201, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_202, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_203, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_204, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_205, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_206, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_207, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_208, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_209, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_210, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_211, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_212, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_213, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_214, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_215, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_216, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_217, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_218, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_219, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_220, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_221, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_222, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_223, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_224, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_225, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_226, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_227, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_228, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_229, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_230, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_231, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_232, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_233, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_234, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_235, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_236, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_237, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_238, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_239, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_240, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_241, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_242, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_243, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_244, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_245, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_246, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_247, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_248, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_249, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_250, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_251, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_252, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_253, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_254, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_255, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_256, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# define MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) MSGPACK_PP_IF(MSGPACK_PP_DEC(sz), MSGPACK_PP_SEQ_FOLD_LEFT_I_257, MSGPACK_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, MSGPACK_PP_SEQ_HEAD(ss)), MSGPACK_PP_SEQ_TAIL(ss), MSGPACK_PP_DEC(sz))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_right.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_right.hpp
new file mode 100644
index 000000000..1ffd567e8
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/fold_right.hpp
@@ -0,0 +1,288 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_FOLD_RIGHT_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/detail/auto_rec.hpp>
+# include <rpc/msgpack/preprocessor/seq/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/seq/reverse.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+#
+# /* MSGPACK_PP_SEQ_FOLD_RIGHT */
+#
+# if 0
+# define MSGPACK_PP_SEQ_FOLD_RIGHT(op, state, seq) ...
+# endif
+#
+# define MSGPACK_PP_SEQ_FOLD_RIGHT MSGPACK_PP_CAT(MSGPACK_PP_SEQ_FOLD_RIGHT_, MSGPACK_PP_AUTO_REC(MSGPACK_PP_SEQ_FOLD_LEFT_P, 256))
+#
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_257(op, st, ss) MSGPACK_PP_ERROR(0x0005)
+#
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_1(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_1(op, st, MSGPACK_PP_SEQ_REVERSE_S(2, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_2(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_2(op, st, MSGPACK_PP_SEQ_REVERSE_S(3, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_3(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_3(op, st, MSGPACK_PP_SEQ_REVERSE_S(4, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_4(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_4(op, st, MSGPACK_PP_SEQ_REVERSE_S(5, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_5(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_5(op, st, MSGPACK_PP_SEQ_REVERSE_S(6, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_6(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_6(op, st, MSGPACK_PP_SEQ_REVERSE_S(7, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_7(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_7(op, st, MSGPACK_PP_SEQ_REVERSE_S(8, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_8(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_8(op, st, MSGPACK_PP_SEQ_REVERSE_S(9, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_9(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_9(op, st, MSGPACK_PP_SEQ_REVERSE_S(10, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_10(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_10(op, st, MSGPACK_PP_SEQ_REVERSE_S(11, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_11(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_11(op, st, MSGPACK_PP_SEQ_REVERSE_S(12, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_12(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_12(op, st, MSGPACK_PP_SEQ_REVERSE_S(13, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_13(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_13(op, st, MSGPACK_PP_SEQ_REVERSE_S(14, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_14(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_14(op, st, MSGPACK_PP_SEQ_REVERSE_S(15, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_15(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_15(op, st, MSGPACK_PP_SEQ_REVERSE_S(16, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_16(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_16(op, st, MSGPACK_PP_SEQ_REVERSE_S(17, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_17(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_17(op, st, MSGPACK_PP_SEQ_REVERSE_S(18, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_18(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_18(op, st, MSGPACK_PP_SEQ_REVERSE_S(19, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_19(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_19(op, st, MSGPACK_PP_SEQ_REVERSE_S(20, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_20(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_20(op, st, MSGPACK_PP_SEQ_REVERSE_S(21, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_21(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_21(op, st, MSGPACK_PP_SEQ_REVERSE_S(22, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_22(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_22(op, st, MSGPACK_PP_SEQ_REVERSE_S(23, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_23(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_23(op, st, MSGPACK_PP_SEQ_REVERSE_S(24, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_24(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_24(op, st, MSGPACK_PP_SEQ_REVERSE_S(25, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_25(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_25(op, st, MSGPACK_PP_SEQ_REVERSE_S(26, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_26(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_26(op, st, MSGPACK_PP_SEQ_REVERSE_S(27, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_27(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_27(op, st, MSGPACK_PP_SEQ_REVERSE_S(28, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_28(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_28(op, st, MSGPACK_PP_SEQ_REVERSE_S(29, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_29(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_29(op, st, MSGPACK_PP_SEQ_REVERSE_S(30, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_30(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_30(op, st, MSGPACK_PP_SEQ_REVERSE_S(31, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_31(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_31(op, st, MSGPACK_PP_SEQ_REVERSE_S(32, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_32(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_32(op, st, MSGPACK_PP_SEQ_REVERSE_S(33, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_33(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_33(op, st, MSGPACK_PP_SEQ_REVERSE_S(34, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_34(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_34(op, st, MSGPACK_PP_SEQ_REVERSE_S(35, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_35(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_35(op, st, MSGPACK_PP_SEQ_REVERSE_S(36, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_36(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_36(op, st, MSGPACK_PP_SEQ_REVERSE_S(37, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_37(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_37(op, st, MSGPACK_PP_SEQ_REVERSE_S(38, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_38(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_38(op, st, MSGPACK_PP_SEQ_REVERSE_S(39, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_39(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_39(op, st, MSGPACK_PP_SEQ_REVERSE_S(40, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_40(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_40(op, st, MSGPACK_PP_SEQ_REVERSE_S(41, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_41(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_41(op, st, MSGPACK_PP_SEQ_REVERSE_S(42, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_42(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_42(op, st, MSGPACK_PP_SEQ_REVERSE_S(43, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_43(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_43(op, st, MSGPACK_PP_SEQ_REVERSE_S(44, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_44(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_44(op, st, MSGPACK_PP_SEQ_REVERSE_S(45, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_45(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_45(op, st, MSGPACK_PP_SEQ_REVERSE_S(46, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_46(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_46(op, st, MSGPACK_PP_SEQ_REVERSE_S(47, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_47(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_47(op, st, MSGPACK_PP_SEQ_REVERSE_S(48, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_48(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_48(op, st, MSGPACK_PP_SEQ_REVERSE_S(49, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_49(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_49(op, st, MSGPACK_PP_SEQ_REVERSE_S(50, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_50(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_50(op, st, MSGPACK_PP_SEQ_REVERSE_S(51, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_51(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_51(op, st, MSGPACK_PP_SEQ_REVERSE_S(52, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_52(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_52(op, st, MSGPACK_PP_SEQ_REVERSE_S(53, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_53(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_53(op, st, MSGPACK_PP_SEQ_REVERSE_S(54, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_54(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_54(op, st, MSGPACK_PP_SEQ_REVERSE_S(55, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_55(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_55(op, st, MSGPACK_PP_SEQ_REVERSE_S(56, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_56(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_56(op, st, MSGPACK_PP_SEQ_REVERSE_S(57, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_57(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_57(op, st, MSGPACK_PP_SEQ_REVERSE_S(58, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_58(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_58(op, st, MSGPACK_PP_SEQ_REVERSE_S(59, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_59(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_59(op, st, MSGPACK_PP_SEQ_REVERSE_S(60, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_60(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_60(op, st, MSGPACK_PP_SEQ_REVERSE_S(61, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_61(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_61(op, st, MSGPACK_PP_SEQ_REVERSE_S(62, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_62(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_62(op, st, MSGPACK_PP_SEQ_REVERSE_S(63, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_63(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_63(op, st, MSGPACK_PP_SEQ_REVERSE_S(64, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_64(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_64(op, st, MSGPACK_PP_SEQ_REVERSE_S(65, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_65(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_65(op, st, MSGPACK_PP_SEQ_REVERSE_S(66, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_66(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_66(op, st, MSGPACK_PP_SEQ_REVERSE_S(67, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_67(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_67(op, st, MSGPACK_PP_SEQ_REVERSE_S(68, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_68(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_68(op, st, MSGPACK_PP_SEQ_REVERSE_S(69, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_69(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_69(op, st, MSGPACK_PP_SEQ_REVERSE_S(70, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_70(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_70(op, st, MSGPACK_PP_SEQ_REVERSE_S(71, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_71(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_71(op, st, MSGPACK_PP_SEQ_REVERSE_S(72, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_72(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_72(op, st, MSGPACK_PP_SEQ_REVERSE_S(73, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_73(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_73(op, st, MSGPACK_PP_SEQ_REVERSE_S(74, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_74(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_74(op, st, MSGPACK_PP_SEQ_REVERSE_S(75, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_75(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_75(op, st, MSGPACK_PP_SEQ_REVERSE_S(76, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_76(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_76(op, st, MSGPACK_PP_SEQ_REVERSE_S(77, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_77(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_77(op, st, MSGPACK_PP_SEQ_REVERSE_S(78, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_78(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_78(op, st, MSGPACK_PP_SEQ_REVERSE_S(79, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_79(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_79(op, st, MSGPACK_PP_SEQ_REVERSE_S(80, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_80(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_80(op, st, MSGPACK_PP_SEQ_REVERSE_S(81, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_81(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_81(op, st, MSGPACK_PP_SEQ_REVERSE_S(82, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_82(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_82(op, st, MSGPACK_PP_SEQ_REVERSE_S(83, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_83(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_83(op, st, MSGPACK_PP_SEQ_REVERSE_S(84, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_84(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_84(op, st, MSGPACK_PP_SEQ_REVERSE_S(85, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_85(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_85(op, st, MSGPACK_PP_SEQ_REVERSE_S(86, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_86(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_86(op, st, MSGPACK_PP_SEQ_REVERSE_S(87, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_87(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_87(op, st, MSGPACK_PP_SEQ_REVERSE_S(88, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_88(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_88(op, st, MSGPACK_PP_SEQ_REVERSE_S(89, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_89(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_89(op, st, MSGPACK_PP_SEQ_REVERSE_S(90, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_90(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_90(op, st, MSGPACK_PP_SEQ_REVERSE_S(91, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_91(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_91(op, st, MSGPACK_PP_SEQ_REVERSE_S(92, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_92(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_92(op, st, MSGPACK_PP_SEQ_REVERSE_S(93, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_93(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_93(op, st, MSGPACK_PP_SEQ_REVERSE_S(94, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_94(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_94(op, st, MSGPACK_PP_SEQ_REVERSE_S(95, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_95(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_95(op, st, MSGPACK_PP_SEQ_REVERSE_S(96, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_96(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_96(op, st, MSGPACK_PP_SEQ_REVERSE_S(97, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_97(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_97(op, st, MSGPACK_PP_SEQ_REVERSE_S(98, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_98(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_98(op, st, MSGPACK_PP_SEQ_REVERSE_S(99, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_99(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_99(op, st, MSGPACK_PP_SEQ_REVERSE_S(100, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_100(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_100(op, st, MSGPACK_PP_SEQ_REVERSE_S(101, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_101(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_101(op, st, MSGPACK_PP_SEQ_REVERSE_S(102, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_102(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_102(op, st, MSGPACK_PP_SEQ_REVERSE_S(103, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_103(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_103(op, st, MSGPACK_PP_SEQ_REVERSE_S(104, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_104(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_104(op, st, MSGPACK_PP_SEQ_REVERSE_S(105, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_105(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_105(op, st, MSGPACK_PP_SEQ_REVERSE_S(106, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_106(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_106(op, st, MSGPACK_PP_SEQ_REVERSE_S(107, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_107(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_107(op, st, MSGPACK_PP_SEQ_REVERSE_S(108, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_108(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_108(op, st, MSGPACK_PP_SEQ_REVERSE_S(109, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_109(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_109(op, st, MSGPACK_PP_SEQ_REVERSE_S(110, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_110(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_110(op, st, MSGPACK_PP_SEQ_REVERSE_S(111, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_111(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_111(op, st, MSGPACK_PP_SEQ_REVERSE_S(112, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_112(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_112(op, st, MSGPACK_PP_SEQ_REVERSE_S(113, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_113(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_113(op, st, MSGPACK_PP_SEQ_REVERSE_S(114, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_114(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_114(op, st, MSGPACK_PP_SEQ_REVERSE_S(115, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_115(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_115(op, st, MSGPACK_PP_SEQ_REVERSE_S(116, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_116(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_116(op, st, MSGPACK_PP_SEQ_REVERSE_S(117, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_117(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_117(op, st, MSGPACK_PP_SEQ_REVERSE_S(118, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_118(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_118(op, st, MSGPACK_PP_SEQ_REVERSE_S(119, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_119(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_119(op, st, MSGPACK_PP_SEQ_REVERSE_S(120, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_120(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_120(op, st, MSGPACK_PP_SEQ_REVERSE_S(121, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_121(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_121(op, st, MSGPACK_PP_SEQ_REVERSE_S(122, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_122(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_122(op, st, MSGPACK_PP_SEQ_REVERSE_S(123, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_123(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_123(op, st, MSGPACK_PP_SEQ_REVERSE_S(124, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_124(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_124(op, st, MSGPACK_PP_SEQ_REVERSE_S(125, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_125(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_125(op, st, MSGPACK_PP_SEQ_REVERSE_S(126, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_126(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_126(op, st, MSGPACK_PP_SEQ_REVERSE_S(127, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_127(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_127(op, st, MSGPACK_PP_SEQ_REVERSE_S(128, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_128(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_128(op, st, MSGPACK_PP_SEQ_REVERSE_S(129, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_129(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_129(op, st, MSGPACK_PP_SEQ_REVERSE_S(130, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_130(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_130(op, st, MSGPACK_PP_SEQ_REVERSE_S(131, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_131(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_131(op, st, MSGPACK_PP_SEQ_REVERSE_S(132, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_132(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_132(op, st, MSGPACK_PP_SEQ_REVERSE_S(133, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_133(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_133(op, st, MSGPACK_PP_SEQ_REVERSE_S(134, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_134(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_134(op, st, MSGPACK_PP_SEQ_REVERSE_S(135, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_135(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_135(op, st, MSGPACK_PP_SEQ_REVERSE_S(136, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_136(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_136(op, st, MSGPACK_PP_SEQ_REVERSE_S(137, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_137(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_137(op, st, MSGPACK_PP_SEQ_REVERSE_S(138, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_138(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_138(op, st, MSGPACK_PP_SEQ_REVERSE_S(139, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_139(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_139(op, st, MSGPACK_PP_SEQ_REVERSE_S(140, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_140(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_140(op, st, MSGPACK_PP_SEQ_REVERSE_S(141, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_141(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_141(op, st, MSGPACK_PP_SEQ_REVERSE_S(142, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_142(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_142(op, st, MSGPACK_PP_SEQ_REVERSE_S(143, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_143(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_143(op, st, MSGPACK_PP_SEQ_REVERSE_S(144, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_144(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_144(op, st, MSGPACK_PP_SEQ_REVERSE_S(145, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_145(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_145(op, st, MSGPACK_PP_SEQ_REVERSE_S(146, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_146(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_146(op, st, MSGPACK_PP_SEQ_REVERSE_S(147, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_147(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_147(op, st, MSGPACK_PP_SEQ_REVERSE_S(148, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_148(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_148(op, st, MSGPACK_PP_SEQ_REVERSE_S(149, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_149(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_149(op, st, MSGPACK_PP_SEQ_REVERSE_S(150, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_150(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_150(op, st, MSGPACK_PP_SEQ_REVERSE_S(151, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_151(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_151(op, st, MSGPACK_PP_SEQ_REVERSE_S(152, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_152(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_152(op, st, MSGPACK_PP_SEQ_REVERSE_S(153, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_153(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_153(op, st, MSGPACK_PP_SEQ_REVERSE_S(154, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_154(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_154(op, st, MSGPACK_PP_SEQ_REVERSE_S(155, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_155(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_155(op, st, MSGPACK_PP_SEQ_REVERSE_S(156, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_156(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_156(op, st, MSGPACK_PP_SEQ_REVERSE_S(157, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_157(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_157(op, st, MSGPACK_PP_SEQ_REVERSE_S(158, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_158(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_158(op, st, MSGPACK_PP_SEQ_REVERSE_S(159, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_159(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_159(op, st, MSGPACK_PP_SEQ_REVERSE_S(160, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_160(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_160(op, st, MSGPACK_PP_SEQ_REVERSE_S(161, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_161(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_161(op, st, MSGPACK_PP_SEQ_REVERSE_S(162, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_162(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_162(op, st, MSGPACK_PP_SEQ_REVERSE_S(163, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_163(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_163(op, st, MSGPACK_PP_SEQ_REVERSE_S(164, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_164(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_164(op, st, MSGPACK_PP_SEQ_REVERSE_S(165, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_165(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_165(op, st, MSGPACK_PP_SEQ_REVERSE_S(166, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_166(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_166(op, st, MSGPACK_PP_SEQ_REVERSE_S(167, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_167(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_167(op, st, MSGPACK_PP_SEQ_REVERSE_S(168, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_168(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_168(op, st, MSGPACK_PP_SEQ_REVERSE_S(169, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_169(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_169(op, st, MSGPACK_PP_SEQ_REVERSE_S(170, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_170(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_170(op, st, MSGPACK_PP_SEQ_REVERSE_S(171, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_171(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_171(op, st, MSGPACK_PP_SEQ_REVERSE_S(172, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_172(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_172(op, st, MSGPACK_PP_SEQ_REVERSE_S(173, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_173(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_173(op, st, MSGPACK_PP_SEQ_REVERSE_S(174, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_174(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_174(op, st, MSGPACK_PP_SEQ_REVERSE_S(175, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_175(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_175(op, st, MSGPACK_PP_SEQ_REVERSE_S(176, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_176(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_176(op, st, MSGPACK_PP_SEQ_REVERSE_S(177, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_177(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_177(op, st, MSGPACK_PP_SEQ_REVERSE_S(178, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_178(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_178(op, st, MSGPACK_PP_SEQ_REVERSE_S(179, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_179(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_179(op, st, MSGPACK_PP_SEQ_REVERSE_S(180, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_180(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_180(op, st, MSGPACK_PP_SEQ_REVERSE_S(181, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_181(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_181(op, st, MSGPACK_PP_SEQ_REVERSE_S(182, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_182(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_182(op, st, MSGPACK_PP_SEQ_REVERSE_S(183, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_183(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_183(op, st, MSGPACK_PP_SEQ_REVERSE_S(184, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_184(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_184(op, st, MSGPACK_PP_SEQ_REVERSE_S(185, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_185(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_185(op, st, MSGPACK_PP_SEQ_REVERSE_S(186, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_186(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_186(op, st, MSGPACK_PP_SEQ_REVERSE_S(187, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_187(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_187(op, st, MSGPACK_PP_SEQ_REVERSE_S(188, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_188(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_188(op, st, MSGPACK_PP_SEQ_REVERSE_S(189, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_189(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_189(op, st, MSGPACK_PP_SEQ_REVERSE_S(190, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_190(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_190(op, st, MSGPACK_PP_SEQ_REVERSE_S(191, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_191(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_191(op, st, MSGPACK_PP_SEQ_REVERSE_S(192, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_192(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_192(op, st, MSGPACK_PP_SEQ_REVERSE_S(193, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_193(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_193(op, st, MSGPACK_PP_SEQ_REVERSE_S(194, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_194(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_194(op, st, MSGPACK_PP_SEQ_REVERSE_S(195, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_195(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_195(op, st, MSGPACK_PP_SEQ_REVERSE_S(196, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_196(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_196(op, st, MSGPACK_PP_SEQ_REVERSE_S(197, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_197(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_197(op, st, MSGPACK_PP_SEQ_REVERSE_S(198, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_198(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_198(op, st, MSGPACK_PP_SEQ_REVERSE_S(199, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_199(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_199(op, st, MSGPACK_PP_SEQ_REVERSE_S(200, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_200(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_200(op, st, MSGPACK_PP_SEQ_REVERSE_S(201, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_201(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_201(op, st, MSGPACK_PP_SEQ_REVERSE_S(202, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_202(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_202(op, st, MSGPACK_PP_SEQ_REVERSE_S(203, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_203(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_203(op, st, MSGPACK_PP_SEQ_REVERSE_S(204, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_204(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_204(op, st, MSGPACK_PP_SEQ_REVERSE_S(205, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_205(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_205(op, st, MSGPACK_PP_SEQ_REVERSE_S(206, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_206(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_206(op, st, MSGPACK_PP_SEQ_REVERSE_S(207, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_207(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_207(op, st, MSGPACK_PP_SEQ_REVERSE_S(208, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_208(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_208(op, st, MSGPACK_PP_SEQ_REVERSE_S(209, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_209(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_209(op, st, MSGPACK_PP_SEQ_REVERSE_S(210, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_210(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_210(op, st, MSGPACK_PP_SEQ_REVERSE_S(211, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_211(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_211(op, st, MSGPACK_PP_SEQ_REVERSE_S(212, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_212(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_212(op, st, MSGPACK_PP_SEQ_REVERSE_S(213, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_213(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_213(op, st, MSGPACK_PP_SEQ_REVERSE_S(214, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_214(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_214(op, st, MSGPACK_PP_SEQ_REVERSE_S(215, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_215(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_215(op, st, MSGPACK_PP_SEQ_REVERSE_S(216, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_216(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_216(op, st, MSGPACK_PP_SEQ_REVERSE_S(217, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_217(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_217(op, st, MSGPACK_PP_SEQ_REVERSE_S(218, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_218(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_218(op, st, MSGPACK_PP_SEQ_REVERSE_S(219, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_219(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_219(op, st, MSGPACK_PP_SEQ_REVERSE_S(220, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_220(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_220(op, st, MSGPACK_PP_SEQ_REVERSE_S(221, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_221(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_221(op, st, MSGPACK_PP_SEQ_REVERSE_S(222, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_222(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_222(op, st, MSGPACK_PP_SEQ_REVERSE_S(223, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_223(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_223(op, st, MSGPACK_PP_SEQ_REVERSE_S(224, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_224(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_224(op, st, MSGPACK_PP_SEQ_REVERSE_S(225, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_225(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_225(op, st, MSGPACK_PP_SEQ_REVERSE_S(226, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_226(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_226(op, st, MSGPACK_PP_SEQ_REVERSE_S(227, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_227(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_227(op, st, MSGPACK_PP_SEQ_REVERSE_S(228, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_228(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_228(op, st, MSGPACK_PP_SEQ_REVERSE_S(229, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_229(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_229(op, st, MSGPACK_PP_SEQ_REVERSE_S(230, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_230(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_230(op, st, MSGPACK_PP_SEQ_REVERSE_S(231, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_231(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_231(op, st, MSGPACK_PP_SEQ_REVERSE_S(232, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_232(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_232(op, st, MSGPACK_PP_SEQ_REVERSE_S(233, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_233(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_233(op, st, MSGPACK_PP_SEQ_REVERSE_S(234, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_234(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_234(op, st, MSGPACK_PP_SEQ_REVERSE_S(235, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_235(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_235(op, st, MSGPACK_PP_SEQ_REVERSE_S(236, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_236(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_236(op, st, MSGPACK_PP_SEQ_REVERSE_S(237, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_237(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_237(op, st, MSGPACK_PP_SEQ_REVERSE_S(238, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_238(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_238(op, st, MSGPACK_PP_SEQ_REVERSE_S(239, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_239(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_239(op, st, MSGPACK_PP_SEQ_REVERSE_S(240, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_240(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_240(op, st, MSGPACK_PP_SEQ_REVERSE_S(241, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_241(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_241(op, st, MSGPACK_PP_SEQ_REVERSE_S(242, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_242(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_242(op, st, MSGPACK_PP_SEQ_REVERSE_S(243, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_243(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_243(op, st, MSGPACK_PP_SEQ_REVERSE_S(244, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_244(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_244(op, st, MSGPACK_PP_SEQ_REVERSE_S(245, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_245(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_245(op, st, MSGPACK_PP_SEQ_REVERSE_S(246, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_246(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_246(op, st, MSGPACK_PP_SEQ_REVERSE_S(247, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_247(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_247(op, st, MSGPACK_PP_SEQ_REVERSE_S(248, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_248(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_248(op, st, MSGPACK_PP_SEQ_REVERSE_S(249, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_249(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_249(op, st, MSGPACK_PP_SEQ_REVERSE_S(250, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_250(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_250(op, st, MSGPACK_PP_SEQ_REVERSE_S(251, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_251(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_251(op, st, MSGPACK_PP_SEQ_REVERSE_S(252, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_252(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_252(op, st, MSGPACK_PP_SEQ_REVERSE_S(253, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_253(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_253(op, st, MSGPACK_PP_SEQ_REVERSE_S(254, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_254(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_254(op, st, MSGPACK_PP_SEQ_REVERSE_S(255, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_255(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_255(op, st, MSGPACK_PP_SEQ_REVERSE_S(256, ss), MSGPACK_PP_SEQ_SIZE(ss))
+# define MSGPACK_PP_SEQ_FOLD_RIGHT_256(op, st, ss) MSGPACK_PP_SEQ_FOLD_LEFT_I_256(op, st, MSGPACK_PP_SEQ_REVERSE_S(257, ss), MSGPACK_PP_SEQ_SIZE(ss))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each.hpp
new file mode 100644
index 000000000..22d942b54
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each.hpp
@@ -0,0 +1,60 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_SEQ_FOR_EACH */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FOR_EACH(macro, data, seq) MSGPACK_PP_FOR((macro, data, seq (nil)), MSGPACK_PP_SEQ_FOR_EACH_P, MSGPACK_PP_SEQ_FOR_EACH_O, MSGPACK_PP_SEQ_FOR_EACH_M)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_D(macro, data, seq)
+# define MSGPACK_PP_SEQ_FOR_EACH_D(macro, data, seq) MSGPACK_PP_FOR((macro, data, seq (nil)), MSGPACK_PP_SEQ_FOR_EACH_P, MSGPACK_PP_SEQ_FOR_EACH_O, MSGPACK_PP_SEQ_FOR_EACH_M)
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_P(r, x) MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(MSGPACK_PP_TUPLE_ELEM(3, 2, x)))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_SEQ_FOR_EACH_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_O_I x
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_O_I(MSGPACK_PP_TUPLE_ELEM(3, 0, x), MSGPACK_PP_TUPLE_ELEM(3, 1, x), MSGPACK_PP_TUPLE_ELEM(3, 2, x))
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, MSGPACK_PP_SEQ_TAIL(seq))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_SEQ_FOR_EACH_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_M_IM(r, MSGPACK_PP_TUPLE_REM_3 x)
+# define MSGPACK_PP_SEQ_FOR_EACH_M_IM(r, im) MSGPACK_PP_SEQ_FOR_EACH_M_I(r, im)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_M_I(r, MSGPACK_PP_TUPLE_ELEM(3, 0, x), MSGPACK_PP_TUPLE_ELEM(3, 1, x), MSGPACK_PP_TUPLE_ELEM(3, 2, x))
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, MSGPACK_PP_SEQ_HEAD(seq))
+#
+# /* MSGPACK_PP_SEQ_FOR_EACH_R */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FOR_EACH_R(r, macro, data, seq) MSGPACK_PP_FOR_ ## r((macro, data, seq (nil)), MSGPACK_PP_SEQ_FOR_EACH_P, MSGPACK_PP_SEQ_FOR_EACH_O, MSGPACK_PP_SEQ_FOR_EACH_M)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_R(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq)
+# define MSGPACK_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) MSGPACK_PP_FOR_ ## r((macro, data, seq (nil)), MSGPACK_PP_SEQ_FOR_EACH_P, MSGPACK_PP_SEQ_FOR_EACH_O, MSGPACK_PP_SEQ_FOR_EACH_M)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_i.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_i.hpp
new file mode 100644
index 000000000..773ae1d1e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_i.hpp
@@ -0,0 +1,61 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_SEQ_FOR_EACH_I */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FOR_EACH_I(macro, data, seq) MSGPACK_PP_FOR((macro, data, seq (nil), 0), MSGPACK_PP_SEQ_FOR_EACH_I_P, MSGPACK_PP_SEQ_FOR_EACH_I_O, MSGPACK_PP_SEQ_FOR_EACH_I_M)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_I(macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_I(macro, data, seq)
+# define MSGPACK_PP_SEQ_FOR_EACH_I_I(macro, data, seq) MSGPACK_PP_FOR((macro, data, seq (nil), 0), MSGPACK_PP_SEQ_FOR_EACH_I_P, MSGPACK_PP_SEQ_FOR_EACH_I_O, MSGPACK_PP_SEQ_FOR_EACH_I_M)
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_I_P(r, x) MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(MSGPACK_PP_TUPLE_ELEM(4, 2, x)))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_SEQ_FOR_EACH_I_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_O_I x
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_I_O(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_O_I(MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_TUPLE_ELEM(4, 2, x), MSGPACK_PP_TUPLE_ELEM(4, 3, x))
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, MSGPACK_PP_SEQ_TAIL(seq), MSGPACK_PP_INC(i))
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_SEQ_FOR_EACH_I_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_M_IM(r, MSGPACK_PP_TUPLE_REM_4 x)
+# define MSGPACK_PP_SEQ_FOR_EACH_I_M_IM(r, im) MSGPACK_PP_SEQ_FOR_EACH_I_M_I(r, im)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_I_M(r, x) MSGPACK_PP_SEQ_FOR_EACH_I_M_I(r, MSGPACK_PP_TUPLE_ELEM(4, 0, x), MSGPACK_PP_TUPLE_ELEM(4, 1, x), MSGPACK_PP_TUPLE_ELEM(4, 2, x), MSGPACK_PP_TUPLE_ELEM(4, 3, x))
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, MSGPACK_PP_SEQ_HEAD(seq))
+#
+# /* MSGPACK_PP_SEQ_FOR_EACH_I_R */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) MSGPACK_PP_FOR_ ## r((macro, data, seq (nil), 0), MSGPACK_PP_SEQ_FOR_EACH_I_P, MSGPACK_PP_SEQ_FOR_EACH_I_O, MSGPACK_PP_SEQ_FOR_EACH_I_M)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) MSGPACK_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq)
+# define MSGPACK_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) MSGPACK_PP_FOR_ ## r((macro, data, seq (nil), 0), MSGPACK_PP_SEQ_FOR_EACH_I_P, MSGPACK_PP_SEQ_FOR_EACH_I_O, MSGPACK_PP_SEQ_FOR_EACH_I_M)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_product.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_product.hpp
new file mode 100644
index 000000000..a6303a3ef
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/for_each_product.hpp
@@ -0,0 +1,126 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_FOR_EACH_PRODUCT_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/control/if.hpp>
+# include <rpc/msgpack/preprocessor/repetition/for.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_SEQ_FOR_EACH_PRODUCT */
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT(macro, sets) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR, macro, sets)
+#
+# /* MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_R */
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_R(r, macro, sets) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(MSGPACK_PP_FOR_ ## r, macro, sets)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) impl((MSGPACK_PP_SEQ_HEAD(sets)(nil), MSGPACK_PP_SEQ_TAIL(sets)(nil), (nil), macro), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_0)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E(impl, macro, sets) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_E_I(impl, macro, sets) impl((MSGPACK_PP_SEQ_HEAD(sets)(nil), MSGPACK_PP_SEQ_TAIL(sets)(nil), (nil), macro), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_0)
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P_I data
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P_I(cset, rset, res, macro) MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(cset))
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P(r, data) MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(MSGPACK_PP_TUPLE_ELEM(4, 0, data)))
+# endif
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O_I data
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O_I(cset, rset, res, macro) (MSGPACK_PP_SEQ_TAIL(cset), rset, res, macro)
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O(r, data) (MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(4, 0, data)), MSGPACK_PP_TUPLE_ELEM(4, 1, data), MSGPACK_PP_TUPLE_ELEM(4, 2, data), MSGPACK_PP_TUPLE_ELEM(4, 3, data))
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, i) MSGPACK_PP_IF(MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(MSGPACK_PP_TUPLE_ELEM(4, 1, data))), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_ ## i, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I)
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, MSGPACK_PP_TUPLE_ELEM(4, 0, data), MSGPACK_PP_TUPLE_ELEM(4, 1, data), MSGPACK_PP_TUPLE_ELEM(4, 2, data), MSGPACK_PP_TUPLE_ELEM(4, 3, data))
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, MSGPACK_PP_TUPLE_REM_4 data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_IM(r, im) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, im)
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_I_I(r, cset, rset, res, macro) macro(r, MSGPACK_PP_SEQ_TAIL(res (MSGPACK_PP_SEQ_HEAD(cset))))
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H_I data
+# else
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H_I(MSGPACK_PP_TUPLE_ELEM(4, 0, data), MSGPACK_PP_TUPLE_ELEM(4, 1, data), MSGPACK_PP_TUPLE_ELEM(4, 2, data), MSGPACK_PP_TUPLE_ELEM(4, 3, data))
+# endif
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H_I(cset, rset, res, macro) (MSGPACK_PP_SEQ_HEAD(rset)(nil), MSGPACK_PP_SEQ_TAIL(rset), res (MSGPACK_PP_SEQ_HEAD(cset)), macro)
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_0(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 0)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_1(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 1)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_2(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 2)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_3(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 3)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_4(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 4)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_5(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 5)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_6(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 6)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_7(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 7)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_8(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 8)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_9(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 9)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_10(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 10)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_11(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 11)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_12(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 12)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_13(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 13)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_14(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 14)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_15(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 15)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_16(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 16)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_17(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 17)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_18(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 18)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_19(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 19)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_20(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 20)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_21(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 21)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_22(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 22)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_23(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 23)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_24(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 24)(r, data)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_25(r, data) MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_C(data, 25)(r, data)
+#
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_0(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_1)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_1(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_2)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_2(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_3)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_3(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_4)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_4(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_5)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_5(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_6)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_6(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_7)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_7(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_8)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_8(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_9)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_9(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_10)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_10(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_11)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_11(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_12)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_12(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_13)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_13(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_14)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_14(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_15)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_15(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_16)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_16(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_17)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_17(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_18)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_18(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_19)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_19(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_20)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_20(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_21)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_21(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_22)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_22(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_23)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_23(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_24)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_24(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_25)
+# define MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_N_25(r, data) MSGPACK_PP_FOR_ ## r(MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_H(data), MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_P, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_O, MSGPACK_PP_SEQ_FOR_EACH_PRODUCT_M_26)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/insert.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/insert.hpp
new file mode 100644
index 000000000..a7b251334
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/insert.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_INSERT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_INSERT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/first_n.hpp>
+# include <rpc/msgpack/preprocessor/seq/rest_n.hpp>
+#
+# /* MSGPACK_PP_SEQ_INSERT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_INSERT(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REST_N(i, seq)
+# else
+# define MSGPACK_PP_SEQ_INSERT(seq, i, elem) MSGPACK_PP_SEQ_INSERT_I(seq, i, elem)
+# define MSGPACK_PP_SEQ_INSERT_I(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REST_N(i, seq)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_back.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_back.hpp
new file mode 100644
index 000000000..789d94c42
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_back.hpp
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_POP_BACK_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_POP_BACK_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/dec.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/first_n.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+#
+# /* MSGPACK_PP_SEQ_POP_BACK */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_POP_BACK(seq) MSGPACK_PP_SEQ_FIRST_N(MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), seq)
+# else
+# define MSGPACK_PP_SEQ_POP_BACK(seq) MSGPACK_PP_SEQ_POP_BACK_I(seq)
+# define MSGPACK_PP_SEQ_POP_BACK_I(seq) MSGPACK_PP_SEQ_FIRST_N(MSGPACK_PP_DEC(MSGPACK_PP_SEQ_SIZE(seq)), seq)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_front.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_front.hpp
new file mode 100644
index 000000000..60eccf137
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/pop_front.hpp
@@ -0,0 +1,27 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_POP_FRONT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_POP_FRONT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+#
+# /* MSGPACK_PP_SEQ_POP_FRONT */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_POP_FRONT(seq) MSGPACK_PP_SEQ_TAIL(seq)
+# else
+# define MSGPACK_PP_SEQ_POP_FRONT(seq) MSGPACK_PP_SEQ_POP_FRONT_I(seq)
+# define MSGPACK_PP_SEQ_POP_FRONT_I(seq) MSGPACK_PP_SEQ_TAIL(seq)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_back.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_back.hpp
new file mode 100644
index 000000000..873db6595
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_back.hpp
@@ -0,0 +1,19 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_PUSH_BACK_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_PUSH_BACK_HPP
+#
+# /* MSGPACK_PP_SEQ_PUSH_BACK */
+#
+# define MSGPACK_PP_SEQ_PUSH_BACK(seq, elem) seq(elem)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_front.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_front.hpp
new file mode 100644
index 000000000..a8148f04e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/push_front.hpp
@@ -0,0 +1,19 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_PUSH_FRONT_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_PUSH_FRONT_HPP
+#
+# /* MSGPACK_PP_SEQ_PUSH_FRONT */
+#
+# define MSGPACK_PP_SEQ_PUSH_FRONT(seq, elem) (elem)seq
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/remove.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/remove.hpp
new file mode 100644
index 000000000..694292e34
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/remove.hpp
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_REMOVE_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_REMOVE_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/first_n.hpp>
+# include <rpc/msgpack/preprocessor/seq/rest_n.hpp>
+#
+# /* MSGPACK_PP_SEQ_REMOVE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_REMOVE(seq, i) MSGPACK_PP_SEQ_FIRST_N(i, seq) MSGPACK_PP_SEQ_REST_N(MSGPACK_PP_INC(i), seq)
+# else
+# define MSGPACK_PP_SEQ_REMOVE(seq, i) MSGPACK_PP_SEQ_REMOVE_I(seq, i)
+# define MSGPACK_PP_SEQ_REMOVE_I(seq, i) MSGPACK_PP_SEQ_FIRST_N(i, seq) MSGPACK_PP_SEQ_REST_N(MSGPACK_PP_INC(i), seq)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/replace.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/replace.hpp
new file mode 100644
index 000000000..4b33ea4b9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/replace.hpp
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_REPLACE_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_REPLACE_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/first_n.hpp>
+# include <rpc/msgpack/preprocessor/seq/rest_n.hpp>
+#
+# /* MSGPACK_PP_SEQ_REPLACE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_REPLACE(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REST_N(MSGPACK_PP_INC(i), seq)
+# else
+# define MSGPACK_PP_SEQ_REPLACE(seq, i, elem) MSGPACK_PP_SEQ_REPLACE_I(seq, i, elem)
+# define MSGPACK_PP_SEQ_REPLACE_I(seq, i, elem) MSGPACK_PP_SEQ_FIRST_N(i, seq) (elem) MSGPACK_PP_SEQ_REST_N(MSGPACK_PP_INC(i), seq)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/rest_n.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/rest_n.hpp
new file mode 100644
index 000000000..22d7a20b4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/rest_n.hpp
@@ -0,0 +1,30 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_REST_N_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_REST_N_HPP
+#
+# include <rpc/msgpack/preprocessor/arithmetic/inc.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/identity.hpp>
+# include <rpc/msgpack/preprocessor/seq/detail/split.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+#
+# /* MSGPACK_PP_SEQ_REST_N */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_REST_N(n, seq) MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_SEQ_SPLIT(MSGPACK_PP_INC(n), MSGPACK_PP_IDENTITY( (nil) seq )))()
+# else
+# define MSGPACK_PP_SEQ_REST_N(n, seq) MSGPACK_PP_SEQ_REST_N_I(n, seq)
+# define MSGPACK_PP_SEQ_REST_N_I(n, seq) MSGPACK_PP_TUPLE_ELEM(2, 1, MSGPACK_PP_SEQ_SPLIT(MSGPACK_PP_INC(n), MSGPACK_PP_IDENTITY( (nil) seq )))()
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/reverse.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/reverse.hpp
new file mode 100644
index 000000000..6c9d1ecf0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/reverse.hpp
@@ -0,0 +1,39 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_REVERSE_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_REVERSE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/empty.hpp>
+# include <rpc/msgpack/preprocessor/seq/fold_left.hpp>
+#
+# /* MSGPACK_PP_SEQ_REVERSE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_REVERSE(seq) MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)()
+# else
+# define MSGPACK_PP_SEQ_REVERSE(seq) MSGPACK_PP_SEQ_REVERSE_I(seq)
+# define MSGPACK_PP_SEQ_REVERSE_I(seq) MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)()
+# endif
+#
+# define MSGPACK_PP_SEQ_REVERSE_O(s, state, elem) (elem) state
+#
+# /* MSGPACK_PP_SEQ_REVERSE_S */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_REVERSE_S(s, seq) MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)()
+# else
+# define MSGPACK_PP_SEQ_REVERSE_S(s, seq) MSGPACK_PP_SEQ_REVERSE_S_I(s, seq)
+# define MSGPACK_PP_SEQ_REVERSE_S_I(s, seq) MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_REVERSE_O, MSGPACK_PP_EMPTY, seq)()
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/seq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/seq.hpp
new file mode 100644
index 000000000..d100d0d01
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/seq.hpp
@@ -0,0 +1,44 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_SEQ_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_SEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/elem.hpp>
+#
+# /* MSGPACK_PP_SEQ_HEAD */
+#
+# define MSGPACK_PP_SEQ_HEAD(seq) MSGPACK_PP_SEQ_ELEM(0, seq)
+#
+# /* MSGPACK_PP_SEQ_TAIL */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_1((seq))
+# define MSGPACK_PP_SEQ_TAIL_1(par) MSGPACK_PP_SEQ_TAIL_2 ## par
+# define MSGPACK_PP_SEQ_TAIL_2(seq) MSGPACK_PP_SEQ_TAIL_I ## seq
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_ID(MSGPACK_PP_SEQ_TAIL_I seq)
+# define MSGPACK_PP_SEQ_TAIL_ID(id) id
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_D(seq)
+# define MSGPACK_PP_SEQ_TAIL_D(seq) MSGPACK_PP_SEQ_TAIL_I seq
+# else
+# define MSGPACK_PP_SEQ_TAIL(seq) MSGPACK_PP_SEQ_TAIL_I seq
+# endif
+#
+# define MSGPACK_PP_SEQ_TAIL_I(x)
+#
+# /* MSGPACK_PP_SEQ_NIL */
+#
+# define MSGPACK_PP_SEQ_NIL(x) (x)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/size.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/size.hpp
new file mode 100644
index 000000000..8c57b96d5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/size.hpp
@@ -0,0 +1,547 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_SIZE_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_SIZE_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_SEQ_SIZE_I((seq))
+# define MSGPACK_PP_SEQ_SIZE_I(par) MSGPACK_PP_SEQ_SIZE_II ## par
+# define MSGPACK_PP_SEQ_SIZE_II(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_SEQ_SIZE_0 ## seq)
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG() || MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_SEQ_SIZE_I(seq)
+# define MSGPACK_PP_SEQ_SIZE_I(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_SEQ_SIZE_0 seq)
+# elif defined(__IBMC__) || defined(__IBMCPP__)
+# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_0, seq))
+# else
+# define MSGPACK_PP_SEQ_SIZE(seq) MSGPACK_PP_CAT(MSGPACK_PP_SEQ_SIZE_, MSGPACK_PP_SEQ_SIZE_0 seq)
+# endif
+#
+# define MSGPACK_PP_SEQ_SIZE_0(_) MSGPACK_PP_SEQ_SIZE_1
+# define MSGPACK_PP_SEQ_SIZE_1(_) MSGPACK_PP_SEQ_SIZE_2
+# define MSGPACK_PP_SEQ_SIZE_2(_) MSGPACK_PP_SEQ_SIZE_3
+# define MSGPACK_PP_SEQ_SIZE_3(_) MSGPACK_PP_SEQ_SIZE_4
+# define MSGPACK_PP_SEQ_SIZE_4(_) MSGPACK_PP_SEQ_SIZE_5
+# define MSGPACK_PP_SEQ_SIZE_5(_) MSGPACK_PP_SEQ_SIZE_6
+# define MSGPACK_PP_SEQ_SIZE_6(_) MSGPACK_PP_SEQ_SIZE_7
+# define MSGPACK_PP_SEQ_SIZE_7(_) MSGPACK_PP_SEQ_SIZE_8
+# define MSGPACK_PP_SEQ_SIZE_8(_) MSGPACK_PP_SEQ_SIZE_9
+# define MSGPACK_PP_SEQ_SIZE_9(_) MSGPACK_PP_SEQ_SIZE_10
+# define MSGPACK_PP_SEQ_SIZE_10(_) MSGPACK_PP_SEQ_SIZE_11
+# define MSGPACK_PP_SEQ_SIZE_11(_) MSGPACK_PP_SEQ_SIZE_12
+# define MSGPACK_PP_SEQ_SIZE_12(_) MSGPACK_PP_SEQ_SIZE_13
+# define MSGPACK_PP_SEQ_SIZE_13(_) MSGPACK_PP_SEQ_SIZE_14
+# define MSGPACK_PP_SEQ_SIZE_14(_) MSGPACK_PP_SEQ_SIZE_15
+# define MSGPACK_PP_SEQ_SIZE_15(_) MSGPACK_PP_SEQ_SIZE_16
+# define MSGPACK_PP_SEQ_SIZE_16(_) MSGPACK_PP_SEQ_SIZE_17
+# define MSGPACK_PP_SEQ_SIZE_17(_) MSGPACK_PP_SEQ_SIZE_18
+# define MSGPACK_PP_SEQ_SIZE_18(_) MSGPACK_PP_SEQ_SIZE_19
+# define MSGPACK_PP_SEQ_SIZE_19(_) MSGPACK_PP_SEQ_SIZE_20
+# define MSGPACK_PP_SEQ_SIZE_20(_) MSGPACK_PP_SEQ_SIZE_21
+# define MSGPACK_PP_SEQ_SIZE_21(_) MSGPACK_PP_SEQ_SIZE_22
+# define MSGPACK_PP_SEQ_SIZE_22(_) MSGPACK_PP_SEQ_SIZE_23
+# define MSGPACK_PP_SEQ_SIZE_23(_) MSGPACK_PP_SEQ_SIZE_24
+# define MSGPACK_PP_SEQ_SIZE_24(_) MSGPACK_PP_SEQ_SIZE_25
+# define MSGPACK_PP_SEQ_SIZE_25(_) MSGPACK_PP_SEQ_SIZE_26
+# define MSGPACK_PP_SEQ_SIZE_26(_) MSGPACK_PP_SEQ_SIZE_27
+# define MSGPACK_PP_SEQ_SIZE_27(_) MSGPACK_PP_SEQ_SIZE_28
+# define MSGPACK_PP_SEQ_SIZE_28(_) MSGPACK_PP_SEQ_SIZE_29
+# define MSGPACK_PP_SEQ_SIZE_29(_) MSGPACK_PP_SEQ_SIZE_30
+# define MSGPACK_PP_SEQ_SIZE_30(_) MSGPACK_PP_SEQ_SIZE_31
+# define MSGPACK_PP_SEQ_SIZE_31(_) MSGPACK_PP_SEQ_SIZE_32
+# define MSGPACK_PP_SEQ_SIZE_32(_) MSGPACK_PP_SEQ_SIZE_33
+# define MSGPACK_PP_SEQ_SIZE_33(_) MSGPACK_PP_SEQ_SIZE_34
+# define MSGPACK_PP_SEQ_SIZE_34(_) MSGPACK_PP_SEQ_SIZE_35
+# define MSGPACK_PP_SEQ_SIZE_35(_) MSGPACK_PP_SEQ_SIZE_36
+# define MSGPACK_PP_SEQ_SIZE_36(_) MSGPACK_PP_SEQ_SIZE_37
+# define MSGPACK_PP_SEQ_SIZE_37(_) MSGPACK_PP_SEQ_SIZE_38
+# define MSGPACK_PP_SEQ_SIZE_38(_) MSGPACK_PP_SEQ_SIZE_39
+# define MSGPACK_PP_SEQ_SIZE_39(_) MSGPACK_PP_SEQ_SIZE_40
+# define MSGPACK_PP_SEQ_SIZE_40(_) MSGPACK_PP_SEQ_SIZE_41
+# define MSGPACK_PP_SEQ_SIZE_41(_) MSGPACK_PP_SEQ_SIZE_42
+# define MSGPACK_PP_SEQ_SIZE_42(_) MSGPACK_PP_SEQ_SIZE_43
+# define MSGPACK_PP_SEQ_SIZE_43(_) MSGPACK_PP_SEQ_SIZE_44
+# define MSGPACK_PP_SEQ_SIZE_44(_) MSGPACK_PP_SEQ_SIZE_45
+# define MSGPACK_PP_SEQ_SIZE_45(_) MSGPACK_PP_SEQ_SIZE_46
+# define MSGPACK_PP_SEQ_SIZE_46(_) MSGPACK_PP_SEQ_SIZE_47
+# define MSGPACK_PP_SEQ_SIZE_47(_) MSGPACK_PP_SEQ_SIZE_48
+# define MSGPACK_PP_SEQ_SIZE_48(_) MSGPACK_PP_SEQ_SIZE_49
+# define MSGPACK_PP_SEQ_SIZE_49(_) MSGPACK_PP_SEQ_SIZE_50
+# define MSGPACK_PP_SEQ_SIZE_50(_) MSGPACK_PP_SEQ_SIZE_51
+# define MSGPACK_PP_SEQ_SIZE_51(_) MSGPACK_PP_SEQ_SIZE_52
+# define MSGPACK_PP_SEQ_SIZE_52(_) MSGPACK_PP_SEQ_SIZE_53
+# define MSGPACK_PP_SEQ_SIZE_53(_) MSGPACK_PP_SEQ_SIZE_54
+# define MSGPACK_PP_SEQ_SIZE_54(_) MSGPACK_PP_SEQ_SIZE_55
+# define MSGPACK_PP_SEQ_SIZE_55(_) MSGPACK_PP_SEQ_SIZE_56
+# define MSGPACK_PP_SEQ_SIZE_56(_) MSGPACK_PP_SEQ_SIZE_57
+# define MSGPACK_PP_SEQ_SIZE_57(_) MSGPACK_PP_SEQ_SIZE_58
+# define MSGPACK_PP_SEQ_SIZE_58(_) MSGPACK_PP_SEQ_SIZE_59
+# define MSGPACK_PP_SEQ_SIZE_59(_) MSGPACK_PP_SEQ_SIZE_60
+# define MSGPACK_PP_SEQ_SIZE_60(_) MSGPACK_PP_SEQ_SIZE_61
+# define MSGPACK_PP_SEQ_SIZE_61(_) MSGPACK_PP_SEQ_SIZE_62
+# define MSGPACK_PP_SEQ_SIZE_62(_) MSGPACK_PP_SEQ_SIZE_63
+# define MSGPACK_PP_SEQ_SIZE_63(_) MSGPACK_PP_SEQ_SIZE_64
+# define MSGPACK_PP_SEQ_SIZE_64(_) MSGPACK_PP_SEQ_SIZE_65
+# define MSGPACK_PP_SEQ_SIZE_65(_) MSGPACK_PP_SEQ_SIZE_66
+# define MSGPACK_PP_SEQ_SIZE_66(_) MSGPACK_PP_SEQ_SIZE_67
+# define MSGPACK_PP_SEQ_SIZE_67(_) MSGPACK_PP_SEQ_SIZE_68
+# define MSGPACK_PP_SEQ_SIZE_68(_) MSGPACK_PP_SEQ_SIZE_69
+# define MSGPACK_PP_SEQ_SIZE_69(_) MSGPACK_PP_SEQ_SIZE_70
+# define MSGPACK_PP_SEQ_SIZE_70(_) MSGPACK_PP_SEQ_SIZE_71
+# define MSGPACK_PP_SEQ_SIZE_71(_) MSGPACK_PP_SEQ_SIZE_72
+# define MSGPACK_PP_SEQ_SIZE_72(_) MSGPACK_PP_SEQ_SIZE_73
+# define MSGPACK_PP_SEQ_SIZE_73(_) MSGPACK_PP_SEQ_SIZE_74
+# define MSGPACK_PP_SEQ_SIZE_74(_) MSGPACK_PP_SEQ_SIZE_75
+# define MSGPACK_PP_SEQ_SIZE_75(_) MSGPACK_PP_SEQ_SIZE_76
+# define MSGPACK_PP_SEQ_SIZE_76(_) MSGPACK_PP_SEQ_SIZE_77
+# define MSGPACK_PP_SEQ_SIZE_77(_) MSGPACK_PP_SEQ_SIZE_78
+# define MSGPACK_PP_SEQ_SIZE_78(_) MSGPACK_PP_SEQ_SIZE_79
+# define MSGPACK_PP_SEQ_SIZE_79(_) MSGPACK_PP_SEQ_SIZE_80
+# define MSGPACK_PP_SEQ_SIZE_80(_) MSGPACK_PP_SEQ_SIZE_81
+# define MSGPACK_PP_SEQ_SIZE_81(_) MSGPACK_PP_SEQ_SIZE_82
+# define MSGPACK_PP_SEQ_SIZE_82(_) MSGPACK_PP_SEQ_SIZE_83
+# define MSGPACK_PP_SEQ_SIZE_83(_) MSGPACK_PP_SEQ_SIZE_84
+# define MSGPACK_PP_SEQ_SIZE_84(_) MSGPACK_PP_SEQ_SIZE_85
+# define MSGPACK_PP_SEQ_SIZE_85(_) MSGPACK_PP_SEQ_SIZE_86
+# define MSGPACK_PP_SEQ_SIZE_86(_) MSGPACK_PP_SEQ_SIZE_87
+# define MSGPACK_PP_SEQ_SIZE_87(_) MSGPACK_PP_SEQ_SIZE_88
+# define MSGPACK_PP_SEQ_SIZE_88(_) MSGPACK_PP_SEQ_SIZE_89
+# define MSGPACK_PP_SEQ_SIZE_89(_) MSGPACK_PP_SEQ_SIZE_90
+# define MSGPACK_PP_SEQ_SIZE_90(_) MSGPACK_PP_SEQ_SIZE_91
+# define MSGPACK_PP_SEQ_SIZE_91(_) MSGPACK_PP_SEQ_SIZE_92
+# define MSGPACK_PP_SEQ_SIZE_92(_) MSGPACK_PP_SEQ_SIZE_93
+# define MSGPACK_PP_SEQ_SIZE_93(_) MSGPACK_PP_SEQ_SIZE_94
+# define MSGPACK_PP_SEQ_SIZE_94(_) MSGPACK_PP_SEQ_SIZE_95
+# define MSGPACK_PP_SEQ_SIZE_95(_) MSGPACK_PP_SEQ_SIZE_96
+# define MSGPACK_PP_SEQ_SIZE_96(_) MSGPACK_PP_SEQ_SIZE_97
+# define MSGPACK_PP_SEQ_SIZE_97(_) MSGPACK_PP_SEQ_SIZE_98
+# define MSGPACK_PP_SEQ_SIZE_98(_) MSGPACK_PP_SEQ_SIZE_99
+# define MSGPACK_PP_SEQ_SIZE_99(_) MSGPACK_PP_SEQ_SIZE_100
+# define MSGPACK_PP_SEQ_SIZE_100(_) MSGPACK_PP_SEQ_SIZE_101
+# define MSGPACK_PP_SEQ_SIZE_101(_) MSGPACK_PP_SEQ_SIZE_102
+# define MSGPACK_PP_SEQ_SIZE_102(_) MSGPACK_PP_SEQ_SIZE_103
+# define MSGPACK_PP_SEQ_SIZE_103(_) MSGPACK_PP_SEQ_SIZE_104
+# define MSGPACK_PP_SEQ_SIZE_104(_) MSGPACK_PP_SEQ_SIZE_105
+# define MSGPACK_PP_SEQ_SIZE_105(_) MSGPACK_PP_SEQ_SIZE_106
+# define MSGPACK_PP_SEQ_SIZE_106(_) MSGPACK_PP_SEQ_SIZE_107
+# define MSGPACK_PP_SEQ_SIZE_107(_) MSGPACK_PP_SEQ_SIZE_108
+# define MSGPACK_PP_SEQ_SIZE_108(_) MSGPACK_PP_SEQ_SIZE_109
+# define MSGPACK_PP_SEQ_SIZE_109(_) MSGPACK_PP_SEQ_SIZE_110
+# define MSGPACK_PP_SEQ_SIZE_110(_) MSGPACK_PP_SEQ_SIZE_111
+# define MSGPACK_PP_SEQ_SIZE_111(_) MSGPACK_PP_SEQ_SIZE_112
+# define MSGPACK_PP_SEQ_SIZE_112(_) MSGPACK_PP_SEQ_SIZE_113
+# define MSGPACK_PP_SEQ_SIZE_113(_) MSGPACK_PP_SEQ_SIZE_114
+# define MSGPACK_PP_SEQ_SIZE_114(_) MSGPACK_PP_SEQ_SIZE_115
+# define MSGPACK_PP_SEQ_SIZE_115(_) MSGPACK_PP_SEQ_SIZE_116
+# define MSGPACK_PP_SEQ_SIZE_116(_) MSGPACK_PP_SEQ_SIZE_117
+# define MSGPACK_PP_SEQ_SIZE_117(_) MSGPACK_PP_SEQ_SIZE_118
+# define MSGPACK_PP_SEQ_SIZE_118(_) MSGPACK_PP_SEQ_SIZE_119
+# define MSGPACK_PP_SEQ_SIZE_119(_) MSGPACK_PP_SEQ_SIZE_120
+# define MSGPACK_PP_SEQ_SIZE_120(_) MSGPACK_PP_SEQ_SIZE_121
+# define MSGPACK_PP_SEQ_SIZE_121(_) MSGPACK_PP_SEQ_SIZE_122
+# define MSGPACK_PP_SEQ_SIZE_122(_) MSGPACK_PP_SEQ_SIZE_123
+# define MSGPACK_PP_SEQ_SIZE_123(_) MSGPACK_PP_SEQ_SIZE_124
+# define MSGPACK_PP_SEQ_SIZE_124(_) MSGPACK_PP_SEQ_SIZE_125
+# define MSGPACK_PP_SEQ_SIZE_125(_) MSGPACK_PP_SEQ_SIZE_126
+# define MSGPACK_PP_SEQ_SIZE_126(_) MSGPACK_PP_SEQ_SIZE_127
+# define MSGPACK_PP_SEQ_SIZE_127(_) MSGPACK_PP_SEQ_SIZE_128
+# define MSGPACK_PP_SEQ_SIZE_128(_) MSGPACK_PP_SEQ_SIZE_129
+# define MSGPACK_PP_SEQ_SIZE_129(_) MSGPACK_PP_SEQ_SIZE_130
+# define MSGPACK_PP_SEQ_SIZE_130(_) MSGPACK_PP_SEQ_SIZE_131
+# define MSGPACK_PP_SEQ_SIZE_131(_) MSGPACK_PP_SEQ_SIZE_132
+# define MSGPACK_PP_SEQ_SIZE_132(_) MSGPACK_PP_SEQ_SIZE_133
+# define MSGPACK_PP_SEQ_SIZE_133(_) MSGPACK_PP_SEQ_SIZE_134
+# define MSGPACK_PP_SEQ_SIZE_134(_) MSGPACK_PP_SEQ_SIZE_135
+# define MSGPACK_PP_SEQ_SIZE_135(_) MSGPACK_PP_SEQ_SIZE_136
+# define MSGPACK_PP_SEQ_SIZE_136(_) MSGPACK_PP_SEQ_SIZE_137
+# define MSGPACK_PP_SEQ_SIZE_137(_) MSGPACK_PP_SEQ_SIZE_138
+# define MSGPACK_PP_SEQ_SIZE_138(_) MSGPACK_PP_SEQ_SIZE_139
+# define MSGPACK_PP_SEQ_SIZE_139(_) MSGPACK_PP_SEQ_SIZE_140
+# define MSGPACK_PP_SEQ_SIZE_140(_) MSGPACK_PP_SEQ_SIZE_141
+# define MSGPACK_PP_SEQ_SIZE_141(_) MSGPACK_PP_SEQ_SIZE_142
+# define MSGPACK_PP_SEQ_SIZE_142(_) MSGPACK_PP_SEQ_SIZE_143
+# define MSGPACK_PP_SEQ_SIZE_143(_) MSGPACK_PP_SEQ_SIZE_144
+# define MSGPACK_PP_SEQ_SIZE_144(_) MSGPACK_PP_SEQ_SIZE_145
+# define MSGPACK_PP_SEQ_SIZE_145(_) MSGPACK_PP_SEQ_SIZE_146
+# define MSGPACK_PP_SEQ_SIZE_146(_) MSGPACK_PP_SEQ_SIZE_147
+# define MSGPACK_PP_SEQ_SIZE_147(_) MSGPACK_PP_SEQ_SIZE_148
+# define MSGPACK_PP_SEQ_SIZE_148(_) MSGPACK_PP_SEQ_SIZE_149
+# define MSGPACK_PP_SEQ_SIZE_149(_) MSGPACK_PP_SEQ_SIZE_150
+# define MSGPACK_PP_SEQ_SIZE_150(_) MSGPACK_PP_SEQ_SIZE_151
+# define MSGPACK_PP_SEQ_SIZE_151(_) MSGPACK_PP_SEQ_SIZE_152
+# define MSGPACK_PP_SEQ_SIZE_152(_) MSGPACK_PP_SEQ_SIZE_153
+# define MSGPACK_PP_SEQ_SIZE_153(_) MSGPACK_PP_SEQ_SIZE_154
+# define MSGPACK_PP_SEQ_SIZE_154(_) MSGPACK_PP_SEQ_SIZE_155
+# define MSGPACK_PP_SEQ_SIZE_155(_) MSGPACK_PP_SEQ_SIZE_156
+# define MSGPACK_PP_SEQ_SIZE_156(_) MSGPACK_PP_SEQ_SIZE_157
+# define MSGPACK_PP_SEQ_SIZE_157(_) MSGPACK_PP_SEQ_SIZE_158
+# define MSGPACK_PP_SEQ_SIZE_158(_) MSGPACK_PP_SEQ_SIZE_159
+# define MSGPACK_PP_SEQ_SIZE_159(_) MSGPACK_PP_SEQ_SIZE_160
+# define MSGPACK_PP_SEQ_SIZE_160(_) MSGPACK_PP_SEQ_SIZE_161
+# define MSGPACK_PP_SEQ_SIZE_161(_) MSGPACK_PP_SEQ_SIZE_162
+# define MSGPACK_PP_SEQ_SIZE_162(_) MSGPACK_PP_SEQ_SIZE_163
+# define MSGPACK_PP_SEQ_SIZE_163(_) MSGPACK_PP_SEQ_SIZE_164
+# define MSGPACK_PP_SEQ_SIZE_164(_) MSGPACK_PP_SEQ_SIZE_165
+# define MSGPACK_PP_SEQ_SIZE_165(_) MSGPACK_PP_SEQ_SIZE_166
+# define MSGPACK_PP_SEQ_SIZE_166(_) MSGPACK_PP_SEQ_SIZE_167
+# define MSGPACK_PP_SEQ_SIZE_167(_) MSGPACK_PP_SEQ_SIZE_168
+# define MSGPACK_PP_SEQ_SIZE_168(_) MSGPACK_PP_SEQ_SIZE_169
+# define MSGPACK_PP_SEQ_SIZE_169(_) MSGPACK_PP_SEQ_SIZE_170
+# define MSGPACK_PP_SEQ_SIZE_170(_) MSGPACK_PP_SEQ_SIZE_171
+# define MSGPACK_PP_SEQ_SIZE_171(_) MSGPACK_PP_SEQ_SIZE_172
+# define MSGPACK_PP_SEQ_SIZE_172(_) MSGPACK_PP_SEQ_SIZE_173
+# define MSGPACK_PP_SEQ_SIZE_173(_) MSGPACK_PP_SEQ_SIZE_174
+# define MSGPACK_PP_SEQ_SIZE_174(_) MSGPACK_PP_SEQ_SIZE_175
+# define MSGPACK_PP_SEQ_SIZE_175(_) MSGPACK_PP_SEQ_SIZE_176
+# define MSGPACK_PP_SEQ_SIZE_176(_) MSGPACK_PP_SEQ_SIZE_177
+# define MSGPACK_PP_SEQ_SIZE_177(_) MSGPACK_PP_SEQ_SIZE_178
+# define MSGPACK_PP_SEQ_SIZE_178(_) MSGPACK_PP_SEQ_SIZE_179
+# define MSGPACK_PP_SEQ_SIZE_179(_) MSGPACK_PP_SEQ_SIZE_180
+# define MSGPACK_PP_SEQ_SIZE_180(_) MSGPACK_PP_SEQ_SIZE_181
+# define MSGPACK_PP_SEQ_SIZE_181(_) MSGPACK_PP_SEQ_SIZE_182
+# define MSGPACK_PP_SEQ_SIZE_182(_) MSGPACK_PP_SEQ_SIZE_183
+# define MSGPACK_PP_SEQ_SIZE_183(_) MSGPACK_PP_SEQ_SIZE_184
+# define MSGPACK_PP_SEQ_SIZE_184(_) MSGPACK_PP_SEQ_SIZE_185
+# define MSGPACK_PP_SEQ_SIZE_185(_) MSGPACK_PP_SEQ_SIZE_186
+# define MSGPACK_PP_SEQ_SIZE_186(_) MSGPACK_PP_SEQ_SIZE_187
+# define MSGPACK_PP_SEQ_SIZE_187(_) MSGPACK_PP_SEQ_SIZE_188
+# define MSGPACK_PP_SEQ_SIZE_188(_) MSGPACK_PP_SEQ_SIZE_189
+# define MSGPACK_PP_SEQ_SIZE_189(_) MSGPACK_PP_SEQ_SIZE_190
+# define MSGPACK_PP_SEQ_SIZE_190(_) MSGPACK_PP_SEQ_SIZE_191
+# define MSGPACK_PP_SEQ_SIZE_191(_) MSGPACK_PP_SEQ_SIZE_192
+# define MSGPACK_PP_SEQ_SIZE_192(_) MSGPACK_PP_SEQ_SIZE_193
+# define MSGPACK_PP_SEQ_SIZE_193(_) MSGPACK_PP_SEQ_SIZE_194
+# define MSGPACK_PP_SEQ_SIZE_194(_) MSGPACK_PP_SEQ_SIZE_195
+# define MSGPACK_PP_SEQ_SIZE_195(_) MSGPACK_PP_SEQ_SIZE_196
+# define MSGPACK_PP_SEQ_SIZE_196(_) MSGPACK_PP_SEQ_SIZE_197
+# define MSGPACK_PP_SEQ_SIZE_197(_) MSGPACK_PP_SEQ_SIZE_198
+# define MSGPACK_PP_SEQ_SIZE_198(_) MSGPACK_PP_SEQ_SIZE_199
+# define MSGPACK_PP_SEQ_SIZE_199(_) MSGPACK_PP_SEQ_SIZE_200
+# define MSGPACK_PP_SEQ_SIZE_200(_) MSGPACK_PP_SEQ_SIZE_201
+# define MSGPACK_PP_SEQ_SIZE_201(_) MSGPACK_PP_SEQ_SIZE_202
+# define MSGPACK_PP_SEQ_SIZE_202(_) MSGPACK_PP_SEQ_SIZE_203
+# define MSGPACK_PP_SEQ_SIZE_203(_) MSGPACK_PP_SEQ_SIZE_204
+# define MSGPACK_PP_SEQ_SIZE_204(_) MSGPACK_PP_SEQ_SIZE_205
+# define MSGPACK_PP_SEQ_SIZE_205(_) MSGPACK_PP_SEQ_SIZE_206
+# define MSGPACK_PP_SEQ_SIZE_206(_) MSGPACK_PP_SEQ_SIZE_207
+# define MSGPACK_PP_SEQ_SIZE_207(_) MSGPACK_PP_SEQ_SIZE_208
+# define MSGPACK_PP_SEQ_SIZE_208(_) MSGPACK_PP_SEQ_SIZE_209
+# define MSGPACK_PP_SEQ_SIZE_209(_) MSGPACK_PP_SEQ_SIZE_210
+# define MSGPACK_PP_SEQ_SIZE_210(_) MSGPACK_PP_SEQ_SIZE_211
+# define MSGPACK_PP_SEQ_SIZE_211(_) MSGPACK_PP_SEQ_SIZE_212
+# define MSGPACK_PP_SEQ_SIZE_212(_) MSGPACK_PP_SEQ_SIZE_213
+# define MSGPACK_PP_SEQ_SIZE_213(_) MSGPACK_PP_SEQ_SIZE_214
+# define MSGPACK_PP_SEQ_SIZE_214(_) MSGPACK_PP_SEQ_SIZE_215
+# define MSGPACK_PP_SEQ_SIZE_215(_) MSGPACK_PP_SEQ_SIZE_216
+# define MSGPACK_PP_SEQ_SIZE_216(_) MSGPACK_PP_SEQ_SIZE_217
+# define MSGPACK_PP_SEQ_SIZE_217(_) MSGPACK_PP_SEQ_SIZE_218
+# define MSGPACK_PP_SEQ_SIZE_218(_) MSGPACK_PP_SEQ_SIZE_219
+# define MSGPACK_PP_SEQ_SIZE_219(_) MSGPACK_PP_SEQ_SIZE_220
+# define MSGPACK_PP_SEQ_SIZE_220(_) MSGPACK_PP_SEQ_SIZE_221
+# define MSGPACK_PP_SEQ_SIZE_221(_) MSGPACK_PP_SEQ_SIZE_222
+# define MSGPACK_PP_SEQ_SIZE_222(_) MSGPACK_PP_SEQ_SIZE_223
+# define MSGPACK_PP_SEQ_SIZE_223(_) MSGPACK_PP_SEQ_SIZE_224
+# define MSGPACK_PP_SEQ_SIZE_224(_) MSGPACK_PP_SEQ_SIZE_225
+# define MSGPACK_PP_SEQ_SIZE_225(_) MSGPACK_PP_SEQ_SIZE_226
+# define MSGPACK_PP_SEQ_SIZE_226(_) MSGPACK_PP_SEQ_SIZE_227
+# define MSGPACK_PP_SEQ_SIZE_227(_) MSGPACK_PP_SEQ_SIZE_228
+# define MSGPACK_PP_SEQ_SIZE_228(_) MSGPACK_PP_SEQ_SIZE_229
+# define MSGPACK_PP_SEQ_SIZE_229(_) MSGPACK_PP_SEQ_SIZE_230
+# define MSGPACK_PP_SEQ_SIZE_230(_) MSGPACK_PP_SEQ_SIZE_231
+# define MSGPACK_PP_SEQ_SIZE_231(_) MSGPACK_PP_SEQ_SIZE_232
+# define MSGPACK_PP_SEQ_SIZE_232(_) MSGPACK_PP_SEQ_SIZE_233
+# define MSGPACK_PP_SEQ_SIZE_233(_) MSGPACK_PP_SEQ_SIZE_234
+# define MSGPACK_PP_SEQ_SIZE_234(_) MSGPACK_PP_SEQ_SIZE_235
+# define MSGPACK_PP_SEQ_SIZE_235(_) MSGPACK_PP_SEQ_SIZE_236
+# define MSGPACK_PP_SEQ_SIZE_236(_) MSGPACK_PP_SEQ_SIZE_237
+# define MSGPACK_PP_SEQ_SIZE_237(_) MSGPACK_PP_SEQ_SIZE_238
+# define MSGPACK_PP_SEQ_SIZE_238(_) MSGPACK_PP_SEQ_SIZE_239
+# define MSGPACK_PP_SEQ_SIZE_239(_) MSGPACK_PP_SEQ_SIZE_240
+# define MSGPACK_PP_SEQ_SIZE_240(_) MSGPACK_PP_SEQ_SIZE_241
+# define MSGPACK_PP_SEQ_SIZE_241(_) MSGPACK_PP_SEQ_SIZE_242
+# define MSGPACK_PP_SEQ_SIZE_242(_) MSGPACK_PP_SEQ_SIZE_243
+# define MSGPACK_PP_SEQ_SIZE_243(_) MSGPACK_PP_SEQ_SIZE_244
+# define MSGPACK_PP_SEQ_SIZE_244(_) MSGPACK_PP_SEQ_SIZE_245
+# define MSGPACK_PP_SEQ_SIZE_245(_) MSGPACK_PP_SEQ_SIZE_246
+# define MSGPACK_PP_SEQ_SIZE_246(_) MSGPACK_PP_SEQ_SIZE_247
+# define MSGPACK_PP_SEQ_SIZE_247(_) MSGPACK_PP_SEQ_SIZE_248
+# define MSGPACK_PP_SEQ_SIZE_248(_) MSGPACK_PP_SEQ_SIZE_249
+# define MSGPACK_PP_SEQ_SIZE_249(_) MSGPACK_PP_SEQ_SIZE_250
+# define MSGPACK_PP_SEQ_SIZE_250(_) MSGPACK_PP_SEQ_SIZE_251
+# define MSGPACK_PP_SEQ_SIZE_251(_) MSGPACK_PP_SEQ_SIZE_252
+# define MSGPACK_PP_SEQ_SIZE_252(_) MSGPACK_PP_SEQ_SIZE_253
+# define MSGPACK_PP_SEQ_SIZE_253(_) MSGPACK_PP_SEQ_SIZE_254
+# define MSGPACK_PP_SEQ_SIZE_254(_) MSGPACK_PP_SEQ_SIZE_255
+# define MSGPACK_PP_SEQ_SIZE_255(_) MSGPACK_PP_SEQ_SIZE_256
+# define MSGPACK_PP_SEQ_SIZE_256(_) MSGPACK_PP_SEQ_SIZE_257
+#
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_0 0
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_1 1
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_2 2
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_3 3
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_4 4
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_5 5
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_6 6
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_7 7
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_8 8
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_9 9
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_10 10
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_11 11
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_12 12
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_13 13
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_14 14
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_15 15
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_16 16
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_17 17
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_18 18
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_19 19
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_20 20
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_21 21
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_22 22
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_23 23
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_24 24
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_25 25
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_26 26
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_27 27
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_28 28
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_29 29
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_30 30
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_31 31
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_32 32
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_33 33
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_34 34
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_35 35
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_36 36
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_37 37
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_38 38
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_39 39
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_40 40
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_41 41
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_42 42
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_43 43
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_44 44
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_45 45
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_46 46
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_47 47
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_48 48
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_49 49
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_50 50
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_51 51
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_52 52
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_53 53
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_54 54
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_55 55
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_56 56
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_57 57
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_58 58
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_59 59
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_60 60
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_61 61
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_62 62
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_63 63
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_64 64
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_65 65
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_66 66
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_67 67
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_68 68
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_69 69
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_70 70
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_71 71
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_72 72
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_73 73
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_74 74
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_75 75
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_76 76
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_77 77
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_78 78
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_79 79
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_80 80
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_81 81
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_82 82
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_83 83
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_84 84
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_85 85
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_86 86
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_87 87
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_88 88
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_89 89
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_90 90
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_91 91
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_92 92
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_93 93
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_94 94
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_95 95
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_96 96
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_97 97
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_98 98
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_99 99
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_100 100
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_101 101
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_102 102
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_103 103
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_104 104
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_105 105
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_106 106
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_107 107
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_108 108
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_109 109
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_110 110
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_111 111
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_112 112
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_113 113
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_114 114
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_115 115
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_116 116
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_117 117
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_118 118
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_119 119
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_120 120
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_121 121
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_122 122
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_123 123
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_124 124
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_125 125
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_126 126
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_127 127
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_128 128
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_129 129
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_130 130
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_131 131
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_132 132
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_133 133
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_134 134
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_135 135
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_136 136
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_137 137
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_138 138
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_139 139
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_140 140
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_141 141
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_142 142
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_143 143
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_144 144
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_145 145
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_146 146
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_147 147
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_148 148
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_149 149
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_150 150
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_151 151
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_152 152
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_153 153
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_154 154
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_155 155
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_156 156
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_157 157
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_158 158
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_159 159
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_160 160
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_161 161
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_162 162
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_163 163
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_164 164
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_165 165
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_166 166
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_167 167
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_168 168
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_169 169
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_170 170
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_171 171
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_172 172
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_173 173
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_174 174
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_175 175
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_176 176
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_177 177
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_178 178
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_179 179
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_180 180
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_181 181
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_182 182
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_183 183
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_184 184
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_185 185
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_186 186
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_187 187
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_188 188
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_189 189
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_190 190
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_191 191
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_192 192
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_193 193
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_194 194
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_195 195
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_196 196
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_197 197
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_198 198
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_199 199
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_200 200
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_201 201
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_202 202
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_203 203
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_204 204
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_205 205
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_206 206
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_207 207
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_208 208
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_209 209
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_210 210
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_211 211
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_212 212
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_213 213
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_214 214
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_215 215
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_216 216
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_217 217
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_218 218
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_219 219
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_220 220
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_221 221
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_222 222
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_223 223
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_224 224
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_225 225
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_226 226
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_227 227
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_228 228
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_229 229
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_230 230
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_231 231
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_232 232
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_233 233
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_234 234
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_235 235
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_236 236
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_237 237
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_238 238
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_239 239
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_240 240
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_241 241
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_242 242
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_243 243
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_244 244
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_245 245
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_246 246
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_247 247
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_248 248
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_249 249
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_250 250
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_251 251
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_252 252
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_253 253
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_254 254
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_255 255
+# define MSGPACK_PP_SEQ_SIZE_MSGPACK_PP_SEQ_SIZE_256 256
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/subseq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/subseq.hpp
new file mode 100644
index 000000000..ab44935e9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/subseq.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_SUBSEQ_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_SUBSEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/first_n.hpp>
+# include <rpc/msgpack/preprocessor/seq/rest_n.hpp>
+#
+# /* MSGPACK_PP_SEQ_SUBSEQ */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_SUBSEQ(seq, i, len) MSGPACK_PP_SEQ_FIRST_N(len, MSGPACK_PP_SEQ_REST_N(i, seq))
+# else
+# define MSGPACK_PP_SEQ_SUBSEQ(seq, i, len) MSGPACK_PP_SEQ_SUBSEQ_I(seq, i, len)
+# define MSGPACK_PP_SEQ_SUBSEQ_I(seq, i, len) MSGPACK_PP_SEQ_FIRST_N(len, MSGPACK_PP_SEQ_REST_N(i, seq))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_array.hpp
new file mode 100644
index 000000000..77eb059ea
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_array.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_TO_ARRAY_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_TO_ARRAY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/enum.hpp>
+# include <rpc/msgpack/preprocessor/seq/size.hpp>
+#
+# /* MSGPACK_PP_SEQ_TO_ARRAY */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_TO_ARRAY(seq) (MSGPACK_PP_SEQ_SIZE(seq), (MSGPACK_PP_SEQ_ENUM(seq)))
+# else
+# define MSGPACK_PP_SEQ_TO_ARRAY(seq) MSGPACK_PP_SEQ_TO_ARRAY_I(seq)
+# define MSGPACK_PP_SEQ_TO_ARRAY_I(seq) (MSGPACK_PP_SEQ_SIZE(seq), (MSGPACK_PP_SEQ_ENUM(seq)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_list.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_list.hpp
new file mode 100644
index 000000000..f81050e80
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_list.hpp
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_TO_LIST_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_TO_LIST_HPP
+#
+# include <rpc/msgpack/preprocessor/punctuation/comma.hpp>
+# include <rpc/msgpack/preprocessor/punctuation/paren.hpp>
+# include <rpc/msgpack/preprocessor/seq/detail/binary_transform.hpp>
+#
+# /* MSGPACK_PP_SEQ_TO_LIST */
+#
+# define MSGPACK_PP_SEQ_TO_LIST(seq) MSGPACK_PP_SEQ_TO_LIST_I(MSGPACK_PP_SEQ_BINARY_TRANSFORM(seq))
+# define MSGPACK_PP_SEQ_TO_LIST_I(bseq) MSGPACK_PP_SEQ_TO_LIST_A bseq MSGPACK_PP_NIL MSGPACK_PP_SEQ_TO_LIST_B bseq
+# define MSGPACK_PP_SEQ_TO_LIST_A(m, e) m(MSGPACK_PP_LPAREN() e MSGPACK_PP_COMMA() MSGPACK_PP_SEQ_TO_LIST_A_ID)
+# define MSGPACK_PP_SEQ_TO_LIST_A_ID() MSGPACK_PP_SEQ_TO_LIST_A
+# define MSGPACK_PP_SEQ_TO_LIST_B(m, e) m(MSGPACK_PP_RPAREN() MSGPACK_PP_SEQ_TO_LIST_B_ID)
+# define MSGPACK_PP_SEQ_TO_LIST_B_ID() MSGPACK_PP_SEQ_TO_LIST_B
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_tuple.hpp
new file mode 100644
index 000000000..901ae1809
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/to_tuple.hpp
@@ -0,0 +1,27 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_TO_TUPLE_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_TO_TUPLE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/enum.hpp>
+#
+# /* MSGPACK_PP_SEQ_TO_TUPLE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_TO_TUPLE(seq) (MSGPACK_PP_SEQ_ENUM(seq))
+# else
+# define MSGPACK_PP_SEQ_TO_TUPLE(seq) MSGPACK_PP_SEQ_TO_TUPLE_I(seq)
+# define MSGPACK_PP_SEQ_TO_TUPLE_I(seq) (MSGPACK_PP_SEQ_ENUM(seq))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/transform.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/transform.hpp
new file mode 100644
index 000000000..194d5fec0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/transform.hpp
@@ -0,0 +1,48 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_TRANSFORM_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_TRANSFORM_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/seq/fold_left.hpp>
+# include <rpc/msgpack/preprocessor/seq/seq.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_SEQ_TRANSFORM */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_TRANSFORM(op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# else
+# define MSGPACK_PP_SEQ_TRANSFORM(op, data, seq) MSGPACK_PP_SEQ_TRANSFORM_I(op, data, seq)
+# define MSGPACK_PP_SEQ_TRANSFORM_I(op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# endif
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_STRICT()
+# define MSGPACK_PP_SEQ_TRANSFORM_O(s, state, elem) MSGPACK_PP_SEQ_TRANSFORM_O_IM(s, MSGPACK_PP_TUPLE_REM_3 state, elem)
+# define MSGPACK_PP_SEQ_TRANSFORM_O_IM(s, im, elem) MSGPACK_PP_SEQ_TRANSFORM_O_I(s, im, elem)
+# else
+# define MSGPACK_PP_SEQ_TRANSFORM_O(s, state, elem) MSGPACK_PP_SEQ_TRANSFORM_O_I(s, MSGPACK_PP_TUPLE_ELEM(3, 0, state), MSGPACK_PP_TUPLE_ELEM(3, 1, state), MSGPACK_PP_TUPLE_ELEM(3, 2, state), elem)
+# endif
+#
+# define MSGPACK_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))
+#
+# /* MSGPACK_PP_SEQ_TRANSFORM_S */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_SEQ_TRANSFORM_S(s, op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# else
+# define MSGPACK_PP_SEQ_TRANSFORM_S(s, op, data, seq) MSGPACK_PP_SEQ_TRANSFORM_S_I(s, op, data, seq)
+# define MSGPACK_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) MSGPACK_PP_SEQ_TAIL(MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_SEQ_FOLD_LEFT_ ## s(MSGPACK_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp
new file mode 100644
index 000000000..c193779e5
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/seq/variadic_seq_to_seq.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2012. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP
+# define MSGPACK_PREPROCESSOR_SEQ_VARIADIC_SEQ_TO_SEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_VARIADIC_SEQ_TO_SEQ */
+#
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ(vseq) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A vseq, 0)
+# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A(...) ((__VA_ARGS__)) MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_B
+# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_B(...) ((__VA_ARGS__)) MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A
+# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_A0
+# define MSGPACK_PP_VARIADIC_SEQ_TO_SEQ_B0
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot.hpp
new file mode 100644
index 000000000..3c4339648
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SLOT_HPP
+# define MSGPACK_PREPROCESSOR_SLOT_HPP
+#
+# include <rpc/msgpack/preprocessor/slot/slot.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/counter.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/counter.hpp
new file mode 100644
index 000000000..36ae6d93e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/counter.hpp
@@ -0,0 +1,25 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2005. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SLOT_COUNTER_HPP
+# define MSGPACK_PREPROCESSOR_SLOT_COUNTER_HPP
+#
+# include <rpc/msgpack/preprocessor/slot/detail/def.hpp>
+#
+# /* MSGPACK_PP_COUNTER */
+#
+# define MSGPACK_PP_COUNTER 0
+#
+# /* MSGPACK_PP_UPDATE_COUNTER */
+#
+# define MSGPACK_PP_UPDATE_COUNTER() <msgpack/preprocessor/slot/detail/counter.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/counter.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/counter.hpp
new file mode 100644
index 000000000..930bf15d4
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/counter.hpp
@@ -0,0 +1,269 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2005. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# define MSGPACK_PP_VALUE MSGPACK_PP_COUNTER + 1
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_COUNTER
+#
+# undef MSGPACK_PP_COUNTER_DIGIT_1
+# undef MSGPACK_PP_COUNTER_DIGIT_2
+# undef MSGPACK_PP_COUNTER_DIGIT_3
+# undef MSGPACK_PP_COUNTER_DIGIT_4
+# undef MSGPACK_PP_COUNTER_DIGIT_5
+# undef MSGPACK_PP_COUNTER_DIGIT_6
+# undef MSGPACK_PP_COUNTER_DIGIT_7
+# undef MSGPACK_PP_COUNTER_DIGIT_8
+# undef MSGPACK_PP_COUNTER_DIGIT_9
+# undef MSGPACK_PP_COUNTER_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_10 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_10 0
+# elif MSGPACK_PP_SLOT_TEMP_10 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_10 1
+# elif MSGPACK_PP_SLOT_TEMP_10 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_10 2
+# elif MSGPACK_PP_SLOT_TEMP_10 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_10 3
+# elif MSGPACK_PP_SLOT_TEMP_10 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_10 4
+# elif MSGPACK_PP_SLOT_TEMP_10 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_10 5
+# elif MSGPACK_PP_SLOT_TEMP_10 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_10 6
+# elif MSGPACK_PP_SLOT_TEMP_10 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_10 7
+# elif MSGPACK_PP_SLOT_TEMP_10 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_10 8
+# elif MSGPACK_PP_SLOT_TEMP_10 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_10 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_9 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_9 0
+# elif MSGPACK_PP_SLOT_TEMP_9 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_9 1
+# elif MSGPACK_PP_SLOT_TEMP_9 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_9 2
+# elif MSGPACK_PP_SLOT_TEMP_9 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_9 3
+# elif MSGPACK_PP_SLOT_TEMP_9 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_9 4
+# elif MSGPACK_PP_SLOT_TEMP_9 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_9 5
+# elif MSGPACK_PP_SLOT_TEMP_9 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_9 6
+# elif MSGPACK_PP_SLOT_TEMP_9 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_9 7
+# elif MSGPACK_PP_SLOT_TEMP_9 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_9 8
+# elif MSGPACK_PP_SLOT_TEMP_9 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_9 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_8 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_8 0
+# elif MSGPACK_PP_SLOT_TEMP_8 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_8 1
+# elif MSGPACK_PP_SLOT_TEMP_8 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_8 2
+# elif MSGPACK_PP_SLOT_TEMP_8 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_8 3
+# elif MSGPACK_PP_SLOT_TEMP_8 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_8 4
+# elif MSGPACK_PP_SLOT_TEMP_8 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_8 5
+# elif MSGPACK_PP_SLOT_TEMP_8 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_8 6
+# elif MSGPACK_PP_SLOT_TEMP_8 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_8 7
+# elif MSGPACK_PP_SLOT_TEMP_8 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_8 8
+# elif MSGPACK_PP_SLOT_TEMP_8 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_8 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_7 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_7 0
+# elif MSGPACK_PP_SLOT_TEMP_7 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_7 1
+# elif MSGPACK_PP_SLOT_TEMP_7 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_7 2
+# elif MSGPACK_PP_SLOT_TEMP_7 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_7 3
+# elif MSGPACK_PP_SLOT_TEMP_7 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_7 4
+# elif MSGPACK_PP_SLOT_TEMP_7 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_7 5
+# elif MSGPACK_PP_SLOT_TEMP_7 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_7 6
+# elif MSGPACK_PP_SLOT_TEMP_7 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_7 7
+# elif MSGPACK_PP_SLOT_TEMP_7 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_7 8
+# elif MSGPACK_PP_SLOT_TEMP_7 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_7 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_6 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_6 0
+# elif MSGPACK_PP_SLOT_TEMP_6 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_6 1
+# elif MSGPACK_PP_SLOT_TEMP_6 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_6 2
+# elif MSGPACK_PP_SLOT_TEMP_6 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_6 3
+# elif MSGPACK_PP_SLOT_TEMP_6 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_6 4
+# elif MSGPACK_PP_SLOT_TEMP_6 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_6 5
+# elif MSGPACK_PP_SLOT_TEMP_6 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_6 6
+# elif MSGPACK_PP_SLOT_TEMP_6 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_6 7
+# elif MSGPACK_PP_SLOT_TEMP_6 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_6 8
+# elif MSGPACK_PP_SLOT_TEMP_6 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_6 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_5 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_5 0
+# elif MSGPACK_PP_SLOT_TEMP_5 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_5 1
+# elif MSGPACK_PP_SLOT_TEMP_5 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_5 2
+# elif MSGPACK_PP_SLOT_TEMP_5 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_5 3
+# elif MSGPACK_PP_SLOT_TEMP_5 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_5 4
+# elif MSGPACK_PP_SLOT_TEMP_5 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_5 5
+# elif MSGPACK_PP_SLOT_TEMP_5 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_5 6
+# elif MSGPACK_PP_SLOT_TEMP_5 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_5 7
+# elif MSGPACK_PP_SLOT_TEMP_5 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_5 8
+# elif MSGPACK_PP_SLOT_TEMP_5 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_5 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_4 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_4 0
+# elif MSGPACK_PP_SLOT_TEMP_4 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_4 1
+# elif MSGPACK_PP_SLOT_TEMP_4 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_4 2
+# elif MSGPACK_PP_SLOT_TEMP_4 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_4 3
+# elif MSGPACK_PP_SLOT_TEMP_4 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_4 4
+# elif MSGPACK_PP_SLOT_TEMP_4 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_4 5
+# elif MSGPACK_PP_SLOT_TEMP_4 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_4 6
+# elif MSGPACK_PP_SLOT_TEMP_4 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_4 7
+# elif MSGPACK_PP_SLOT_TEMP_4 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_4 8
+# elif MSGPACK_PP_SLOT_TEMP_4 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_4 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_COUNTER_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_COUNTER_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_COUNTER_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_COUNTER_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_COUNTER_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_COUNTER_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_COUNTER_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_COUNTER_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_COUNTER_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_COUNTER_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_COUNTER_DIGIT_10
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_COUNTER_DIGIT_10, MSGPACK_PP_COUNTER_DIGIT_9, MSGPACK_PP_COUNTER_DIGIT_8, MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_9
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_COUNTER_DIGIT_9, MSGPACK_PP_COUNTER_DIGIT_8, MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_8
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_COUNTER_DIGIT_8, MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_7
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_COUNTER_DIGIT_7, MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_6
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_COUNTER_DIGIT_6, MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_5
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_COUNTER_DIGIT_5, MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_4
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_COUNTER_DIGIT_4, MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_3
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_COUNTER_DIGIT_3, MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# elif MSGPACK_PP_COUNTER_DIGIT_2
+# define MSGPACK_PP_COUNTER MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_COUNTER_DIGIT_2, MSGPACK_PP_COUNTER_DIGIT_1)
+# else
+# define MSGPACK_PP_COUNTER MSGPACK_PP_COUNTER_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/def.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/def.hpp
new file mode 100644
index 000000000..e9053f455
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/def.hpp
@@ -0,0 +1,49 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
+# define MSGPACK_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
+#
+# /* MSGPACK_PP_SLOT_OFFSET_x */
+#
+# define MSGPACK_PP_SLOT_OFFSET_10(x) (x) % 1000000000UL
+# define MSGPACK_PP_SLOT_OFFSET_9(x) MSGPACK_PP_SLOT_OFFSET_10(x) % 100000000UL
+# define MSGPACK_PP_SLOT_OFFSET_8(x) MSGPACK_PP_SLOT_OFFSET_9(x) % 10000000UL
+# define MSGPACK_PP_SLOT_OFFSET_7(x) MSGPACK_PP_SLOT_OFFSET_8(x) % 1000000UL
+# define MSGPACK_PP_SLOT_OFFSET_6(x) MSGPACK_PP_SLOT_OFFSET_7(x) % 100000UL
+# define MSGPACK_PP_SLOT_OFFSET_5(x) MSGPACK_PP_SLOT_OFFSET_6(x) % 10000UL
+# define MSGPACK_PP_SLOT_OFFSET_4(x) MSGPACK_PP_SLOT_OFFSET_5(x) % 1000UL
+# define MSGPACK_PP_SLOT_OFFSET_3(x) MSGPACK_PP_SLOT_OFFSET_4(x) % 100UL
+# define MSGPACK_PP_SLOT_OFFSET_2(x) MSGPACK_PP_SLOT_OFFSET_3(x) % 10UL
+#
+# /* MSGPACK_PP_SLOT_CC_x */
+#
+# define MSGPACK_PP_SLOT_CC_2(a, b) MSGPACK_PP_SLOT_CC_2_D(a, b)
+# define MSGPACK_PP_SLOT_CC_3(a, b, c) MSGPACK_PP_SLOT_CC_3_D(a, b, c)
+# define MSGPACK_PP_SLOT_CC_4(a, b, c, d) MSGPACK_PP_SLOT_CC_4_D(a, b, c, d)
+# define MSGPACK_PP_SLOT_CC_5(a, b, c, d, e) MSGPACK_PP_SLOT_CC_5_D(a, b, c, d, e)
+# define MSGPACK_PP_SLOT_CC_6(a, b, c, d, e, f) MSGPACK_PP_SLOT_CC_6_D(a, b, c, d, e, f)
+# define MSGPACK_PP_SLOT_CC_7(a, b, c, d, e, f, g) MSGPACK_PP_SLOT_CC_7_D(a, b, c, d, e, f, g)
+# define MSGPACK_PP_SLOT_CC_8(a, b, c, d, e, f, g, h) MSGPACK_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h)
+# define MSGPACK_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i) MSGPACK_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i)
+# define MSGPACK_PP_SLOT_CC_10(a, b, c, d, e, f, g, h, i, j) MSGPACK_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j)
+#
+# define MSGPACK_PP_SLOT_CC_2_D(a, b) a ## b
+# define MSGPACK_PP_SLOT_CC_3_D(a, b, c) a ## b ## c
+# define MSGPACK_PP_SLOT_CC_4_D(a, b, c, d) a ## b ## c ## d
+# define MSGPACK_PP_SLOT_CC_5_D(a, b, c, d, e) a ## b ## c ## d ## e
+# define MSGPACK_PP_SLOT_CC_6_D(a, b, c, d, e, f) a ## b ## c ## d ## e ## f
+# define MSGPACK_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) a ## b ## c ## d ## e ## f ## g
+# define MSGPACK_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) a ## b ## c ## d ## e ## f ## g ## h
+# define MSGPACK_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) a ## b ## c ## d ## e ## f ## g ## h ## i
+# define MSGPACK_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) a ## b ## c ## d ## e ## f ## g ## h ## i ## j
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/shared.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/shared.hpp
new file mode 100644
index 000000000..b635c9160
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/shared.hpp
@@ -0,0 +1,247 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PP_VALUE
+# error MSGPACK_PP_ERROR: MSGPACK_PP_VALUE is not defined
+# endif
+#
+# undef MSGPACK_PP_SLOT_TEMP_1
+# undef MSGPACK_PP_SLOT_TEMP_2
+# undef MSGPACK_PP_SLOT_TEMP_3
+# undef MSGPACK_PP_SLOT_TEMP_4
+# undef MSGPACK_PP_SLOT_TEMP_5
+# undef MSGPACK_PP_SLOT_TEMP_6
+# undef MSGPACK_PP_SLOT_TEMP_7
+# undef MSGPACK_PP_SLOT_TEMP_8
+# undef MSGPACK_PP_SLOT_TEMP_9
+# undef MSGPACK_PP_SLOT_TEMP_10
+#
+# if (MSGPACK_PP_VALUE) / 1000000000UL == 0
+# define MSGPACK_PP_SLOT_TEMP_10 0
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 1
+# define MSGPACK_PP_SLOT_TEMP_10 1
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 2
+# define MSGPACK_PP_SLOT_TEMP_10 2
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 3
+# define MSGPACK_PP_SLOT_TEMP_10 3
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 4
+# define MSGPACK_PP_SLOT_TEMP_10 4
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 5
+# define MSGPACK_PP_SLOT_TEMP_10 5
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 6
+# define MSGPACK_PP_SLOT_TEMP_10 6
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 7
+# define MSGPACK_PP_SLOT_TEMP_10 7
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 8
+# define MSGPACK_PP_SLOT_TEMP_10 8
+# elif (MSGPACK_PP_VALUE) / 1000000000UL == 9
+# define MSGPACK_PP_SLOT_TEMP_10 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 0
+# define MSGPACK_PP_SLOT_TEMP_9 0
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 1
+# define MSGPACK_PP_SLOT_TEMP_9 1
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 2
+# define MSGPACK_PP_SLOT_TEMP_9 2
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 3
+# define MSGPACK_PP_SLOT_TEMP_9 3
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 4
+# define MSGPACK_PP_SLOT_TEMP_9 4
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 5
+# define MSGPACK_PP_SLOT_TEMP_9 5
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 6
+# define MSGPACK_PP_SLOT_TEMP_9 6
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 7
+# define MSGPACK_PP_SLOT_TEMP_9 7
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 8
+# define MSGPACK_PP_SLOT_TEMP_9 8
+# elif MSGPACK_PP_SLOT_OFFSET_10(MSGPACK_PP_VALUE) / 100000000UL == 9
+# define MSGPACK_PP_SLOT_TEMP_9 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 0
+# define MSGPACK_PP_SLOT_TEMP_8 0
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 1
+# define MSGPACK_PP_SLOT_TEMP_8 1
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 2
+# define MSGPACK_PP_SLOT_TEMP_8 2
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 3
+# define MSGPACK_PP_SLOT_TEMP_8 3
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 4
+# define MSGPACK_PP_SLOT_TEMP_8 4
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 5
+# define MSGPACK_PP_SLOT_TEMP_8 5
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 6
+# define MSGPACK_PP_SLOT_TEMP_8 6
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 7
+# define MSGPACK_PP_SLOT_TEMP_8 7
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 8
+# define MSGPACK_PP_SLOT_TEMP_8 8
+# elif MSGPACK_PP_SLOT_OFFSET_9(MSGPACK_PP_VALUE) / 10000000UL == 9
+# define MSGPACK_PP_SLOT_TEMP_8 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 0
+# define MSGPACK_PP_SLOT_TEMP_7 0
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 1
+# define MSGPACK_PP_SLOT_TEMP_7 1
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 2
+# define MSGPACK_PP_SLOT_TEMP_7 2
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 3
+# define MSGPACK_PP_SLOT_TEMP_7 3
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 4
+# define MSGPACK_PP_SLOT_TEMP_7 4
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 5
+# define MSGPACK_PP_SLOT_TEMP_7 5
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 6
+# define MSGPACK_PP_SLOT_TEMP_7 6
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 7
+# define MSGPACK_PP_SLOT_TEMP_7 7
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 8
+# define MSGPACK_PP_SLOT_TEMP_7 8
+# elif MSGPACK_PP_SLOT_OFFSET_8(MSGPACK_PP_VALUE) / 1000000UL == 9
+# define MSGPACK_PP_SLOT_TEMP_7 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 0
+# define MSGPACK_PP_SLOT_TEMP_6 0
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 1
+# define MSGPACK_PP_SLOT_TEMP_6 1
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 2
+# define MSGPACK_PP_SLOT_TEMP_6 2
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 3
+# define MSGPACK_PP_SLOT_TEMP_6 3
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 4
+# define MSGPACK_PP_SLOT_TEMP_6 4
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 5
+# define MSGPACK_PP_SLOT_TEMP_6 5
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 6
+# define MSGPACK_PP_SLOT_TEMP_6 6
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 7
+# define MSGPACK_PP_SLOT_TEMP_6 7
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 8
+# define MSGPACK_PP_SLOT_TEMP_6 8
+# elif MSGPACK_PP_SLOT_OFFSET_7(MSGPACK_PP_VALUE) / 100000UL == 9
+# define MSGPACK_PP_SLOT_TEMP_6 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 0
+# define MSGPACK_PP_SLOT_TEMP_5 0
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 1
+# define MSGPACK_PP_SLOT_TEMP_5 1
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 2
+# define MSGPACK_PP_SLOT_TEMP_5 2
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 3
+# define MSGPACK_PP_SLOT_TEMP_5 3
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 4
+# define MSGPACK_PP_SLOT_TEMP_5 4
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 5
+# define MSGPACK_PP_SLOT_TEMP_5 5
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 6
+# define MSGPACK_PP_SLOT_TEMP_5 6
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 7
+# define MSGPACK_PP_SLOT_TEMP_5 7
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 8
+# define MSGPACK_PP_SLOT_TEMP_5 8
+# elif MSGPACK_PP_SLOT_OFFSET_6(MSGPACK_PP_VALUE) / 10000UL == 9
+# define MSGPACK_PP_SLOT_TEMP_5 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 0
+# define MSGPACK_PP_SLOT_TEMP_4 0
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 1
+# define MSGPACK_PP_SLOT_TEMP_4 1
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 2
+# define MSGPACK_PP_SLOT_TEMP_4 2
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 3
+# define MSGPACK_PP_SLOT_TEMP_4 3
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 4
+# define MSGPACK_PP_SLOT_TEMP_4 4
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 5
+# define MSGPACK_PP_SLOT_TEMP_4 5
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 6
+# define MSGPACK_PP_SLOT_TEMP_4 6
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 7
+# define MSGPACK_PP_SLOT_TEMP_4 7
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 8
+# define MSGPACK_PP_SLOT_TEMP_4 8
+# elif MSGPACK_PP_SLOT_OFFSET_5(MSGPACK_PP_VALUE) / 1000UL == 9
+# define MSGPACK_PP_SLOT_TEMP_4 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 0
+# define MSGPACK_PP_SLOT_TEMP_3 0
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 1
+# define MSGPACK_PP_SLOT_TEMP_3 1
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 2
+# define MSGPACK_PP_SLOT_TEMP_3 2
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 3
+# define MSGPACK_PP_SLOT_TEMP_3 3
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 4
+# define MSGPACK_PP_SLOT_TEMP_3 4
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 5
+# define MSGPACK_PP_SLOT_TEMP_3 5
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 6
+# define MSGPACK_PP_SLOT_TEMP_3 6
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 7
+# define MSGPACK_PP_SLOT_TEMP_3 7
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 8
+# define MSGPACK_PP_SLOT_TEMP_3 8
+# elif MSGPACK_PP_SLOT_OFFSET_4(MSGPACK_PP_VALUE) / 100UL == 9
+# define MSGPACK_PP_SLOT_TEMP_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 0
+# define MSGPACK_PP_SLOT_TEMP_2 0
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 1
+# define MSGPACK_PP_SLOT_TEMP_2 1
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 2
+# define MSGPACK_PP_SLOT_TEMP_2 2
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 3
+# define MSGPACK_PP_SLOT_TEMP_2 3
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 4
+# define MSGPACK_PP_SLOT_TEMP_2 4
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 5
+# define MSGPACK_PP_SLOT_TEMP_2 5
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 6
+# define MSGPACK_PP_SLOT_TEMP_2 6
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 7
+# define MSGPACK_PP_SLOT_TEMP_2 7
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 8
+# define MSGPACK_PP_SLOT_TEMP_2 8
+# elif MSGPACK_PP_SLOT_OFFSET_3(MSGPACK_PP_VALUE) / 10UL == 9
+# define MSGPACK_PP_SLOT_TEMP_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 0
+# define MSGPACK_PP_SLOT_TEMP_1 0
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 1
+# define MSGPACK_PP_SLOT_TEMP_1 1
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 2
+# define MSGPACK_PP_SLOT_TEMP_1 2
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 3
+# define MSGPACK_PP_SLOT_TEMP_1 3
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 4
+# define MSGPACK_PP_SLOT_TEMP_1 4
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 5
+# define MSGPACK_PP_SLOT_TEMP_1 5
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 6
+# define MSGPACK_PP_SLOT_TEMP_1 6
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 7
+# define MSGPACK_PP_SLOT_TEMP_1 7
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 8
+# define MSGPACK_PP_SLOT_TEMP_1 8
+# elif MSGPACK_PP_SLOT_OFFSET_2(MSGPACK_PP_VALUE) == 9
+# define MSGPACK_PP_SLOT_TEMP_1 9
+# endif
+#
+# undef MSGPACK_PP_VALUE
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot1.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot1.hpp
new file mode 100644
index 000000000..67f6c4823
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot1.hpp
@@ -0,0 +1,267 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_SLOT_1
+#
+# undef MSGPACK_PP_SLOT_1_DIGIT_1
+# undef MSGPACK_PP_SLOT_1_DIGIT_2
+# undef MSGPACK_PP_SLOT_1_DIGIT_3
+# undef MSGPACK_PP_SLOT_1_DIGIT_4
+# undef MSGPACK_PP_SLOT_1_DIGIT_5
+# undef MSGPACK_PP_SLOT_1_DIGIT_6
+# undef MSGPACK_PP_SLOT_1_DIGIT_7
+# undef MSGPACK_PP_SLOT_1_DIGIT_8
+# undef MSGPACK_PP_SLOT_1_DIGIT_9
+# undef MSGPACK_PP_SLOT_1_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_10 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_10 0
+# elif MSGPACK_PP_SLOT_TEMP_10 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_10 1
+# elif MSGPACK_PP_SLOT_TEMP_10 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_10 2
+# elif MSGPACK_PP_SLOT_TEMP_10 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_10 3
+# elif MSGPACK_PP_SLOT_TEMP_10 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_10 4
+# elif MSGPACK_PP_SLOT_TEMP_10 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_10 5
+# elif MSGPACK_PP_SLOT_TEMP_10 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_10 6
+# elif MSGPACK_PP_SLOT_TEMP_10 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_10 7
+# elif MSGPACK_PP_SLOT_TEMP_10 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_10 8
+# elif MSGPACK_PP_SLOT_TEMP_10 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_10 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_9 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_9 0
+# elif MSGPACK_PP_SLOT_TEMP_9 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_9 1
+# elif MSGPACK_PP_SLOT_TEMP_9 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_9 2
+# elif MSGPACK_PP_SLOT_TEMP_9 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_9 3
+# elif MSGPACK_PP_SLOT_TEMP_9 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_9 4
+# elif MSGPACK_PP_SLOT_TEMP_9 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_9 5
+# elif MSGPACK_PP_SLOT_TEMP_9 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_9 6
+# elif MSGPACK_PP_SLOT_TEMP_9 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_9 7
+# elif MSGPACK_PP_SLOT_TEMP_9 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_9 8
+# elif MSGPACK_PP_SLOT_TEMP_9 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_9 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_8 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_8 0
+# elif MSGPACK_PP_SLOT_TEMP_8 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_8 1
+# elif MSGPACK_PP_SLOT_TEMP_8 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_8 2
+# elif MSGPACK_PP_SLOT_TEMP_8 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_8 3
+# elif MSGPACK_PP_SLOT_TEMP_8 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_8 4
+# elif MSGPACK_PP_SLOT_TEMP_8 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_8 5
+# elif MSGPACK_PP_SLOT_TEMP_8 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_8 6
+# elif MSGPACK_PP_SLOT_TEMP_8 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_8 7
+# elif MSGPACK_PP_SLOT_TEMP_8 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_8 8
+# elif MSGPACK_PP_SLOT_TEMP_8 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_8 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_7 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_7 0
+# elif MSGPACK_PP_SLOT_TEMP_7 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_7 1
+# elif MSGPACK_PP_SLOT_TEMP_7 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_7 2
+# elif MSGPACK_PP_SLOT_TEMP_7 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_7 3
+# elif MSGPACK_PP_SLOT_TEMP_7 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_7 4
+# elif MSGPACK_PP_SLOT_TEMP_7 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_7 5
+# elif MSGPACK_PP_SLOT_TEMP_7 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_7 6
+# elif MSGPACK_PP_SLOT_TEMP_7 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_7 7
+# elif MSGPACK_PP_SLOT_TEMP_7 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_7 8
+# elif MSGPACK_PP_SLOT_TEMP_7 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_7 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_6 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_6 0
+# elif MSGPACK_PP_SLOT_TEMP_6 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_6 1
+# elif MSGPACK_PP_SLOT_TEMP_6 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_6 2
+# elif MSGPACK_PP_SLOT_TEMP_6 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_6 3
+# elif MSGPACK_PP_SLOT_TEMP_6 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_6 4
+# elif MSGPACK_PP_SLOT_TEMP_6 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_6 5
+# elif MSGPACK_PP_SLOT_TEMP_6 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_6 6
+# elif MSGPACK_PP_SLOT_TEMP_6 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_6 7
+# elif MSGPACK_PP_SLOT_TEMP_6 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_6 8
+# elif MSGPACK_PP_SLOT_TEMP_6 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_6 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_5 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_5 0
+# elif MSGPACK_PP_SLOT_TEMP_5 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_5 1
+# elif MSGPACK_PP_SLOT_TEMP_5 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_5 2
+# elif MSGPACK_PP_SLOT_TEMP_5 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_5 3
+# elif MSGPACK_PP_SLOT_TEMP_5 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_5 4
+# elif MSGPACK_PP_SLOT_TEMP_5 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_5 5
+# elif MSGPACK_PP_SLOT_TEMP_5 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_5 6
+# elif MSGPACK_PP_SLOT_TEMP_5 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_5 7
+# elif MSGPACK_PP_SLOT_TEMP_5 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_5 8
+# elif MSGPACK_PP_SLOT_TEMP_5 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_5 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_4 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_4 0
+# elif MSGPACK_PP_SLOT_TEMP_4 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_4 1
+# elif MSGPACK_PP_SLOT_TEMP_4 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_4 2
+# elif MSGPACK_PP_SLOT_TEMP_4 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_4 3
+# elif MSGPACK_PP_SLOT_TEMP_4 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_4 4
+# elif MSGPACK_PP_SLOT_TEMP_4 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_4 5
+# elif MSGPACK_PP_SLOT_TEMP_4 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_4 6
+# elif MSGPACK_PP_SLOT_TEMP_4 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_4 7
+# elif MSGPACK_PP_SLOT_TEMP_4 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_4 8
+# elif MSGPACK_PP_SLOT_TEMP_4 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_4 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_SLOT_1_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_SLOT_1_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_SLOT_1_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_SLOT_1_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_SLOT_1_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_SLOT_1_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_SLOT_1_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_SLOT_1_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_SLOT_1_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_SLOT_1_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_SLOT_1_DIGIT_10
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_1_DIGIT_10, MSGPACK_PP_SLOT_1_DIGIT_9, MSGPACK_PP_SLOT_1_DIGIT_8, MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_9
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_1_DIGIT_9, MSGPACK_PP_SLOT_1_DIGIT_8, MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_8
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_1_DIGIT_8, MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_7
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_1_DIGIT_7, MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_6
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_1_DIGIT_6, MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_5
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_1_DIGIT_5, MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_4
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_1_DIGIT_4, MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_3
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_1_DIGIT_3, MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# elif MSGPACK_PP_SLOT_1_DIGIT_2
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_1_DIGIT_2, MSGPACK_PP_SLOT_1_DIGIT_1)
+# else
+# define MSGPACK_PP_SLOT_1() MSGPACK_PP_SLOT_1_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot2.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot2.hpp
new file mode 100644
index 000000000..bc7811e0e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot2.hpp
@@ -0,0 +1,267 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_SLOT_2
+#
+# undef MSGPACK_PP_SLOT_2_DIGIT_1
+# undef MSGPACK_PP_SLOT_2_DIGIT_2
+# undef MSGPACK_PP_SLOT_2_DIGIT_3
+# undef MSGPACK_PP_SLOT_2_DIGIT_4
+# undef MSGPACK_PP_SLOT_2_DIGIT_5
+# undef MSGPACK_PP_SLOT_2_DIGIT_6
+# undef MSGPACK_PP_SLOT_2_DIGIT_7
+# undef MSGPACK_PP_SLOT_2_DIGIT_8
+# undef MSGPACK_PP_SLOT_2_DIGIT_9
+# undef MSGPACK_PP_SLOT_2_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_10 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_10 0
+# elif MSGPACK_PP_SLOT_TEMP_10 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_10 1
+# elif MSGPACK_PP_SLOT_TEMP_10 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_10 2
+# elif MSGPACK_PP_SLOT_TEMP_10 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_10 3
+# elif MSGPACK_PP_SLOT_TEMP_10 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_10 4
+# elif MSGPACK_PP_SLOT_TEMP_10 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_10 5
+# elif MSGPACK_PP_SLOT_TEMP_10 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_10 6
+# elif MSGPACK_PP_SLOT_TEMP_10 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_10 7
+# elif MSGPACK_PP_SLOT_TEMP_10 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_10 8
+# elif MSGPACK_PP_SLOT_TEMP_10 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_10 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_9 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_9 0
+# elif MSGPACK_PP_SLOT_TEMP_9 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_9 1
+# elif MSGPACK_PP_SLOT_TEMP_9 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_9 2
+# elif MSGPACK_PP_SLOT_TEMP_9 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_9 3
+# elif MSGPACK_PP_SLOT_TEMP_9 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_9 4
+# elif MSGPACK_PP_SLOT_TEMP_9 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_9 5
+# elif MSGPACK_PP_SLOT_TEMP_9 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_9 6
+# elif MSGPACK_PP_SLOT_TEMP_9 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_9 7
+# elif MSGPACK_PP_SLOT_TEMP_9 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_9 8
+# elif MSGPACK_PP_SLOT_TEMP_9 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_9 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_8 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_8 0
+# elif MSGPACK_PP_SLOT_TEMP_8 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_8 1
+# elif MSGPACK_PP_SLOT_TEMP_8 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_8 2
+# elif MSGPACK_PP_SLOT_TEMP_8 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_8 3
+# elif MSGPACK_PP_SLOT_TEMP_8 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_8 4
+# elif MSGPACK_PP_SLOT_TEMP_8 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_8 5
+# elif MSGPACK_PP_SLOT_TEMP_8 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_8 6
+# elif MSGPACK_PP_SLOT_TEMP_8 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_8 7
+# elif MSGPACK_PP_SLOT_TEMP_8 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_8 8
+# elif MSGPACK_PP_SLOT_TEMP_8 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_8 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_7 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_7 0
+# elif MSGPACK_PP_SLOT_TEMP_7 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_7 1
+# elif MSGPACK_PP_SLOT_TEMP_7 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_7 2
+# elif MSGPACK_PP_SLOT_TEMP_7 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_7 3
+# elif MSGPACK_PP_SLOT_TEMP_7 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_7 4
+# elif MSGPACK_PP_SLOT_TEMP_7 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_7 5
+# elif MSGPACK_PP_SLOT_TEMP_7 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_7 6
+# elif MSGPACK_PP_SLOT_TEMP_7 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_7 7
+# elif MSGPACK_PP_SLOT_TEMP_7 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_7 8
+# elif MSGPACK_PP_SLOT_TEMP_7 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_7 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_6 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_6 0
+# elif MSGPACK_PP_SLOT_TEMP_6 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_6 1
+# elif MSGPACK_PP_SLOT_TEMP_6 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_6 2
+# elif MSGPACK_PP_SLOT_TEMP_6 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_6 3
+# elif MSGPACK_PP_SLOT_TEMP_6 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_6 4
+# elif MSGPACK_PP_SLOT_TEMP_6 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_6 5
+# elif MSGPACK_PP_SLOT_TEMP_6 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_6 6
+# elif MSGPACK_PP_SLOT_TEMP_6 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_6 7
+# elif MSGPACK_PP_SLOT_TEMP_6 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_6 8
+# elif MSGPACK_PP_SLOT_TEMP_6 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_6 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_5 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_5 0
+# elif MSGPACK_PP_SLOT_TEMP_5 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_5 1
+# elif MSGPACK_PP_SLOT_TEMP_5 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_5 2
+# elif MSGPACK_PP_SLOT_TEMP_5 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_5 3
+# elif MSGPACK_PP_SLOT_TEMP_5 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_5 4
+# elif MSGPACK_PP_SLOT_TEMP_5 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_5 5
+# elif MSGPACK_PP_SLOT_TEMP_5 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_5 6
+# elif MSGPACK_PP_SLOT_TEMP_5 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_5 7
+# elif MSGPACK_PP_SLOT_TEMP_5 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_5 8
+# elif MSGPACK_PP_SLOT_TEMP_5 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_5 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_4 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_4 0
+# elif MSGPACK_PP_SLOT_TEMP_4 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_4 1
+# elif MSGPACK_PP_SLOT_TEMP_4 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_4 2
+# elif MSGPACK_PP_SLOT_TEMP_4 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_4 3
+# elif MSGPACK_PP_SLOT_TEMP_4 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_4 4
+# elif MSGPACK_PP_SLOT_TEMP_4 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_4 5
+# elif MSGPACK_PP_SLOT_TEMP_4 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_4 6
+# elif MSGPACK_PP_SLOT_TEMP_4 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_4 7
+# elif MSGPACK_PP_SLOT_TEMP_4 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_4 8
+# elif MSGPACK_PP_SLOT_TEMP_4 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_4 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_SLOT_2_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_SLOT_2_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_SLOT_2_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_SLOT_2_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_SLOT_2_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_SLOT_2_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_SLOT_2_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_SLOT_2_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_SLOT_2_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_SLOT_2_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_SLOT_2_DIGIT_10
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_2_DIGIT_10, MSGPACK_PP_SLOT_2_DIGIT_9, MSGPACK_PP_SLOT_2_DIGIT_8, MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_9
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_2_DIGIT_9, MSGPACK_PP_SLOT_2_DIGIT_8, MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_8
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_2_DIGIT_8, MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_7
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_2_DIGIT_7, MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_6
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_2_DIGIT_6, MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_5
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_2_DIGIT_5, MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_4
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_2_DIGIT_4, MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_3
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_2_DIGIT_3, MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# elif MSGPACK_PP_SLOT_2_DIGIT_2
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_2_DIGIT_2, MSGPACK_PP_SLOT_2_DIGIT_1)
+# else
+# define MSGPACK_PP_SLOT_2() MSGPACK_PP_SLOT_2_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot3.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot3.hpp
new file mode 100644
index 000000000..15676bb45
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot3.hpp
@@ -0,0 +1,267 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_SLOT_3
+#
+# undef MSGPACK_PP_SLOT_3_DIGIT_1
+# undef MSGPACK_PP_SLOT_3_DIGIT_2
+# undef MSGPACK_PP_SLOT_3_DIGIT_3
+# undef MSGPACK_PP_SLOT_3_DIGIT_4
+# undef MSGPACK_PP_SLOT_3_DIGIT_5
+# undef MSGPACK_PP_SLOT_3_DIGIT_6
+# undef MSGPACK_PP_SLOT_3_DIGIT_7
+# undef MSGPACK_PP_SLOT_3_DIGIT_8
+# undef MSGPACK_PP_SLOT_3_DIGIT_9
+# undef MSGPACK_PP_SLOT_3_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_10 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_10 0
+# elif MSGPACK_PP_SLOT_TEMP_10 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_10 1
+# elif MSGPACK_PP_SLOT_TEMP_10 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_10 2
+# elif MSGPACK_PP_SLOT_TEMP_10 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_10 3
+# elif MSGPACK_PP_SLOT_TEMP_10 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_10 4
+# elif MSGPACK_PP_SLOT_TEMP_10 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_10 5
+# elif MSGPACK_PP_SLOT_TEMP_10 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_10 6
+# elif MSGPACK_PP_SLOT_TEMP_10 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_10 7
+# elif MSGPACK_PP_SLOT_TEMP_10 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_10 8
+# elif MSGPACK_PP_SLOT_TEMP_10 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_10 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_9 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_9 0
+# elif MSGPACK_PP_SLOT_TEMP_9 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_9 1
+# elif MSGPACK_PP_SLOT_TEMP_9 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_9 2
+# elif MSGPACK_PP_SLOT_TEMP_9 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_9 3
+# elif MSGPACK_PP_SLOT_TEMP_9 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_9 4
+# elif MSGPACK_PP_SLOT_TEMP_9 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_9 5
+# elif MSGPACK_PP_SLOT_TEMP_9 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_9 6
+# elif MSGPACK_PP_SLOT_TEMP_9 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_9 7
+# elif MSGPACK_PP_SLOT_TEMP_9 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_9 8
+# elif MSGPACK_PP_SLOT_TEMP_9 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_9 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_8 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_8 0
+# elif MSGPACK_PP_SLOT_TEMP_8 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_8 1
+# elif MSGPACK_PP_SLOT_TEMP_8 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_8 2
+# elif MSGPACK_PP_SLOT_TEMP_8 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_8 3
+# elif MSGPACK_PP_SLOT_TEMP_8 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_8 4
+# elif MSGPACK_PP_SLOT_TEMP_8 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_8 5
+# elif MSGPACK_PP_SLOT_TEMP_8 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_8 6
+# elif MSGPACK_PP_SLOT_TEMP_8 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_8 7
+# elif MSGPACK_PP_SLOT_TEMP_8 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_8 8
+# elif MSGPACK_PP_SLOT_TEMP_8 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_8 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_7 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_7 0
+# elif MSGPACK_PP_SLOT_TEMP_7 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_7 1
+# elif MSGPACK_PP_SLOT_TEMP_7 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_7 2
+# elif MSGPACK_PP_SLOT_TEMP_7 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_7 3
+# elif MSGPACK_PP_SLOT_TEMP_7 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_7 4
+# elif MSGPACK_PP_SLOT_TEMP_7 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_7 5
+# elif MSGPACK_PP_SLOT_TEMP_7 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_7 6
+# elif MSGPACK_PP_SLOT_TEMP_7 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_7 7
+# elif MSGPACK_PP_SLOT_TEMP_7 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_7 8
+# elif MSGPACK_PP_SLOT_TEMP_7 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_7 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_6 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_6 0
+# elif MSGPACK_PP_SLOT_TEMP_6 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_6 1
+# elif MSGPACK_PP_SLOT_TEMP_6 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_6 2
+# elif MSGPACK_PP_SLOT_TEMP_6 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_6 3
+# elif MSGPACK_PP_SLOT_TEMP_6 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_6 4
+# elif MSGPACK_PP_SLOT_TEMP_6 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_6 5
+# elif MSGPACK_PP_SLOT_TEMP_6 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_6 6
+# elif MSGPACK_PP_SLOT_TEMP_6 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_6 7
+# elif MSGPACK_PP_SLOT_TEMP_6 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_6 8
+# elif MSGPACK_PP_SLOT_TEMP_6 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_6 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_5 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_5 0
+# elif MSGPACK_PP_SLOT_TEMP_5 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_5 1
+# elif MSGPACK_PP_SLOT_TEMP_5 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_5 2
+# elif MSGPACK_PP_SLOT_TEMP_5 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_5 3
+# elif MSGPACK_PP_SLOT_TEMP_5 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_5 4
+# elif MSGPACK_PP_SLOT_TEMP_5 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_5 5
+# elif MSGPACK_PP_SLOT_TEMP_5 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_5 6
+# elif MSGPACK_PP_SLOT_TEMP_5 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_5 7
+# elif MSGPACK_PP_SLOT_TEMP_5 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_5 8
+# elif MSGPACK_PP_SLOT_TEMP_5 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_5 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_4 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_4 0
+# elif MSGPACK_PP_SLOT_TEMP_4 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_4 1
+# elif MSGPACK_PP_SLOT_TEMP_4 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_4 2
+# elif MSGPACK_PP_SLOT_TEMP_4 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_4 3
+# elif MSGPACK_PP_SLOT_TEMP_4 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_4 4
+# elif MSGPACK_PP_SLOT_TEMP_4 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_4 5
+# elif MSGPACK_PP_SLOT_TEMP_4 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_4 6
+# elif MSGPACK_PP_SLOT_TEMP_4 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_4 7
+# elif MSGPACK_PP_SLOT_TEMP_4 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_4 8
+# elif MSGPACK_PP_SLOT_TEMP_4 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_4 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_SLOT_3_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_SLOT_3_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_SLOT_3_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_SLOT_3_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_SLOT_3_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_SLOT_3_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_SLOT_3_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_SLOT_3_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_SLOT_3_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_SLOT_3_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_SLOT_3_DIGIT_10
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_3_DIGIT_10, MSGPACK_PP_SLOT_3_DIGIT_9, MSGPACK_PP_SLOT_3_DIGIT_8, MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_9
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_3_DIGIT_9, MSGPACK_PP_SLOT_3_DIGIT_8, MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_8
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_3_DIGIT_8, MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_7
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_3_DIGIT_7, MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_6
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_3_DIGIT_6, MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_5
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_3_DIGIT_5, MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_4
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_3_DIGIT_4, MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_3
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_3_DIGIT_3, MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# elif MSGPACK_PP_SLOT_3_DIGIT_2
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_3_DIGIT_2, MSGPACK_PP_SLOT_3_DIGIT_1)
+# else
+# define MSGPACK_PP_SLOT_3() MSGPACK_PP_SLOT_3_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot4.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot4.hpp
new file mode 100644
index 000000000..9a0a14fa1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot4.hpp
@@ -0,0 +1,267 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_SLOT_4
+#
+# undef MSGPACK_PP_SLOT_4_DIGIT_1
+# undef MSGPACK_PP_SLOT_4_DIGIT_2
+# undef MSGPACK_PP_SLOT_4_DIGIT_3
+# undef MSGPACK_PP_SLOT_4_DIGIT_4
+# undef MSGPACK_PP_SLOT_4_DIGIT_5
+# undef MSGPACK_PP_SLOT_4_DIGIT_6
+# undef MSGPACK_PP_SLOT_4_DIGIT_7
+# undef MSGPACK_PP_SLOT_4_DIGIT_8
+# undef MSGPACK_PP_SLOT_4_DIGIT_9
+# undef MSGPACK_PP_SLOT_4_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_10 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_10 0
+# elif MSGPACK_PP_SLOT_TEMP_10 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_10 1
+# elif MSGPACK_PP_SLOT_TEMP_10 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_10 2
+# elif MSGPACK_PP_SLOT_TEMP_10 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_10 3
+# elif MSGPACK_PP_SLOT_TEMP_10 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_10 4
+# elif MSGPACK_PP_SLOT_TEMP_10 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_10 5
+# elif MSGPACK_PP_SLOT_TEMP_10 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_10 6
+# elif MSGPACK_PP_SLOT_TEMP_10 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_10 7
+# elif MSGPACK_PP_SLOT_TEMP_10 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_10 8
+# elif MSGPACK_PP_SLOT_TEMP_10 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_10 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_9 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_9 0
+# elif MSGPACK_PP_SLOT_TEMP_9 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_9 1
+# elif MSGPACK_PP_SLOT_TEMP_9 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_9 2
+# elif MSGPACK_PP_SLOT_TEMP_9 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_9 3
+# elif MSGPACK_PP_SLOT_TEMP_9 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_9 4
+# elif MSGPACK_PP_SLOT_TEMP_9 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_9 5
+# elif MSGPACK_PP_SLOT_TEMP_9 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_9 6
+# elif MSGPACK_PP_SLOT_TEMP_9 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_9 7
+# elif MSGPACK_PP_SLOT_TEMP_9 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_9 8
+# elif MSGPACK_PP_SLOT_TEMP_9 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_9 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_8 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_8 0
+# elif MSGPACK_PP_SLOT_TEMP_8 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_8 1
+# elif MSGPACK_PP_SLOT_TEMP_8 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_8 2
+# elif MSGPACK_PP_SLOT_TEMP_8 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_8 3
+# elif MSGPACK_PP_SLOT_TEMP_8 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_8 4
+# elif MSGPACK_PP_SLOT_TEMP_8 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_8 5
+# elif MSGPACK_PP_SLOT_TEMP_8 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_8 6
+# elif MSGPACK_PP_SLOT_TEMP_8 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_8 7
+# elif MSGPACK_PP_SLOT_TEMP_8 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_8 8
+# elif MSGPACK_PP_SLOT_TEMP_8 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_8 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_7 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_7 0
+# elif MSGPACK_PP_SLOT_TEMP_7 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_7 1
+# elif MSGPACK_PP_SLOT_TEMP_7 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_7 2
+# elif MSGPACK_PP_SLOT_TEMP_7 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_7 3
+# elif MSGPACK_PP_SLOT_TEMP_7 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_7 4
+# elif MSGPACK_PP_SLOT_TEMP_7 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_7 5
+# elif MSGPACK_PP_SLOT_TEMP_7 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_7 6
+# elif MSGPACK_PP_SLOT_TEMP_7 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_7 7
+# elif MSGPACK_PP_SLOT_TEMP_7 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_7 8
+# elif MSGPACK_PP_SLOT_TEMP_7 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_7 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_6 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_6 0
+# elif MSGPACK_PP_SLOT_TEMP_6 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_6 1
+# elif MSGPACK_PP_SLOT_TEMP_6 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_6 2
+# elif MSGPACK_PP_SLOT_TEMP_6 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_6 3
+# elif MSGPACK_PP_SLOT_TEMP_6 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_6 4
+# elif MSGPACK_PP_SLOT_TEMP_6 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_6 5
+# elif MSGPACK_PP_SLOT_TEMP_6 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_6 6
+# elif MSGPACK_PP_SLOT_TEMP_6 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_6 7
+# elif MSGPACK_PP_SLOT_TEMP_6 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_6 8
+# elif MSGPACK_PP_SLOT_TEMP_6 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_6 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_5 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_5 0
+# elif MSGPACK_PP_SLOT_TEMP_5 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_5 1
+# elif MSGPACK_PP_SLOT_TEMP_5 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_5 2
+# elif MSGPACK_PP_SLOT_TEMP_5 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_5 3
+# elif MSGPACK_PP_SLOT_TEMP_5 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_5 4
+# elif MSGPACK_PP_SLOT_TEMP_5 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_5 5
+# elif MSGPACK_PP_SLOT_TEMP_5 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_5 6
+# elif MSGPACK_PP_SLOT_TEMP_5 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_5 7
+# elif MSGPACK_PP_SLOT_TEMP_5 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_5 8
+# elif MSGPACK_PP_SLOT_TEMP_5 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_5 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_4 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_4 0
+# elif MSGPACK_PP_SLOT_TEMP_4 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_4 1
+# elif MSGPACK_PP_SLOT_TEMP_4 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_4 2
+# elif MSGPACK_PP_SLOT_TEMP_4 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_4 3
+# elif MSGPACK_PP_SLOT_TEMP_4 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_4 4
+# elif MSGPACK_PP_SLOT_TEMP_4 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_4 5
+# elif MSGPACK_PP_SLOT_TEMP_4 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_4 6
+# elif MSGPACK_PP_SLOT_TEMP_4 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_4 7
+# elif MSGPACK_PP_SLOT_TEMP_4 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_4 8
+# elif MSGPACK_PP_SLOT_TEMP_4 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_4 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_SLOT_4_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_SLOT_4_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_SLOT_4_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_SLOT_4_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_SLOT_4_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_SLOT_4_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_SLOT_4_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_SLOT_4_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_SLOT_4_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_SLOT_4_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_SLOT_4_DIGIT_10
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_4_DIGIT_10, MSGPACK_PP_SLOT_4_DIGIT_9, MSGPACK_PP_SLOT_4_DIGIT_8, MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_9
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_4_DIGIT_9, MSGPACK_PP_SLOT_4_DIGIT_8, MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_8
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_4_DIGIT_8, MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_7
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_4_DIGIT_7, MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_6
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_4_DIGIT_6, MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_5
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_4_DIGIT_5, MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_4
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_4_DIGIT_4, MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_3
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_4_DIGIT_3, MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# elif MSGPACK_PP_SLOT_4_DIGIT_2
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_4_DIGIT_2, MSGPACK_PP_SLOT_4_DIGIT_1)
+# else
+# define MSGPACK_PP_SLOT_4() MSGPACK_PP_SLOT_4_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot5.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot5.hpp
new file mode 100644
index 000000000..e95703e25
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/detail/slot5.hpp
@@ -0,0 +1,267 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# include <rpc/msgpack/preprocessor/slot/detail/shared.hpp>
+#
+# undef MSGPACK_PP_SLOT_5
+#
+# undef MSGPACK_PP_SLOT_5_DIGIT_1
+# undef MSGPACK_PP_SLOT_5_DIGIT_2
+# undef MSGPACK_PP_SLOT_5_DIGIT_3
+# undef MSGPACK_PP_SLOT_5_DIGIT_4
+# undef MSGPACK_PP_SLOT_5_DIGIT_5
+# undef MSGPACK_PP_SLOT_5_DIGIT_6
+# undef MSGPACK_PP_SLOT_5_DIGIT_7
+# undef MSGPACK_PP_SLOT_5_DIGIT_8
+# undef MSGPACK_PP_SLOT_5_DIGIT_9
+# undef MSGPACK_PP_SLOT_5_DIGIT_10
+#
+# if MSGPACK_PP_SLOT_TEMP_10 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_10 0
+# elif MSGPACK_PP_SLOT_TEMP_10 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_10 1
+# elif MSGPACK_PP_SLOT_TEMP_10 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_10 2
+# elif MSGPACK_PP_SLOT_TEMP_10 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_10 3
+# elif MSGPACK_PP_SLOT_TEMP_10 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_10 4
+# elif MSGPACK_PP_SLOT_TEMP_10 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_10 5
+# elif MSGPACK_PP_SLOT_TEMP_10 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_10 6
+# elif MSGPACK_PP_SLOT_TEMP_10 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_10 7
+# elif MSGPACK_PP_SLOT_TEMP_10 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_10 8
+# elif MSGPACK_PP_SLOT_TEMP_10 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_10 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_9 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_9 0
+# elif MSGPACK_PP_SLOT_TEMP_9 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_9 1
+# elif MSGPACK_PP_SLOT_TEMP_9 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_9 2
+# elif MSGPACK_PP_SLOT_TEMP_9 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_9 3
+# elif MSGPACK_PP_SLOT_TEMP_9 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_9 4
+# elif MSGPACK_PP_SLOT_TEMP_9 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_9 5
+# elif MSGPACK_PP_SLOT_TEMP_9 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_9 6
+# elif MSGPACK_PP_SLOT_TEMP_9 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_9 7
+# elif MSGPACK_PP_SLOT_TEMP_9 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_9 8
+# elif MSGPACK_PP_SLOT_TEMP_9 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_9 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_8 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_8 0
+# elif MSGPACK_PP_SLOT_TEMP_8 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_8 1
+# elif MSGPACK_PP_SLOT_TEMP_8 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_8 2
+# elif MSGPACK_PP_SLOT_TEMP_8 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_8 3
+# elif MSGPACK_PP_SLOT_TEMP_8 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_8 4
+# elif MSGPACK_PP_SLOT_TEMP_8 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_8 5
+# elif MSGPACK_PP_SLOT_TEMP_8 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_8 6
+# elif MSGPACK_PP_SLOT_TEMP_8 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_8 7
+# elif MSGPACK_PP_SLOT_TEMP_8 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_8 8
+# elif MSGPACK_PP_SLOT_TEMP_8 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_8 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_7 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_7 0
+# elif MSGPACK_PP_SLOT_TEMP_7 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_7 1
+# elif MSGPACK_PP_SLOT_TEMP_7 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_7 2
+# elif MSGPACK_PP_SLOT_TEMP_7 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_7 3
+# elif MSGPACK_PP_SLOT_TEMP_7 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_7 4
+# elif MSGPACK_PP_SLOT_TEMP_7 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_7 5
+# elif MSGPACK_PP_SLOT_TEMP_7 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_7 6
+# elif MSGPACK_PP_SLOT_TEMP_7 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_7 7
+# elif MSGPACK_PP_SLOT_TEMP_7 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_7 8
+# elif MSGPACK_PP_SLOT_TEMP_7 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_7 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_6 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_6 0
+# elif MSGPACK_PP_SLOT_TEMP_6 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_6 1
+# elif MSGPACK_PP_SLOT_TEMP_6 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_6 2
+# elif MSGPACK_PP_SLOT_TEMP_6 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_6 3
+# elif MSGPACK_PP_SLOT_TEMP_6 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_6 4
+# elif MSGPACK_PP_SLOT_TEMP_6 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_6 5
+# elif MSGPACK_PP_SLOT_TEMP_6 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_6 6
+# elif MSGPACK_PP_SLOT_TEMP_6 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_6 7
+# elif MSGPACK_PP_SLOT_TEMP_6 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_6 8
+# elif MSGPACK_PP_SLOT_TEMP_6 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_6 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_5 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_5 0
+# elif MSGPACK_PP_SLOT_TEMP_5 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_5 1
+# elif MSGPACK_PP_SLOT_TEMP_5 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_5 2
+# elif MSGPACK_PP_SLOT_TEMP_5 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_5 3
+# elif MSGPACK_PP_SLOT_TEMP_5 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_5 4
+# elif MSGPACK_PP_SLOT_TEMP_5 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_5 5
+# elif MSGPACK_PP_SLOT_TEMP_5 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_5 6
+# elif MSGPACK_PP_SLOT_TEMP_5 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_5 7
+# elif MSGPACK_PP_SLOT_TEMP_5 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_5 8
+# elif MSGPACK_PP_SLOT_TEMP_5 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_5 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_4 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_4 0
+# elif MSGPACK_PP_SLOT_TEMP_4 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_4 1
+# elif MSGPACK_PP_SLOT_TEMP_4 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_4 2
+# elif MSGPACK_PP_SLOT_TEMP_4 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_4 3
+# elif MSGPACK_PP_SLOT_TEMP_4 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_4 4
+# elif MSGPACK_PP_SLOT_TEMP_4 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_4 5
+# elif MSGPACK_PP_SLOT_TEMP_4 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_4 6
+# elif MSGPACK_PP_SLOT_TEMP_4 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_4 7
+# elif MSGPACK_PP_SLOT_TEMP_4 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_4 8
+# elif MSGPACK_PP_SLOT_TEMP_4 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_4 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_3 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_3 0
+# elif MSGPACK_PP_SLOT_TEMP_3 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_3 1
+# elif MSGPACK_PP_SLOT_TEMP_3 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_3 2
+# elif MSGPACK_PP_SLOT_TEMP_3 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_3 3
+# elif MSGPACK_PP_SLOT_TEMP_3 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_3 4
+# elif MSGPACK_PP_SLOT_TEMP_3 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_3 5
+# elif MSGPACK_PP_SLOT_TEMP_3 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_3 6
+# elif MSGPACK_PP_SLOT_TEMP_3 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_3 7
+# elif MSGPACK_PP_SLOT_TEMP_3 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_3 8
+# elif MSGPACK_PP_SLOT_TEMP_3 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_3 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_2 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_2 0
+# elif MSGPACK_PP_SLOT_TEMP_2 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_2 1
+# elif MSGPACK_PP_SLOT_TEMP_2 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_2 2
+# elif MSGPACK_PP_SLOT_TEMP_2 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_2 3
+# elif MSGPACK_PP_SLOT_TEMP_2 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_2 4
+# elif MSGPACK_PP_SLOT_TEMP_2 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_2 5
+# elif MSGPACK_PP_SLOT_TEMP_2 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_2 6
+# elif MSGPACK_PP_SLOT_TEMP_2 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_2 7
+# elif MSGPACK_PP_SLOT_TEMP_2 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_2 8
+# elif MSGPACK_PP_SLOT_TEMP_2 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_2 9
+# endif
+#
+# if MSGPACK_PP_SLOT_TEMP_1 == 0
+# define MSGPACK_PP_SLOT_5_DIGIT_1 0
+# elif MSGPACK_PP_SLOT_TEMP_1 == 1
+# define MSGPACK_PP_SLOT_5_DIGIT_1 1
+# elif MSGPACK_PP_SLOT_TEMP_1 == 2
+# define MSGPACK_PP_SLOT_5_DIGIT_1 2
+# elif MSGPACK_PP_SLOT_TEMP_1 == 3
+# define MSGPACK_PP_SLOT_5_DIGIT_1 3
+# elif MSGPACK_PP_SLOT_TEMP_1 == 4
+# define MSGPACK_PP_SLOT_5_DIGIT_1 4
+# elif MSGPACK_PP_SLOT_TEMP_1 == 5
+# define MSGPACK_PP_SLOT_5_DIGIT_1 5
+# elif MSGPACK_PP_SLOT_TEMP_1 == 6
+# define MSGPACK_PP_SLOT_5_DIGIT_1 6
+# elif MSGPACK_PP_SLOT_TEMP_1 == 7
+# define MSGPACK_PP_SLOT_5_DIGIT_1 7
+# elif MSGPACK_PP_SLOT_TEMP_1 == 8
+# define MSGPACK_PP_SLOT_5_DIGIT_1 8
+# elif MSGPACK_PP_SLOT_TEMP_1 == 9
+# define MSGPACK_PP_SLOT_5_DIGIT_1 9
+# endif
+#
+# if MSGPACK_PP_SLOT_5_DIGIT_10
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_10(MSGPACK_PP_SLOT_5_DIGIT_10, MSGPACK_PP_SLOT_5_DIGIT_9, MSGPACK_PP_SLOT_5_DIGIT_8, MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_9
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_9(MSGPACK_PP_SLOT_5_DIGIT_9, MSGPACK_PP_SLOT_5_DIGIT_8, MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_8
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_8(MSGPACK_PP_SLOT_5_DIGIT_8, MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_7
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_7(MSGPACK_PP_SLOT_5_DIGIT_7, MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_6
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_6(MSGPACK_PP_SLOT_5_DIGIT_6, MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_5
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_5(MSGPACK_PP_SLOT_5_DIGIT_5, MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_4
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_4(MSGPACK_PP_SLOT_5_DIGIT_4, MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_3
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_3(MSGPACK_PP_SLOT_5_DIGIT_3, MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# elif MSGPACK_PP_SLOT_5_DIGIT_2
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_CC_2(MSGPACK_PP_SLOT_5_DIGIT_2, MSGPACK_PP_SLOT_5_DIGIT_1)
+# else
+# define MSGPACK_PP_SLOT_5() MSGPACK_PP_SLOT_5_DIGIT_1
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/slot.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/slot.hpp
new file mode 100644
index 000000000..5432b1719
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/slot/slot.hpp
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_SLOT_SLOT_HPP
+# define MSGPACK_PREPROCESSOR_SLOT_SLOT_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/slot/detail/def.hpp>
+#
+# /* MSGPACK_PP_ASSIGN_SLOT */
+#
+# define MSGPACK_PP_ASSIGN_SLOT(i) MSGPACK_PP_CAT(MSGPACK_PP_ASSIGN_SLOT_, i)
+#
+# define MSGPACK_PP_ASSIGN_SLOT_1 <msgpack/preprocessor/slot/detail/slot1.hpp>
+# define MSGPACK_PP_ASSIGN_SLOT_2 <msgpack/preprocessor/slot/detail/slot2.hpp>
+# define MSGPACK_PP_ASSIGN_SLOT_3 <msgpack/preprocessor/slot/detail/slot3.hpp>
+# define MSGPACK_PP_ASSIGN_SLOT_4 <msgpack/preprocessor/slot/detail/slot4.hpp>
+# define MSGPACK_PP_ASSIGN_SLOT_5 <msgpack/preprocessor/slot/detail/slot5.hpp>
+#
+# /* MSGPACK_PP_SLOT */
+#
+# define MSGPACK_PP_SLOT(i) MSGPACK_PP_CAT(MSGPACK_PP_SLOT_, i)()
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/stringize.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/stringize.hpp
new file mode 100644
index 000000000..58a760ce6
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/stringize.hpp
@@ -0,0 +1,33 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_STRINGIZE_HPP
+# define MSGPACK_PREPROCESSOR_STRINGIZE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_STRINGIZE */
+#
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_STRINGIZE(text) MSGPACK_PP_STRINGIZE_A((text))
+# define MSGPACK_PP_STRINGIZE_A(arg) MSGPACK_PP_STRINGIZE_I arg
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_STRINGIZE(text) MSGPACK_PP_STRINGIZE_OO((text))
+# define MSGPACK_PP_STRINGIZE_OO(par) MSGPACK_PP_STRINGIZE_I ## par
+# else
+# define MSGPACK_PP_STRINGIZE(text) MSGPACK_PP_STRINGIZE_I(text)
+# endif
+#
+# define MSGPACK_PP_STRINGIZE_I(text) #text
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple.hpp
new file mode 100644
index 000000000..ca6d47243
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple.hpp
@@ -0,0 +1,35 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002) */
+# /* Revised by Edward Diener (2011,2013) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_HPP
+#
+# include <rpc/msgpack/preprocessor/tuple/eat.hpp>
+# include <rpc/msgpack/preprocessor/tuple/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/enum.hpp>
+# include <rpc/msgpack/preprocessor/tuple/insert.hpp>
+# include <rpc/msgpack/preprocessor/tuple/pop_back.hpp>
+# include <rpc/msgpack/preprocessor/tuple/pop_front.hpp>
+# include <rpc/msgpack/preprocessor/tuple/push_back.hpp>
+# include <rpc/msgpack/preprocessor/tuple/push_front.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/remove.hpp>
+# include <rpc/msgpack/preprocessor/tuple/replace.hpp>
+# include <rpc/msgpack/preprocessor/tuple/reverse.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_list.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_seq.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/detail/is_single_return.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/detail/is_single_return.hpp
new file mode 100644
index 000000000..8f864ed45
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/detail/is_single_return.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_TUPLE_IS_SINGLE_RETURN */
+#
+# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/facilities/is_1.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# define MSGPACK_PP_TUPLE_IS_SINGLE_RETURN(sr,nsr,tuple) \
+ MSGPACK_PP_IIF(MSGPACK_PP_IS_1(MSGPACK_PP_TUPLE_SIZE(tuple)),sr,nsr) \
+ /**/
+# endif /* MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC */
+#
+# endif /* MSGPACK_PREPROCESSOR_TUPLE_DETAIL_IS_SINGLE_RETURN_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/eat.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/eat.hpp
new file mode 100644
index 000000000..71b64653d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/eat.hpp
@@ -0,0 +1,106 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_EAT_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_EAT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_EAT */
+#
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_EAT(...)
+# else
+# define MSGPACK_PP_EAT(x)
+# endif
+#
+# /* MSGPACK_PP_TUPLE_EAT */
+#
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_TUPLE_EAT(size) MSGPACK_PP_EAT
+# else
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_TUPLE_EAT(size) MSGPACK_PP_TUPLE_EAT_I(size)
+# else
+# define MSGPACK_PP_TUPLE_EAT(size) MSGPACK_PP_TUPLE_EAT_OO((size))
+# define MSGPACK_PP_TUPLE_EAT_OO(par) MSGPACK_PP_TUPLE_EAT_I ## par
+# endif
+# define MSGPACK_PP_TUPLE_EAT_I(size) MSGPACK_PP_TUPLE_EAT_ ## size
+# endif
+# define MSGPACK_PP_TUPLE_EAT_1(e0)
+# define MSGPACK_PP_TUPLE_EAT_2(e0, e1)
+# define MSGPACK_PP_TUPLE_EAT_3(e0, e1, e2)
+# define MSGPACK_PP_TUPLE_EAT_4(e0, e1, e2, e3)
+# define MSGPACK_PP_TUPLE_EAT_5(e0, e1, e2, e3, e4)
+# define MSGPACK_PP_TUPLE_EAT_6(e0, e1, e2, e3, e4, e5)
+# define MSGPACK_PP_TUPLE_EAT_7(e0, e1, e2, e3, e4, e5, e6)
+# define MSGPACK_PP_TUPLE_EAT_8(e0, e1, e2, e3, e4, e5, e6, e7)
+# define MSGPACK_PP_TUPLE_EAT_9(e0, e1, e2, e3, e4, e5, e6, e7, e8)
+# define MSGPACK_PP_TUPLE_EAT_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
+# define MSGPACK_PP_TUPLE_EAT_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
+# define MSGPACK_PP_TUPLE_EAT_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
+# define MSGPACK_PP_TUPLE_EAT_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
+# define MSGPACK_PP_TUPLE_EAT_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
+# define MSGPACK_PP_TUPLE_EAT_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
+# define MSGPACK_PP_TUPLE_EAT_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
+# define MSGPACK_PP_TUPLE_EAT_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
+# define MSGPACK_PP_TUPLE_EAT_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
+# define MSGPACK_PP_TUPLE_EAT_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
+# define MSGPACK_PP_TUPLE_EAT_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
+# define MSGPACK_PP_TUPLE_EAT_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
+# define MSGPACK_PP_TUPLE_EAT_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
+# define MSGPACK_PP_TUPLE_EAT_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
+# define MSGPACK_PP_TUPLE_EAT_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
+# define MSGPACK_PP_TUPLE_EAT_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
+# define MSGPACK_PP_TUPLE_EAT_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
+# define MSGPACK_PP_TUPLE_EAT_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
+# define MSGPACK_PP_TUPLE_EAT_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
+# define MSGPACK_PP_TUPLE_EAT_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
+# define MSGPACK_PP_TUPLE_EAT_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
+# define MSGPACK_PP_TUPLE_EAT_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
+# define MSGPACK_PP_TUPLE_EAT_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
+# define MSGPACK_PP_TUPLE_EAT_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
+# define MSGPACK_PP_TUPLE_EAT_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
+# define MSGPACK_PP_TUPLE_EAT_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
+# define MSGPACK_PP_TUPLE_EAT_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
+# define MSGPACK_PP_TUPLE_EAT_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
+# define MSGPACK_PP_TUPLE_EAT_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
+# define MSGPACK_PP_TUPLE_EAT_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
+# define MSGPACK_PP_TUPLE_EAT_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
+# define MSGPACK_PP_TUPLE_EAT_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
+# define MSGPACK_PP_TUPLE_EAT_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
+# define MSGPACK_PP_TUPLE_EAT_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
+# define MSGPACK_PP_TUPLE_EAT_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
+# define MSGPACK_PP_TUPLE_EAT_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
+# define MSGPACK_PP_TUPLE_EAT_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
+# define MSGPACK_PP_TUPLE_EAT_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
+# define MSGPACK_PP_TUPLE_EAT_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
+# define MSGPACK_PP_TUPLE_EAT_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
+# define MSGPACK_PP_TUPLE_EAT_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
+# define MSGPACK_PP_TUPLE_EAT_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
+# define MSGPACK_PP_TUPLE_EAT_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
+# define MSGPACK_PP_TUPLE_EAT_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
+# define MSGPACK_PP_TUPLE_EAT_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
+# define MSGPACK_PP_TUPLE_EAT_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
+# define MSGPACK_PP_TUPLE_EAT_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
+# define MSGPACK_PP_TUPLE_EAT_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
+# define MSGPACK_PP_TUPLE_EAT_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
+# define MSGPACK_PP_TUPLE_EAT_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
+# define MSGPACK_PP_TUPLE_EAT_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
+# define MSGPACK_PP_TUPLE_EAT_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
+# define MSGPACK_PP_TUPLE_EAT_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
+# define MSGPACK_PP_TUPLE_EAT_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
+# define MSGPACK_PP_TUPLE_EAT_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/elem.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/elem.hpp
new file mode 100644
index 000000000..badc6ea0e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/elem.hpp
@@ -0,0 +1,201 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011,2014) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_ELEM_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_ELEM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/expand.hpp>
+# include <rpc/msgpack/preprocessor/facilities/overload.hpp>
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+# include <rpc/msgpack/preprocessor/variadic/elem.hpp>
+# include <rpc/msgpack/preprocessor/tuple/detail/is_single_return.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_TUPLE_ELEM(...) MSGPACK_PP_TUPLE_ELEM_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
+# define MSGPACK_PP_TUPLE_ELEM_I(m, args) MSGPACK_PP_TUPLE_ELEM_II(m, args)
+# define MSGPACK_PP_TUPLE_ELEM_II(m, args) MSGPACK_PP_CAT(m ## args,)
+/*
+ Use MSGPACK_PP_REM_CAT if it is a single element tuple ( which might be empty )
+ else use MSGPACK_PP_REM. This fixes a VC++ problem with an empty tuple and MSGPACK_PP_TUPLE_ELEM
+ functionality. See tuple_elem_bug_test.cxx.
+*/
+# define MSGPACK_PP_TUPLE_ELEM_O_2(n, tuple) \
+ MSGPACK_PP_VARIADIC_ELEM(n, MSGPACK_PP_EXPAND(MSGPACK_PP_TUPLE_IS_SINGLE_RETURN(MSGPACK_PP_REM_CAT,MSGPACK_PP_REM,tuple) tuple)) \
+ /**/
+# else
+# define MSGPACK_PP_TUPLE_ELEM(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__)
+# define MSGPACK_PP_TUPLE_ELEM_O_2(n, tuple) MSGPACK_PP_VARIADIC_ELEM(n, MSGPACK_PP_REM tuple)
+# endif
+# define MSGPACK_PP_TUPLE_ELEM_O_3(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_O_2(n, tuple)
+# else
+# if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_TUPLE_ELEM(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_I(MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_, n), MSGPACK_PP_CAT(MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_E_, size), tuple))
+# define MSGPACK_PP_TUPLE_ELEM_I(m, args) MSGPACK_PP_TUPLE_ELEM_II(m, args)
+# define MSGPACK_PP_TUPLE_ELEM_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# elif MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_TUPLE_ELEM(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_I_OO((size, n, tuple))
+# define MSGPACK_PP_TUPLE_ELEM_I_OO(par) MSGPACK_PP_TUPLE_ELEM_I ## par
+# define MSGPACK_PP_TUPLE_ELEM_I(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_II((n, MSGPACK_PP_TUPLE_ELEM_E_ ## size ## tuple))
+# define MSGPACK_PP_TUPLE_ELEM_II(par) MSGPACK_PP_TUPLE_ELEM_III_OO(par)
+# define MSGPACK_PP_TUPLE_ELEM_III_OO(par) MSGPACK_PP_TUPLE_ELEM_III ## par
+# define MSGPACK_PP_TUPLE_ELEM_III(n, etuple) MSGPACK_PP_TUPLE_ELEM_ ## n ## etuple
+# else
+# define MSGPACK_PP_TUPLE_ELEM(size, n, tuple) MSGPACK_PP_TUPLE_ELEM_I(MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_, n) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_ELEM_E_, size) tuple)
+# define MSGPACK_PP_TUPLE_ELEM_I(x) x
+# endif
+# define MSGPACK_PP_TUPLE_ELEM_E_1(e0) (e0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_2(e0, e1) (e0, e1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_3(e0, e1, e2) (e0, e1, e2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_4(e0, e1, e2, e3) (e0, e1, e2, e3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_5(e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_6(e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_7(e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ?, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ?, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ?, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ?, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ?, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ?, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ?, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ?)
+# define MSGPACK_PP_TUPLE_ELEM_E_64
+# define MSGPACK_PP_TUPLE_ELEM_0(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0
+# define MSGPACK_PP_TUPLE_ELEM_1(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e1
+# define MSGPACK_PP_TUPLE_ELEM_2(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e2
+# define MSGPACK_PP_TUPLE_ELEM_3(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e3
+# define MSGPACK_PP_TUPLE_ELEM_4(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e4
+# define MSGPACK_PP_TUPLE_ELEM_5(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e5
+# define MSGPACK_PP_TUPLE_ELEM_6(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e6
+# define MSGPACK_PP_TUPLE_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e7
+# define MSGPACK_PP_TUPLE_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e8
+# define MSGPACK_PP_TUPLE_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e9
+# define MSGPACK_PP_TUPLE_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e10
+# define MSGPACK_PP_TUPLE_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e11
+# define MSGPACK_PP_TUPLE_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e12
+# define MSGPACK_PP_TUPLE_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e13
+# define MSGPACK_PP_TUPLE_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e14
+# define MSGPACK_PP_TUPLE_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e15
+# define MSGPACK_PP_TUPLE_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e16
+# define MSGPACK_PP_TUPLE_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e17
+# define MSGPACK_PP_TUPLE_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e18
+# define MSGPACK_PP_TUPLE_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e19
+# define MSGPACK_PP_TUPLE_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e20
+# define MSGPACK_PP_TUPLE_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e21
+# define MSGPACK_PP_TUPLE_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e22
+# define MSGPACK_PP_TUPLE_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e23
+# define MSGPACK_PP_TUPLE_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e24
+# define MSGPACK_PP_TUPLE_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e25
+# define MSGPACK_PP_TUPLE_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e26
+# define MSGPACK_PP_TUPLE_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e27
+# define MSGPACK_PP_TUPLE_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e28
+# define MSGPACK_PP_TUPLE_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e29
+# define MSGPACK_PP_TUPLE_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e30
+# define MSGPACK_PP_TUPLE_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e31
+# define MSGPACK_PP_TUPLE_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e32
+# define MSGPACK_PP_TUPLE_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e33
+# define MSGPACK_PP_TUPLE_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e34
+# define MSGPACK_PP_TUPLE_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e35
+# define MSGPACK_PP_TUPLE_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e36
+# define MSGPACK_PP_TUPLE_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e37
+# define MSGPACK_PP_TUPLE_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e38
+# define MSGPACK_PP_TUPLE_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e39
+# define MSGPACK_PP_TUPLE_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e40
+# define MSGPACK_PP_TUPLE_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e41
+# define MSGPACK_PP_TUPLE_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e42
+# define MSGPACK_PP_TUPLE_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e43
+# define MSGPACK_PP_TUPLE_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e44
+# define MSGPACK_PP_TUPLE_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e45
+# define MSGPACK_PP_TUPLE_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e46
+# define MSGPACK_PP_TUPLE_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e47
+# define MSGPACK_PP_TUPLE_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e48
+# define MSGPACK_PP_TUPLE_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e49
+# define MSGPACK_PP_TUPLE_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e50
+# define MSGPACK_PP_TUPLE_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e51
+# define MSGPACK_PP_TUPLE_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e52
+# define MSGPACK_PP_TUPLE_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e53
+# define MSGPACK_PP_TUPLE_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e54
+# define MSGPACK_PP_TUPLE_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e55
+# define MSGPACK_PP_TUPLE_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e56
+# define MSGPACK_PP_TUPLE_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e57
+# define MSGPACK_PP_TUPLE_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e58
+# define MSGPACK_PP_TUPLE_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e59
+# define MSGPACK_PP_TUPLE_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e60
+# define MSGPACK_PP_TUPLE_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e61
+# define MSGPACK_PP_TUPLE_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e62
+# define MSGPACK_PP_TUPLE_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e63
+# endif
+#
+# /* directly used elsewhere in Boost... */
+#
+# define MSGPACK_PP_TUPLE_ELEM_1_0(a) a
+#
+# define MSGPACK_PP_TUPLE_ELEM_2_0(a, b) a
+# define MSGPACK_PP_TUPLE_ELEM_2_1(a, b) b
+#
+# define MSGPACK_PP_TUPLE_ELEM_3_0(a, b, c) a
+# define MSGPACK_PP_TUPLE_ELEM_3_1(a, b, c) b
+# define MSGPACK_PP_TUPLE_ELEM_3_2(a, b, c) c
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/enum.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/enum.hpp
new file mode 100644
index 000000000..02a7eac32
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/enum.hpp
@@ -0,0 +1,22 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_ENUM_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_ENUM_HPP
+#
+# include <rpc/msgpack/preprocessor/tuple/rem.hpp>
+#
+# /* MSGPACK_PP_TUPLE_ENUM */
+#
+# define MSGPACK_PP_TUPLE_ENUM MSGPACK_PP_TUPLE_REM_CTOR
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/insert.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/insert.hpp
new file mode 100644
index 000000000..a602a6dc3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/insert.hpp
@@ -0,0 +1,37 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2013.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_INSERT_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_INSERT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/array/insert.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+#
+# /* MSGPACK_PP_TUPLE_INSERT */
+#
+# define MSGPACK_PP_TUPLE_INSERT(tuple, i, elem) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_INSERT(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
+/**/
+#
+# /* MSGPACK_PP_TUPLE_INSERT_D */
+#
+# define MSGPACK_PP_TUPLE_INSERT_D(d, tuple, i, elem) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_INSERT_D(d, MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
+/**/
+#
+# endif // MSGPACK_PP_VARIADICS
+#
+# endif // MSGPACK_PREPROCESSOR_TUPLE_INSERT_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_back.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_back.hpp
new file mode 100644
index 000000000..3f7dfcb5a
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_back.hpp
@@ -0,0 +1,64 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2013.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_POP_BACK_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_POP_BACK_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/array/pop_back.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/comparison/greater.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+#
+# /* MSGPACK_PP_TUPLE_POP_BACK */
+#
+# define MSGPACK_PP_TUPLE_POP_BACK(tuple) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
+ MSGPACK_PP_TUPLE_POP_BACK_EXEC, \
+ MSGPACK_PP_TUPLE_POP_BACK_RETURN \
+ ) \
+ (tuple) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_BACK_EXEC(tuple) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_BACK(MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_BACK_RETURN(tuple) tuple
+#
+# /* MSGPACK_PP_TUPLE_POP_BACK_Z */
+#
+# define MSGPACK_PP_TUPLE_POP_BACK_Z(z, tuple) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
+ MSGPACK_PP_TUPLE_POP_BACK_Z_EXEC, \
+ MSGPACK_PP_TUPLE_POP_BACK_Z_RETURN \
+ ) \
+ (z, tuple) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_BACK_Z_EXEC(z, tuple) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_BACK_Z(z, MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_BACK_Z_RETURN(z, tuple) tuple
+#
+# endif // MSGPACK_PP_VARIADICS
+#
+# endif // MSGPACK_PREPROCESSOR_TUPLE_POP_BACK_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_front.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_front.hpp
new file mode 100644
index 000000000..771dd2498
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/pop_front.hpp
@@ -0,0 +1,65 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2013.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/array/pop_front.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/comparison/greater.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+#
+#
+# /* MSGPACK_PP_TUPLE_POP_FRONT */
+#
+# define MSGPACK_PP_TUPLE_POP_FRONT(tuple) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
+ MSGPACK_PP_TUPLE_POP_FRONT_EXEC, \
+ MSGPACK_PP_TUPLE_POP_FRONT_RETURN \
+ ) \
+ (tuple) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_FRONT_EXEC(tuple) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_FRONT(MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_FRONT_RETURN(tuple) tuple
+#
+# /* MSGPACK_PP_TUPLE_POP_FRONT_Z */
+#
+# define MSGPACK_PP_TUPLE_POP_FRONT_Z(z, tuple) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
+ MSGPACK_PP_TUPLE_POP_FRONT_Z_EXEC, \
+ MSGPACK_PP_TUPLE_POP_FRONT_Z_RETURN \
+ ) \
+ (z, tuple) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_FRONT_Z_EXEC(z, tuple) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_POP_FRONT_Z(z, MSGPACK_PP_TUPLE_TO_ARRAY(tuple))) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_POP_FRONT_Z_RETURN(z, tuple) tuple
+#
+# endif // MSGPACK_PP_VARIADICS
+#
+# endif // MSGPACK_PREPROCESSOR_TUPLE_POP_FRONT_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_back.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_back.hpp
new file mode 100644
index 000000000..ee4a5b4eb
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_back.hpp
@@ -0,0 +1,31 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2013.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_PUSH_BACK_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_PUSH_BACK_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/array/push_back.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+#
+# /* MSGPACK_PP_TUPLE_PUSH_BACK */
+#
+# define MSGPACK_PP_TUPLE_PUSH_BACK(tuple, elem) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_PUSH_BACK(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), elem)) \
+/**/
+#
+# endif // MSGPACK_PP_VARIADICS
+#
+# endif // MSGPACK_PREPROCESSOR_TUPLE_PUSH_BACK_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_front.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_front.hpp
new file mode 100644
index 000000000..b9f9c31e3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/push_front.hpp
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2013.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/array/push_front.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+#
+#
+# /* MSGPACK_PP_TUPLE_PUSH_FRONT */
+#
+# define MSGPACK_PP_TUPLE_PUSH_FRONT(tuple, elem) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_PUSH_FRONT(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), elem)) \
+/**/
+#
+# endif // MSGPACK_PP_VARIADICS
+#
+# endif // MSGPACK_PREPROCESSOR_TUPLE_PUSH_FRONT_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/rem.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/rem.hpp
new file mode 100644
index 000000000..e6b65e8ea
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/rem.hpp
@@ -0,0 +1,149 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011,2013. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_REM_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_REM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/expand.hpp>
+# include <rpc/msgpack/preprocessor/facilities/overload.hpp>
+# include <rpc/msgpack/preprocessor/tuple/detail/is_single_return.hpp>
+#
+# /* MSGPACK_PP_REM */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+ /* To be used internally when __VA_ARGS__ could be empty ( or is a single element ) */
+# define MSGPACK_PP_REM_CAT(...) MSGPACK_PP_CAT(__VA_ARGS__,)
+# endif
+# define MSGPACK_PP_REM(...) __VA_ARGS__
+# else
+# define MSGPACK_PP_REM(x) x
+# endif
+#
+# /* MSGPACK_PP_TUPLE_REM */
+#
+/*
+ VC++8.0 cannot handle the variadic version of MSGPACK_PP_TUPLE_REM(size)
+*/
+# if MSGPACK_PP_VARIADICS && !(MSGPACK_PP_VARIADICS_MSVC && _MSC_VER <= 1400)
+# if MSGPACK_PP_VARIADICS_MSVC
+ /* To be used internally when the size could be 0 ( or 1 ) */
+# define MSGPACK_PP_TUPLE_REM_CAT(size) MSGPACK_PP_REM_CAT
+# endif
+# define MSGPACK_PP_TUPLE_REM(size) MSGPACK_PP_REM
+# else
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_TUPLE_REM(size) MSGPACK_PP_TUPLE_REM_I(size)
+# else
+# define MSGPACK_PP_TUPLE_REM(size) MSGPACK_PP_TUPLE_REM_OO((size))
+# define MSGPACK_PP_TUPLE_REM_OO(par) MSGPACK_PP_TUPLE_REM_I ## par
+# endif
+# define MSGPACK_PP_TUPLE_REM_I(size) MSGPACK_PP_TUPLE_REM_ ## size
+# endif
+# define MSGPACK_PP_TUPLE_REM_0()
+# define MSGPACK_PP_TUPLE_REM_1(e0) e0
+# define MSGPACK_PP_TUPLE_REM_2(e0, e1) e0, e1
+# define MSGPACK_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2
+# define MSGPACK_PP_TUPLE_REM_4(e0, e1, e2, e3) e0, e1, e2, e3
+# define MSGPACK_PP_TUPLE_REM_5(e0, e1, e2, e3, e4) e0, e1, e2, e3, e4
+# define MSGPACK_PP_TUPLE_REM_6(e0, e1, e2, e3, e4, e5) e0, e1, e2, e3, e4, e5
+# define MSGPACK_PP_TUPLE_REM_7(e0, e1, e2, e3, e4, e5, e6) e0, e1, e2, e3, e4, e5, e6
+# define MSGPACK_PP_TUPLE_REM_8(e0, e1, e2, e3, e4, e5, e6, e7) e0, e1, e2, e3, e4, e5, e6, e7
+# define MSGPACK_PP_TUPLE_REM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) e0, e1, e2, e3, e4, e5, e6, e7, e8
+# define MSGPACK_PP_TUPLE_REM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9
+# define MSGPACK_PP_TUPLE_REM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10
+# define MSGPACK_PP_TUPLE_REM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11
+# define MSGPACK_PP_TUPLE_REM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12
+# define MSGPACK_PP_TUPLE_REM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13
+# define MSGPACK_PP_TUPLE_REM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14
+# define MSGPACK_PP_TUPLE_REM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15
+# define MSGPACK_PP_TUPLE_REM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16
+# define MSGPACK_PP_TUPLE_REM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17
+# define MSGPACK_PP_TUPLE_REM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18
+# define MSGPACK_PP_TUPLE_REM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19
+# define MSGPACK_PP_TUPLE_REM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20
+# define MSGPACK_PP_TUPLE_REM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21
+# define MSGPACK_PP_TUPLE_REM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22
+# define MSGPACK_PP_TUPLE_REM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23
+# define MSGPACK_PP_TUPLE_REM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24
+# define MSGPACK_PP_TUPLE_REM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25
+# define MSGPACK_PP_TUPLE_REM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26
+# define MSGPACK_PP_TUPLE_REM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27
+# define MSGPACK_PP_TUPLE_REM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28
+# define MSGPACK_PP_TUPLE_REM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29
+# define MSGPACK_PP_TUPLE_REM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30
+# define MSGPACK_PP_TUPLE_REM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31
+# define MSGPACK_PP_TUPLE_REM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32
+# define MSGPACK_PP_TUPLE_REM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33
+# define MSGPACK_PP_TUPLE_REM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34
+# define MSGPACK_PP_TUPLE_REM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35
+# define MSGPACK_PP_TUPLE_REM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36
+# define MSGPACK_PP_TUPLE_REM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37
+# define MSGPACK_PP_TUPLE_REM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38
+# define MSGPACK_PP_TUPLE_REM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39
+# define MSGPACK_PP_TUPLE_REM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40
+# define MSGPACK_PP_TUPLE_REM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41
+# define MSGPACK_PP_TUPLE_REM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42
+# define MSGPACK_PP_TUPLE_REM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43
+# define MSGPACK_PP_TUPLE_REM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44
+# define MSGPACK_PP_TUPLE_REM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45
+# define MSGPACK_PP_TUPLE_REM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46
+# define MSGPACK_PP_TUPLE_REM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47
+# define MSGPACK_PP_TUPLE_REM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48
+# define MSGPACK_PP_TUPLE_REM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49
+# define MSGPACK_PP_TUPLE_REM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50
+# define MSGPACK_PP_TUPLE_REM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51
+# define MSGPACK_PP_TUPLE_REM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52
+# define MSGPACK_PP_TUPLE_REM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53
+# define MSGPACK_PP_TUPLE_REM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54
+# define MSGPACK_PP_TUPLE_REM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55
+# define MSGPACK_PP_TUPLE_REM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56
+# define MSGPACK_PP_TUPLE_REM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57
+# define MSGPACK_PP_TUPLE_REM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58
+# define MSGPACK_PP_TUPLE_REM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59
+# define MSGPACK_PP_TUPLE_REM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60
+# define MSGPACK_PP_TUPLE_REM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61
+# define MSGPACK_PP_TUPLE_REM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62
+# define MSGPACK_PP_TUPLE_REM_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63
+#
+# /* MSGPACK_PP_TUPLE_REM_CTOR */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_TUPLE_REM_CTOR(...) MSGPACK_PP_TUPLE_REM_CTOR_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
+# define MSGPACK_PP_TUPLE_REM_CTOR_I(m, args) MSGPACK_PP_TUPLE_REM_CTOR_II(m, args)
+# define MSGPACK_PP_TUPLE_REM_CTOR_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# define MSGPACK_PP_TUPLE_REM_CTOR_O_1(tuple) MSGPACK_PP_EXPAND(MSGPACK_PP_TUPLE_IS_SINGLE_RETURN(MSGPACK_PP_REM_CAT,MSGPACK_PP_REM,tuple) tuple)
+# else
+# define MSGPACK_PP_TUPLE_REM_CTOR(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__)
+# define MSGPACK_PP_TUPLE_REM_CTOR_O_1(tuple) MSGPACK_PP_REM tuple
+# endif
+# define MSGPACK_PP_TUPLE_REM_CTOR_O_2(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_O_1(tuple)
+# else
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_EDG()
+# define MSGPACK_PP_TUPLE_REM_CTOR(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_I(MSGPACK_PP_TUPLE_REM(size), tuple)
+# else
+# define MSGPACK_PP_TUPLE_REM_CTOR(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_D(size, tuple)
+# define MSGPACK_PP_TUPLE_REM_CTOR_D(size, tuple) MSGPACK_PP_TUPLE_REM_CTOR_I(MSGPACK_PP_TUPLE_REM(size), tuple)
+# endif
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
+# else
+# define MSGPACK_PP_TUPLE_REM_CTOR_I(ext, tuple) MSGPACK_PP_TUPLE_REM_CTOR_OO((ext, tuple))
+# define MSGPACK_PP_TUPLE_REM_CTOR_OO(par) MSGPACK_PP_TUPLE_REM_CTOR_II ## par
+# define MSGPACK_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple
+# endif
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/remove.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/remove.hpp
new file mode 100644
index 000000000..71905935f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/remove.hpp
@@ -0,0 +1,64 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2013.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/array/remove.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/comparison/greater.hpp>
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+#
+# /* MSGPACK_PP_TUPLE_REMOVE */
+#
+# define MSGPACK_PP_TUPLE_REMOVE(tuple, i) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_GREATER(MSGPACK_PP_TUPLE_SIZE(tuple),1), \
+ MSGPACK_PP_TUPLE_REMOVE_EXEC, \
+ MSGPACK_PP_TUPLE_REMOVE_RETURN \
+ ) \
+ (tuple, i) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_REMOVE_EXEC(tuple, i) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REMOVE(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i)) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_REMOVE_RETURN(tuple, i) tuple
+#
+# /* MSGPACK_PP_TUPLE_REMOVE_D */
+#
+# define MSGPACK_PP_TUPLE_REMOVE_D(d, tuple, i) \
+ MSGPACK_PP_IIF \
+ ( \
+ MSGPACK_PP_GREATER_D(d, MSGPACK_PP_TUPLE_SIZE(tuple), 1), \
+ MSGPACK_PP_TUPLE_REMOVE_D_EXEC, \
+ MSGPACK_PP_TUPLE_REMOVE_D_RETURN \
+ ) \
+ (d, tuple, i) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_REMOVE_D_EXEC(d, tuple, i) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REMOVE_D(d, MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i)) \
+/**/
+#
+# define MSGPACK_PP_TUPLE_REMOVE_D_RETURN(d, tuple, i) tuple
+#
+# endif // MSGPACK_PP_VARIADICS
+#
+# endif // MSGPACK_PREPROCESSOR_TUPLE_REMOVE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/replace.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/replace.hpp
new file mode 100644
index 000000000..67c81f977
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/replace.hpp
@@ -0,0 +1,37 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2013.
+# * 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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_REPLACE_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_REPLACE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+#
+# include <rpc/msgpack/preprocessor/array/replace.hpp>
+# include <rpc/msgpack/preprocessor/array/to_tuple.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+#
+# /* MSGPACK_PP_TUPLE_REPLACE */
+#
+# define MSGPACK_PP_TUPLE_REPLACE(tuple, i, elem) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REPLACE(MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
+/**/
+#
+# /* MSGPACK_PP_TUPLE_REPLACE_D */
+#
+# define MSGPACK_PP_TUPLE_REPLACE_D(d, tuple, i, elem) \
+ MSGPACK_PP_ARRAY_TO_TUPLE(MSGPACK_PP_ARRAY_REPLACE_D(d, MSGPACK_PP_TUPLE_TO_ARRAY(tuple), i, elem)) \
+/**/
+#
+# endif // MSGPACK_PP_VARIADICS
+#
+# endif // MSGPACK_PREPROCESSOR_TUPLE_REPLACE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/reverse.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/reverse.hpp
new file mode 100644
index 000000000..2ca95494c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/reverse.hpp
@@ -0,0 +1,117 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_REVERSE_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_REVERSE_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/overload.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+#
+# /* MSGPACK_PP_TUPLE_REVERSE */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_TUPLE_REVERSE(...) MSGPACK_PP_TUPLE_REVERSE_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REVERSE_O_, __VA_ARGS__), (__VA_ARGS__))
+# define MSGPACK_PP_TUPLE_REVERSE_I(m, args) MSGPACK_PP_TUPLE_REVERSE_II(m, args)
+# define MSGPACK_PP_TUPLE_REVERSE_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# define MSGPACK_PP_TUPLE_REVERSE_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_REVERSE_, MSGPACK_PP_TUPLE_SIZE(tuple)) tuple
+# else
+# define MSGPACK_PP_TUPLE_REVERSE(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_REVERSE_O_, __VA_ARGS__)(__VA_ARGS__)
+# define MSGPACK_PP_TUPLE_REVERSE_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_REVERSE_, MSGPACK_PP_VARIADIC_SIZE tuple) tuple
+# endif
+# define MSGPACK_PP_TUPLE_REVERSE_O_2(size, tuple) MSGPACK_PP_TUPLE_REVERSE_O_1(tuple)
+# else
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_TUPLE_REVERSE(size, tuple) MSGPACK_PP_TUPLE_REVERSE_I(size, tuple)
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_TUPLE_REVERSE_I(s, t) MSGPACK_PP_TUPLE_REVERSE_ ## s t
+# else
+# define MSGPACK_PP_TUPLE_REVERSE_I(s, t) MSGPACK_PP_TUPLE_REVERSE_II(MSGPACK_PP_TUPLE_REVERSE_ ## s t)
+# define MSGPACK_PP_TUPLE_REVERSE_II(res) res
+# endif
+# else
+# define MSGPACK_PP_TUPLE_REVERSE(size, tuple) MSGPACK_PP_TUPLE_REVERSE_OO((size, tuple))
+# define MSGPACK_PP_TUPLE_REVERSE_OO(par) MSGPACK_PP_TUPLE_REVERSE_I ## par
+# define MSGPACK_PP_TUPLE_REVERSE_I(s, t) MSGPACK_PP_TUPLE_REVERSE_ ## s ## t
+# endif
+# endif
+# define MSGPACK_PP_TUPLE_REVERSE_1(e0) (e0)
+# define MSGPACK_PP_TUPLE_REVERSE_2(e0, e1) (e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_3(e0, e1, e2) (e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_4(e0, e1, e2, e3) (e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_5(e0, e1, e2, e3, e4) (e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_6(e0, e1, e2, e3, e4, e5) (e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_7(e0, e1, e2, e3, e4, e5, e6) (e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_8(e0, e1, e2, e3, e4, e5, e6, e7) (e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+# define MSGPACK_PP_TUPLE_REVERSE_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e63, e62, e61, e60, e59, e58, e57, e56, e55, e54, e53, e52, e51, e50, e49, e48, e47, e46, e45, e44, e43, e42, e41, e40, e39, e38, e37, e36, e35, e34, e33, e32, e31, e30, e29, e28, e27, e26, e25, e24, e23, e22, e21, e20, e19, e18, e17, e16, e15, e14, e13, e12, e11, e10, e9, e8, e7, e6, e5, e4, e3, e2, e1, e0)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/size.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/size.hpp
new file mode 100644
index 000000000..953fc7dab
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/size.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_SIZE_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_SIZE_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_TUPLE_SIZE(tuple) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_SIZE tuple,)
+# else
+# define MSGPACK_PP_TUPLE_SIZE(tuple) MSGPACK_PP_VARIADIC_SIZE tuple
+# endif
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_array.hpp
new file mode 100644
index 000000000..d5868c455
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_array.hpp
@@ -0,0 +1,39 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_TO_ARRAY_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_TO_ARRAY_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/overload.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+#
+# /* MSGPACK_PP_TUPLE_TO_ARRAY */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_TUPLE_TO_ARRAY(...) MSGPACK_PP_TUPLE_TO_ARRAY_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_ARRAY_, __VA_ARGS__), (__VA_ARGS__))
+# define MSGPACK_PP_TUPLE_TO_ARRAY_I(m, args) MSGPACK_PP_TUPLE_TO_ARRAY_II(m, args)
+# define MSGPACK_PP_TUPLE_TO_ARRAY_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# define MSGPACK_PP_TUPLE_TO_ARRAY_1(tuple) (MSGPACK_PP_TUPLE_SIZE(tuple), tuple)
+# else
+# define MSGPACK_PP_TUPLE_TO_ARRAY(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_ARRAY_, __VA_ARGS__)(__VA_ARGS__)
+# define MSGPACK_PP_TUPLE_TO_ARRAY_1(tuple) (MSGPACK_PP_VARIADIC_SIZE tuple, tuple)
+# endif
+# define MSGPACK_PP_TUPLE_TO_ARRAY_2(size, tuple) (size, tuple)
+# else
+# define MSGPACK_PP_TUPLE_TO_ARRAY(size, tuple) (size, tuple)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_list.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_list.hpp
new file mode 100644
index 000000000..db8c306c7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_list.hpp
@@ -0,0 +1,118 @@
+# /* Copyright (C) 2001
+# * Housemarque Oy
+# * http://www.housemarque.com
+# *
+# * 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 Paul Mensonides (2002-2011) */
+# /* Revised by Edward Diener (2011) */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_TO_LIST_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_TO_LIST_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/overload.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+#
+# /* MSGPACK_PP_TUPLE_TO_LIST */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_TUPLE_TO_LIST(...) MSGPACK_PP_TUPLE_TO_LIST_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
+# define MSGPACK_PP_TUPLE_TO_LIST_I(m, args) MSGPACK_PP_TUPLE_TO_LIST_II(m, args)
+# define MSGPACK_PP_TUPLE_TO_LIST_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# define MSGPACK_PP_TUPLE_TO_LIST_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_LIST_, MSGPACK_PP_TUPLE_SIZE(tuple)) tuple
+# else
+# define MSGPACK_PP_TUPLE_TO_LIST(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__)
+# define MSGPACK_PP_TUPLE_TO_LIST_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_LIST_, MSGPACK_PP_VARIADIC_SIZE tuple) tuple
+# endif
+# define MSGPACK_PP_TUPLE_TO_LIST_O_2(size, tuple) MSGPACK_PP_TUPLE_TO_LIST_O_1(tuple)
+# else
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_TUPLE_TO_LIST(size, tuple) MSGPACK_PP_TUPLE_TO_LIST_I(size, tuple)
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_TUPLE_TO_LIST_I(s, t) MSGPACK_PP_TUPLE_TO_LIST_ ## s t
+# else
+# define MSGPACK_PP_TUPLE_TO_LIST_I(s, t) MSGPACK_PP_TUPLE_TO_LIST_II(MSGPACK_PP_TUPLE_TO_LIST_ ## s t)
+# define MSGPACK_PP_TUPLE_TO_LIST_II(res) res
+# endif
+# else
+# define MSGPACK_PP_TUPLE_TO_LIST(size, tuple) MSGPACK_PP_TUPLE_TO_LIST_OO((size, tuple))
+# define MSGPACK_PP_TUPLE_TO_LIST_OO(par) MSGPACK_PP_TUPLE_TO_LIST_I ## par
+# define MSGPACK_PP_TUPLE_TO_LIST_I(s, t) MSGPACK_PP_TUPLE_TO_LIST_ ## s ## t
+# endif
+# endif
+#
+# define MSGPACK_PP_TUPLE_TO_LIST_1(e0) (e0, MSGPACK_PP_NIL)
+# define MSGPACK_PP_TUPLE_TO_LIST_2(e0, e1) (e0, (e1, MSGPACK_PP_NIL))
+# define MSGPACK_PP_TUPLE_TO_LIST_3(e0, e1, e2) (e0, (e1, (e2, MSGPACK_PP_NIL)))
+# define MSGPACK_PP_TUPLE_TO_LIST_4(e0, e1, e2, e3) (e0, (e1, (e2, (e3, MSGPACK_PP_NIL))))
+# define MSGPACK_PP_TUPLE_TO_LIST_5(e0, e1, e2, e3, e4) (e0, (e1, (e2, (e3, (e4, MSGPACK_PP_NIL)))))
+# define MSGPACK_PP_TUPLE_TO_LIST_6(e0, e1, e2, e3, e4, e5) (e0, (e1, (e2, (e3, (e4, (e5, MSGPACK_PP_NIL))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_7(e0, e1, e2, e3, e4, e5, e6) (e0, (e1, (e2, (e3, (e4, (e5, (e6, MSGPACK_PP_NIL)))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, MSGPACK_PP_NIL))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, MSGPACK_PP_NIL)))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, MSGPACK_PP_NIL))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, MSGPACK_PP_NIL)))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, MSGPACK_PP_NIL))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, MSGPACK_PP_NIL)))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, MSGPACK_PP_NIL))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, MSGPACK_PP_NIL)))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, MSGPACK_PP_NIL))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, MSGPACK_PP_NIL)))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, MSGPACK_PP_NIL))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, MSGPACK_PP_NIL)))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, MSGPACK_PP_NIL))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, MSGPACK_PP_NIL)))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, MSGPACK_PP_NIL))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, MSGPACK_PP_NIL)))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, MSGPACK_PP_NIL))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, MSGPACK_PP_NIL)))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, MSGPACK_PP_NIL))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, MSGPACK_PP_NIL)))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, MSGPACK_PP_NIL))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, MSGPACK_PP_NIL)))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, MSGPACK_PP_NIL))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, MSGPACK_PP_NIL)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+# define MSGPACK_PP_TUPLE_TO_LIST_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, (e43, (e44, (e45, (e46, (e47, (e48, (e49, (e50, (e51, (e52, (e53, (e54, (e55, (e56, (e57, (e58, (e59, (e60, (e61, (e62, (e63, MSGPACK_PP_NIL))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_seq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_seq.hpp
new file mode 100644
index 000000000..b2714d2ef
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/tuple/to_seq.hpp
@@ -0,0 +1,119 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Paul Mensonides 2002-2011. *
+# * (C) Copyright Edward Diener 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_TUPLE_TO_SEQ_HPP
+# define MSGPACK_PREPROCESSOR_TUPLE_TO_SEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/facilities/overload.hpp>
+# include <rpc/msgpack/preprocessor/tuple/size.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+#
+# /* MSGPACK_PP_TUPLE_TO_SEQ */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_TUPLE_TO_SEQ(...) MSGPACK_PP_TUPLE_TO_SEQ_I(MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__), (__VA_ARGS__))
+# define MSGPACK_PP_TUPLE_TO_SEQ_I(m, args) MSGPACK_PP_TUPLE_TO_SEQ_II(m, args)
+# define MSGPACK_PP_TUPLE_TO_SEQ_II(m, args) MSGPACK_PP_CAT(m ## args,)
+# define MSGPACK_PP_TUPLE_TO_SEQ_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_SEQ_, MSGPACK_PP_TUPLE_SIZE(tuple)) tuple
+# else
+# define MSGPACK_PP_TUPLE_TO_SEQ(...) MSGPACK_PP_OVERLOAD(MSGPACK_PP_TUPLE_TO_SEQ_O_, __VA_ARGS__)(__VA_ARGS__)
+# define MSGPACK_PP_TUPLE_TO_SEQ_O_1(tuple) MSGPACK_PP_CAT(MSGPACK_PP_TUPLE_TO_SEQ_, MSGPACK_PP_VARIADIC_SIZE tuple) tuple
+# endif
+# define MSGPACK_PP_TUPLE_TO_SEQ_O_2(size, tuple) MSGPACK_PP_TUPLE_TO_SEQ_O_1(tuple)
+# else
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_TUPLE_TO_SEQ(size, tuple) MSGPACK_PP_TUPLE_TO_SEQ_I(size, tuple)
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MSVC()
+# define MSGPACK_PP_TUPLE_TO_SEQ_I(s, t) MSGPACK_PP_TUPLE_TO_SEQ_ ## s t
+# else
+# define MSGPACK_PP_TUPLE_TO_SEQ_I(s, t) MSGPACK_PP_TUPLE_TO_SEQ_II(MSGPACK_PP_TUPLE_TO_SEQ_ ## s t)
+# define MSGPACK_PP_TUPLE_TO_SEQ_II(res) res
+# endif
+# else
+# define MSGPACK_PP_TUPLE_TO_SEQ(size, tuple) MSGPACK_PP_TUPLE_TO_SEQ_OO((size, tuple))
+# define MSGPACK_PP_TUPLE_TO_SEQ_OO(par) MSGPACK_PP_TUPLE_TO_SEQ_I ## par
+# define MSGPACK_PP_TUPLE_TO_SEQ_I(s, t) MSGPACK_PP_TUPLE_TO_SEQ_ ## s ## t
+# endif
+# endif
+#
+/* An empty array can be passed */
+# define MSGPACK_PP_TUPLE_TO_SEQ_0() ()
+#
+# define MSGPACK_PP_TUPLE_TO_SEQ_1(e0) (e0)
+# define MSGPACK_PP_TUPLE_TO_SEQ_2(e0, e1) (e0)(e1)
+# define MSGPACK_PP_TUPLE_TO_SEQ_3(e0, e1, e2) (e0)(e1)(e2)
+# define MSGPACK_PP_TUPLE_TO_SEQ_4(e0, e1, e2, e3) (e0)(e1)(e2)(e3)
+# define MSGPACK_PP_TUPLE_TO_SEQ_5(e0, e1, e2, e3, e4) (e0)(e1)(e2)(e3)(e4)
+# define MSGPACK_PP_TUPLE_TO_SEQ_6(e0, e1, e2, e3, e4, e5) (e0)(e1)(e2)(e3)(e4)(e5)
+# define MSGPACK_PP_TUPLE_TO_SEQ_7(e0, e1, e2, e3, e4, e5, e6) (e0)(e1)(e2)(e3)(e4)(e5)(e6)
+# define MSGPACK_PP_TUPLE_TO_SEQ_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)
+# define MSGPACK_PP_TUPLE_TO_SEQ_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)
+# define MSGPACK_PP_TUPLE_TO_SEQ_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)
+# define MSGPACK_PP_TUPLE_TO_SEQ_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)
+# define MSGPACK_PP_TUPLE_TO_SEQ_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)
+# define MSGPACK_PP_TUPLE_TO_SEQ_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)
+# define MSGPACK_PP_TUPLE_TO_SEQ_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)
+# define MSGPACK_PP_TUPLE_TO_SEQ_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)
+# define MSGPACK_PP_TUPLE_TO_SEQ_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)
+# define MSGPACK_PP_TUPLE_TO_SEQ_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)
+# define MSGPACK_PP_TUPLE_TO_SEQ_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)
+# define MSGPACK_PP_TUPLE_TO_SEQ_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)
+# define MSGPACK_PP_TUPLE_TO_SEQ_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)
+# define MSGPACK_PP_TUPLE_TO_SEQ_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)
+# define MSGPACK_PP_TUPLE_TO_SEQ_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)
+# define MSGPACK_PP_TUPLE_TO_SEQ_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)
+# define MSGPACK_PP_TUPLE_TO_SEQ_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)
+# define MSGPACK_PP_TUPLE_TO_SEQ_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)
+# define MSGPACK_PP_TUPLE_TO_SEQ_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)
+# define MSGPACK_PP_TUPLE_TO_SEQ_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)
+# define MSGPACK_PP_TUPLE_TO_SEQ_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)
+# define MSGPACK_PP_TUPLE_TO_SEQ_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)
+# define MSGPACK_PP_TUPLE_TO_SEQ_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)
+# define MSGPACK_PP_TUPLE_TO_SEQ_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)
+# define MSGPACK_PP_TUPLE_TO_SEQ_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)
+# define MSGPACK_PP_TUPLE_TO_SEQ_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)
+# define MSGPACK_PP_TUPLE_TO_SEQ_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)
+# define MSGPACK_PP_TUPLE_TO_SEQ_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)
+# define MSGPACK_PP_TUPLE_TO_SEQ_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)
+# define MSGPACK_PP_TUPLE_TO_SEQ_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)
+# define MSGPACK_PP_TUPLE_TO_SEQ_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)
+# define MSGPACK_PP_TUPLE_TO_SEQ_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)
+# define MSGPACK_PP_TUPLE_TO_SEQ_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)
+# define MSGPACK_PP_TUPLE_TO_SEQ_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)
+# define MSGPACK_PP_TUPLE_TO_SEQ_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)
+# define MSGPACK_PP_TUPLE_TO_SEQ_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)
+# define MSGPACK_PP_TUPLE_TO_SEQ_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)
+# define MSGPACK_PP_TUPLE_TO_SEQ_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)
+# define MSGPACK_PP_TUPLE_TO_SEQ_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)
+# define MSGPACK_PP_TUPLE_TO_SEQ_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)
+# define MSGPACK_PP_TUPLE_TO_SEQ_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)
+# define MSGPACK_PP_TUPLE_TO_SEQ_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)
+# define MSGPACK_PP_TUPLE_TO_SEQ_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)
+# define MSGPACK_PP_TUPLE_TO_SEQ_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)
+# define MSGPACK_PP_TUPLE_TO_SEQ_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)
+# define MSGPACK_PP_TUPLE_TO_SEQ_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)
+# define MSGPACK_PP_TUPLE_TO_SEQ_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)
+# define MSGPACK_PP_TUPLE_TO_SEQ_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)
+# define MSGPACK_PP_TUPLE_TO_SEQ_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)
+# define MSGPACK_PP_TUPLE_TO_SEQ_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)
+# define MSGPACK_PP_TUPLE_TO_SEQ_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)
+# define MSGPACK_PP_TUPLE_TO_SEQ_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)
+# define MSGPACK_PP_TUPLE_TO_SEQ_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)
+# define MSGPACK_PP_TUPLE_TO_SEQ_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)
+# define MSGPACK_PP_TUPLE_TO_SEQ_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)
+# define MSGPACK_PP_TUPLE_TO_SEQ_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62)
+# define MSGPACK_PP_TUPLE_TO_SEQ_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0)(e1)(e2)(e3)(e4)(e5)(e6)(e7)(e8)(e9)(e10)(e11)(e12)(e13)(e14)(e15)(e16)(e17)(e18)(e19)(e20)(e21)(e22)(e23)(e24)(e25)(e26)(e27)(e28)(e29)(e30)(e31)(e32)(e33)(e34)(e35)(e36)(e37)(e38)(e39)(e40)(e41)(e42)(e43)(e44)(e45)(e46)(e47)(e48)(e49)(e50)(e51)(e52)(e53)(e54)(e55)(e56)(e57)(e58)(e59)(e60)(e61)(e62)(e63)
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic.hpp
new file mode 100644
index 000000000..83fe75e92
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic.hpp
@@ -0,0 +1,23 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_HPP
+#
+# include <rpc/msgpack/preprocessor/variadic/elem.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+# include <rpc/msgpack/preprocessor/variadic/to_array.hpp>
+# include <rpc/msgpack/preprocessor/variadic/to_list.hpp>
+# include <rpc/msgpack/preprocessor/variadic/to_seq.hpp>
+# include <rpc/msgpack/preprocessor/variadic/to_tuple.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/detail/is_single_return.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/detail/is_single_return.hpp
new file mode 100644
index 000000000..488bf3697
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/detail/is_single_return.hpp
@@ -0,0 +1,28 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2014. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_VARIADIC_IS_SINGLE_RETURN */
+#
+# if MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC
+# include <rpc/msgpack/preprocessor/control/iif.hpp>
+# include <rpc/msgpack/preprocessor/facilities/is_1.hpp>
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+# define MSGPACK_PP_VARIADIC_IS_SINGLE_RETURN(sr,nsr,...) \
+ MSGPACK_PP_IIF(MSGPACK_PP_IS_1(MSGPACK_PP_VARIADIC_SIZE(__VA_ARGS__)),sr,nsr) \
+ /**/
+# endif /* MSGPACK_PP_VARIADICS && MSGPACK_PP_VARIADICS_MSVC */
+#
+# endif /* MSGPACK_PREPROCESSOR_VARIADIC_DETAIL_IS_SINGLE_RETURN_HPP */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/elem.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/elem.hpp
new file mode 100644
index 000000000..1b0eb2d48
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/elem.hpp
@@ -0,0 +1,94 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_ELEM_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_ELEM_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_VARIADIC_ELEM */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_VARIADIC_ELEM(n, ...) MSGPACK_PP_VARIADIC_ELEM_I(n,__VA_ARGS__)
+# define MSGPACK_PP_VARIADIC_ELEM_I(n, ...) MSGPACK_PP_CAT(MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
+# else
+# define MSGPACK_PP_VARIADIC_ELEM(n, ...) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,)
+# endif
+# define MSGPACK_PP_VARIADIC_ELEM_0(e0, ...) e0
+# define MSGPACK_PP_VARIADIC_ELEM_1(e0, e1, ...) e1
+# define MSGPACK_PP_VARIADIC_ELEM_2(e0, e1, e2, ...) e2
+# define MSGPACK_PP_VARIADIC_ELEM_3(e0, e1, e2, e3, ...) e3
+# define MSGPACK_PP_VARIADIC_ELEM_4(e0, e1, e2, e3, e4, ...) e4
+# define MSGPACK_PP_VARIADIC_ELEM_5(e0, e1, e2, e3, e4, e5, ...) e5
+# define MSGPACK_PP_VARIADIC_ELEM_6(e0, e1, e2, e3, e4, e5, e6, ...) e6
+# define MSGPACK_PP_VARIADIC_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, ...) e7
+# define MSGPACK_PP_VARIADIC_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, ...) e8
+# define MSGPACK_PP_VARIADIC_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ...) e9
+# define MSGPACK_PP_VARIADIC_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ...) e10
+# define MSGPACK_PP_VARIADIC_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ...) e11
+# define MSGPACK_PP_VARIADIC_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ...) e12
+# define MSGPACK_PP_VARIADIC_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ...) e13
+# define MSGPACK_PP_VARIADIC_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ...) e14
+# define MSGPACK_PP_VARIADIC_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ...) e15
+# define MSGPACK_PP_VARIADIC_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ...) e16
+# define MSGPACK_PP_VARIADIC_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ...) e17
+# define MSGPACK_PP_VARIADIC_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ...) e18
+# define MSGPACK_PP_VARIADIC_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ...) e19
+# define MSGPACK_PP_VARIADIC_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ...) e20
+# define MSGPACK_PP_VARIADIC_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ...) e21
+# define MSGPACK_PP_VARIADIC_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ...) e22
+# define MSGPACK_PP_VARIADIC_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ...) e23
+# define MSGPACK_PP_VARIADIC_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ...) e24
+# define MSGPACK_PP_VARIADIC_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ...) e25
+# define MSGPACK_PP_VARIADIC_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ...) e26
+# define MSGPACK_PP_VARIADIC_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ...) e27
+# define MSGPACK_PP_VARIADIC_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ...) e28
+# define MSGPACK_PP_VARIADIC_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ...) e29
+# define MSGPACK_PP_VARIADIC_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ...) e30
+# define MSGPACK_PP_VARIADIC_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ...) e31
+# define MSGPACK_PP_VARIADIC_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ...) e32
+# define MSGPACK_PP_VARIADIC_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ...) e33
+# define MSGPACK_PP_VARIADIC_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ...) e34
+# define MSGPACK_PP_VARIADIC_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ...) e35
+# define MSGPACK_PP_VARIADIC_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ...) e36
+# define MSGPACK_PP_VARIADIC_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ...) e37
+# define MSGPACK_PP_VARIADIC_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ...) e38
+# define MSGPACK_PP_VARIADIC_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ...) e39
+# define MSGPACK_PP_VARIADIC_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ...) e40
+# define MSGPACK_PP_VARIADIC_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ...) e41
+# define MSGPACK_PP_VARIADIC_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ...) e42
+# define MSGPACK_PP_VARIADIC_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ...) e43
+# define MSGPACK_PP_VARIADIC_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ...) e44
+# define MSGPACK_PP_VARIADIC_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ...) e45
+# define MSGPACK_PP_VARIADIC_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ...) e46
+# define MSGPACK_PP_VARIADIC_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ...) e47
+# define MSGPACK_PP_VARIADIC_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ...) e48
+# define MSGPACK_PP_VARIADIC_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ...) e49
+# define MSGPACK_PP_VARIADIC_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ...) e50
+# define MSGPACK_PP_VARIADIC_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ...) e51
+# define MSGPACK_PP_VARIADIC_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ...) e52
+# define MSGPACK_PP_VARIADIC_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ...) e53
+# define MSGPACK_PP_VARIADIC_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ...) e54
+# define MSGPACK_PP_VARIADIC_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ...) e55
+# define MSGPACK_PP_VARIADIC_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ...) e56
+# define MSGPACK_PP_VARIADIC_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ...) e57
+# define MSGPACK_PP_VARIADIC_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ...) e58
+# define MSGPACK_PP_VARIADIC_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ...) e59
+# define MSGPACK_PP_VARIADIC_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ...) e60
+# define MSGPACK_PP_VARIADIC_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ...) e61
+# define MSGPACK_PP_VARIADIC_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ...) e62
+# define MSGPACK_PP_VARIADIC_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, ...) e63
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/size.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/size.hpp
new file mode 100644
index 000000000..e5765f5db
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/size.hpp
@@ -0,0 +1,30 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_SIZE_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_SIZE_HPP
+#
+# include <rpc/msgpack/preprocessor/cat.hpp>
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_VARIADIC_SIZE */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_VARIADIC_SIZE(...) MSGPACK_PP_CAT(MSGPACK_PP_VARIADIC_SIZE_I(__VA_ARGS__, 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,),)
+# else
+# define MSGPACK_PP_VARIADIC_SIZE(...) MSGPACK_PP_VARIADIC_SIZE_I(__VA_ARGS__, 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,)
+# endif
+# define MSGPACK_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_array.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_array.hpp
new file mode 100644
index 000000000..87ecd7e66
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_array.hpp
@@ -0,0 +1,32 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_TO_ARRAY_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_array.hpp>
+# if MSGPACK_PP_VARIADICS_MSVC
+# include <rpc/msgpack/preprocessor/variadic/size.hpp>
+# endif
+#
+# /* MSGPACK_PP_VARIADIC_TO_ARRAY */
+#
+# if MSGPACK_PP_VARIADICS
+# if MSGPACK_PP_VARIADICS_MSVC
+# define MSGPACK_PP_VARIADIC_TO_ARRAY(...) MSGPACK_PP_TUPLE_TO_ARRAY_2(MSGPACK_PP_VARIADIC_SIZE(__VA_ARGS__),(__VA_ARGS__))
+# else
+# define MSGPACK_PP_VARIADIC_TO_ARRAY(...) MSGPACK_PP_TUPLE_TO_ARRAY((__VA_ARGS__))
+# endif
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_list.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_list.hpp
new file mode 100644
index 000000000..c26f565b1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_list.hpp
@@ -0,0 +1,25 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_LIST_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_TO_LIST_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_list.hpp>
+#
+# /* MSGPACK_PP_VARIADIC_TO_LIST */
+#
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_VARIADIC_TO_LIST(...) MSGPACK_PP_TUPLE_TO_LIST((__VA_ARGS__))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_seq.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_seq.hpp
new file mode 100644
index 000000000..9e9827635
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_seq.hpp
@@ -0,0 +1,25 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_SEQ_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_TO_SEQ_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+# include <rpc/msgpack/preprocessor/tuple/to_seq.hpp>
+#
+# /* MSGPACK_PP_VARIADIC_TO_SEQ */
+#
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_VARIADIC_TO_SEQ(...) MSGPACK_PP_TUPLE_TO_SEQ((__VA_ARGS__))
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_tuple.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_tuple.hpp
new file mode 100644
index 000000000..5eadd985c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/variadic/to_tuple.hpp
@@ -0,0 +1,24 @@
+# /* **************************************************************************
+# * *
+# * (C) Copyright Edward Diener 2011. *
+# * (C) Copyright Paul Mensonides 2011. *
+# * 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) *
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP
+# define MSGPACK_PREPROCESSOR_VARIADIC_TO_TUPLE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_VARIADIC_TO_TUPLE */
+#
+# if MSGPACK_PP_VARIADICS
+# define MSGPACK_PP_VARIADIC_TO_TUPLE(...) (__VA_ARGS__)
+# endif
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/while.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/while.hpp
new file mode 100644
index 000000000..21330a355
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/while.hpp
@@ -0,0 +1,17 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_WHILE_HPP
+# define MSGPACK_PREPROCESSOR_WHILE_HPP
+#
+# include <rpc/msgpack/preprocessor/control/while.hpp>
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/wstringize.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/wstringize.hpp
new file mode 100644
index 000000000..e23b746ff
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/preprocessor/wstringize.hpp
@@ -0,0 +1,29 @@
+# /* **************************************************************************
+# * *
+# * (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)
+# * *
+# ************************************************************************** */
+#
+# /* See http://www.boost.org for most recent version. */
+#
+# ifndef MSGPACK_PREPROCESSOR_WSTRINGIZE_HPP
+# define MSGPACK_PREPROCESSOR_WSTRINGIZE_HPP
+#
+# include <rpc/msgpack/preprocessor/config/config.hpp>
+#
+# /* MSGPACK_PP_WSTRINGIZE */
+#
+# if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
+# define MSGPACK_PP_WSTRINGIZE(text) MSGPACK_PP_WSTRINGIZE_I(text)
+# else
+# define MSGPACK_PP_WSTRINGIZE(text) MSGPACK_PP_WSTRINGIZE_OO((text))
+# define MSGPACK_PP_WSTRINGIZE_OO(par) MSGPACK_PP_WSTRINGIZE_I ## par
+# endif
+#
+# define MSGPACK_PP_WSTRINGIZE_I(text) MSGPACK_PP_WSTRINGIZE_II(#text)
+# define MSGPACK_PP_WSTRINGIZE_II(str) L ## str
+#
+# endif
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.h b/host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.h
new file mode 100644
index 000000000..412029355
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.h
@@ -0,0 +1,118 @@
+/*
+ * MessagePack for C simple buffer implementation
+ *
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_SBUFFER_H
+#define MSGPACK_SBUFFER_H
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_sbuffer Simple buffer
+ * @ingroup msgpack_buffer
+ * @{
+ */
+
+typedef struct msgpack_sbuffer {
+ size_t size;
+ char* data;
+ size_t alloc;
+} msgpack_sbuffer;
+
+static inline void msgpack_sbuffer_init(msgpack_sbuffer* sbuf)
+{
+ memset(sbuf, 0, sizeof(msgpack_sbuffer));
+}
+
+static inline void msgpack_sbuffer_destroy(msgpack_sbuffer* sbuf)
+{
+ free(sbuf->data);
+}
+
+static inline msgpack_sbuffer* msgpack_sbuffer_new(void)
+{
+ return (msgpack_sbuffer*)calloc(1, sizeof(msgpack_sbuffer));
+}
+
+static inline void msgpack_sbuffer_free(msgpack_sbuffer* sbuf)
+{
+ if(sbuf == NULL) { return; }
+ msgpack_sbuffer_destroy(sbuf);
+ free(sbuf);
+}
+
+#ifndef MSGPACK_SBUFFER_INIT_SIZE
+#define MSGPACK_SBUFFER_INIT_SIZE 8192
+#endif
+
+static inline int msgpack_sbuffer_write(void* data, const char* buf, size_t len)
+{
+ msgpack_sbuffer* sbuf = (msgpack_sbuffer*)data;
+
+ if(sbuf->alloc - sbuf->size < len) {
+ void* tmp;
+ size_t nsize = (sbuf->alloc) ?
+ sbuf->alloc * 2 : MSGPACK_SBUFFER_INIT_SIZE;
+
+ while(nsize < sbuf->size + len) {
+ size_t tmp_nsize = nsize * 2;
+ if (tmp_nsize <= nsize) {
+ nsize = sbuf->size + len;
+ break;
+ }
+ nsize = tmp_nsize;
+ }
+
+ tmp = realloc(sbuf->data, nsize);
+ if(!tmp) { return -1; }
+
+ sbuf->data = (char*)tmp;
+ sbuf->alloc = nsize;
+ }
+
+ memcpy(sbuf->data + sbuf->size, buf, len);
+ sbuf->size += len;
+ return 0;
+}
+
+static inline char* msgpack_sbuffer_release(msgpack_sbuffer* sbuf)
+{
+ char* tmp = sbuf->data;
+ sbuf->size = 0;
+ sbuf->data = NULL;
+ sbuf->alloc = 0;
+ return tmp;
+}
+
+static inline void msgpack_sbuffer_clear(msgpack_sbuffer* sbuf)
+{
+ sbuf->size = 0;
+}
+
+/** @} */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/sbuffer.h */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.hpp
new file mode 100644
index 000000000..991b3ef41
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/sbuffer.hpp
@@ -0,0 +1,160 @@
+//
+// MessagePack for C++ simple buffer implementation
+//
+// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_SBUFFER_HPP
+#define MSGPACK_SBUFFER_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+
+#include <stdexcept>
+
+#ifndef MSGPACK_SBUFFER_INIT_SIZE
+#define MSGPACK_SBUFFER_INIT_SIZE 8192
+#endif
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+class sbuffer {
+public:
+ sbuffer(size_t initsz = MSGPACK_SBUFFER_INIT_SIZE):m_size(0), m_alloc(initsz)
+ {
+ if(initsz == 0) {
+ m_data = nullptr;
+ } else {
+ m_data = (char*)::malloc(initsz);
+ if(!m_data) {
+ throw std::bad_alloc();
+ }
+ }
+ }
+
+ ~sbuffer()
+ {
+ ::free(m_data);
+ }
+
+#if !defined(MSGPACK_USE_CPP03)
+ sbuffer(const sbuffer&) = delete;
+ sbuffer& operator=(const sbuffer&) = delete;
+
+ sbuffer(sbuffer&& other) :
+ m_size(other.m_size), m_data(other.m_data), m_alloc(other.m_alloc)
+ {
+ other.m_size = other.m_alloc = 0;
+ other.m_data = nullptr;
+ }
+
+ sbuffer& operator=(sbuffer&& other)
+ {
+ ::free(m_data);
+
+ m_size = other.m_size;
+ m_alloc = other.m_alloc;
+ m_data = other.m_data;
+
+ other.m_size = other.m_alloc = 0;
+ other.m_data = nullptr;
+
+ return *this;
+ }
+#endif // !defined(MSGPACK_USE_CPP03)
+
+ void write(const char* buf, size_t len)
+ {
+ if(m_alloc - m_size < len) {
+ expand_buffer(len);
+ }
+ std::memcpy(m_data + m_size, buf, len);
+ m_size += len;
+ }
+
+ char* data()
+ {
+ return m_data;
+ }
+
+ const char* data() const
+ {
+ return m_data;
+ }
+
+ size_t size() const
+ {
+ return m_size;
+ }
+
+ char* release()
+ {
+ char* tmp = m_data;
+ m_size = 0;
+ m_data = nullptr;
+ m_alloc = 0;
+ return tmp;
+ }
+
+ void clear()
+ {
+ m_size = 0;
+ }
+
+private:
+ void expand_buffer(size_t len)
+ {
+ size_t nsize = (m_alloc > 0) ?
+ m_alloc * 2 : MSGPACK_SBUFFER_INIT_SIZE;
+
+ while(nsize < m_size + len) {
+ size_t tmp_nsize = nsize * 2;
+ if (tmp_nsize <= nsize) {
+ nsize = m_size + len;
+ break;
+ }
+ nsize = tmp_nsize;
+ }
+
+ void* tmp = ::realloc(m_data, nsize);
+ if(!tmp) {
+ throw std::bad_alloc();
+ }
+
+ m_data = static_cast<char*>(tmp);
+ m_alloc = nsize;
+ }
+
+#if defined(MSGPACK_USE_CPP03)
+private:
+ sbuffer(const sbuffer&);
+ sbuffer& operator=(const sbuffer&);
+#endif // defined(MSGPACK_USE_CPP03)
+
+private:
+ size_t m_size;
+ char* m_data;
+ size_t m_alloc;
+};
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/sbuffer.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/sysdep.h b/host/lib/deps/rpclib/include/rpc/msgpack/sysdep.h
new file mode 100644
index 000000000..c23dc606f
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/sysdep.h
@@ -0,0 +1,195 @@
+/*
+ * MessagePack system dependencies
+ *
+ * Copyright (C) 2008-2010 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_SYSDEP_H
+#define MSGPACK_SYSDEP_H
+
+#include <rpc/msgpack/predef.h>
+
+#include <stdlib.h>
+#include <stddef.h>
+#if defined(_MSC_VER) && _MSC_VER < 1600
+ typedef __int8 int8_t;
+ typedef unsigned __int8 uint8_t;
+ typedef __int16 int16_t;
+ typedef unsigned __int16 uint16_t;
+ typedef __int32 int32_t;
+ typedef unsigned __int32 uint32_t;
+ typedef __int64 int64_t;
+ typedef unsigned __int64 uint64_t;
+#elif defined(_MSC_VER) // && _MSC_VER >= 1600
+# include <stdint.h>
+#else
+# include <stdint.h>
+# include <stdbool.h>
+#endif
+
+#if defined(_MSC_VER)
+# define MSGPACK_DLLEXPORT __declspec(dllexport)
+#else /* _MSC_VER */
+# define MSGPACK_DLLEXPORT
+#endif /* _MSC_VER */
+
+#ifdef _WIN32
+# define _msgpack_atomic_counter_header <windows.h>
+ typedef long _msgpack_atomic_counter_t;
+# define _msgpack_sync_decr_and_fetch(ptr) InterlockedDecrement(ptr)
+# define _msgpack_sync_incr_and_fetch(ptr) InterlockedIncrement(ptr)
+#elif defined(__GNUC__) && ((__GNUC__*10 + __GNUC_MINOR__) < 41)
+
+# if defined(__cplusplus)
+# define _msgpack_atomic_counter_header "gcc_atomic.hpp"
+# else
+# define _msgpack_atomic_counter_header "gcc_atomic.h"
+# endif
+
+#else
+ typedef unsigned int _msgpack_atomic_counter_t;
+# define _msgpack_sync_decr_and_fetch(ptr) __sync_sub_and_fetch(ptr, 1)
+# define _msgpack_sync_incr_and_fetch(ptr) __sync_add_and_fetch(ptr, 1)
+#endif
+
+#ifdef _WIN32
+
+# ifdef __cplusplus
+ /* numeric_limits<T>::min,max */
+# ifdef max
+# undef max
+# endif
+# ifdef min
+# undef min
+# endif
+# endif
+
+#else /* _*/
+
+#include <arpa/inet.h> /* __BYTE_ORDER */
+# if defined(linux)
+# include <byteswap.h>
+# endif
+
+#endif
+
+#ifdef MSGPACK_ENDIAN_LITTLE_BYTE
+
+# ifdef _WIN32
+# if defined(ntohs)
+# define _msgpack_be16(x) ntohs(x)
+# elif defined(_byteswap_ushort) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+# define _msgpack_be16(x) ((uint16_t)_byteswap_ushort((unsigned short)x))
+# else
+# define _msgpack_be16(x) ( \
+ ((((uint16_t)x) << 8) ) | \
+ ((((uint16_t)x) >> 8) ) )
+# endif
+# else
+# define _msgpack_be16(x) ntohs(x)
+# endif
+
+# ifdef _WIN32
+# if defined(ntohl)
+# define _msgpack_be32(x) ntohl(x)
+# elif defined(_byteswap_ulong) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+# define _msgpack_be32(x) ((uint32_t)_byteswap_ulong((unsigned long)x))
+# else
+# define _msgpack_be32(x) \
+ ( ((((uint32_t)x) << 24) ) | \
+ ((((uint32_t)x) << 8) & 0x00ff0000U ) | \
+ ((((uint32_t)x) >> 8) & 0x0000ff00U ) | \
+ ((((uint32_t)x) >> 24) ) )
+# endif
+# else
+# define _msgpack_be32(x) ntohl(x)
+# endif
+
+# if defined(_byteswap_uint64) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+# define _msgpack_be64(x) (_byteswap_uint64(x))
+# elif defined(bswap_64)
+# define _msgpack_be64(x) bswap_64(x)
+# elif defined(__DARWIN_OSSwapInt64)
+# define _msgpack_be64(x) __DARWIN_OSSwapInt64(x)
+# else
+# define _msgpack_be64(x) \
+ ( ((((uint64_t)x) << 56) ) | \
+ ((((uint64_t)x) << 40) & 0x00ff000000000000ULL ) | \
+ ((((uint64_t)x) << 24) & 0x0000ff0000000000ULL ) | \
+ ((((uint64_t)x) << 8) & 0x000000ff00000000ULL ) | \
+ ((((uint64_t)x) >> 8) & 0x00000000ff000000ULL ) | \
+ ((((uint64_t)x) >> 24) & 0x0000000000ff0000ULL ) | \
+ ((((uint64_t)x) >> 40) & 0x000000000000ff00ULL ) | \
+ ((((uint64_t)x) >> 56) ) )
+# endif
+
+#elif MSGPACK_ENDIAN_BIG_BYTE
+
+# define _msgpack_be16(x) (x)
+# define _msgpack_be32(x) (x)
+# define _msgpack_be64(x) (x)
+
+#else
+# error msgpack-c supports only big endian and little endian
+#endif /* MSGPACK_ENDIAN_LITTLE_BYTE */
+
+#define _msgpack_load16(cast, from, to) do { \
+ memcpy((cast*)(to), (from), sizeof(cast)); \
+ *(to) = _msgpack_be16(*(to)); \
+ } while (0);
+
+#define _msgpack_load32(cast, from, to) do { \
+ memcpy((cast*)(to), (from), sizeof(cast)); \
+ *(to) = _msgpack_be32(*(to)); \
+ } while (0);
+#define _msgpack_load64(cast, from, to) do { \
+ memcpy((cast*)(to), (from), sizeof(cast)); \
+ *(to) = _msgpack_be64(*(to)); \
+ } while (0);
+
+#define _msgpack_store16(to, num) \
+ do { uint16_t val = _msgpack_be16(num); memcpy(to, &val, 2); } while(0)
+#define _msgpack_store32(to, num) \
+ do { uint32_t val = _msgpack_be32(num); memcpy(to, &val, 4); } while(0)
+#define _msgpack_store64(to, num) \
+ do { uint64_t val = _msgpack_be64(num); memcpy(to, &val, 8); } while(0)
+
+/*
+#define _msgpack_load16(cast, from) \
+ ({ cast val; memcpy(&val, (char*)from, 2); _msgpack_be16(val); })
+#define _msgpack_load32(cast, from) \
+ ({ cast val; memcpy(&val, (char*)from, 4); _msgpack_be32(val); })
+#define _msgpack_load64(cast, from) \
+ ({ cast val; memcpy(&val, (char*)from, 8); _msgpack_be64(val); })
+*/
+
+
+#if !defined(__cplusplus) && defined(_MSC_VER)
+# if !defined(FALSE)
+# define FALSE (0)
+# endif
+# if !defined(TRUE)
+# define TRUE (!FALSE)
+# endif
+# if _MSC_VER >= 1800
+# include <stdbool.h>
+# else
+# define bool int
+# define true TRUE
+# define false FALSE
+# endif
+# define inline __inline
+#endif
+
+#endif /* msgpack/sysdep.h */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/type.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/type.hpp
new file mode 100644
index 000000000..2475d43d9
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/type.hpp
@@ -0,0 +1,51 @@
+#include "cpp_config.hpp"
+#include "adaptor/array_ref.hpp"
+#include "adaptor/bool.hpp"
+#include "adaptor/char_ptr.hpp"
+#include "adaptor/deque.hpp"
+#include "adaptor/ext.hpp"
+#include "adaptor/fixint.hpp"
+#include "adaptor/float.hpp"
+#include "adaptor/int.hpp"
+#include "adaptor/list.hpp"
+#include "adaptor/map.hpp"
+#include "adaptor/nil.hpp"
+#include "adaptor/pair.hpp"
+#include "adaptor/raw.hpp"
+#include "adaptor/v4raw.hpp"
+#include "adaptor/set.hpp"
+#include "adaptor/string.hpp"
+#include "adaptor/vector.hpp"
+#include "adaptor/vector_bool.hpp"
+#include "adaptor/vector_char.hpp"
+#include "adaptor/vector_unsigned_char.hpp"
+#include "adaptor/msgpack_tuple.hpp"
+#include "adaptor/define.hpp"
+
+#if defined(MSGPACK_USE_CPP03)
+
+#include "adaptor/tr1/unordered_map.hpp"
+#include "adaptor/tr1/unordered_set.hpp"
+
+#else // defined(MSGPACK_USE_CPP03)
+
+#include "adaptor/cpp11/array.hpp"
+#include "adaptor/cpp11/array_char.hpp"
+#include "adaptor/cpp11/array_unsigned_char.hpp"
+#include "adaptor/cpp11/forward_list.hpp"
+#include "adaptor/cpp11/shared_ptr.hpp"
+#include "adaptor/cpp11/tuple.hpp"
+#include "adaptor/cpp11/unique_ptr.hpp"
+#include "adaptor/cpp11/unordered_map.hpp"
+#include "adaptor/cpp11/unordered_set.hpp"
+
+#endif // defined(MSGPACK_USE_CPP03)
+
+#if defined(MSGPACK_USE_BOOST)
+
+#include "adaptor/boost/fusion.hpp"
+#include "adaptor/boost/msgpack_variant.hpp"
+#include "adaptor/boost/optional.hpp"
+#include "adaptor/boost/string_ref.hpp"
+
+#endif // defined(MSGPACK_USE_BOOST)
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/unpack.h b/host/lib/deps/rpclib/include/rpc/msgpack/unpack.h
new file mode 100644
index 000000000..01bfbcb4d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/unpack.h
@@ -0,0 +1,278 @@
+/*
+ * MessagePack for C unpacking routine
+ *
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_UNPACKER_H
+#define MSGPACK_UNPACKER_H
+
+#include "zone.h"
+#include "object.h"
+#include <string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_unpack Deserializer
+ * @ingroup msgpack
+ * @{
+ */
+
+typedef struct msgpack_unpacked {
+ msgpack_zone* zone;
+ msgpack_object data;
+} msgpack_unpacked;
+
+typedef enum {
+ MSGPACK_UNPACK_SUCCESS = 2,
+ MSGPACK_UNPACK_EXTRA_BYTES = 1,
+ MSGPACK_UNPACK_CONTINUE = 0,
+ MSGPACK_UNPACK_PARSE_ERROR = -1,
+ MSGPACK_UNPACK_NOMEM_ERROR = -2
+} msgpack_unpack_return;
+
+
+MSGPACK_DLLEXPORT
+msgpack_unpack_return
+msgpack_unpack_next(msgpack_unpacked* result,
+ const char* data, size_t len, size_t* off);
+
+/** @} */
+
+
+/**
+ * @defgroup msgpack_unpacker Streaming deserializer
+ * @ingroup msgpack
+ * @{
+ */
+
+typedef struct msgpack_unpacker {
+ char* buffer;
+ size_t used;
+ size_t free;
+ size_t off;
+ size_t parsed;
+ msgpack_zone* z;
+ size_t initial_buffer_size;
+ void* ctx;
+} msgpack_unpacker;
+
+
+#ifndef MSGPACK_UNPACKER_INIT_BUFFER_SIZE
+#define MSGPACK_UNPACKER_INIT_BUFFER_SIZE (64*1024)
+#endif
+
+/**
+ * Initializes a streaming deserializer.
+ * The initialized deserializer must be destroyed by msgpack_unpacker_destroy(msgpack_unpacker*).
+ */
+MSGPACK_DLLEXPORT
+bool msgpack_unpacker_init(msgpack_unpacker* mpac, size_t initial_buffer_size);
+
+/**
+ * Destroys a streaming deserializer initialized by msgpack_unpacker_init(msgpack_unpacker*, size_t).
+ */
+MSGPACK_DLLEXPORT
+void msgpack_unpacker_destroy(msgpack_unpacker* mpac);
+
+
+/**
+ * Creates a streaming deserializer.
+ * The created deserializer must be destroyed by msgpack_unpacker_free(msgpack_unpacker*).
+ */
+MSGPACK_DLLEXPORT
+msgpack_unpacker* msgpack_unpacker_new(size_t initial_buffer_size);
+
+/**
+ * Frees a streaming deserializer created by msgpack_unpacker_new(size_t).
+ */
+MSGPACK_DLLEXPORT
+void msgpack_unpacker_free(msgpack_unpacker* mpac);
+
+
+#ifndef MSGPACK_UNPACKER_RESERVE_SIZE
+#define MSGPACK_UNPACKER_RESERVE_SIZE (32*1024)
+#endif
+
+/**
+ * Reserves free space of the internal buffer.
+ * Use this function to fill the internal buffer with
+ * msgpack_unpacker_buffer(msgpack_unpacker*),
+ * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*) and
+ * msgpack_unpacker_buffer_consumed(msgpack_unpacker*).
+ */
+static inline bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size);
+
+/**
+ * Gets pointer to the free space of the internal buffer.
+ * Use this function to fill the internal buffer with
+ * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t),
+ * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*) and
+ * msgpack_unpacker_buffer_consumed(msgpack_unpacker*).
+ */
+static inline char* msgpack_unpacker_buffer(msgpack_unpacker* mpac);
+
+/**
+ * Gets size of the free space of the internal buffer.
+ * Use this function to fill the internal buffer with
+ * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t),
+ * msgpack_unpacker_buffer(const msgpack_unpacker*) and
+ * msgpack_unpacker_buffer_consumed(msgpack_unpacker*).
+ */
+static inline size_t msgpack_unpacker_buffer_capacity(const msgpack_unpacker* mpac);
+
+/**
+ * Notifies the deserializer that the internal buffer filled.
+ * Use this function to fill the internal buffer with
+ * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t),
+ * msgpack_unpacker_buffer(msgpack_unpacker*) and
+ * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*).
+ */
+static inline void msgpack_unpacker_buffer_consumed(msgpack_unpacker* mpac, size_t size);
+
+
+/**
+ * Deserializes one object.
+ * Returns true if it successes. Otherwise false is returned.
+ * @param pac pointer to an initialized msgpack_unpacked object.
+ */
+MSGPACK_DLLEXPORT
+msgpack_unpack_return msgpack_unpacker_next(msgpack_unpacker* mpac, msgpack_unpacked* pac);
+
+/**
+ * Initializes a msgpack_unpacked object.
+ * The initialized object must be destroyed by msgpack_unpacked_destroy(msgpack_unpacker*).
+ * Use the object with msgpack_unpacker_next(msgpack_unpacker*, msgpack_unpacked*) or
+ * msgpack_unpack_next(msgpack_unpacked*, const char*, size_t, size_t*).
+ */
+static inline void msgpack_unpacked_init(msgpack_unpacked* result);
+
+/**
+ * Destroys a streaming deserializer initialized by msgpack_unpacked().
+ */
+static inline void msgpack_unpacked_destroy(msgpack_unpacked* result);
+
+/**
+ * Releases the memory zone from msgpack_unpacked object.
+ * The released zone must be freed by msgpack_zone_free(msgpack_zone*).
+ */
+static inline msgpack_zone* msgpack_unpacked_release_zone(msgpack_unpacked* result);
+
+
+MSGPACK_DLLEXPORT
+int msgpack_unpacker_execute(msgpack_unpacker* mpac);
+
+MSGPACK_DLLEXPORT
+msgpack_object msgpack_unpacker_data(msgpack_unpacker* mpac);
+
+MSGPACK_DLLEXPORT
+msgpack_zone* msgpack_unpacker_release_zone(msgpack_unpacker* mpac);
+
+MSGPACK_DLLEXPORT
+void msgpack_unpacker_reset_zone(msgpack_unpacker* mpac);
+
+MSGPACK_DLLEXPORT
+void msgpack_unpacker_reset(msgpack_unpacker* mpac);
+
+static inline size_t msgpack_unpacker_message_size(const msgpack_unpacker* mpac);
+
+
+/** @} */
+
+
+// obsolete
+MSGPACK_DLLEXPORT
+msgpack_unpack_return
+msgpack_unpack(const char* data, size_t len, size_t* off,
+ msgpack_zone* result_zone, msgpack_object* result);
+
+
+
+
+static inline size_t msgpack_unpacker_parsed_size(const msgpack_unpacker* mpac);
+
+MSGPACK_DLLEXPORT
+bool msgpack_unpacker_flush_zone(msgpack_unpacker* mpac);
+
+MSGPACK_DLLEXPORT
+bool msgpack_unpacker_expand_buffer(msgpack_unpacker* mpac, size_t size);
+
+static inline bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size)
+{
+ if(mpac->free >= size) { return true; }
+ return msgpack_unpacker_expand_buffer(mpac, size);
+}
+
+static inline char* msgpack_unpacker_buffer(msgpack_unpacker* mpac)
+{
+ return mpac->buffer + mpac->used;
+}
+
+static inline size_t msgpack_unpacker_buffer_capacity(const msgpack_unpacker* mpac)
+{
+ return mpac->free;
+}
+
+static inline void msgpack_unpacker_buffer_consumed(msgpack_unpacker* mpac, size_t size)
+{
+ mpac->used += size;
+ mpac->free -= size;
+}
+
+static inline size_t msgpack_unpacker_message_size(const msgpack_unpacker* mpac)
+{
+ return mpac->parsed - mpac->off + mpac->used;
+}
+
+static inline size_t msgpack_unpacker_parsed_size(const msgpack_unpacker* mpac)
+{
+ return mpac->parsed;
+}
+
+
+static inline void msgpack_unpacked_init(msgpack_unpacked* result)
+{
+ memset(result, 0, sizeof(msgpack_unpacked));
+}
+
+static inline void msgpack_unpacked_destroy(msgpack_unpacked* result)
+{
+ if(result->zone != NULL) {
+ msgpack_zone_free(result->zone);
+ result->zone = NULL;
+ memset(&result->data, 0, sizeof(msgpack_object));
+ }
+}
+
+static inline msgpack_zone* msgpack_unpacked_release_zone(msgpack_unpacked* result)
+{
+ if(result->zone != NULL) {
+ msgpack_zone* z = result->zone;
+ result->zone = NULL;
+ return z;
+ }
+ return NULL;
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/unpack.h */
+
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/unpack.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/unpack.hpp
new file mode 100644
index 000000000..4e00453c8
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/unpack.hpp
@@ -0,0 +1,1719 @@
+//
+// MessagePack for C++ deserializing routine
+//
+// Copyright (C) 2008-2015 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_UNPACK_HPP
+#define MSGPACK_UNPACK_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+#include "object.hpp"
+#include "zone.hpp"
+#include "unpack_define.h"
+#include "cpp_config.hpp"
+#include "sysdep.h"
+
+#include <memory>
+#include <stdexcept>
+
+#if !defined(MSGPACK_USE_CPP03)
+#include <atomic>
+#endif
+
+
+#if defined(_MSC_VER)
+// avoiding confliction std::max, std::min, and macro in windows.h
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+#endif // defined(_MSC_VER)
+
+#ifdef _msgpack_atomic_counter_header
+#include _msgpack_atomic_counter_header
+#endif
+
+
+const size_t COUNTER_SIZE = sizeof(_msgpack_atomic_counter_t);
+
+#ifndef MSGPACK_UNPACKER_INIT_BUFFER_SIZE
+#define MSGPACK_UNPACKER_INIT_BUFFER_SIZE (64*1024)
+#endif
+
+#ifndef MSGPACK_UNPACKER_RESERVE_SIZE
+#define MSGPACK_UNPACKER_RESERVE_SIZE (32*1024)
+#endif
+
+
+// backward compatibility
+#ifndef MSGPACK_UNPACKER_DEFAULT_INITIAL_BUFFER_SIZE
+#define MSGPACK_UNPACKER_DEFAULT_INITIAL_BUFFER_SIZE MSGPACK_UNPACKER_INIT_BUFFER_SIZE
+#endif
+
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+typedef bool (*unpack_reference_func)(clmdep_msgpack::type::object_type, std::size_t, void*);
+
+struct unpack_error : public std::runtime_error {
+ explicit unpack_error(const std::string& msg)
+ :std::runtime_error(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ explicit unpack_error(const char* msg):
+ std::runtime_error(msg) {}
+#endif // !defined(MSGPACK_USE_CPP03)
+};
+
+struct parse_error : public unpack_error {
+ explicit parse_error(const std::string& msg)
+ :unpack_error(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ explicit parse_error(const char* msg)
+ :unpack_error(msg) {}
+#endif // !defined(MSGPACK_USE_CPP03)
+};
+
+struct insufficient_bytes : public unpack_error {
+ explicit insufficient_bytes(const std::string& msg)
+ :unpack_error(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ explicit insufficient_bytes(const char* msg)
+ :unpack_error(msg) {}
+#endif // !defined(MSGPACK_USE_CPP03)
+};
+
+struct size_overflow : public unpack_error {
+ explicit size_overflow(const std::string& msg)
+ :unpack_error(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ explicit size_overflow(const char* msg)
+ :unpack_error(msg) {}
+#endif
+};
+
+struct array_size_overflow : public size_overflow {
+ array_size_overflow(const std::string& msg)
+ :size_overflow(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ array_size_overflow(const char* msg)
+ :size_overflow(msg) {}
+#endif
+};
+
+struct map_size_overflow : public size_overflow {
+ map_size_overflow(const std::string& msg)
+ :size_overflow(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ map_size_overflow(const char* msg)
+ :size_overflow(msg) {}
+#endif
+};
+
+struct str_size_overflow : public size_overflow {
+ str_size_overflow(const std::string& msg)
+ :size_overflow(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ str_size_overflow(const char* msg)
+ :size_overflow(msg) {}
+#endif
+};
+
+struct bin_size_overflow : public size_overflow {
+ bin_size_overflow(const std::string& msg)
+ :size_overflow(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ bin_size_overflow(const char* msg)
+ :size_overflow(msg) {}
+#endif
+};
+
+struct ext_size_overflow : public size_overflow {
+ ext_size_overflow(const std::string& msg)
+ :size_overflow(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ ext_size_overflow(const char* msg)
+ :size_overflow(msg) {}
+#endif
+};
+
+struct depth_size_overflow : public size_overflow {
+ depth_size_overflow(const std::string& msg)
+ :size_overflow(msg) {}
+#if !defined(MSGPACK_USE_CPP03)
+ depth_size_overflow(const char* msg)
+ :size_overflow(msg) {}
+#endif
+};
+
+class unpack_limit {
+public:
+ unpack_limit(
+ std::size_t array = 0xffffffff,
+ std::size_t map = 0xffffffff,
+ std::size_t str = 0xffffffff,
+ std::size_t bin = 0xffffffff,
+ std::size_t ext = 0xffffffff,
+ std::size_t depth = 0xffffffff)
+ :array_(array),
+ map_(map),
+ str_(str),
+ bin_(bin),
+ ext_(ext),
+ depth_(depth) {}
+ std::size_t array() const { return array_; }
+ std::size_t map() const { return map_; }
+ std::size_t str() const { return str_; }
+ std::size_t bin() const { return bin_; }
+ std::size_t ext() const { return ext_; }
+ std::size_t depth() const { return depth_; }
+
+private:
+ std::size_t array_;
+ std::size_t map_;
+ std::size_t str_;
+ std::size_t bin_;
+ std::size_t ext_;
+ std::size_t depth_;
+};
+
+namespace detail {
+
+class unpack_user {
+public:
+ unpack_user(unpack_reference_func f = nullptr,
+ void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit())
+ :m_func(f), m_user_data(user_data), m_limit(limit) {}
+ clmdep_msgpack::zone const& zone() const { return *m_zone; }
+ clmdep_msgpack::zone& zone() { return *m_zone; }
+ void set_zone(clmdep_msgpack::zone& zone) { m_zone = &zone; }
+ bool referenced() const { return m_referenced; }
+ void set_referenced(bool referenced) { m_referenced = referenced; }
+ unpack_reference_func reference_func() const { return m_func; }
+ void* user_data() const { return m_user_data; }
+ unpack_limit const& limit() const { return m_limit; }
+ unpack_limit& limit() { return m_limit; }
+
+private:
+ clmdep_msgpack::zone* m_zone;
+ bool m_referenced;
+ unpack_reference_func m_func;
+ void* m_user_data;
+ unpack_limit m_limit;
+};
+
+inline void unpack_uint8(uint8_t d, clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+
+inline void unpack_uint16(uint16_t d, clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+
+inline void unpack_uint32(uint32_t d, clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+
+inline void unpack_uint64(uint64_t d, clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+
+inline void unpack_int8(int8_t d, clmdep_msgpack::object& o)
+{ if(d >= 0) { o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+ else { o.type = clmdep_msgpack::type::NEGATIVE_INTEGER; o.via.i64 = d; } }
+
+inline void unpack_int16(int16_t d, clmdep_msgpack::object& o)
+{ if(d >= 0) { o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+ else { o.type = clmdep_msgpack::type::NEGATIVE_INTEGER; o.via.i64 = d; } }
+
+inline void unpack_int32(int32_t d, clmdep_msgpack::object& o)
+{ if(d >= 0) { o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+ else { o.type = clmdep_msgpack::type::NEGATIVE_INTEGER; o.via.i64 = d; } }
+
+inline void unpack_int64(int64_t d, clmdep_msgpack::object& o)
+{ if(d >= 0) { o.type = clmdep_msgpack::type::POSITIVE_INTEGER; o.via.u64 = d; }
+ else { o.type = clmdep_msgpack::type::NEGATIVE_INTEGER; o.via.i64 = d; } }
+
+inline void unpack_float(float d, clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::FLOAT; o.via.f64 = d; }
+
+inline void unpack_double(double d, clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::FLOAT; o.via.f64 = d; }
+
+inline void unpack_nil(clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::NIL; }
+
+inline void unpack_true(clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::BOOLEAN; o.via.boolean = true; }
+
+inline void unpack_false(clmdep_msgpack::object& o)
+{ o.type = clmdep_msgpack::type::BOOLEAN; o.via.boolean = false; }
+
+struct unpack_array {
+ void operator()(unpack_user& u, uint32_t n, clmdep_msgpack::object& o) const {
+ if (n > u.limit().array()) throw clmdep_msgpack::array_size_overflow("array size overflow");
+ o.type = clmdep_msgpack::type::ARRAY;
+ o.via.array.size = 0;
+ o.via.array.ptr = static_cast<clmdep_msgpack::object*>(u.zone().allocate_align(n*sizeof(clmdep_msgpack::object)));
+ }
+};
+
+inline void unpack_array_item(clmdep_msgpack::object& c, clmdep_msgpack::object const& o)
+{
+#if defined(__GNUC__) && !defined(__clang__)
+ std::memcpy(&c.via.array.ptr[c.via.array.size++], &o, sizeof(clmdep_msgpack::object));
+#else /* __GNUC__ && !__clang__ */
+ c.via.array.ptr[c.via.array.size++] = o;
+#endif /* __GNUC__ && !__clang__ */
+}
+
+struct unpack_map {
+ void operator()(unpack_user& u, uint32_t n, clmdep_msgpack::object& o) const {
+ if (n > u.limit().map()) throw clmdep_msgpack::map_size_overflow("map size overflow");
+ o.type = clmdep_msgpack::type::MAP;
+ o.via.map.size = 0;
+ o.via.map.ptr = static_cast<clmdep_msgpack::object_kv*>(u.zone().allocate_align(n*sizeof(clmdep_msgpack::object_kv)));
+ }
+};
+
+inline void unpack_map_item(clmdep_msgpack::object& c, clmdep_msgpack::object const& k, clmdep_msgpack::object const& v)
+{
+#if defined(__GNUC__) && !defined(__clang__)
+ std::memcpy(&c.via.map.ptr[c.via.map.size].key, &k, sizeof(clmdep_msgpack::object));
+ std::memcpy(&c.via.map.ptr[c.via.map.size].val, &v, sizeof(clmdep_msgpack::object));
+#else /* __GNUC__ && !__clang__ */
+ c.via.map.ptr[c.via.map.size].key = k;
+ c.via.map.ptr[c.via.map.size].val = v;
+#endif /* __GNUC__ && !__clang__ */
+ ++c.via.map.size;
+}
+
+inline void unpack_str(unpack_user& u, const char* p, uint32_t l, clmdep_msgpack::object& o)
+{
+ o.type = clmdep_msgpack::type::STR;
+ if (u.reference_func() && u.reference_func()(o.type, l, u.user_data())) {
+ o.via.str.ptr = p;
+ u.set_referenced(true);
+ }
+ else {
+ if (l > u.limit().str()) throw clmdep_msgpack::str_size_overflow("str size overflow");
+ char* tmp = static_cast<char*>(u.zone().allocate_align(l));
+ std::memcpy(tmp, p, l);
+ o.via.str.ptr = tmp;
+ }
+ o.via.str.size = l;
+}
+
+inline void unpack_bin(unpack_user& u, const char* p, uint32_t l, clmdep_msgpack::object& o)
+{
+ o.type = clmdep_msgpack::type::BIN;
+ if (u.reference_func() && u.reference_func()(o.type, l, u.user_data())) {
+ o.via.bin.ptr = p;
+ u.set_referenced(true);
+ }
+ else {
+ if (l > u.limit().bin()) throw clmdep_msgpack::bin_size_overflow("bin size overflow");
+ char* tmp = static_cast<char*>(u.zone().allocate_align(l));
+ std::memcpy(tmp, p, l);
+ o.via.bin.ptr = tmp;
+ }
+ o.via.bin.size = l;
+}
+
+inline void unpack_ext(unpack_user& u, const char* p, std::size_t l, clmdep_msgpack::object& o)
+{
+ o.type = clmdep_msgpack::type::EXT;
+ if (u.reference_func() && u.reference_func()(o.type, l, u.user_data())) {
+ o.via.ext.ptr = p;
+ u.set_referenced(true);
+ }
+ else {
+ if (l > u.limit().ext()) throw clmdep_msgpack::ext_size_overflow("ext size overflow");
+ char* tmp = static_cast<char*>(u.zone().allocate_align(l));
+ std::memcpy(tmp, p, l);
+ o.via.ext.ptr = tmp;
+ }
+ o.via.ext.size = static_cast<uint32_t>(l - 1);
+}
+
+
+class unpack_stack {
+public:
+ clmdep_msgpack::object const& obj() const { return m_obj; }
+ clmdep_msgpack::object& obj() { return m_obj; }
+ void set_obj(clmdep_msgpack::object const& obj) { m_obj = obj; }
+ std::size_t count() const { return m_count; }
+ void set_count(std::size_t count) { m_count = count; }
+ std::size_t decr_count() { return --m_count; }
+ uint32_t container_type() const { return m_container_type; }
+ void set_container_type(uint32_t container_type) { m_container_type = container_type; }
+ clmdep_msgpack::object const& map_key() const { return m_map_key; }
+ void set_map_key(clmdep_msgpack::object const& map_key) { m_map_key = map_key; }
+private:
+ clmdep_msgpack::object m_obj;
+ std::size_t m_count;
+ uint32_t m_container_type;
+ clmdep_msgpack::object m_map_key;
+};
+
+inline void init_count(void* buffer)
+{
+#if defined(MSGPACK_USE_CPP03)
+ *reinterpret_cast<volatile _msgpack_atomic_counter_t*>(buffer) = 1;
+#else // defined(MSGPACK_USE_CPP03)
+ new (buffer) std::atomic<unsigned int>(1);
+#endif // defined(MSGPACK_USE_CPP03)
+}
+
+inline void decr_count(void* buffer)
+{
+#if defined(MSGPACK_USE_CPP03)
+ if(_msgpack_sync_decr_and_fetch(reinterpret_cast<volatile _msgpack_atomic_counter_t*>(buffer)) == 0) {
+ free(buffer);
+ }
+#else // defined(MSGPACK_USE_CPP03)
+ if (--*reinterpret_cast<std::atomic<unsigned int>*>(buffer) == 0) {
+ free(buffer);
+ }
+#endif // defined(MSGPACK_USE_CPP03)
+}
+
+inline void incr_count(void* buffer)
+{
+#if defined(MSGPACK_USE_CPP03)
+ _msgpack_sync_incr_and_fetch(reinterpret_cast<volatile _msgpack_atomic_counter_t*>(buffer));
+#else // defined(MSGPACK_USE_CPP03)
+ ++*reinterpret_cast<std::atomic<unsigned int>*>(buffer);
+#endif // defined(MSGPACK_USE_CPP03)
+}
+
+#if defined(MSGPACK_USE_CPP03)
+inline _msgpack_atomic_counter_t get_count(void* buffer)
+{
+ return *reinterpret_cast<volatile _msgpack_atomic_counter_t*>(buffer);
+}
+#else // defined(MSGPACK_USE_CPP03)
+inline std::atomic<unsigned int> const& get_count(void* buffer)
+{
+ return *reinterpret_cast<std::atomic<unsigned int>*>(buffer);
+}
+#endif // defined(MSGPACK_USE_CPP03)
+
+struct fix_tag {
+ char f1[65]; // FIXME unique size is required. or use is_same meta function.
+};
+
+template <typename T>
+struct value {
+ typedef T type;
+};
+template <>
+struct value<fix_tag> {
+ typedef uint32_t type;
+};
+
+template <typename T>
+inline void load(uint32_t& dst, const char* n, typename clmdep_msgpack::enable_if<sizeof(T) == sizeof(fix_tag)>::type* = nullptr) {
+ dst = static_cast<uint32_t>(*reinterpret_cast<const uint8_t*>(n)) & 0x0f;
+}
+
+template <typename T>
+inline void load(T& dst, const char* n, typename clmdep_msgpack::enable_if<sizeof(T) == 1>::type* = nullptr) {
+ dst = static_cast<T>(*reinterpret_cast<const uint8_t*>(n));
+}
+
+template <typename T>
+inline void load(T& dst, const char* n, typename clmdep_msgpack::enable_if<sizeof(T) == 2>::type* = nullptr) {
+ _msgpack_load16(T, n, &dst);
+}
+
+template <typename T>
+inline void load(T& dst, const char* n, typename clmdep_msgpack::enable_if<sizeof(T) == 4>::type* = nullptr) {
+ _msgpack_load32(T, n, &dst);
+}
+
+template <typename T>
+inline void load(T& dst, const char* n, typename clmdep_msgpack::enable_if<sizeof(T) == 8>::type* = nullptr) {
+ _msgpack_load64(T, n, &dst);
+}
+
+class context {
+public:
+ context(unpack_reference_func f, void* user_data, unpack_limit const& limit)
+ :m_trail(0), m_user(f, user_data, limit), m_cs(MSGPACK_CS_HEADER)
+ {
+ m_stack.reserve(MSGPACK_EMBED_STACK_SIZE);
+ m_stack.push_back(unpack_stack());
+ }
+
+ void init()
+ {
+ m_cs = MSGPACK_CS_HEADER;
+ m_trail = 0;
+ m_stack.resize(1);
+ m_stack[0].set_obj(clmdep_msgpack::object());
+ }
+
+ clmdep_msgpack::object const& data() const
+ {
+ return m_stack[0].obj();
+ }
+
+ unpack_user& user()
+ {
+ return m_user;
+ }
+
+ unpack_user const& user() const
+ {
+ return m_user;
+ }
+
+ int execute(const char* data, std::size_t len, std::size_t& off);
+
+private:
+ template <typename T>
+ static uint32_t next_cs(T p)
+ {
+ return static_cast<uint32_t>(*p) & 0x1f;
+ }
+
+ template <typename T, typename Func>
+ int push_aggregate(
+ Func const& f,
+ uint32_t container_type,
+ clmdep_msgpack::object& obj,
+ const char* load_pos,
+ std::size_t& off) {
+ typename value<T>::type tmp;
+ load<T>(tmp, load_pos);
+ f(m_user, tmp, m_stack.back().obj());
+ if(tmp == 0) {
+ obj = m_stack.back().obj();
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_stack.back().set_container_type(container_type);
+ m_stack.back().set_count(tmp);
+ if (m_stack.size() <= m_user.limit().depth()) {
+ m_stack.push_back(unpack_stack());
+ }
+ else {
+ throw clmdep_msgpack::depth_size_overflow("depth size overflow");
+ }
+ m_cs = MSGPACK_CS_HEADER;
+ ++m_current;
+ }
+ return 0;
+ }
+
+ int push_item(clmdep_msgpack::object& obj) {
+ bool finish = false;
+ while (!finish) {
+ if(m_stack.size() == 1) {
+ return 1;
+ }
+ unpack_stack& sp = *(m_stack.end() - 2);
+ switch(sp.container_type()) {
+ case MSGPACK_CT_ARRAY_ITEM:
+ unpack_array_item(sp.obj(), obj);
+ if(sp.decr_count() == 0) {
+ obj = sp.obj();
+ m_stack.pop_back();
+ }
+ else {
+ finish = true;
+ }
+ break;
+ case MSGPACK_CT_MAP_KEY:
+ sp.set_map_key(obj);
+ sp.set_container_type(MSGPACK_CT_MAP_VALUE);
+ finish = true;
+ break;
+ case MSGPACK_CT_MAP_VALUE:
+ unpack_map_item(sp.obj(), sp.map_key(), obj);
+ if(sp.decr_count() == 0) {
+ obj = sp.obj();
+ m_stack.pop_back();
+ }
+ else {
+ sp.set_container_type(MSGPACK_CT_MAP_KEY);
+ finish = true;
+ }
+ break;
+ default:
+ return -1;
+ }
+ }
+ return 0;
+ }
+
+ int push_proc(clmdep_msgpack::object& obj, std::size_t& off) {
+ int ret = push_item(obj);
+ if (ret > 0) {
+ m_stack[0].set_obj(obj);
+ ++m_current;
+ /*printf("-- finish --\n"); */
+ off = m_current - m_start;
+ }
+ else if (ret < 0) {
+ off = m_current - m_start;
+ }
+ else {
+ m_cs = MSGPACK_CS_HEADER;
+ ++m_current;
+ }
+ return ret;
+ }
+
+ template <std::size_t N>
+ static void check_ext_size(std::size_t /*size*/) {
+ }
+
+private:
+ char const* m_start;
+ char const* m_current;
+
+ std::size_t m_trail;
+ unpack_user m_user;
+ uint32_t m_cs;
+ std::vector<unpack_stack> m_stack;
+};
+
+template <>
+inline void context::check_ext_size<4>(std::size_t size) {
+ if (size == 0xffffffff) throw clmdep_msgpack::ext_size_overflow("ext size overflow");
+}
+
+inline int context::execute(const char* data, std::size_t len, std::size_t& off)
+{
+ assert(len >= off);
+
+ m_start = data;
+ m_current = data + off;
+ const char* const pe = data + len;
+ const char* n = nullptr;
+
+ clmdep_msgpack::object obj;
+
+ if(m_current == pe) {
+ off = m_current - m_start;
+ return 0;
+ }
+ bool fixed_trail_again = false;
+ do {
+ if (m_cs == MSGPACK_CS_HEADER) {
+ fixed_trail_again = false;
+ int selector = *reinterpret_cast<const unsigned char*>(m_current);
+ if (0x00 <= selector && selector <= 0x7f) { // Positive Fixnum
+ unpack_uint8(*reinterpret_cast<const uint8_t*>(m_current), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } else if(0xe0 <= selector && selector <= 0xff) { // Negative Fixnum
+ unpack_int8(*reinterpret_cast<const int8_t*>(m_current), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } else if (0xc4 <= selector && selector <= 0xdf) {
+ const uint32_t trail[] = {
+ 1, // bin 8 0xc4
+ 2, // bin 16 0xc5
+ 4, // bin 32 0xc6
+ 1, // ext 8 0xc7
+ 2, // ext 16 0xc8
+ 4, // ext 32 0xc9
+ 4, // float 32 0xca
+ 8, // float 64 0xcb
+ 1, // uint 8 0xcc
+ 2, // uint 16 0xcd
+ 4, // uint 32 0xce
+ 8, // uint 64 0xcf
+ 1, // int 8 0xd0
+ 2, // int 16 0xd1
+ 4, // int 32 0xd2
+ 8, // int 64 0xd3
+ 2, // fixext 1 0xd4
+ 3, // fixext 2 0xd5
+ 5, // fixext 4 0xd6
+ 9, // fixext 8 0xd7
+ 17,// fixext 16 0xd8
+ 1, // str 8 0xd9
+ 2, // str 16 0xda
+ 4, // str 32 0xdb
+ 2, // array 16 0xdc
+ 4, // array 32 0xdd
+ 2, // map 16 0xde
+ 4, // map 32 0xdf
+ };
+ m_trail = trail[selector - 0xc4];
+ m_cs = next_cs(m_current);
+ fixed_trail_again = true;
+ } else if(0xa0 <= selector && selector <= 0xbf) { // FixStr
+ m_trail = static_cast<uint32_t>(*m_current) & 0x1f;
+ if(m_trail == 0) {
+ unpack_str(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_STR_VALUE;
+ fixed_trail_again = true;
+ }
+
+ } else if(0x90 <= selector && selector <= 0x9f) { // FixArray
+ int ret = push_aggregate<fix_tag>(
+ unpack_array(), MSGPACK_CT_ARRAY_ITEM, obj, m_current, off);
+ if (ret != 0) return ret;
+ } else if(0x80 <= selector && selector <= 0x8f) { // FixMap
+ int ret = push_aggregate<fix_tag>(
+ unpack_map(), MSGPACK_CT_MAP_KEY, obj, m_current, off);
+ if (ret != 0) return ret;
+ } else if(selector == 0xc2) { // false
+ unpack_false(obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } else if(selector == 0xc3) { // true
+ unpack_true(obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } else if(selector == 0xc0) { // nil
+ unpack_nil(obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } else {
+ off = m_current - m_start;
+ return -1;
+ }
+ // end MSGPACK_CS_HEADER
+ }
+ if (m_cs != MSGPACK_CS_HEADER || fixed_trail_again) {
+ if (fixed_trail_again) {
+ ++m_current;
+ fixed_trail_again = false;
+ }
+ if(static_cast<std::size_t>(pe - m_current) < m_trail) {
+ off = m_current - m_start;
+ return 0;
+ }
+ n = m_current;
+ m_current += m_trail - 1;
+ switch(m_cs) {
+ //case MSGPACK_CS_
+ //case MSGPACK_CS_
+ case MSGPACK_CS_FLOAT: {
+ union { uint32_t i; float f; } mem;
+ load<uint32_t>(mem.i, n);
+ unpack_float(mem.f, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_DOUBLE: {
+ union { uint64_t i; double f; } mem;
+ load<uint64_t>(mem.i, n);
+#if defined(TARGET_OS_IPHONE)
+ // ok
+#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi
+ // https://github.com/msgpack/msgpack-perl/pull/1
+ mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL);
+#endif
+ unpack_double(mem.f, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_UINT_8: {
+ uint8_t tmp;
+ load<uint8_t>(tmp, n);
+ unpack_uint8(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_UINT_16: {
+ uint16_t tmp;
+ load<uint16_t>(tmp, n);
+ unpack_uint16(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_UINT_32: {
+ uint32_t tmp;
+ load<uint32_t>(tmp, n);
+ unpack_uint32(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_UINT_64: {
+ uint64_t tmp;
+ load<uint64_t>(tmp, n);
+ unpack_uint64(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_INT_8: {
+ int8_t tmp;
+ load<int8_t>(tmp, n);
+ unpack_int8(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_INT_16: {
+ int16_t tmp;
+ load<int16_t>(tmp, n);
+ unpack_int16(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_INT_32: {
+ int32_t tmp;
+ load<int32_t>(tmp, n);
+ unpack_int32(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_INT_64: {
+ int64_t tmp;
+ load<int64_t>(tmp, n);
+ unpack_int64(tmp, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_FIXEXT_1: {
+ unpack_ext(m_user, n, 1+1, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_FIXEXT_2: {
+ unpack_ext(m_user, n, 2+1, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_FIXEXT_4: {
+ unpack_ext(m_user, n, 4+1, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_FIXEXT_8: {
+ unpack_ext(m_user, n, 8+1, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_FIXEXT_16: {
+ unpack_ext(m_user, n, 16+1, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_STR_8: {
+ uint8_t tmp;
+ load<uint8_t>(tmp, n);
+ m_trail = tmp;
+ if(m_trail == 0) {
+ unpack_str(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_STR_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_BIN_8: {
+ uint8_t tmp;
+ load<uint8_t>(tmp, n);
+ m_trail = tmp;
+ if(m_trail == 0) {
+ unpack_bin(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_BIN_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_EXT_8: {
+ uint8_t tmp;
+ load<uint8_t>(tmp, n);
+ m_trail = tmp + 1;
+ if(m_trail == 0) {
+ unpack_ext(m_user, n, m_trail, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_EXT_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_STR_16: {
+ uint16_t tmp;
+ load<uint16_t>(tmp, n);
+ m_trail = tmp;
+ if(m_trail == 0) {
+ unpack_str(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_STR_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_BIN_16: {
+ uint16_t tmp;
+ load<uint16_t>(tmp, n);
+ m_trail = tmp;
+ if(m_trail == 0) {
+ unpack_bin(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_BIN_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_EXT_16: {
+ uint16_t tmp;
+ load<uint16_t>(tmp, n);
+ m_trail = tmp + 1;
+ if(m_trail == 0) {
+ unpack_ext(m_user, n, m_trail, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_EXT_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_STR_32: {
+ uint32_t tmp;
+ load<uint32_t>(tmp, n);
+ m_trail = tmp;
+ if(m_trail == 0) {
+ unpack_str(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_STR_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_BIN_32: {
+ uint32_t tmp;
+ load<uint32_t>(tmp, n);
+ m_trail = tmp;
+ if(m_trail == 0) {
+ unpack_bin(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_BIN_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_CS_EXT_32: {
+ uint32_t tmp;
+ load<uint32_t>(tmp, n);
+ check_ext_size<sizeof(std::size_t)>(tmp);
+ m_trail = tmp;
+ ++m_trail;
+ if(m_trail == 0) {
+ unpack_ext(m_user, n, m_trail, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ }
+ else {
+ m_cs = MSGPACK_ACS_EXT_VALUE;
+ fixed_trail_again = true;
+ }
+ } break;
+ case MSGPACK_ACS_STR_VALUE: {
+ unpack_str(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_ACS_BIN_VALUE: {
+ unpack_bin(m_user, n, static_cast<uint32_t>(m_trail), obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_ACS_EXT_VALUE: {
+ unpack_ext(m_user, n, m_trail, obj);
+ int ret = push_proc(obj, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_ARRAY_16: {
+ int ret = push_aggregate<uint16_t>(
+ unpack_array(), MSGPACK_CT_ARRAY_ITEM, obj, n, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_ARRAY_32: {
+ /* FIXME security guard */
+ int ret = push_aggregate<uint32_t>(
+ unpack_array(), MSGPACK_CT_ARRAY_ITEM, obj, n, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_MAP_16: {
+ int ret = push_aggregate<uint16_t>(
+ unpack_map(), MSGPACK_CT_MAP_KEY, obj, n, off);
+ if (ret != 0) return ret;
+ } break;
+ case MSGPACK_CS_MAP_32: {
+ /* FIXME security guard */
+ int ret = push_aggregate<uint32_t>(
+ unpack_map(), MSGPACK_CT_MAP_KEY, obj, n, off);
+ if (ret != 0) return ret;
+ } break;
+ default:
+ off = m_current - m_start;
+ return -1;
+ }
+ }
+ } while(m_current != pe);
+
+ off = m_current - m_start;
+ return 0;
+}
+
+} // detail
+
+
+typedef object_handle unpacked;
+
+class unpacker {
+public:
+ unpacker(unpack_reference_func f = &unpacker::default_reference_func,
+ void* user_data = nullptr,
+ std::size_t init_buffer_size = MSGPACK_UNPACKER_INIT_BUFFER_SIZE,
+ unpack_limit const& limit = unpack_limit());
+
+#if !defined(MSGPACK_USE_CPP03)
+ unpacker(unpacker&& other);
+ unpacker& operator=(unpacker&& other);
+#endif // !defined(MSGPACK_USE_CPP03)
+
+ ~unpacker();
+
+public:
+ /*! 1. reserve buffer. at least `size' bytes of capacity will be ready */
+ void reserve_buffer(std::size_t size = MSGPACK_UNPACKER_RESERVE_SIZE);
+
+ /*! 2. read data to the buffer() up to buffer_capacity() bytes */
+ char* buffer();
+ std::size_t buffer_capacity() const;
+
+ /*! 3. specify the number of bytes actually copied */
+ void buffer_consumed(std::size_t size);
+
+ /*! 4. repeat next() until it retunrs false */
+ bool next(unpacked* result);
+ bool next(unpacked& result, bool& referenced);
+ bool next(unpacked& result);
+
+ /*! 5. check if the size of message doesn't exceed assumption. */
+ std::size_t message_size() const;
+
+ // Basic usage of the unpacker is as following:
+ //
+ // unpacker pac;
+ // while( /* input is readable */ ) {
+ //
+ // // 1.
+ // pac.reserve_buffer(32*1024);
+ //
+ // // 2.
+ // std::size_t bytes = input.readsome(pac.buffer(), pac.buffer_capacity());
+ //
+ // // error handling ...
+ //
+ // // 3.
+ // pac.buffer_consumed(bytes);
+ //
+ // // 4.
+ // unpacked result;
+ // while(pac.next(&result)) {
+ // // do some with the object with the zone.
+ // object obj = result.get();
+ // std::auto_ptr<msgpack:zone> z = result.zone();
+ // on_message(obj, z);
+ //
+ // //// boost::shared_ptr is also usable:
+ // // boost::shared_ptr<zone> life(z.release());
+ // // on_message(result.get(), life);
+ // }
+ //
+ // // 5.
+ // if(pac.message_size() > 10*1024*1024) {
+ // throw std::runtime_error("message is too large");
+ // }
+ // }
+ //
+
+ /*! for backward compatibility */
+ bool execute();
+
+ /*! for backward compatibility */
+ clmdep_msgpack::object const& data();
+
+ /*! for backward compatibility */
+ clmdep_msgpack::zone* release_zone();
+
+ /*! for backward compatibility */
+ void reset_zone();
+
+ /*! for backward compatibility */
+ void reset();
+
+public:
+ // These functions are usable when non-MessagePack message follows after
+ // MessagePack message.
+ std::size_t parsed_size() const;
+
+ /*! get address of the buffer that is not parsed */
+ char* nonparsed_buffer();
+ std::size_t nonparsed_size() const;
+
+ /*! skip specified size of non-parsed buffer, leaving the buffer */
+ // Note that the `size' argument must be smaller than nonparsed_size()
+ void skip_nonparsed_buffer(std::size_t size);
+
+ /*! remove unparsed buffer from unpacker */
+ // Note that reset() leaves non-parsed buffer.
+ void remove_nonparsed_buffer();
+
+private:
+ void expand_buffer(std::size_t size);
+ int execute_imp();
+ bool flush_zone();
+ static bool default_reference_func(clmdep_msgpack::type::object_type type, std::size_t len, void*);
+
+private:
+ char* m_buffer;
+ std::size_t m_used;
+ std::size_t m_free;
+ std::size_t m_off;
+ std::size_t m_parsed;
+ clmdep_msgpack::unique_ptr<clmdep_msgpack::zone> m_z;
+ std::size_t m_initial_buffer_size;
+ detail::context m_ctx;
+
+#if defined(MSGPACK_USE_CPP03)
+private:
+ unpacker(const unpacker&);
+ unpacker& operator=(const unpacker&);
+#else // defined(MSGPACK_USE_CPP03)
+ unpacker(const unpacker&) = delete;
+ unpacker& operator=(const unpacker&) = delete;
+#endif // defined(MSGPACK_USE_CPP03)
+};
+
+unpacked unpack(
+ const char* data, std::size_t len, std::size_t& off, bool& referenced,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+unpacked unpack(
+ const char* data, std::size_t len, std::size_t& off,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+unpacked unpack(
+ const char* data, std::size_t len, bool& referenced,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+unpacked unpack(
+ const char* data, std::size_t len,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+
+
+void unpack(unpacked& result,
+ const char* data, std::size_t len, std::size_t& off, bool& referenced,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+void unpack(unpacked& result,
+ const char* data, std::size_t len, std::size_t& off,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+void unpack(unpacked& result,
+ const char* data, std::size_t len, bool& referenced,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+
+void unpack(unpacked& result,
+ const char* data, std::size_t len,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+
+clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len, std::size_t& off, bool& referenced,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len, std::size_t& off,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len, bool& referenced,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+
+
+// obsolete
+void unpack(unpacked* result,
+ const char* data, std::size_t len, std::size_t* off = nullptr, bool* referenced = nullptr,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit());
+
+
+// for internal use
+typedef enum {
+ UNPACK_SUCCESS = 2,
+ UNPACK_EXTRA_BYTES = 1,
+ UNPACK_CONTINUE = 0,
+ UNPACK_PARSE_ERROR = -1
+} unpack_return;
+
+inline unpacker::unpacker(unpack_reference_func f,
+ void* user_data,
+ std::size_t initial_buffer_size,
+ unpack_limit const& limit)
+ :m_z(new clmdep_msgpack::zone), m_ctx(f, user_data, limit)
+{
+ if(initial_buffer_size < COUNTER_SIZE) {
+ initial_buffer_size = COUNTER_SIZE;
+ }
+
+ char* buffer = static_cast<char*>(::malloc(initial_buffer_size));
+ if(!buffer) {
+ throw std::bad_alloc();
+ }
+
+ m_buffer = buffer;
+ m_used = COUNTER_SIZE;
+ m_free = initial_buffer_size - m_used;
+ m_off = COUNTER_SIZE;
+ m_parsed = 0;
+ m_initial_buffer_size = initial_buffer_size;
+
+ detail::init_count(m_buffer);
+
+ m_ctx.init();
+ m_ctx.user().set_zone(*m_z);
+ m_ctx.user().set_referenced(false);
+}
+
+#if !defined(MSGPACK_USE_CPP03)
+// Move constructor and move assignment operator
+
+inline unpacker::unpacker(unpacker&& other)
+ :m_buffer(other.m_buffer),
+ m_used(other.m_used),
+ m_free(other.m_free),
+ m_off(other.m_off),
+ m_parsed(other.m_parsed),
+ m_z(std::move(other.m_z)),
+ m_initial_buffer_size(other.m_initial_buffer_size),
+ m_ctx(other.m_ctx) {
+ other.m_buffer = nullptr;
+}
+
+inline unpacker& unpacker::operator=(unpacker&& other) {
+ this->~unpacker();
+ new (this) unpacker(std::move(other));
+ return *this;
+}
+
+#endif // !defined(MSGPACK_USE_CPP03)
+
+
+inline unpacker::~unpacker()
+{
+ // These checks are required for move operations.
+ if (m_buffer) detail::decr_count(m_buffer);
+}
+
+
+inline void unpacker::reserve_buffer(std::size_t size)
+{
+ if(m_free >= size) return;
+ expand_buffer(size);
+}
+
+inline void unpacker::expand_buffer(std::size_t size)
+{
+ if(m_used == m_off && detail::get_count(m_buffer) == 1
+ && !m_ctx.user().referenced()) {
+ // rewind buffer
+ m_free += m_used - COUNTER_SIZE;
+ m_used = COUNTER_SIZE;
+ m_off = COUNTER_SIZE;
+
+ if(m_free >= size) return;
+ }
+
+ if(m_off == COUNTER_SIZE) {
+ std::size_t next_size = (m_used + m_free) * 2; // include COUNTER_SIZE
+ while(next_size < size + m_used) {
+ std::size_t tmp_next_size = next_size * 2;
+ if (tmp_next_size <= next_size) {
+ next_size = size + m_used;
+ break;
+ }
+ next_size = tmp_next_size;
+ }
+
+ char* tmp = static_cast<char*>(::realloc(m_buffer, next_size));
+ if(!tmp) {
+ throw std::bad_alloc();
+ }
+
+ m_buffer = tmp;
+ m_free = next_size - m_used;
+
+ } else {
+ std::size_t next_size = m_initial_buffer_size; // include COUNTER_SIZE
+ std::size_t not_parsed = m_used - m_off;
+ while(next_size < size + not_parsed + COUNTER_SIZE) {
+ std::size_t tmp_next_size = next_size * 2;
+ if (tmp_next_size <= next_size) {
+ next_size = size + not_parsed + COUNTER_SIZE;
+ break;
+ }
+ next_size = tmp_next_size;
+ }
+
+ char* tmp = static_cast<char*>(::malloc(next_size));
+ if(!tmp) {
+ throw std::bad_alloc();
+ }
+
+ detail::init_count(tmp);
+
+ std::memcpy(tmp+COUNTER_SIZE, m_buffer + m_off, not_parsed);
+
+ if(m_ctx.user().referenced()) {
+ try {
+ m_z->push_finalizer(&detail::decr_count, m_buffer);
+ }
+ catch (...) {
+ ::free(tmp);
+ throw;
+ }
+ m_ctx.user().set_referenced(false);
+ } else {
+ detail::decr_count(m_buffer);
+ }
+
+ m_buffer = tmp;
+ m_used = not_parsed + COUNTER_SIZE;
+ m_free = next_size - m_used;
+ m_off = COUNTER_SIZE;
+ }
+}
+
+inline char* unpacker::buffer()
+{
+ return m_buffer + m_used;
+}
+
+inline std::size_t unpacker::buffer_capacity() const
+{
+ return m_free;
+}
+
+inline void unpacker::buffer_consumed(std::size_t size)
+{
+ m_used += size;
+ m_free -= size;
+}
+
+inline bool unpacker::next(unpacked& result, bool& referenced)
+{
+ referenced = false;
+ int ret = execute_imp();
+ if(ret < 0) {
+ throw clmdep_msgpack::parse_error("parse error");
+ }
+
+ if(ret == 0) {
+ result.zone().reset();
+ result.set(object());
+ return false;
+
+ } else {
+ referenced = m_ctx.user().referenced();
+ result.zone().reset( release_zone() );
+ result.set(data());
+ reset();
+ return true;
+ }
+}
+
+inline bool unpacker::next(unpacked& result)
+{
+ bool referenced;
+ return next(result, referenced);
+}
+
+inline bool unpacker::next(unpacked* result)
+{
+ return next(*result);
+}
+
+
+inline bool unpacker::execute()
+{
+ int ret = execute_imp();
+ if(ret < 0) {
+ throw clmdep_msgpack::parse_error("parse error");
+ } else if(ret == 0) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+inline int unpacker::execute_imp()
+{
+ std::size_t off = m_off;
+ int ret = m_ctx.execute(m_buffer, m_used, m_off);
+ if(m_off > off) {
+ m_parsed += m_off - off;
+ }
+ return ret;
+}
+
+inline clmdep_msgpack::object const& unpacker::data()
+{
+ return m_ctx.data();
+}
+
+inline clmdep_msgpack::zone* unpacker::release_zone()
+{
+ if(!flush_zone()) {
+ return nullptr;
+ }
+
+ clmdep_msgpack::zone* r = new clmdep_msgpack::zone;
+ clmdep_msgpack::zone* old = m_z.release();
+ m_z.reset(r);
+ m_ctx.user().set_zone(*m_z);
+
+ return old;
+}
+
+inline void unpacker::reset_zone()
+{
+ m_z->clear();
+}
+
+inline bool unpacker::flush_zone()
+{
+ if(m_ctx.user().referenced()) {
+ try {
+ m_z->push_finalizer(&detail::decr_count, m_buffer);
+ } catch (...) {
+ return false;
+ }
+ m_ctx.user().set_referenced(false);
+
+ detail::incr_count(m_buffer);
+ }
+
+ return true;
+}
+
+inline void unpacker::reset()
+{
+ m_ctx.init();
+ // don't reset referenced flag
+ m_parsed = 0;
+}
+
+inline std::size_t unpacker::message_size() const
+{
+ return m_parsed - m_off + m_used;
+}
+
+inline std::size_t unpacker::parsed_size() const
+{
+ return m_parsed;
+}
+
+inline char* unpacker::nonparsed_buffer()
+{
+ return m_buffer + m_off;
+}
+
+inline std::size_t unpacker::nonparsed_size() const
+{
+ return m_used - m_off;
+}
+
+inline void unpacker::skip_nonparsed_buffer(std::size_t size)
+{
+ m_off += size;
+}
+
+inline void unpacker::remove_nonparsed_buffer()
+{
+ m_used = m_off;
+}
+
+namespace detail {
+
+inline unpack_return
+unpack_imp(const char* data, std::size_t len, std::size_t& off,
+ clmdep_msgpack::zone& result_zone, clmdep_msgpack::object& result, bool& referenced,
+ unpack_reference_func f = nullptr, void* user_data = nullptr,
+ unpack_limit const& limit = unpack_limit())
+{
+ std::size_t noff = off;
+
+ if(len <= noff) {
+ // FIXME
+ return UNPACK_CONTINUE;
+ }
+
+ detail::context ctx(f, user_data, limit);
+ ctx.init();
+
+ ctx.user().set_zone(result_zone);
+ ctx.user().set_referenced(false);
+ referenced = false;
+
+ int e = ctx.execute(data, len, noff);
+ if(e < 0) {
+ return UNPACK_PARSE_ERROR;
+ }
+
+ referenced = ctx.user().referenced();
+ off = noff;
+
+ if(e == 0) {
+ return UNPACK_CONTINUE;
+ }
+
+ result = ctx.data();
+
+ if(noff < len) {
+ return UNPACK_EXTRA_BYTES;
+ }
+
+ return UNPACK_SUCCESS;
+}
+
+} // detail
+
+// reference version
+
+inline unpacked unpack(
+ const char* data, std::size_t len, std::size_t& off, bool& referenced,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ clmdep_msgpack::object obj;
+ clmdep_msgpack::unique_ptr<clmdep_msgpack::zone> z(new clmdep_msgpack::zone);
+ referenced = false;
+ std::size_t noff = off;
+ unpack_return ret = detail::unpack_imp(
+ data, len, noff, *z, obj, referenced, f, user_data, limit);
+
+ switch(ret) {
+ case UNPACK_SUCCESS:
+ off = noff;
+ return unpacked(obj, clmdep_msgpack::move(z));
+ case UNPACK_EXTRA_BYTES:
+ off = noff;
+ return unpacked(obj, clmdep_msgpack::move(z));
+ case UNPACK_CONTINUE:
+ throw clmdep_msgpack::insufficient_bytes("insufficient bytes");
+ case UNPACK_PARSE_ERROR:
+ default:
+ throw clmdep_msgpack::parse_error("parse error");
+ }
+ return unpacked();
+}
+
+inline unpacked unpack(
+ const char* data, std::size_t len, std::size_t& off,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ bool referenced;
+ return unpack(data, len, off, referenced, f, user_data, limit);
+}
+
+inline unpacked unpack(
+ const char* data, std::size_t len, bool& referenced,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ std::size_t off = 0;
+ return unpack(data, len, off, referenced, f, user_data, limit);
+}
+
+inline unpacked unpack(
+ const char* data, std::size_t len,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ bool referenced;
+ std::size_t off = 0;
+ return unpack(data, len, off, referenced, f, user_data, limit);
+}
+
+inline void unpack(unpacked& result,
+ const char* data, std::size_t len, std::size_t& off, bool& referenced,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ clmdep_msgpack::object obj;
+ clmdep_msgpack::unique_ptr<clmdep_msgpack::zone> z(new clmdep_msgpack::zone);
+ referenced = false;
+ std::size_t noff = off;
+ unpack_return ret = detail::unpack_imp(
+ data, len, noff, *z, obj, referenced, f, user_data, limit);
+
+ switch(ret) {
+ case UNPACK_SUCCESS:
+ off = noff;
+ result.set(obj);
+ result.zone() = clmdep_msgpack::move(z);
+ return;
+ case UNPACK_EXTRA_BYTES:
+ off = noff;
+ result.set(obj);
+ result.zone() = clmdep_msgpack::move(z);
+ return;
+ case UNPACK_CONTINUE:
+ throw clmdep_msgpack::insufficient_bytes("insufficient bytes");
+ case UNPACK_PARSE_ERROR:
+ default:
+ throw clmdep_msgpack::parse_error("parse error");
+ }
+}
+
+inline void unpack(unpacked& result,
+ const char* data, std::size_t len, std::size_t& off,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ bool referenced;
+ unpack(result, data, len, off, referenced, f, user_data, limit);
+}
+
+inline void unpack(unpacked& result,
+ const char* data, std::size_t len, bool& referenced,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ std::size_t off = 0;
+ unpack(result, data, len, off, referenced, f, user_data, limit);
+}
+
+inline void unpack(unpacked& result,
+ const char* data, std::size_t len,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ bool referenced;
+ std::size_t off = 0;
+ unpack(result, data, len, off, referenced, f, user_data, limit);
+}
+
+
+inline clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len, std::size_t& off, bool& referenced,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ clmdep_msgpack::object obj;
+ std::size_t noff = off;
+ referenced = false;
+ unpack_return ret = detail::unpack_imp(
+ data, len, noff, z, obj, referenced, f, user_data, limit);
+
+ switch(ret) {
+ case UNPACK_SUCCESS:
+ off = noff;
+ return obj;
+ case UNPACK_EXTRA_BYTES:
+ off = noff;
+ return obj;
+ case UNPACK_CONTINUE:
+ throw clmdep_msgpack::insufficient_bytes("insufficient bytes");
+ case UNPACK_PARSE_ERROR:
+ default:
+ throw clmdep_msgpack::parse_error("parse error");
+ }
+ return obj;
+}
+
+inline clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len, std::size_t& off,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ bool referenced;
+ return unpack(z, data, len, off, referenced, f, user_data, limit);
+}
+
+inline clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len, bool& referenced,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ std::size_t off = 0;
+ return unpack(z, data, len, off, referenced, f, user_data, limit);
+}
+
+inline clmdep_msgpack::object unpack(
+ clmdep_msgpack::zone& z,
+ const char* data, std::size_t len,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ bool referenced;
+ std::size_t off = 0;
+ return unpack(z, data, len, off, referenced, f, user_data, limit);
+}
+
+// obsolete
+// pointer version
+inline void unpack(unpacked* result,
+ const char* data, std::size_t len, std::size_t* off, bool* referenced,
+ unpack_reference_func f, void* user_data, unpack_limit const& limit)
+{
+ if (off)
+ if (referenced) unpack(*result, data, len, *off, *referenced, f, user_data, limit);
+ else unpack(*result, data, len, *off, f, user_data, limit);
+ else
+ if (referenced) unpack(*result, data, len, *referenced, f, user_data, limit);
+ else unpack(*result, data, len, f, user_data, limit);
+}
+
+inline bool unpacker::default_reference_func(clmdep_msgpack::type::object_type /*type*/, std::size_t /*len*/, void*)
+{
+ return true;
+}
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+
+#endif /* msgpack/unpack.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/unpack_define.h b/host/lib/deps/rpclib/include/rpc/msgpack/unpack_define.h
new file mode 100644
index 000000000..912a1e3ba
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/unpack_define.h
@@ -0,0 +1,97 @@
+/*
+ * MessagePack unpacking routine template
+ *
+ * Copyright (C) 2008-2010 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_UNPACK_DEFINE_H
+#define MSGPACK_UNPACK_DEFINE_H
+
+#include "rpc/msgpack/sysdep.h"
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifndef MSGPACK_EMBED_STACK_SIZE
+#define MSGPACK_EMBED_STACK_SIZE 32
+#endif
+
+
+typedef enum {
+ MSGPACK_CS_HEADER = 0x00, // nil
+
+ //MSGPACK_CS_ = 0x01,
+ //MSGPACK_CS_ = 0x02, // false
+ //MSGPACK_CS_ = 0x03, // true
+
+ MSGPACK_CS_BIN_8 = 0x04,
+ MSGPACK_CS_BIN_16 = 0x05,
+ MSGPACK_CS_BIN_32 = 0x06,
+
+ MSGPACK_CS_EXT_8 = 0x07,
+ MSGPACK_CS_EXT_16 = 0x08,
+ MSGPACK_CS_EXT_32 = 0x09,
+
+ MSGPACK_CS_FLOAT = 0x0a,
+ MSGPACK_CS_DOUBLE = 0x0b,
+ MSGPACK_CS_UINT_8 = 0x0c,
+ MSGPACK_CS_UINT_16 = 0x0d,
+ MSGPACK_CS_UINT_32 = 0x0e,
+ MSGPACK_CS_UINT_64 = 0x0f,
+ MSGPACK_CS_INT_8 = 0x10,
+ MSGPACK_CS_INT_16 = 0x11,
+ MSGPACK_CS_INT_32 = 0x12,
+ MSGPACK_CS_INT_64 = 0x13,
+
+ MSGPACK_CS_FIXEXT_1 = 0x14,
+ MSGPACK_CS_FIXEXT_2 = 0x15,
+ MSGPACK_CS_FIXEXT_4 = 0x16,
+ MSGPACK_CS_FIXEXT_8 = 0x17,
+ MSGPACK_CS_FIXEXT_16 = 0x18,
+
+ MSGPACK_CS_STR_8 = 0x19, // str8
+ MSGPACK_CS_STR_16 = 0x1a, // str16
+ MSGPACK_CS_STR_32 = 0x1b, // str32
+ MSGPACK_CS_ARRAY_16 = 0x1c,
+ MSGPACK_CS_ARRAY_32 = 0x1d,
+ MSGPACK_CS_MAP_16 = 0x1e,
+ MSGPACK_CS_MAP_32 = 0x1f,
+
+ //MSGPACK_ACS_BIG_INT_VALUE,
+ //MSGPACK_ACS_BIG_FLOAT_VALUE,
+ MSGPACK_ACS_STR_VALUE,
+ MSGPACK_ACS_BIN_VALUE,
+ MSGPACK_ACS_EXT_VALUE
+} msgpack_unpack_state;
+
+
+typedef enum {
+ MSGPACK_CT_ARRAY_ITEM,
+ MSGPACK_CT_MAP_KEY,
+ MSGPACK_CT_MAP_VALUE
+} msgpack_container_type;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/unpack_define.h */
+
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/unpack_template.h b/host/lib/deps/rpclib/include/rpc/msgpack/unpack_template.h
new file mode 100644
index 000000000..a88fb0a46
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/unpack_template.h
@@ -0,0 +1,482 @@
+/*
+ * MessagePack unpacking routine template
+ *
+ * Copyright (C) 2008-2010 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef msgpack_unpack_func
+#error msgpack_unpack_func template is not defined
+#endif
+
+#ifndef msgpack_unpack_callback
+#error msgpack_unpack_callback template is not defined
+#endif
+
+#ifndef msgpack_unpack_struct
+#error msgpack_unpack_struct template is not defined
+#endif
+
+#ifndef msgpack_unpack_struct_decl
+#define msgpack_unpack_struct_decl(name) msgpack_unpack_struct(name)
+#endif
+
+#ifndef msgpack_unpack_object
+#error msgpack_unpack_object type is not defined
+#endif
+
+#ifndef msgpack_unpack_user
+#error msgpack_unpack_user type is not defined
+#endif
+
+#ifndef USE_CASE_RANGE
+#if !defined(_MSC_VER)
+#define USE_CASE_RANGE
+#endif
+#endif
+
+msgpack_unpack_struct_decl(_stack) {
+ msgpack_unpack_object obj;
+ size_t count;
+ unsigned int ct;
+ msgpack_unpack_object map_key;
+};
+
+msgpack_unpack_struct_decl(_context) {
+ msgpack_unpack_user user;
+ unsigned int cs;
+ unsigned int trail;
+ unsigned int top;
+ /*
+ msgpack_unpack_struct(_stack)* stack;
+ unsigned int stack_size;
+ msgpack_unpack_struct(_stack) embed_stack[MSGPACK_EMBED_STACK_SIZE];
+ */
+ msgpack_unpack_struct(_stack) stack[MSGPACK_EMBED_STACK_SIZE];
+};
+
+
+msgpack_unpack_func(void, _init)(msgpack_unpack_struct(_context)* ctx)
+{
+ ctx->cs = MSGPACK_CS_HEADER;
+ ctx->trail = 0;
+ ctx->top = 0;
+ /*
+ ctx->stack = ctx->embed_stack;
+ ctx->stack_size = MSGPACK_EMBED_STACK_SIZE;
+ */
+ ctx->stack[0].obj = msgpack_unpack_callback(_root)(&ctx->user);
+}
+
+/*
+msgpack_unpack_func(void, _destroy)(msgpack_unpack_struct(_context)* ctx)
+{
+ if(ctx->stack_size != MSGPACK_EMBED_STACK_SIZE) {
+ free(ctx->stack);
+ }
+}
+*/
+
+msgpack_unpack_func(msgpack_unpack_object, _data)(msgpack_unpack_struct(_context)* ctx)
+{
+ return (ctx)->stack[0].obj;
+}
+
+
+msgpack_unpack_func(int, _execute)(msgpack_unpack_struct(_context)* ctx, const char* data, size_t len, size_t* off)
+{
+ assert(len >= *off);
+ {
+ const unsigned char* p = (unsigned char*)data + *off;
+ const unsigned char* const pe = (unsigned char*)data + len;
+ const void* n = NULL;
+
+ unsigned int trail = ctx->trail;
+ unsigned int cs = ctx->cs;
+ unsigned int top = ctx->top;
+ msgpack_unpack_struct(_stack)* stack = ctx->stack;
+ /*
+ unsigned int stack_size = ctx->stack_size;
+ */
+ msgpack_unpack_user* user = &ctx->user;
+
+ msgpack_unpack_object obj;
+ msgpack_unpack_struct(_stack)* c = NULL;
+
+ int ret;
+
+#define push_simple_value(func) \
+ if(msgpack_unpack_callback(func)(user, &obj) < 0) { goto _failed; } \
+ goto _push
+#define push_fixed_value(func, arg) \
+ if(msgpack_unpack_callback(func)(user, arg, &obj) < 0) { goto _failed; } \
+ goto _push
+#define push_variable_value(func, base, pos, len) \
+ if(msgpack_unpack_callback(func)(user, \
+ (const char*)base, (const char*)pos, len, &obj) < 0) { goto _failed; } \
+ goto _push
+
+#define again_fixed_trail(_cs, trail_len) \
+ trail = trail_len; \
+ cs = _cs; \
+ goto _fixed_trail_again
+#define again_fixed_trail_if_zero(_cs, trail_len, ifzero) \
+ trail = trail_len; \
+ if(trail == 0) { goto ifzero; } \
+ cs = _cs; \
+ goto _fixed_trail_again
+
+#define start_container(func, count_, ct_) \
+ if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */ \
+ if(msgpack_unpack_callback(func)(user, count_, &stack[top].obj) < 0) { goto _failed; } \
+ if((count_) == 0) { obj = stack[top].obj; goto _push; } \
+ stack[top].ct = ct_; \
+ stack[top].count = count_; \
+ ++top; \
+ /*printf("container %d count %d stack %d\n",stack[top].obj,count_,top);*/ \
+ /*printf("stack push %d\n", top);*/ \
+ /* FIXME \
+ if(top >= stack_size) { \
+ if(stack_size == MSGPACK_EMBED_STACK_SIZE) { \
+ size_t csize = sizeof(msgpack_unpack_struct(_stack)) * MSGPACK_EMBED_STACK_SIZE; \
+ size_t nsize = csize * 2; \
+ msgpack_unpack_struct(_stack)* tmp = (msgpack_unpack_struct(_stack)*)malloc(nsize); \
+ if(tmp == NULL) { goto _failed; } \
+ memcpy(tmp, ctx->stack, csize); \
+ ctx->stack = stack = tmp; \
+ ctx->stack_size = stack_size = MSGPACK_EMBED_STACK_SIZE * 2; \
+ } else { \
+ size_t nsize = sizeof(msgpack_unpack_struct(_stack)) * ctx->stack_size * 2; \
+ msgpack_unpack_struct(_stack)* tmp = (msgpack_unpack_struct(_stack)*)realloc(ctx->stack, nsize); \
+ if(tmp == NULL) { goto _failed; } \
+ ctx->stack = stack = tmp; \
+ ctx->stack_size = stack_size = stack_size * 2; \
+ } \
+ } \
+ */ \
+ goto _header_again
+
+#define NEXT_CS(p) \
+ ((unsigned int)*p & 0x1f)
+
+#ifdef USE_CASE_RANGE
+#define SWITCH_RANGE_BEGIN switch(*p) {
+#define SWITCH_RANGE(FROM, TO) case FROM ... TO:
+#define SWITCH_RANGE_DEFAULT default:
+#define SWITCH_RANGE_END }
+#else
+#define SWITCH_RANGE_BEGIN { if(0) {
+#define SWITCH_RANGE(FROM, TO) } else if(FROM <= *p && *p <= TO) {
+#define SWITCH_RANGE_DEFAULT } else {
+#define SWITCH_RANGE_END } }
+#endif
+
+ if(p == pe) { goto _out; }
+ do {
+ switch(cs) {
+ case MSGPACK_CS_HEADER:
+ SWITCH_RANGE_BEGIN
+ SWITCH_RANGE(0x00, 0x7f) // Positive Fixnum
+ push_fixed_value(_uint8, *(uint8_t*)p);
+ SWITCH_RANGE(0xe0, 0xff) // Negative Fixnum
+ push_fixed_value(_int8, *(int8_t*)p);
+ SWITCH_RANGE(0xc0, 0xdf) // Variable
+ switch(*p) {
+ case 0xc0: // nil
+ push_simple_value(_nil);
+ //case 0xc1: // string
+ // again_terminal_trail(NEXT_CS(p), p+1);
+ case 0xc2: // false
+ push_simple_value(_false);
+ case 0xc3: // true
+ push_simple_value(_true);
+ case 0xc4: // bin 8
+ case 0xc5: // bin 16
+ case 0xc6: // bin 32
+ again_fixed_trail(NEXT_CS(p), 1 << (((unsigned int)*p) & 0x03));
+ case 0xc7: // ext 8
+ case 0xc8: // ext 16
+ case 0xc9: // ext 32
+ again_fixed_trail(NEXT_CS(p), 1 << ((((unsigned int)*p) + 1) & 0x03));
+ case 0xca: // float
+ case 0xcb: // double
+ case 0xcc: // unsigned int 8
+ case 0xcd: // unsigned int 16
+ case 0xce: // unsigned int 32
+ case 0xcf: // unsigned int 64
+ case 0xd0: // signed int 8
+ case 0xd1: // signed int 16
+ case 0xd2: // signed int 32
+ case 0xd3: // signed int 64
+ again_fixed_trail(NEXT_CS(p), 1 << (((unsigned int)*p) & 0x03));
+ case 0xd4: // fixext 1
+ case 0xd5: // fixext 2
+ case 0xd6: // fixext 4
+ case 0xd7: // fixext 8
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE,
+ (1 << (((unsigned int)*p) & 0x03)) + 1, _ext_zero);
+ case 0xd8: // fixext 16
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 16+1, _ext_zero);
+
+ case 0xd9: // str 8
+ case 0xda: // str 16
+ case 0xdb: // str 32
+ again_fixed_trail(NEXT_CS(p), 1 << ((((unsigned int)*p) & 0x03) - 1));
+ case 0xdc: // array 16
+ case 0xdd: // array 32
+ case 0xde: // map 16
+ case 0xdf: // map 32
+ again_fixed_trail(NEXT_CS(p), 2u << (((unsigned int)*p) & 0x01));
+ default:
+ goto _failed;
+ }
+ SWITCH_RANGE(0xa0, 0xbf) // FixStr
+ again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, ((unsigned int)*p & 0x1f), _str_zero);
+ SWITCH_RANGE(0x90, 0x9f) // FixArray
+ start_container(_array, ((unsigned int)*p) & 0x0f, MSGPACK_CT_ARRAY_ITEM);
+ SWITCH_RANGE(0x80, 0x8f) // FixMap
+ start_container(_map, ((unsigned int)*p) & 0x0f, MSGPACK_CT_MAP_KEY);
+
+ SWITCH_RANGE_DEFAULT
+ goto _failed;
+ SWITCH_RANGE_END
+ // end MSGPACK_CS_HEADER
+
+
+ _fixed_trail_again:
+ ++p;
+
+ default:
+ if((size_t)(pe - p) < trail) { goto _out; }
+ n = p; p += trail - 1;
+ switch(cs) {
+ //case MSGPACK_CS_
+ //case MSGPACK_CS_
+ case MSGPACK_CS_FLOAT: {
+ union { uint32_t i; float f; } mem;
+ _msgpack_load32(uint32_t, n, &mem.i);
+ push_fixed_value(_float, mem.f); }
+ case MSGPACK_CS_DOUBLE: {
+ union { uint64_t i; double f; } mem;
+ _msgpack_load64(uint64_t, n, &mem.i);
+#if defined(TARGET_OS_IPHONE)
+ // ok
+#elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi
+ // https://github.com/msgpack/msgpack-perl/pull/1
+ mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL);
+#endif
+ push_fixed_value(_double, mem.f); }
+ case MSGPACK_CS_UINT_8:
+ push_fixed_value(_uint8, *(uint8_t*)n);
+ case MSGPACK_CS_UINT_16:{
+ uint16_t tmp;
+ _msgpack_load16(uint16_t,n,&tmp);
+ push_fixed_value(_uint16, tmp);
+ }
+ case MSGPACK_CS_UINT_32:{
+ uint32_t tmp;
+ _msgpack_load32(uint32_t,n,&tmp);
+ push_fixed_value(_uint32, tmp);
+ }
+ case MSGPACK_CS_UINT_64:{
+ uint64_t tmp;
+ _msgpack_load64(uint64_t,n,&tmp);
+ push_fixed_value(_uint64, tmp);
+ }
+ case MSGPACK_CS_INT_8:
+ push_fixed_value(_int8, *(int8_t*)n);
+ case MSGPACK_CS_INT_16:{
+ int16_t tmp;
+ _msgpack_load16(int16_t,n,&tmp);
+ push_fixed_value(_int16, tmp);
+ }
+ case MSGPACK_CS_INT_32:{
+ int32_t tmp;
+ _msgpack_load32(int32_t,n,&tmp);
+ push_fixed_value(_int32, tmp);
+ }
+ case MSGPACK_CS_INT_64:{
+ int64_t tmp;
+ _msgpack_load64(int64_t,n,&tmp);
+ push_fixed_value(_int64, tmp);
+ }
+ case MSGPACK_CS_FIXEXT_1:
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 1+1, _ext_zero);
+ case MSGPACK_CS_FIXEXT_2:
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 2+1, _ext_zero);
+ case MSGPACK_CS_FIXEXT_4:
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 4+1, _ext_zero);
+ case MSGPACK_CS_FIXEXT_8:
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 8+1, _ext_zero);
+ case MSGPACK_CS_FIXEXT_16:
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 16+1, _ext_zero);
+ case MSGPACK_CS_STR_8:
+ again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, *(uint8_t*)n, _str_zero);
+ case MSGPACK_CS_BIN_8:
+ again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, *(uint8_t*)n, _bin_zero);
+ case MSGPACK_CS_EXT_8:
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, (*(uint8_t*)n) + 1, _ext_zero);
+ case MSGPACK_CS_STR_16:{
+ uint16_t tmp;
+ _msgpack_load16(uint16_t,n,&tmp);
+ again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, tmp, _str_zero);
+ }
+ case MSGPACK_CS_BIN_16:{
+ uint16_t tmp;
+ _msgpack_load16(uint16_t,n,&tmp);
+ again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, tmp, _bin_zero);
+ }
+ case MSGPACK_CS_EXT_16:{
+ uint16_t tmp;
+ _msgpack_load16(uint16_t,n,&tmp);
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, tmp + 1, _ext_zero);
+ }
+ case MSGPACK_CS_STR_32:{
+ uint32_t tmp;
+ _msgpack_load32(uint32_t,n,&tmp);
+ again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, tmp, _str_zero);
+ }
+ case MSGPACK_CS_BIN_32:{
+ uint32_t tmp;
+ _msgpack_load32(uint32_t,n,&tmp);
+ again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, tmp, _bin_zero);
+ }
+ case MSGPACK_CS_EXT_32:{
+ uint32_t tmp;
+ _msgpack_load32(uint32_t,n,&tmp);
+ again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, tmp + 1, _ext_zero);
+ }
+ case MSGPACK_ACS_STR_VALUE:
+ _str_zero:
+ push_variable_value(_str, data, n, trail);
+ case MSGPACK_ACS_BIN_VALUE:
+ _bin_zero:
+ push_variable_value(_bin, data, n, trail);
+ case MSGPACK_ACS_EXT_VALUE:
+ _ext_zero:
+ push_variable_value(_ext, data, n, trail);
+
+ case MSGPACK_CS_ARRAY_16:{
+ uint16_t tmp;
+ _msgpack_load16(uint16_t,n,&tmp);
+ start_container(_array, tmp, MSGPACK_CT_ARRAY_ITEM);
+ }
+ case MSGPACK_CS_ARRAY_32:{
+ /* FIXME security guard */
+ uint32_t tmp;
+ _msgpack_load32(uint32_t,n,&tmp);
+ start_container(_array, tmp, MSGPACK_CT_ARRAY_ITEM);
+ }
+
+ case MSGPACK_CS_MAP_16:{
+ uint16_t tmp;
+ _msgpack_load16(uint16_t,n,&tmp);
+ start_container(_map, tmp, MSGPACK_CT_MAP_KEY);
+ }
+ case MSGPACK_CS_MAP_32:{
+ /* FIXME security guard */
+ uint32_t tmp;
+ _msgpack_load32(uint32_t,n,&tmp);
+ start_container(_map, tmp, MSGPACK_CT_MAP_KEY);
+ }
+
+ default:
+ goto _failed;
+ }
+ }
+
+ _push:
+ if(top == 0) { goto _finish; }
+ c = &stack[top-1];
+ switch(c->ct) {
+ case MSGPACK_CT_ARRAY_ITEM:
+ if(msgpack_unpack_callback(_array_item)(user, &c->obj, obj) < 0) { goto _failed; }
+ if(--c->count == 0) {
+ obj = c->obj;
+ --top;
+ /*printf("stack pop %d\n", top);*/
+ goto _push;
+ }
+ goto _header_again;
+ case MSGPACK_CT_MAP_KEY:
+ c->map_key = obj;
+ c->ct = MSGPACK_CT_MAP_VALUE;
+ goto _header_again;
+ case MSGPACK_CT_MAP_VALUE:
+ if(msgpack_unpack_callback(_map_item)(user, &c->obj, c->map_key, obj) < 0) { goto _failed; }
+ if(--c->count == 0) {
+ obj = c->obj;
+ --top;
+ /*printf("stack pop %d\n", top);*/
+ goto _push;
+ }
+ c->ct = MSGPACK_CT_MAP_KEY;
+ goto _header_again;
+
+ default:
+ goto _failed;
+ }
+
+ _header_again:
+ cs = MSGPACK_CS_HEADER;
+ ++p;
+ } while(p != pe);
+ goto _out;
+
+
+ _finish:
+ stack[0].obj = obj;
+ ++p;
+ ret = 1;
+ /*printf("-- finish --\n"); */
+ goto _end;
+
+ _failed:
+ /*printf("** FAILED **\n"); */
+ ret = -1;
+ goto _end;
+
+ _out:
+ ret = 0;
+ goto _end;
+
+ _end:
+ ctx->cs = cs;
+ ctx->trail = trail;
+ ctx->top = top;
+ *off = (size_t)(p - (const unsigned char*)data);
+
+ return ret;
+ }
+}
+
+#undef msgpack_unpack_func
+#undef msgpack_unpack_callback
+#undef msgpack_unpack_struct
+#undef msgpack_unpack_object
+#undef msgpack_unpack_user
+
+#undef push_simple_value
+#undef push_fixed_value
+#undef push_variable_value
+#undef again_fixed_trail
+#undef again_fixed_trail_if_zero
+#undef start_container
+
+#undef NEXT_CS
+
+#undef SWITCH_RANGE_BEGIN
+#undef SWITCH_RANGE
+#undef SWITCH_RANGE_DEFAULT
+#undef SWITCH_RANGE_END
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/util.h b/host/lib/deps/rpclib/include/rpc/msgpack/util.h
new file mode 100644
index 000000000..89b98a18d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/util.h
@@ -0,0 +1,23 @@
+/*
+ * MessagePack for C utilities
+ *
+ * Copyright (C) 2014 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_UTIL_H
+#define MSGPACK_UTIL_H
+
+#define MSGPACK_UNUSED(a) (void)(a)
+
+#endif /* MSGPACK_UTIL_H */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/version.h b/host/lib/deps/rpclib/include/rpc/msgpack/version.h
new file mode 100644
index 000000000..9a582594e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/version.h
@@ -0,0 +1,46 @@
+/*
+ * MessagePack for C version information
+ *
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_VERSION_H
+#define MSGPACK_VERSION_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MSGPACK_DLLEXPORT
+const char* msgpack_version(void);
+MSGPACK_DLLEXPORT
+int msgpack_version_major(void);
+MSGPACK_DLLEXPORT
+int msgpack_version_minor(void);
+MSGPACK_DLLEXPORT
+int msgpack_version_revision(void);
+
+#include "version_master.h"
+
+#define MSGPACK_STR(v) #v
+#define MSGPACK_VERSION_I(maj, min, rev) MSGPACK_STR(maj) "." MSGPACK_STR(min) "." MSGPACK_STR(rev)
+
+#define MSGPACK_VERSION MSGPACK_VERSION_I(MSGPACK_VERSION_MAJOR, MSGPACK_VERSION_MINOR, MSGPACK_VERSION_REVISION)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/version.h */
+
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/version.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/version.hpp
new file mode 100644
index 000000000..d1ccd89ec
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/version.hpp
@@ -0,0 +1,44 @@
+/*
+ * MessagePack for C++ version information
+ *
+ * Copyright (C) 2008-2013 FURUHASHI Sadayuki and Takatoshi Kondo
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_VERSION_HPP
+#define MSGPACK_VERSION_HPP
+
+#include "version_master.h"
+
+#define MSGPACK_STR(v) #v
+#define MSGPACK_VERSION_I(maj, min, rev) MSGPACK_STR(maj) "." MSGPACK_STR(min) "." MSGPACK_STR(rev)
+
+#define MSGPACK_VERSION MSGPACK_VERSION_I(MSGPACK_VERSION_MAJOR, MSGPACK_VERSION_MINOR, MSGPACK_VERSION_REVISION)
+
+inline const char* msgpack_version(void) {
+ return MSGPACK_VERSION;
+}
+
+inline int msgpack_version_major(void) {
+ return MSGPACK_VERSION_MAJOR;
+}
+
+inline int msgpack_version_minor(void) {
+ return MSGPACK_VERSION_MINOR;
+}
+
+inline int msgpack_version_revision(void) {
+ return MSGPACK_VERSION_REVISION;
+}
+
+#endif /* msgpack/version.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/version_master.h b/host/lib/deps/rpclib/include/rpc/msgpack/version_master.h
new file mode 100644
index 000000000..c808bb0f3
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/version_master.h
@@ -0,0 +1,3 @@
+#define MSGPACK_VERSION_MAJOR 1
+#define MSGPACK_VERSION_MINOR 2
+#define MSGPACK_VERSION_REVISION 0
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/versioning.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/versioning.hpp
new file mode 100644
index 000000000..9893ed35d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/versioning.hpp
@@ -0,0 +1,77 @@
+/*
+ * MessagePack for C++ version switcher
+ *
+ * Copyright (C) 2014 KONDO Takatoshi
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_VERSIONING_HPP
+#define MSGPACK_VERSIONING_HPP
+
+#if !defined(MSGPACK_DEFAULT_API_VERSION)
+#define MSGPACK_DEFAULT_API_VERSION 1
+#endif
+
+#define MSGPACK_DEFAULT_API_NS MSGPACK_DETAIL_PP_CAT(v, MSGPACK_DEFAULT_API_VERSION)
+
+#if MSGPACK_DEFAULT_API_VERSION == 1
+#define MSGPACK_DETAIL_PP_ENABLE_NS_v1 ()
+//#elif MSGPACK_DEFAULT_API_VERSION == 2
+//#define MSGPACK_DETAIL_PP_ENABLE_NS_v2 ()
+#else
+#error
+#endif
+
+#define MSGPACK_DETAIL_PP_CAT(a, ...) MSGPACK_DETAIL_PP_PRIMITIVE_CAT(a, __VA_ARGS__)
+#define MSGPACK_DETAIL_PP_PRIMITIVE_CAT(a, ...) a ## __VA_ARGS__
+
+#define MSGPACK_DETAIL_PP_IIF(c) MSGPACK_DETAIL_PP_PRIMITIVE_CAT(MSGPACK_DETAIL_PP_IIF_, c)
+#define MSGPACK_DETAIL_PP_IIF_0(t, ...) __VA_ARGS__
+#define MSGPACK_DETAIL_PP_IIF_1(t, ...) t
+
+#define MSGPACK_DETAIL_PP_PROBE(x) x, 1
+
+#if defined(_MSC_VER)
+
+#define MSGPACK_DETAIL_PP_MSVC_VA_ARGS_WORKAROUND(define, args) define args
+#define MSGPACK_DETAIL_PP_CHECK(...) MSGPACK_DETAIL_PP_MSVC_VA_ARGS_WORKAROUND(MSGPACK_DETAIL_PP_CHECK_N, (__VA_ARGS__, 0))
+#define MSGPACK_DETAIL_PP_CHECK_N(x, n, ...) n
+
+#else // defined(__MSC_VER)
+
+#define MSGPACK_DETAIL_PP_CHECK(...) MSGPACK_DETAIL_PP_CHECK_N(__VA_ARGS__, 0)
+#define MSGPACK_DETAIL_PP_CHECK_N(x, n, ...) n
+
+#endif // defined(__MSC_VER)
+
+
+#define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE(ns) MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PROXY( MSGPACK_DETAIL_PP_ENABLE_NS_##ns )
+#define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PROXY(...) MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PRIMIVIE(__VA_ARGS__)
+#define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_PRIMIVIE(x) MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_COMBINE_ x
+#define MSGPACK_DETAIL_PP_NS_ENABLED_PROBE_COMBINE_(...) MSGPACK_DETAIL_PP_PROBE(~)
+
+#define MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns) MSGPACK_DETAIL_PP_CHECK(MSGPACK_DETAIL_PP_NS_ENABLED_PROBE(ns))
+
+#if __cplusplus < 201103L
+#define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \
+ (namespace ns{}; using namespace ns; namespace ns, \
+ namespace ns)
+
+#else // __cplusplus < 201103L
+
+#define MSGPACK_API_VERSION_NAMESPACE(ns) MSGPACK_DETAIL_PP_IIF(MSGPACK_DETAIL_PP_IS_NS_ENABLED(ns)) \
+ (inline namespace ns, namespace ns)
+
+#endif // __cplusplus < 201103L
+
+#endif // MSGPACK_VERSIONING_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.h b/host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.h
new file mode 100644
index 000000000..4bc53b961
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.h
@@ -0,0 +1,149 @@
+/*
+ * MessagePack for C zero-copy buffer implementation
+ *
+ * Copyright (C) 2008-2009 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_VREFBUFFER_H
+#define MSGPACK_VREFBUFFER_H
+
+#include "zone.h"
+#include <stdlib.h>
+
+#ifndef _WIN32
+#include <sys/uio.h>
+#else
+struct iovec {
+ void *iov_base;
+ size_t iov_len;
+};
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_vrefbuffer Vectored Referencing buffer
+ * @ingroup msgpack_buffer
+ * @{
+ */
+
+struct msgpack_vrefbuffer_chunk;
+typedef struct msgpack_vrefbuffer_chunk msgpack_vrefbuffer_chunk;
+
+typedef struct msgpack_vrefbuffer_inner_buffer {
+ size_t free;
+ char* ptr;
+ msgpack_vrefbuffer_chunk* head;
+} msgpack_vrefbuffer_inner_buffer;
+
+typedef struct msgpack_vrefbuffer {
+ struct iovec* tail;
+ struct iovec* end;
+ struct iovec* array;
+
+ size_t chunk_size;
+ size_t ref_size;
+
+ msgpack_vrefbuffer_inner_buffer inner_buffer;
+} msgpack_vrefbuffer;
+
+
+#ifndef MSGPACK_VREFBUFFER_REF_SIZE
+#define MSGPACK_VREFBUFFER_REF_SIZE 32
+#endif
+
+#ifndef MSGPACK_VREFBUFFER_CHUNK_SIZE
+#define MSGPACK_VREFBUFFER_CHUNK_SIZE 8192
+#endif
+
+MSGPACK_DLLEXPORT
+bool msgpack_vrefbuffer_init(msgpack_vrefbuffer* vbuf,
+ size_t ref_size, size_t chunk_size);
+MSGPACK_DLLEXPORT
+void msgpack_vrefbuffer_destroy(msgpack_vrefbuffer* vbuf);
+
+static inline msgpack_vrefbuffer* msgpack_vrefbuffer_new(size_t ref_size, size_t chunk_size);
+static inline void msgpack_vrefbuffer_free(msgpack_vrefbuffer* vbuf);
+
+static inline int msgpack_vrefbuffer_write(void* data, const char* buf, size_t len);
+
+static inline const struct iovec* msgpack_vrefbuffer_vec(const msgpack_vrefbuffer* vref);
+static inline size_t msgpack_vrefbuffer_veclen(const msgpack_vrefbuffer* vref);
+
+MSGPACK_DLLEXPORT
+int msgpack_vrefbuffer_append_copy(msgpack_vrefbuffer* vbuf,
+ const char* buf, size_t len);
+
+MSGPACK_DLLEXPORT
+int msgpack_vrefbuffer_append_ref(msgpack_vrefbuffer* vbuf,
+ const char* buf, size_t len);
+
+MSGPACK_DLLEXPORT
+int msgpack_vrefbuffer_migrate(msgpack_vrefbuffer* vbuf, msgpack_vrefbuffer* to);
+
+MSGPACK_DLLEXPORT
+void msgpack_vrefbuffer_clear(msgpack_vrefbuffer* vref);
+
+/** @} */
+
+
+static inline msgpack_vrefbuffer* msgpack_vrefbuffer_new(size_t ref_size, size_t chunk_size)
+{
+ msgpack_vrefbuffer* vbuf = (msgpack_vrefbuffer*)malloc(sizeof(msgpack_vrefbuffer));
+ if (vbuf == NULL) return NULL;
+ if(!msgpack_vrefbuffer_init(vbuf, ref_size, chunk_size)) {
+ free(vbuf);
+ return NULL;
+ }
+ return vbuf;
+}
+
+static inline void msgpack_vrefbuffer_free(msgpack_vrefbuffer* vbuf)
+{
+ if(vbuf == NULL) { return; }
+ msgpack_vrefbuffer_destroy(vbuf);
+ free(vbuf);
+}
+
+static inline int msgpack_vrefbuffer_write(void* data, const char* buf, size_t len)
+{
+ msgpack_vrefbuffer* vbuf = (msgpack_vrefbuffer*)data;
+
+ if(len < vbuf->ref_size) {
+ return msgpack_vrefbuffer_append_copy(vbuf, buf, len);
+ } else {
+ return msgpack_vrefbuffer_append_ref(vbuf, buf, len);
+ }
+}
+
+static inline const struct iovec* msgpack_vrefbuffer_vec(const msgpack_vrefbuffer* vref)
+{
+ return vref->array;
+}
+
+static inline size_t msgpack_vrefbuffer_veclen(const msgpack_vrefbuffer* vref)
+{
+ return (size_t)(vref->tail - vref->array);
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/vrefbuffer.h */
+
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.hpp
new file mode 100644
index 000000000..1fde5013d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/vrefbuffer.hpp
@@ -0,0 +1,300 @@
+//
+// MessagePack for C++ zero-copy buffer implementation
+//
+// Copyright (C) 2008-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_VREFBUFFER_HPP
+#define MSGPACK_VREFBUFFER_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+
+#include <stdexcept>
+
+#ifndef MSGPACK_VREFBUFFER_REF_SIZE
+#define MSGPACK_VREFBUFFER_REF_SIZE 32
+#endif
+
+#ifndef MSGPACK_VREFBUFFER_CHUNK_SIZE
+#define MSGPACK_VREFBUFFER_CHUNK_SIZE 8192
+#endif
+
+#ifndef _WIN32
+#include <sys/uio.h>
+#else
+struct iovec {
+ void *iov_base;
+ size_t iov_len;
+};
+#endif
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+namespace detail {
+ // int64, uint64, double
+ std::size_t const packer_max_buffer_size = 9;
+} // detail
+
+class vrefbuffer {
+private:
+ struct chunk {
+ chunk* next;
+ };
+ struct inner_buffer {
+ size_t free;
+ char* ptr;
+ chunk* head;
+ };
+public:
+ vrefbuffer(size_t ref_size = MSGPACK_VREFBUFFER_REF_SIZE,
+ size_t chunk_size = MSGPACK_VREFBUFFER_CHUNK_SIZE)
+ :m_ref_size(std::max(ref_size, detail::packer_max_buffer_size + 1)),
+ m_chunk_size(chunk_size)
+ {
+ size_t nfirst = (sizeof(iovec) < 72/2) ?
+ 72 / sizeof(iovec) : 8;
+
+ iovec* array = static_cast<iovec*>(::malloc(
+ sizeof(iovec) * nfirst));
+ if(!array) {
+ throw std::bad_alloc();
+ }
+
+ m_tail = array;
+ m_end = array + nfirst;
+ m_array = array;
+
+ chunk* c = static_cast<chunk*>(::malloc(sizeof(chunk) + chunk_size));
+ if(!c) {
+ ::free(array);
+ throw std::bad_alloc();
+ }
+ inner_buffer* const ib = &m_inner_buffer;
+
+ ib->free = chunk_size;
+ ib->ptr = reinterpret_cast<char*>(c) + sizeof(chunk);
+ ib->head = c;
+ c->next = nullptr;
+
+ }
+
+ ~vrefbuffer()
+ {
+ chunk* c = m_inner_buffer.head;
+ while(true) {
+ chunk* n = c->next;
+ ::free(c);
+ if(n != NULL) {
+ c = n;
+ } else {
+ break;
+ }
+ }
+ ::free(m_array);
+ }
+
+public:
+ void write(const char* buf, size_t len)
+ {
+ if(len < m_ref_size) {
+ append_copy(buf, len);
+ } else {
+ append_ref(buf, len);
+ }
+ }
+
+ void append_ref(const char* buf, size_t len)
+ {
+ if(m_tail == m_end) {
+ const size_t nused = m_tail - m_array;
+ const size_t nnext = nused * 2;
+
+ iovec* nvec = static_cast<iovec*>(::realloc(
+ m_array, sizeof(iovec)*nnext));
+ if(!nvec) {
+ throw std::bad_alloc();
+ }
+
+ m_array = nvec;
+ m_end = nvec + nnext;
+ m_tail = nvec + nused;
+ }
+
+ m_tail->iov_base = const_cast<char*>(buf);
+ m_tail->iov_len = len;
+ ++m_tail;
+ }
+
+ void append_copy(const char* buf, size_t len)
+ {
+ inner_buffer* const ib = &m_inner_buffer;
+
+ if(ib->free < len) {
+ size_t sz = m_chunk_size;
+ if(sz < len) {
+ sz = len;
+ }
+
+ chunk* c = static_cast<chunk*>(::malloc(sizeof(chunk) + sz));
+ if(!c) {
+ throw std::bad_alloc();
+ }
+
+ c->next = ib->head;
+ ib->head = c;
+ ib->free = sz;
+ ib->ptr = reinterpret_cast<char*>(c) + sizeof(chunk);
+ }
+
+ char* m = ib->ptr;
+ std::memcpy(m, buf, len);
+ ib->free -= len;
+ ib->ptr += len;
+
+ if(m_tail != m_array && m ==
+ static_cast<const char*>(
+ const_cast<const void *>((m_tail - 1)->iov_base)
+ ) + (m_tail - 1)->iov_len) {
+ (m_tail - 1)->iov_len += len;
+ return;
+ } else {
+ append_ref( m, len);
+ }
+ }
+
+ const struct iovec* vector() const
+ {
+ return m_array;
+ }
+
+ size_t vector_size() const
+ {
+ return m_tail - m_array;
+ }
+
+ void migrate(vrefbuffer* to)
+ {
+ size_t sz = m_chunk_size;
+
+ chunk* empty = static_cast<chunk*>(::malloc(sizeof(chunk) + sz));
+ if(!empty) {
+ throw std::bad_alloc();
+ }
+
+ empty->next = nullptr;
+
+ const size_t nused = m_tail - m_array;
+ if(to->m_tail + nused < m_end) {
+ const size_t tosize = to->m_tail - to->m_array;
+ const size_t reqsize = nused + tosize;
+ size_t nnext = (to->m_end - to->m_array) * 2;
+ while(nnext < reqsize) {
+ size_t tmp_nnext = nnext * 2;
+ if (tmp_nnext <= nnext) {
+ nnext = reqsize;
+ break;
+ }
+ nnext = tmp_nnext;
+ }
+
+ iovec* nvec = static_cast<iovec*>(::realloc(
+ to->m_array, sizeof(iovec)*nnext));
+ if(!nvec) {
+ ::free(empty);
+ throw std::bad_alloc();
+ }
+
+ to->m_array = nvec;
+ to->m_end = nvec + nnext;
+ to->m_tail = nvec + tosize;
+ }
+
+ std::memcpy(to->m_tail, m_array, sizeof(iovec)*nused);
+
+ to->m_tail += nused;
+ m_tail = m_array;
+
+
+ inner_buffer* const ib = &m_inner_buffer;
+ inner_buffer* const toib = &to->m_inner_buffer;
+
+ chunk* last = ib->head;
+ while(last->next) {
+ last = last->next;
+ }
+ last->next = toib->head;
+ toib->head = ib->head;
+
+ if(toib->free < ib->free) {
+ toib->free = ib->free;
+ toib->ptr = ib->ptr;
+ }
+
+ ib->head = empty;
+ ib->free = sz;
+ ib->ptr = reinterpret_cast<char*>(empty) + sizeof(chunk);
+
+ }
+
+ void clear()
+ {
+ chunk* c = m_inner_buffer.head->next;
+ chunk* n;
+ while(c) {
+ n = c->next;
+ ::free(c);
+ c = n;
+ }
+
+ inner_buffer* const ib = &m_inner_buffer;
+ c = ib->head;
+ c->next = nullptr;
+ ib->free = m_chunk_size;
+ ib->ptr = reinterpret_cast<char*>(c) + sizeof(chunk);
+
+ m_tail = m_array;
+ }
+
+#if defined(MSGPACK_USE_CPP03)
+private:
+ vrefbuffer(const vrefbuffer&);
+ vrefbuffer& operator=(const vrefbuffer&);
+#else // defined(MSGPACK_USE_CPP03)
+ vrefbuffer(const vrefbuffer&) = delete;
+ vrefbuffer& operator=(const vrefbuffer&) = delete;
+#endif // defined(MSGPACK_USE_CPP03)
+
+private:
+ iovec* m_tail;
+ iovec* m_end;
+ iovec* m_array;
+
+ size_t m_ref_size;
+ size_t m_chunk_size;
+
+ inner_buffer m_inner_buffer;
+
+};
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/vrefbuffer.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.h b/host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.h
new file mode 100644
index 000000000..e73d3c7f0
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.h
@@ -0,0 +1,208 @@
+/*
+ * MessagePack for C deflate buffer implementation
+ *
+ * Copyright (C) 2010 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_ZBUFFER_H
+#define MSGPACK_ZBUFFER_H
+
+#include "sysdep.h"
+#include <stdlib.h>
+#include <string.h>
+#include <zlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_zbuffer Compressed buffer
+ * @ingroup msgpack_buffer
+ * @{
+ */
+
+typedef struct msgpack_zbuffer {
+ z_stream stream;
+ char* data;
+ size_t init_size;
+} msgpack_zbuffer;
+
+#ifndef MSGPACK_ZBUFFER_INIT_SIZE
+#define MSGPACK_ZBUFFER_INIT_SIZE 8192
+#endif
+
+static inline bool msgpack_zbuffer_init(
+ msgpack_zbuffer* zbuf, int level, size_t init_size);
+static inline void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf);
+
+static inline msgpack_zbuffer* msgpack_zbuffer_new(int level, size_t init_size);
+static inline void msgpack_zbuffer_free(msgpack_zbuffer* zbuf);
+
+static inline char* msgpack_zbuffer_flush(msgpack_zbuffer* zbuf);
+
+static inline const char* msgpack_zbuffer_data(const msgpack_zbuffer* zbuf);
+static inline size_t msgpack_zbuffer_size(const msgpack_zbuffer* zbuf);
+
+static inline bool msgpack_zbuffer_reset(msgpack_zbuffer* zbuf);
+static inline void msgpack_zbuffer_reset_buffer(msgpack_zbuffer* zbuf);
+static inline char* msgpack_zbuffer_release_buffer(msgpack_zbuffer* zbuf);
+
+
+#ifndef MSGPACK_ZBUFFER_RESERVE_SIZE
+#define MSGPACK_ZBUFFER_RESERVE_SIZE 512
+#endif
+
+static inline int msgpack_zbuffer_write(void* data, const char* buf, size_t len);
+
+static inline bool msgpack_zbuffer_expand(msgpack_zbuffer* zbuf);
+
+
+static inline bool msgpack_zbuffer_init(msgpack_zbuffer* zbuf,
+ int level, size_t init_size)
+{
+ memset(zbuf, 0, sizeof(msgpack_zbuffer));
+ zbuf->init_size = init_size;
+ if(deflateInit(&zbuf->stream, level) != Z_OK) {
+ free(zbuf->data);
+ return false;
+ }
+ return true;
+}
+
+static inline void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf)
+{
+ deflateEnd(&zbuf->stream);
+ free(zbuf->data);
+}
+
+static inline msgpack_zbuffer* msgpack_zbuffer_new(int level, size_t init_size)
+{
+ msgpack_zbuffer* zbuf = (msgpack_zbuffer*)malloc(sizeof(msgpack_zbuffer));
+ if (zbuf == NULL) return NULL;
+ if(!msgpack_zbuffer_init(zbuf, level, init_size)) {
+ free(zbuf);
+ return NULL;
+ }
+ return zbuf;
+}
+
+static inline void msgpack_zbuffer_free(msgpack_zbuffer* zbuf)
+{
+ if(zbuf == NULL) { return; }
+ msgpack_zbuffer_destroy(zbuf);
+ free(zbuf);
+}
+
+static inline bool msgpack_zbuffer_expand(msgpack_zbuffer* zbuf)
+{
+ size_t used = (char*)zbuf->stream.next_out - zbuf->data;
+ size_t csize = used + zbuf->stream.avail_out;
+ size_t nsize = (csize == 0) ? zbuf->init_size : csize * 2;
+
+ char* tmp = (char*)realloc(zbuf->data, nsize);
+ if(tmp == NULL) {
+ return false;
+ }
+
+ zbuf->data = tmp;
+ zbuf->stream.next_out = (Bytef*)(tmp + used);
+ zbuf->stream.avail_out = nsize - used;
+
+ return true;
+}
+
+static inline int msgpack_zbuffer_write(void* data, const char* buf, size_t len)
+{
+ msgpack_zbuffer* zbuf = (msgpack_zbuffer*)data;
+
+ zbuf->stream.next_in = (Bytef*)buf;
+ zbuf->stream.avail_in = len;
+
+ while(zbuf->stream.avail_in > 0) {
+ if(zbuf->stream.avail_out < MSGPACK_ZBUFFER_RESERVE_SIZE) {
+ if(!msgpack_zbuffer_expand(zbuf)) {
+ return -1;
+ }
+ }
+
+ if(deflate(&zbuf->stream, Z_NO_FLUSH) != Z_OK) {
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static inline char* msgpack_zbuffer_flush(msgpack_zbuffer* zbuf)
+{
+ while(true) {
+ switch(deflate(&zbuf->stream, Z_FINISH)) {
+ case Z_STREAM_END:
+ return zbuf->data;
+ case Z_OK:
+ if(!msgpack_zbuffer_expand(zbuf)) {
+ return NULL;
+ }
+ break;
+ default:
+ return NULL;
+ }
+ }
+}
+
+static inline const char* msgpack_zbuffer_data(const msgpack_zbuffer* zbuf)
+{
+ return zbuf->data;
+}
+
+static inline size_t msgpack_zbuffer_size(const msgpack_zbuffer* zbuf)
+{
+ return (char*)zbuf->stream.next_out - zbuf->data;
+}
+
+static inline void msgpack_zbuffer_reset_buffer(msgpack_zbuffer* zbuf)
+{
+ zbuf->stream.avail_out += (char*)zbuf->stream.next_out - zbuf->data;
+ zbuf->stream.next_out = (Bytef*)zbuf->data;
+}
+
+static inline bool msgpack_zbuffer_reset(msgpack_zbuffer* zbuf)
+{
+ if(deflateReset(&zbuf->stream) != Z_OK) {
+ return false;
+ }
+ msgpack_zbuffer_reset_buffer(zbuf);
+ return true;
+}
+
+static inline char* msgpack_zbuffer_release_buffer(msgpack_zbuffer* zbuf)
+{
+ char* tmp = zbuf->data;
+ zbuf->data = NULL;
+ zbuf->stream.next_out = NULL;
+ zbuf->stream.avail_out = 0;
+ return tmp;
+}
+
+/** @} */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/zbuffer.h */
+
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.hpp
new file mode 100644
index 000000000..7e41018d8
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/zbuffer.hpp
@@ -0,0 +1,175 @@
+//
+// MessagePack for C++ deflate buffer implementation
+//
+// Copyright (C) 2010-2013 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_ZBUFFER_HPP
+#define MSGPACK_ZBUFFER_HPP
+
+#include "rpc/msgpack/versioning.hpp"
+
+#include <stdexcept>
+#include <zlib.h>
+
+#ifndef MSGPACK_ZBUFFER_RESERVE_SIZE
+#define MSGPACK_ZBUFFER_RESERVE_SIZE 512
+#endif
+
+#ifndef MSGPACK_ZBUFFER_INIT_SIZE
+#define MSGPACK_ZBUFFER_INIT_SIZE 8192
+#endif
+
+namespace clmdep_msgpack {
+
+/// @cond
+MSGPACK_API_VERSION_NAMESPACE(v1) {
+/// @endcond
+
+class zbuffer {
+public:
+ zbuffer(int level = Z_DEFAULT_COMPRESSION,
+ size_t init_size = MSGPACK_ZBUFFER_INIT_SIZE)
+ : m_data(nullptr), m_init_size(init_size)
+ {
+ m_stream.zalloc = Z_NULL;
+ m_stream.zfree = Z_NULL;
+ m_stream.opaque = Z_NULL;
+ m_stream.next_out = Z_NULL;
+ m_stream.avail_out = 0;
+ if(deflateInit(&m_stream, level) != Z_OK) {
+ throw std::bad_alloc();
+ }
+ }
+
+ ~zbuffer()
+ {
+ deflateEnd(&m_stream);
+ ::free(m_data);
+ }
+
+public:
+ void write(const char* buf, size_t len)
+ {
+ m_stream.next_in = reinterpret_cast<Bytef*>(const_cast<char*>(buf));
+ m_stream.avail_in = len;
+
+ while(m_stream.avail_in > 0) {
+ if(m_stream.avail_out < MSGPACK_ZBUFFER_RESERVE_SIZE) {
+ if(!expand()) {
+ throw std::bad_alloc();
+ }
+ }
+
+ if(deflate(&m_stream, Z_NO_FLUSH) != Z_OK) {
+ throw std::bad_alloc();
+ }
+ }
+ }
+
+ char* flush()
+ {
+ while(true) {
+ switch(deflate(&m_stream, Z_FINISH)) {
+ case Z_STREAM_END:
+ return m_data;
+ case Z_OK:
+ if(!expand()) {
+ throw std::bad_alloc();
+ }
+ break;
+ default:
+ throw std::bad_alloc();
+ }
+ }
+ }
+
+ char* data()
+ {
+ return m_data;
+ }
+
+ const char* data() const
+ {
+ return m_data;
+ }
+
+ size_t size() const
+ {
+ return reinterpret_cast<char*>(m_stream.next_out) - m_data;
+ }
+
+ void reset()
+ {
+ if(deflateReset(&m_stream) != Z_OK) {
+ throw std::bad_alloc();
+ }
+ reset_buffer();
+ }
+
+ void reset_buffer()
+ {
+ m_stream.avail_out += reinterpret_cast<char*>(m_stream.next_out) - m_data;
+ m_stream.next_out = reinterpret_cast<Bytef*>(m_data);
+ }
+
+ char* release_buffer()
+ {
+ char* tmp = m_data;
+ m_data = nullptr;
+ m_stream.next_out = nullptr;
+ m_stream.avail_out = 0;
+ return tmp;
+ }
+
+private:
+ bool expand()
+ {
+ size_t used = reinterpret_cast<char*>(m_stream.next_out) - m_data;
+ size_t csize = used + m_stream.avail_out;
+ size_t nsize = (csize == 0) ? m_init_size : csize * 2;
+
+ char* tmp = static_cast<char*>(::realloc(m_data, nsize));
+ if(tmp == nullptr) {
+ return false;
+ }
+
+ m_data = tmp;
+ m_stream.next_out = reinterpret_cast<Bytef*>(tmp + used);
+ m_stream.avail_out = nsize - used;
+
+ return true;
+ }
+#if defined(MSGPACK_USE_CPP03)
+private:
+ zbuffer(const zbuffer&);
+ zbuffer& operator=(const zbuffer&);
+#else // defined(MSGPACK_USE_CPP03)
+ zbuffer(const zbuffer&) = delete;
+ zbuffer& operator=(const zbuffer&) = delete;
+#endif // defined(MSGPACK_USE_CPP03)
+
+private:
+ z_stream m_stream;
+ char* m_data;
+ size_t m_init_size;
+};
+
+/// @cond
+} // MSGPACK_API_VERSION_NAMESPACE(v1)
+/// @endcond
+
+} // namespace clmdep_msgpack
+
+#endif /* msgpack/zbuffer.hpp */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/zone.h b/host/lib/deps/rpclib/include/rpc/msgpack/zone.h
new file mode 100644
index 000000000..27668a730
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/zone.h
@@ -0,0 +1,171 @@
+/*
+ * MessagePack for C memory pool implementation
+ *
+ * Copyright (C) 2008-2010 FURUHASHI Sadayuki
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef MSGPACK_ZONE_H
+#define MSGPACK_ZONE_H
+
+#include "sysdep.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @defgroup msgpack_zone Memory zone
+ * @ingroup msgpack
+ * @{
+ */
+
+typedef struct msgpack_zone_finalizer {
+ void (*func)(void* data);
+ void* data;
+} msgpack_zone_finalizer;
+
+typedef struct msgpack_zone_finalizer_array {
+ msgpack_zone_finalizer* tail;
+ msgpack_zone_finalizer* end;
+ msgpack_zone_finalizer* array;
+} msgpack_zone_finalizer_array;
+
+struct msgpack_zone_chunk;
+typedef struct msgpack_zone_chunk msgpack_zone_chunk;
+
+typedef struct msgpack_zone_chunk_list {
+ size_t free;
+ char* ptr;
+ msgpack_zone_chunk* head;
+} msgpack_zone_chunk_list;
+
+typedef struct msgpack_zone {
+ msgpack_zone_chunk_list chunk_list;
+ msgpack_zone_finalizer_array finalizer_array;
+ size_t chunk_size;
+} msgpack_zone;
+
+#ifndef MSGPACK_ZONE_CHUNK_SIZE
+#define MSGPACK_ZONE_CHUNK_SIZE 8192
+#endif
+
+MSGPACK_DLLEXPORT
+bool msgpack_zone_init(msgpack_zone* zone, size_t chunk_size);
+MSGPACK_DLLEXPORT
+void msgpack_zone_destroy(msgpack_zone* zone);
+
+MSGPACK_DLLEXPORT
+msgpack_zone* msgpack_zone_new(size_t chunk_size);
+MSGPACK_DLLEXPORT
+void msgpack_zone_free(msgpack_zone* zone);
+
+static inline void* msgpack_zone_malloc(msgpack_zone* zone, size_t size);
+static inline void* msgpack_zone_malloc_no_align(msgpack_zone* zone, size_t size);
+
+static inline bool msgpack_zone_push_finalizer(msgpack_zone* zone,
+ void (*func)(void* data), void* data);
+
+static inline void msgpack_zone_swap(msgpack_zone* a, msgpack_zone* b);
+
+MSGPACK_DLLEXPORT
+bool msgpack_zone_is_empty(msgpack_zone* zone);
+
+MSGPACK_DLLEXPORT
+void msgpack_zone_clear(msgpack_zone* zone);
+
+/** @} */
+
+
+#ifndef MSGPACK_ZONE_ALIGN
+#define MSGPACK_ZONE_ALIGN sizeof(void*)
+#endif
+
+MSGPACK_DLLEXPORT
+void* msgpack_zone_malloc_expand(msgpack_zone* zone, size_t size);
+
+static inline void* msgpack_zone_malloc_no_align(msgpack_zone* zone, size_t size)
+{
+ char* ptr;
+ msgpack_zone_chunk_list* cl = &zone->chunk_list;
+
+ if(zone->chunk_list.free < size) {
+ return msgpack_zone_malloc_expand(zone, size);
+ }
+
+ ptr = cl->ptr;
+ cl->free -= size;
+ cl->ptr += size;
+
+ return ptr;
+}
+
+static inline void* msgpack_zone_malloc(msgpack_zone* zone, size_t size)
+{
+ char* aligned =
+ (char*)(
+ (size_t)(
+ zone->chunk_list.ptr + (MSGPACK_ZONE_ALIGN - 1)
+ ) / MSGPACK_ZONE_ALIGN * MSGPACK_ZONE_ALIGN
+ );
+ size_t adjusted_size = size + (aligned - zone->chunk_list.ptr);
+ if(zone->chunk_list.free >= adjusted_size) {
+ zone->chunk_list.free -= adjusted_size;
+ zone->chunk_list.ptr += adjusted_size;
+ return aligned;
+ }
+ {
+ void* ptr = msgpack_zone_malloc_expand(zone, size + (MSGPACK_ZONE_ALIGN - 1));
+ if (ptr) {
+ return (char*)((size_t)(ptr) / MSGPACK_ZONE_ALIGN * MSGPACK_ZONE_ALIGN);
+ }
+ }
+ return NULL;
+}
+
+
+bool msgpack_zone_push_finalizer_expand(msgpack_zone* zone,
+ void (*func)(void* data), void* data);
+
+static inline bool msgpack_zone_push_finalizer(msgpack_zone* zone,
+ void (*func)(void* data), void* data)
+{
+ msgpack_zone_finalizer_array* const fa = &zone->finalizer_array;
+ msgpack_zone_finalizer* fin = fa->tail;
+
+ if(fin == fa->end) {
+ return msgpack_zone_push_finalizer_expand(zone, func, data);
+ }
+
+ fin->func = func;
+ fin->data = data;
+
+ ++fa->tail;
+
+ return true;
+}
+
+static inline void msgpack_zone_swap(msgpack_zone* a, msgpack_zone* b)
+{
+ msgpack_zone tmp = *a;
+ *a = *b;
+ *b = tmp;
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* msgpack/zone.h */
diff --git a/host/lib/deps/rpclib/include/rpc/msgpack/zone.hpp b/host/lib/deps/rpclib/include/rpc/msgpack/zone.hpp
new file mode 100644
index 000000000..6c2200bb1
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/msgpack/zone.hpp
@@ -0,0 +1,29 @@
+//
+// MessagePack for C++ memory pool
+//
+// Copyright (C) 2008-2014 FURUHASHI Sadayuki and KONDO Takatoshi
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#ifndef MSGPACK_ZONE_HPP
+#define MSGPACK_ZONE_HPP
+
+#include "rpc/msgpack/cpp_config.hpp"
+
+#if defined(MSGPACK_USE_CPP03)
+#include "detail/cpp03_zone.hpp"
+#else // MSGPACK_USE_CPP03
+#include "detail/cpp11_zone.hpp"
+#endif // MSGPACK_USE_CPP03
+
+#endif // MSGPACK_ZONE_HPP
diff --git a/host/lib/deps/rpclib/include/rpc/rpc_error.h b/host/lib/deps/rpclib/include/rpc/rpc_error.h
new file mode 100644
index 000000000..81a5b2c9d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/rpc_error.h
@@ -0,0 +1,52 @@
+#pragma once
+
+#ifndef RPC_ERROR_H_NEOOSTKY
+#define RPC_ERROR_H_NEOOSTKY
+
+#include <exception>
+
+#include "rpc/msgpack.hpp"
+#include "rpc/config.h"
+
+namespace rpc {
+
+//! \brief This exception is thrown by the client when the server signals an
+//! error during a call.
+//!
+//! This type allows clients to handle arbitrary error objects as the
+//! msgpack-rpc specification allows. In client code you probably don't want to
+//! throw it, hence its constructor is private.
+class rpc_error : public std::runtime_error {
+public:
+ //! \brief Returns the name of the function that was
+ //! called on the server while the error occurred.
+ std::string get_function_name() const;
+
+ //! \brief Returns the error object that the server
+ //! provided.
+ virtual RPCLIB_MSGPACK::object_handle& get_error();
+
+private:
+ friend class client;
+ rpc_error(std::string const &what_arg, std::string const &function_name,
+ RPCLIB_MSGPACK::object_handle o);
+
+private:
+ std::string func_name_;
+ RPCLIB_MSGPACK::object_handle ob_h_;
+};
+
+class timeout : public std::runtime_error {
+public:
+ const char *what() const noexcept override;
+
+private:
+ friend class client;
+ explicit timeout(std::string const &what_arg);
+ std::string formatted;
+};
+
+} /* rpc */
+
+
+#endif /* end of include guard: RPC_ERROR_H_NEOOSTKY */
diff --git a/host/lib/deps/rpclib/include/rpc/server.h b/host/lib/deps/rpclib/include/rpc/server.h
new file mode 100644
index 000000000..7da22a91c
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/server.h
@@ -0,0 +1,104 @@
+#pragma once
+
+#ifndef SERVER_H_S0HB5KXY
+#define SERVER_H_S0HB5KXY
+
+#include "rpc/config.h"
+#include "rpc/msgpack.hpp"
+#include "rpc/dispatcher.h"
+
+#include "rpc/detail/pimpl.h"
+
+namespace rpc {
+
+namespace detail {
+class server_session;
+}
+
+//! \brief Implements a msgpack-rpc server. This is the main interfacing
+//! point with the library for creating servers.
+//!
+//! The server maintains a registry of function bindings that it uses to
+//! dispatch calls. It also takes care of managing worker threads and TCP
+//! connections.
+//! The server does not start listening right after construction in order
+//! to allow binding functions before that. Use the `run` or `async_run`
+//! functions to start listening on the port.
+class server {
+public:
+ //! \brief Constructs a server that listens on the localhost on the
+ //! specified port.
+ //!
+ //! \param port The port number to listen on.
+ explicit server(uint16_t port);
+
+ //! \brief Constructs a server that listens on the specified address on
+ //! the specified port.
+ //!
+ //! \param port The port number to listen on.
+ server(std::string const &address, uint16_t port);
+
+ //! \brief Destructor.
+ //!
+ //! When the server is destroyed, all ongoin sessions are closed gracefully.
+ ~server();
+
+ //! \brief Starts the server loop. This is a blocking call.
+ //!
+ //! First and foremost, running the event loop causes the server to start
+ //! listening on the specified port. Also, as connections are established
+ //! and calls are made by clients, the server executes the calls as part
+ //! of this call. This means that the handlers are executed on the thread
+ //! that calls `run`. Reads and writes are initiated by this function
+ //% internally as well.
+ void run();
+
+ //! \brief Starts the server loop on one or more threads. This is a
+ //! non-blocking call.
+ //!
+ //! This function behaves similarly to `run`, except the event loop is
+ //! optionally started on different threads. Effectively this sets up a
+ //! worker thread pool for the server. Handlers will be executed on one
+ //! of the threads.
+ //!
+ //! \param worker_threads The number of worker threads to start.
+ void async_run(std::size_t worker_threads = 1);
+
+ //! \brief Binds a functor to a name so it becomes callable via RPC.
+ //!
+ //! This function template accepts a wide range of callables. The arguments
+ //! and return types of these callables should be serializable by msgpack.
+ //! `bind` effectively generates a suitable, light-weight compile-time
+ //! wrapper for the functor.
+ //!
+ //! \param name The name of the functor.
+ //! \param func The functor to bind.
+ //! \tparam F The type of the functor.
+ template <typename F> void bind(std::string const &name, F func) {
+ disp_->bind(name, func);
+ }
+
+ //! \brief Sets the exception behavior in handlers. By default,
+ //! handlers throwing will crash the server. If suppressing is on,
+ //! the server will try to gather textual data and return it to
+ //! the client as an error response.
+ //! \note Setting this flag only affects subsequent connections.
+ void suppress_exceptions(bool suppress);
+
+ //! \brief Stops the server.
+ //! \note This should not be called from worker threads.
+ void stop();
+
+ //! \brief Closes all sessions gracefully.
+ void close_sessions();
+
+ friend class detail::server_session;
+
+private:
+ RPCLIB_DECLARE_PIMPL()
+ std::shared_ptr<detail::dispatcher> disp_;
+};
+
+} /* rpc */
+
+#endif /* end of include guard: SERVER_H_S0HB5KXY */
diff --git a/host/lib/deps/rpclib/include/rpc/this_handler.h b/host/lib/deps/rpclib/include/rpc/this_handler.h
new file mode 100644
index 000000000..b5e602fb7
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/this_handler.h
@@ -0,0 +1,82 @@
+#pragma once
+
+#ifndef HANDLER_H_BZ8DT5WS
+#define HANDLER_H_BZ8DT5WS
+
+#include <memory>
+
+#include "rpc/config.h"
+#include "rpc/msgpack.hpp"
+
+#include "rpc/detail/util.h"
+
+namespace rpc {
+
+namespace detail {
+class server_session;
+class handler_error {};
+class handler_spec_response {};
+}
+
+//! \brief Encapsulates information about the currently executing
+//! handler. This is the interface through which bound functions
+//! may return errors, arbitrary type responses or prohibit sending a response.
+//! \note Setting each property of the handler is only relevant
+//! for one call in one thread. If the same handler is executing concurrently
+//! in a different thread, you can safely set different properties
+//! and everything will "just work".
+class this_handler_t {
+public:
+ //! \brief Sets an arbitrary object to be sent back as an error
+ //! response to the client.
+ //! \param err_obj The error object. This can be anything that
+ //! is possible to encode with messagepack (even custom structures).
+ //! \tparam T The type of the error object.
+ template <typename T> void respond_error(T &&err_obj);
+
+ //! \brief Sets an arbitrary object to be sent back as the response
+ //! to the call.
+ //! \param resp_obj The response object. This can be anything that
+ //! is possible to encode with messagepack (even custom structures).
+ //! \tparam T The type of the response object.
+ //! \note The normal return value of the function (if any) will be
+ //! ignored if a special response is set.
+ //! \note You can use clear_special_response() to clear the special
+ //! response and use the normal return value.
+ template <typename T> void respond(T &&resp_obj);
+
+ //! \brief Instructs the server to not send a response to the client
+ //! (ignoring any errors and return values).
+ //! \note It is unusual to not send a response to requests, and doing so
+ //! might cause problems in the client (depending on its implementation).
+ void disable_response();
+
+ //! \brief Enables sending a response to the call. Sending the response
+ //! is by default enabled. Enabling the response multiple times have
+ //! no effect.
+ void enable_response();
+
+ //! \brief Sets all state of the object to default.
+ void clear();
+
+ friend class rpc::detail::server_session;
+
+private:
+ RPCLIB_MSGPACK::object_handle error_, resp_;
+ bool resp_enabled_ = true;
+};
+}
+
+#include "this_handler.inl"
+
+namespace rpc {
+//! \brief A thread-local object that can be used to control
+//! the behavior of the server w.r.t. the handler. Accessing this object
+//! from handlers that execute the same function concurrently is safe.
+//! \note Accessing this object outside of handlers while a server is
+//! running is potentially unsafe.
+this_handler_t &this_handler();
+}
+
+#endif /* end of include guard: HANDLER_H_BZ8DT5WS */
+
diff --git a/host/lib/deps/rpclib/include/rpc/this_handler.inl b/host/lib/deps/rpclib/include/rpc/this_handler.inl
new file mode 100644
index 000000000..cca37caec
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/this_handler.inl
@@ -0,0 +1,14 @@
+
+namespace rpc {
+
+template <typename T> void this_handler_t::respond_error(T &&err_obj) {
+ error_ = detail::pack(std::forward<T>(err_obj));
+ throw detail::handler_error();
+}
+
+template <typename T> void this_handler_t::respond(T &&resp_obj) {
+ resp_ = detail::pack(std::forward<T>(resp_obj));
+ //throw detail::handler_spec_response();
+}
+
+} /* rpc */
diff --git a/host/lib/deps/rpclib/include/rpc/this_server.h b/host/lib/deps/rpclib/include/rpc/this_server.h
new file mode 100644
index 000000000..7e8826b69
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/this_server.h
@@ -0,0 +1,37 @@
+#pragma once
+
+#ifndef THIS_SERVER_H_X0CJLVVW
+#define THIS_SERVER_H_X0CJLVVW
+
+namespace rpc {
+
+namespace detail {
+class server_session;
+}
+
+//! \brief Allows controlling the server instance from the
+//! currently executing handler.
+class this_server_t {
+public:
+ //! \brief Gracefully stops the server.
+ void stop();
+
+ //! \brief Cancels a requested stop operation.
+ void cancel_stop();
+
+ friend class rpc::detail::server_session;
+
+private:
+ bool stopping_;
+};
+
+//! \brief A thread-local object that can be used to control
+//! the behavior of the server w.r.t. the handler. Accessing this object
+//! from handlers that execute the same function concurrently is safe.
+//! \note Accessing this object outside of handlers while a server is
+//! running is potentially unsafe.
+this_server_t &this_server();
+
+} /* rpc */
+
+#endif /* end of include guard: THIS_SERVER_H_X0CJLVVW */
diff --git a/host/lib/deps/rpclib/include/rpc/this_session.h b/host/lib/deps/rpclib/include/rpc/this_session.h
new file mode 100644
index 000000000..d391c1838
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/this_session.h
@@ -0,0 +1,44 @@
+#pragma once
+
+#ifndef THIS_SESSION_H_HTS95N7G
+#define THIS_SESSION_H_HTS95N7G
+
+#include <atomic>
+#include "rpc/config.h"
+
+namespace rpc {
+
+namespace detail {
+class server_session;
+}
+
+//! \brief Encapsulates information about the server session/connection
+//! this handler is running in. This is the interface through which bound
+//! functions may interact with the session.
+//! \note Accessing the this_session() object is thread safe, but incurs some
+//! syncrhonization cost in the form of atomic flags. (usually not a concern)
+class this_session_t {
+public:
+ //! \brief Gracefully exits the session (i.e. ongoing writes and reads are
+ //! completed; queued writes and reads are not).
+ //! \note Use this function if you need to close the connection from a
+ //! handler.
+ void post_exit();
+
+ friend class rpc::detail::server_session;
+
+private:
+ void clear();
+
+ std::atomic_bool exit_{false};
+};
+
+//! \brief A thread-local object that can be used to control the currently
+//! active server session.
+//! \note Accessing this object outside of handlers while a server is
+//! running is potentially unsafe.
+this_session_t &this_session();
+
+} /* rpc */
+
+#endif /* end of include guard: THIS_SESSION_H_HTS95N7G */
diff --git a/host/lib/deps/rpclib/include/rpc/version.h b/host/lib/deps/rpclib/include/rpc/version.h
new file mode 100644
index 000000000..30e3afe7e
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/version.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#ifndef VERSION_H_UMZFBKB4
+#define VERSION_H_UMZFBKB4
+
+namespace rpc {
+
+static constexpr unsigned VERSION_MAJOR = 1;
+static constexpr unsigned VERSION_MINOR = 0;
+static constexpr unsigned VERSION_PATCH = 0;
+
+} /* rpc */
+
+#endif /* end of include guard: VERSION_H_UMZFBKB4 */
diff --git a/host/lib/deps/rpclib/include/rpc/version.h.in b/host/lib/deps/rpclib/include/rpc/version.h.in
new file mode 100644
index 000000000..f278fa79d
--- /dev/null
+++ b/host/lib/deps/rpclib/include/rpc/version.h.in
@@ -0,0 +1,14 @@
+#pragma once
+
+#ifndef VERSION_H_IN_LZK5UJ7E
+#define VERSION_H_IN_LZK5UJ7E
+
+namespace rpc {
+
+static constexpr unsigned VERSION_MAJOR = @RPCLIB_VERSION_MAJOR@;
+static constexpr unsigned VERSION_MINOR = @RPCLIB_VERSION_MINOR@;
+static constexpr unsigned VERSION_PATCH = @RPCLIB_VERSION_PATCH@;
+
+} /* rpc */
+
+#endif /* end of include guard: VERSION_H_IN_LZK5UJ7E */
diff --git a/host/lib/deps/rpclib/lib/rpc/client.cc b/host/lib/deps/rpclib/lib/rpc/client.cc
new file mode 100644
index 000000000..f4d649771
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/client.cc
@@ -0,0 +1,223 @@
+#include "rpc/client.h"
+#include "rpc/config.h"
+#include "rpc/rpc_error.h"
+
+#include <atomic>
+#include <condition_variable>
+#include <deque>
+#include <future>
+#include <mutex>
+#include <thread>
+#include <unordered_map>
+
+#include <boost/asio.hpp>
+#include <boost/format.hpp>
+
+#include "rpc/detail/async_writer.h"
+#include "rpc/detail/dev_utils.h"
+#include "rpc/detail/response.h"
+
+using namespace boost::asio;
+using boost::asio::ip::tcp;
+using namespace rpc::detail;
+
+namespace rpc {
+
+static constexpr uint32_t default_buffer_size = rpc::constants::DEFAULT_BUFFER_SIZE;
+
+struct client::impl {
+ impl(client *parent, std::string const &addr, uint16_t port)
+ : parent_(parent),
+ io_(),
+ strand_(io_),
+ call_idx_(0),
+ addr_(addr),
+ port_(port),
+ is_connected_(false),
+ state_(client::connection_state::initial),
+ writer_(std::make_shared<detail::async_writer>(
+ &io_, boost::asio::ip::tcp::socket(io_))),
+ timeout_(5000) {
+ pac_.reserve_buffer(default_buffer_size);
+ }
+
+ void do_connect(tcp::resolver::iterator endpoint_iterator) {
+ LOG_INFO("Initiating connection.");
+ boost::asio::async_connect(
+ writer_->socket_, endpoint_iterator,
+ [this](boost::system::error_code ec, tcp::resolver::iterator) {
+ if (!ec) {
+ std::unique_lock<std::mutex> lock(mut_connection_finished_);
+ LOG_INFO("Client connected to {}:{}", addr_, port_);
+ is_connected_ = true;
+ state_ = client::connection_state::connected;
+ conn_finished_.notify_all();
+ do_read();
+ } else {
+ LOG_ERROR("Error during connection: {}", ec);
+ }
+ });
+ }
+
+ void do_read() {
+ LOG_TRACE("do_read");
+ constexpr std::size_t max_read_bytes = default_buffer_size;
+ writer_->socket_.async_read_some(
+ boost::asio::buffer(pac_.buffer(), max_read_bytes),
+ // I don't think max_read_bytes needs to be captured explicitly
+ // (since it's constexpr), but MSVC insists.
+ [this, max_read_bytes](boost::system::error_code ec, std::size_t length) {
+ if (!ec) {
+ LOG_TRACE("Read chunk of size {}", length);
+ pac_.buffer_consumed(length);
+
+ RPCLIB_MSGPACK::unpacked result;
+ while (pac_.next(&result)) {
+ auto r = response(std::move(result));
+ auto id = r.get_id();
+ auto &current_call = ongoing_calls_[id];
+ try {
+ if (r.get_error()) {
+ throw rpc_error("rpc::rpc_error during call",
+ std::get<0>(current_call),
+ RPCLIB_MSGPACK::clone(
+ r.get_error()->get()));
+ }
+ std::get<1>(current_call)
+ .set_value(std::move(*r.get_result()));
+ } catch (...) {
+ std::get<1>(current_call)
+ .set_exception(std::current_exception());
+ }
+ strand_.post(
+ [this, id]() { ongoing_calls_.erase(id); });
+ }
+
+ // resizing strategy: if the remaining buffer size is
+ // less than the maximum bytes requested from asio,
+ // then request max_read_bytes. This prompts the unpacker
+ // to resize its buffer doubling its size
+ // (https://github.com/msgpack/msgpack-c/issues/567#issuecomment-280810018)
+ if (pac_.buffer_capacity() < max_read_bytes) {
+ LOG_TRACE("Reserving extra buffer: {}", max_read_bytes);
+ pac_.reserve_buffer(max_read_bytes);
+ }
+ do_read();
+ } else if (ec == boost::asio::error::eof) {
+ LOG_WARN("The server closed the connection.");
+ state_ = client::connection_state::disconnected;
+ } else if (ec == boost::asio::error::connection_reset) {
+ // Yes, this should be connection_state::reset,
+ // but on windows, disconnection results in reset. May be
+ // asio bug, may be a windows socket pecularity. Should be
+ // investigated later.
+ state_ = client::connection_state::disconnected;
+ LOG_WARN("The connection was reset.");
+ } else {
+ LOG_ERROR("Unhandled error code: {} | '{}'", ec,
+ ec.message());
+ }
+ });
+ }
+
+ client::connection_state get_connection_state() const { return state_; }
+
+ //! \brief Waits for the write queue and writes any buffers to the network
+ //! connection. Should be executed throught strand_.
+ void write(RPCLIB_MSGPACK::sbuffer item) {
+ writer_->write(std::move(item));
+ }
+
+ using call_t =
+ std::pair<std::string, std::promise<RPCLIB_MSGPACK::object_handle>>;
+
+ client *parent_;
+ boost::asio::io_service io_;
+ boost::asio::strand strand_;
+ std::atomic<int> call_idx_; /// The index of the last call made
+ std::unordered_map<uint32_t, call_t> ongoing_calls_;
+ std::string addr_;
+ uint16_t port_;
+ RPCLIB_MSGPACK::unpacker pac_;
+ std::atomic_bool is_connected_;
+ std::condition_variable conn_finished_;
+ std::mutex mut_connection_finished_;
+ std::thread io_thread_;
+ std::atomic<client::connection_state> state_;
+ std::shared_ptr<detail::async_writer> writer_;
+ uint64_t timeout_;
+ RPCLIB_CREATE_LOG_CHANNEL(client)
+};
+
+client::client(std::string const &addr, uint16_t port)
+ : pimpl(new client::impl(this, addr, port)) {
+ tcp::resolver resolver(pimpl->io_);
+ auto endpoint_it =
+ resolver.resolve({pimpl->addr_, std::to_string(pimpl->port_)});
+ pimpl->do_connect(endpoint_it);
+ std::thread io_thread([this]() {
+ RPCLIB_CREATE_LOG_CHANNEL(client)
+ name_thread("client");
+ pimpl->io_.run();
+ });
+ pimpl->io_thread_ = std::move(io_thread);
+}
+
+void client::wait_conn() {
+ std::unique_lock<std::mutex> lock(pimpl->mut_connection_finished_);
+ if (!pimpl->is_connected_) {
+ pimpl->conn_finished_.wait(lock);
+ }
+}
+
+int client::get_next_call_idx() {
+ ++(pimpl->call_idx_);
+ return pimpl->call_idx_;
+}
+
+void client::post(std::shared_ptr<RPCLIB_MSGPACK::sbuffer> buffer, int idx,
+ std::string const &func_name,
+ std::shared_ptr<rsp_promise> p) {
+ pimpl->strand_.post([=]() {
+ pimpl->ongoing_calls_.insert(
+ std::make_pair(idx, std::make_pair(func_name, std::move(*p))));
+ pimpl->write(std::move(*buffer));
+ });
+}
+
+void client::post(RPCLIB_MSGPACK::sbuffer *buffer) {
+ pimpl->strand_.post([=]() {
+ pimpl->write(std::move(*buffer));
+ delete buffer;
+ });
+}
+
+client::connection_state client::get_connection_state() const {
+ return pimpl->get_connection_state();
+}
+
+uint64_t client::get_timeout() const {
+ return pimpl->timeout_;
+}
+
+void client::set_timeout(uint64_t value) {
+ pimpl->timeout_ = value;
+}
+
+void client::wait_all_responses() {
+ for (auto &c : pimpl->ongoing_calls_) {
+ c.second.second.get_future().wait();
+ }
+}
+
+RPCLIB_NORETURN void client::throw_timeout(std::string const& func_name) {
+ throw rpc::timeout(
+ str(boost::format("Timeout of %dms while calling RPC function '%s'") %
+ get_timeout() % func_name));
+}
+
+client::~client() {
+ pimpl->io_.stop();
+ pimpl->io_thread_.join();
+}
+}
diff --git a/host/lib/deps/rpclib/lib/rpc/detail/client_error.cc b/host/lib/deps/rpclib/lib/rpc/detail/client_error.cc
new file mode 100644
index 000000000..deea2f622
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/detail/client_error.cc
@@ -0,0 +1,15 @@
+#include <boost/format.hpp>
+
+#include "rpc/detail/client_error.h"
+
+namespace rpc {
+namespace detail {
+
+client_error::client_error(code c, const std::string &msg)
+ : what_(str(boost::format("client error C%d: %") %
+ static_cast<uint16_t>(c) % msg)) {}
+
+const char *client_error::what() const noexcept { return what_.c_str(); }
+}
+}
+
diff --git a/host/lib/deps/rpclib/lib/rpc/detail/response.cc b/host/lib/deps/rpclib/lib/rpc/detail/response.cc
new file mode 100644
index 000000000..d777ce665
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/detail/response.cc
@@ -0,0 +1,65 @@
+#include "rpc/detail/response.h"
+#include "rpc/detail/log.h"
+#include "rpc/detail/util.h"
+
+#include <assert.h>
+
+namespace rpc {
+namespace detail {
+
+response::response() : id_(0), error_(), result_(), empty_(false) {}
+
+response::response(RPCLIB_MSGPACK::object_handle o) : response() {
+ response_type r;
+ o.get().convert(&r);
+ // TODO: check protocol [t.szelei 2015-12-30]
+ id_ = std::get<1>(r);
+ auto &&error_obj = std::get<2>(r);
+ if (error_obj != RPCLIB_MSGPACK::type::nil()) {
+ error_ = std::make_shared<RPCLIB_MSGPACK::object_handle>();
+ error_->assign(RPCLIB_MSGPACK::clone(error_obj));
+ }
+ result_ = std::make_shared<RPCLIB_MSGPACK::object_handle>(
+ std::get<3>(r), std::move(o.zone()));
+}
+
+RPCLIB_MSGPACK::sbuffer response::get_data() const {
+ RPCLIB_MSGPACK::sbuffer data;
+ response_type r(1, id_, error_ ? error_->get() : RPCLIB_MSGPACK::object(),
+ result_ ? result_->get() : RPCLIB_MSGPACK::object());
+ RPCLIB_MSGPACK::pack(&data, r);
+ return data;
+}
+
+uint32_t response::get_id() const { return id_; }
+
+std::shared_ptr<RPCLIB_MSGPACK::object_handle> response::get_error() const { return error_; }
+
+std::shared_ptr<RPCLIB_MSGPACK::object_handle> response::get_result() const {
+ return result_;
+}
+
+response response::empty() {
+ response r;
+ r.empty_ = true;
+ return r;
+}
+
+bool response::is_empty() const { return empty_; }
+
+void response::capture_result(RPCLIB_MSGPACK::object_handle &r) {
+ if (!result_) {
+ result_ = std::make_shared<RPCLIB_MSGPACK::object_handle>();
+ }
+ result_->assign(std::move(r));
+}
+
+void response::capture_error(RPCLIB_MSGPACK::object_handle &e) {
+ if (!error_) {
+ error_ = std::shared_ptr<RPCLIB_MSGPACK::object_handle>();
+ }
+ error_->assign(std::move(e));
+}
+
+} /* detail */
+} /* rpc */
diff --git a/host/lib/deps/rpclib/lib/rpc/detail/server_session.cc b/host/lib/deps/rpclib/lib/rpc/detail/server_session.cc
new file mode 100644
index 000000000..3f1ed48c9
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/detail/server_session.cc
@@ -0,0 +1,135 @@
+#include "rpc/detail/server_session.h"
+
+#include "rpc/server.h"
+#include "rpc/this_handler.h"
+#include "rpc/this_server.h"
+#include "rpc/this_session.h"
+#include "rpc/config.h"
+
+#include "rpc/detail/log.h"
+
+namespace rpc {
+namespace detail {
+
+static constexpr std::size_t default_buffer_size = rpc::constants::DEFAULT_BUFFER_SIZE;
+
+server_session::server_session(server *srv, boost::asio::io_service *io,
+ boost::asio::ip::tcp::socket socket,
+ std::shared_ptr<dispatcher> disp,
+ bool suppress_exceptions)
+ : async_writer(io, std::move(socket)),
+ parent_(srv),
+ io_(io),
+ read_strand_(*io),
+ disp_(disp),
+ pac_(),
+ suppress_exceptions_(suppress_exceptions) {
+ pac_.reserve_buffer(default_buffer_size); // TODO: make this configurable
+ // [sztomi 2016-01-13]
+}
+
+void server_session::start() { do_read(); }
+
+void server_session::close() {
+ LOG_INFO("Closing session.");
+ exit_ = true;
+ write_strand_.post([this]() { socket_.close(); });
+}
+
+void server_session::do_read() {
+ auto self(shared_from_this());
+ constexpr std::size_t max_read_bytes = default_buffer_size;
+ socket_.async_read_some(
+ boost::asio::buffer(pac_.buffer(), default_buffer_size),
+ // I don't think max_read_bytes needs to be captured explicitly
+ // (since it's constexpr), but MSVC insists.
+ read_strand_.wrap([this, self, max_read_bytes](boost::system::error_code ec,
+ std::size_t length) {
+ if (!ec) {
+ pac_.buffer_consumed(length);
+ RPCLIB_MSGPACK::unpacked result;
+ while (pac_.next(&result) && !exit_) {
+ auto msg = result.get();
+ output_buf_.clear();
+
+ // any worker thread can take this call
+ auto z = std::shared_ptr<RPCLIB_MSGPACK::zone>(result.zone().release());
+ io_->post([
+ this, msg, z
+ ]() {
+ this_handler().clear();
+ this_session().clear();
+ this_server().cancel_stop();
+
+ auto resp = disp_->dispatch(msg, suppress_exceptions_);
+
+ // There are various things that decide what to send
+ // as a response. They have a precedence.
+
+ // First, if the response is disabled, that wins
+ // So You Get Nothing, You Lose! Good Day Sir!
+ if (!this_handler().resp_enabled_) {
+ return;
+ }
+
+ // Second, if there is an error set, we send that
+ // and only third, if there is a special response, we
+ // use it
+ if (!this_handler().error_.get().is_nil()) {
+ LOG_WARN("There was an error set in the handler");
+ resp.capture_error(this_handler().error_);
+ } else if (!this_handler().resp_.get().is_nil()) {
+ LOG_WARN("There was a special result set in the "
+ "handler");
+ resp.capture_result(this_handler().resp_);
+ }
+
+ if (!resp.is_empty()) {
+#ifdef _MSC_VER
+ // doesn't compile otherwise.
+ write_strand_.post(
+ [=]() { write(resp.get_data()); });
+#else
+ write_strand_.post(
+ [this, resp, z]() { write(resp.get_data()); });
+#endif
+ }
+
+ if (this_session().exit_) {
+ LOG_WARN("Session exit requested from a handler.");
+ // posting through the strand so this comes after
+ // the previous write
+ write_strand_.post([this]() { exit_ = true; });
+ }
+
+ if (this_server().stopping_) {
+ LOG_WARN("Server exit requested from a handler.");
+ // posting through the strand so this comes after
+ // the previous write
+ write_strand_.post(
+ [this]() { parent_->close_sessions(); });
+ }
+ });
+ }
+
+ if (!exit_) {
+ // resizing strategy: if the remaining buffer size is
+ // less than the maximum bytes requested from asio,
+ // then request max_read_bytes. This prompts the unpacker
+ // to resize its buffer doubling its size
+ // (https://github.com/msgpack/msgpack-c/issues/567#issuecomment-280810018)
+ if (pac_.buffer_capacity() < max_read_bytes) {
+ LOG_TRACE("Reserving extra buffer: {}", max_read_bytes);
+ pac_.reserve_buffer(max_read_bytes);
+ }
+ do_read();
+ }
+ }
+ }));
+ if (exit_) {
+ socket_.close();
+ }
+}
+
+} /* detail */
+} /* rpc */
diff --git a/host/lib/deps/rpclib/lib/rpc/dispatcher.cc b/host/lib/deps/rpclib/lib/rpc/dispatcher.cc
new file mode 100644
index 000000000..c502b80d5
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/dispatcher.cc
@@ -0,0 +1,135 @@
+#include "rpc/dispatcher.h"
+#include <boost/format.hpp>
+#include "rpc/detail/client_error.h"
+#include "rpc/this_handler.h"
+
+namespace rpc {
+namespace detail {
+
+using detail::response;
+
+void dispatcher::dispatch(RPCLIB_MSGPACK::sbuffer const &msg) {
+ RPCLIB_MSGPACK::unpacked unpacked;
+ RPCLIB_MSGPACK::unpack(&unpacked, msg.data(), msg.size());
+ dispatch(unpacked.get());
+}
+
+response dispatcher::dispatch(RPCLIB_MSGPACK::object const &msg,
+ bool suppress_exceptions) {
+ switch (msg.via.array.size) {
+ case 3:
+ return dispatch_notification(msg, suppress_exceptions);
+ case 4:
+ return dispatch_call(msg, suppress_exceptions);
+ default:
+ return response::empty();
+ }
+}
+
+response dispatcher::dispatch_call(RPCLIB_MSGPACK::object const &msg,
+ bool suppress_exceptions) {
+ call_t the_call;
+ msg.convert(&the_call);
+
+ // TODO: proper validation of protocol (and responding to it)
+ // auto &&type = std::get<0>(the_call);
+ // assert(type == 0);
+
+ auto &&id = std::get<1>(the_call);
+ auto &&name = std::get<2>(the_call);
+ auto &&args = std::get<3>(the_call);
+
+ auto it_func = funcs_.find(name);
+
+ if (it_func != end(funcs_)) {
+ LOG_DEBUG("Dispatching call to '{}'", name);
+ try {
+ auto result = (it_func->second)(args);
+ return response::make_result(id, std::move(result));
+ } catch (rpc::detail::client_error &e) {
+ return response::make_error(
+ id, str(boost::format("rpclib: %s") % e.what()));
+ } catch (std::exception &e) {
+ if (!suppress_exceptions) {
+ throw;
+ }
+ return response::make_error(
+ id,
+ str(boost::format("rpclib: function '%s' (called with %d "
+ "arg(s)) "
+ "threw an exception. The exception "
+ "contained this information: %s.") %
+ name % args.via.array.size % e.what()));
+ } catch (rpc::detail::handler_error &) {
+ // doing nothing, the exception was only thrown to
+ // return immediately
+ } catch (rpc::detail::handler_spec_response &) {
+ // doing nothing, the exception was only thrown to
+ // return immediately
+ } catch (...) {
+ if (!suppress_exceptions) {
+ throw;
+ }
+ return response::make_error(
+ id,
+ str(boost::format("rpclib: function '%s' (called with %d "
+ "arg(s)) threw an exception. The exception "
+ "is not derived from std::exception. No "
+ "further information available.") %
+ name % args.via.array.size));
+ }
+ }
+ return response::make_error(
+ id, str(boost::format("rpclib: server could not find "
+ "function '%s' with argument count %d.") %
+ name % args.via.array.size));
+}
+
+response dispatcher::dispatch_notification(RPCLIB_MSGPACK::object const &msg,
+ bool suppress_exceptions) {
+ notification_t the_call;
+ msg.convert(&the_call);
+
+ // TODO: proper validation of protocol (and responding to it)
+ // auto &&type = std::get<0>(the_call);
+ // assert(type == static_cast<uint8_t>(request_type::notification));
+
+ auto &&name = std::get<1>(the_call);
+ auto &&args = std::get<2>(the_call);
+
+ auto it_func = funcs_.find(name);
+
+ if (it_func != end(funcs_)) {
+ LOG_DEBUG("Dispatching call to '{}'", name);
+ try {
+ auto result = (it_func->second)(args);
+ } catch (rpc::detail::handler_error &) {
+ // doing nothing, the exception was only thrown to
+ // return immediately
+ } catch (rpc::detail::handler_spec_response &) {
+ // doing nothing, the exception was only thrown to
+ // return immediately
+ } catch (...) {
+ if (!suppress_exceptions) {
+ throw;
+ }
+ }
+ }
+ return response::empty();
+}
+
+void dispatcher::enforce_arg_count(std::string const &func, std::size_t found,
+ std::size_t expected) {
+ using detail::client_error;
+ if (found != expected) {
+ throw client_error(
+ client_error::code::wrong_arity,
+ str(boost::format(
+ "Function '%s' was called with an invalid number of "
+ "arguments. Expected: %d, got: %d") %
+ func % expected % found));
+ }
+}
+
+}
+} /* rpc */
diff --git a/host/lib/deps/rpclib/lib/rpc/rpc_error.cc b/host/lib/deps/rpclib/lib/rpc/rpc_error.cc
new file mode 100644
index 000000000..dcf3c1cfc
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/rpc_error.cc
@@ -0,0 +1,24 @@
+#include "rpc/rpc_error.h"
+#include <boost/format.hpp>
+
+namespace rpc {
+
+rpc_error::rpc_error(std::string const &what_arg,
+ std::string const &function_name,
+ RPCLIB_MSGPACK::object_handle o)
+ : std::runtime_error(what_arg),
+ func_name_(function_name),
+ ob_h_(std::move(o)) {}
+
+std::string rpc_error::get_function_name() const { return func_name_; }
+
+RPCLIB_MSGPACK::object_handle &rpc_error::get_error() { return ob_h_; }
+
+timeout::timeout(std::string const &what_arg) : std::runtime_error(what_arg) {
+ formatted =
+ str(boost::format("rpc::timeout: %s") % std::runtime_error::what());
+}
+
+const char *timeout::what() const noexcept { return formatted.data(); }
+
+} /* rpc */
diff --git a/host/lib/deps/rpclib/lib/rpc/server.cc b/host/lib/deps/rpclib/lib/rpc/server.cc
new file mode 100644
index 000000000..4facb93a8
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/server.cc
@@ -0,0 +1,116 @@
+#include "rpc/server.h"
+
+#include <atomic>
+#include <memory>
+#include <stdexcept>
+#include <stdint.h>
+#include <thread>
+
+#include <boost/asio.hpp>
+
+#include "rpc/detail/dev_utils.h"
+#include "rpc/detail/log.h"
+#include "rpc/detail/log.h"
+#include "rpc/detail/server_session.h"
+#include "rpc/detail/thread_group.h"
+
+using namespace rpc::detail;
+using boost::asio::ip::tcp;
+using namespace boost::asio;
+
+namespace rpc {
+
+struct server::impl {
+ impl(server *parent, std::string const &address, uint16_t port)
+ : parent_(parent),
+ io_(),
+ acceptor_(io_,
+ tcp::endpoint(ip::address::from_string(address), port)),
+ socket_(io_),
+ suppress_exceptions_(false) {}
+
+ impl(server *parent, uint16_t port)
+ : parent_(parent),
+ io_(),
+ acceptor_(io_, tcp::endpoint(tcp::v4(), port)),
+ socket_(io_),
+ suppress_exceptions_(false) {}
+
+ void start_accept() {
+ acceptor_.async_accept(socket_, [this](boost::system::error_code ec) {
+ if (!ec) {
+ LOG_INFO("Accepted connection.");
+ auto s = std::make_shared<server_session>(
+ parent_, &io_, std::move(socket_), parent_->disp_,
+ suppress_exceptions_);
+ s->start();
+ sessions_.push_back(s);
+ } else {
+ LOG_ERROR("Error while accepting connection: {}", ec);
+ }
+ start_accept();
+ // TODO: allow graceful exit [sztomi 2016-01-13]
+ });
+ }
+
+ void close_sessions() {
+ for (auto &session : sessions_) {
+ session->close();
+ }
+ sessions_.clear();
+ }
+
+ void stop() {
+ io_.stop();
+ loop_workers_.join_all();
+ }
+
+ server *parent_;
+ io_service io_;
+ ip::tcp::acceptor acceptor_;
+ ip::tcp::socket socket_;
+ rpc::detail::thread_group loop_workers_;
+ std::vector<std::shared_ptr<server_session>> sessions_;
+ std::atomic_bool suppress_exceptions_;
+ RPCLIB_CREATE_LOG_CHANNEL(server)
+};
+
+RPCLIB_CREATE_LOG_CHANNEL(server)
+
+server::server(uint16_t port)
+ : pimpl(new server::impl(this, port)), disp_(std::make_shared<dispatcher>()) {
+ LOG_INFO("Created server on localhost:{}", port);
+ pimpl->start_accept();
+}
+
+server::server(std::string const &address, uint16_t port)
+ : pimpl(new server::impl(this, address, port)),
+ disp_(std::make_shared<dispatcher>()) {
+ LOG_INFO("Created server on address {}:{}", address, port);
+ pimpl->start_accept();
+}
+
+server::~server() {
+ pimpl->stop();
+}
+
+void server::suppress_exceptions(bool suppress) {
+ pimpl->suppress_exceptions_ = suppress;
+}
+
+void server::run() { pimpl->io_.run(); }
+
+void server::async_run(std::size_t worker_threads) {
+ pimpl->loop_workers_.create_threads(worker_threads, [this]() {
+ name_thread("server");
+ LOG_INFO("Starting");
+ pimpl->io_.run();
+ LOG_INFO("Exiting");
+ });
+}
+
+void server::stop() { pimpl->stop(); }
+
+void server::close_sessions() { pimpl->close_sessions(); }
+
+} /* rpc */
diff --git a/host/lib/deps/rpclib/lib/rpc/this_handler.cc b/host/lib/deps/rpclib/lib/rpc/this_handler.cc
new file mode 100644
index 000000000..247931054
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/this_handler.cc
@@ -0,0 +1,27 @@
+#include "rpc/this_handler.h"
+
+namespace rpc {
+
+this_handler_t &this_handler() {
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wexit-time-destructors"
+#endif
+ static thread_local this_handler_t instance;
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+ return instance;
+}
+
+void this_handler_t::disable_response() { resp_enabled_ = false; }
+
+void this_handler_t::enable_response() { resp_enabled_ = true; }
+
+void this_handler_t::clear() {
+ error_.set(RPCLIB_MSGPACK::object());
+ resp_.set(RPCLIB_MSGPACK::object());
+ enable_response();
+}
+
+} /* rpc */
diff --git a/host/lib/deps/rpclib/lib/rpc/this_server.cc b/host/lib/deps/rpclib/lib/rpc/this_server.cc
new file mode 100644
index 000000000..4e99e21de
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/this_server.cc
@@ -0,0 +1,19 @@
+#include "rpc/this_server.h"
+
+namespace rpc
+{
+
+this_server_t &this_server() {
+ static thread_local this_server_t instance;
+ return instance;
+}
+
+void this_server_t::stop() {
+ stopping_ = true;
+}
+
+void this_server_t::cancel_stop() {
+ stopping_ = false;
+}
+
+} /* rpc */
diff --git a/host/lib/deps/rpclib/lib/rpc/this_session.cc b/host/lib/deps/rpclib/lib/rpc/this_session.cc
new file mode 100644
index 000000000..d341ed982
--- /dev/null
+++ b/host/lib/deps/rpclib/lib/rpc/this_session.cc
@@ -0,0 +1,20 @@
+#include "rpc/this_session.h"
+
+namespace rpc
+{
+
+this_session_t &this_session() {
+ static thread_local this_session_t instance;
+ return instance;
+}
+
+void this_session_t::post_exit() {
+ exit_ = true;
+}
+
+void this_session_t::clear() {
+ exit_ = false;
+}
+
+
+} /* rpc */