├── Makefile ├── README.md ├── LICENSE ├── test.cpp └── serialize.h /Makefile: -------------------------------------------------------------------------------- 1 | ALL: test 2 | 3 | clean: 4 | rm -rf test 5 | 6 | test: test.cpp serialize.h 7 | g++ -Wall -O3 -otest test.cpp 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # serialize 2 | 3 | C++ objects serialization 4 | 5 | A tiny serialization library for storing C++ types to and retrieve them from byte arrays. 6 | 7 | Support for bool, char, short, int, long long (signed/unsigned), strings, vectors, maps 8 | and user defined classes with automatic code generation (for simple cases). 9 | 10 | Example: 11 | 12 | struct P2d { 13 | double x, y; 14 | }; 15 | 16 | DefSerializer(P2d, x, y) 17 | 18 | ... 19 | 20 | std::vector pv{{12.3, 45.6}, {-1.1, -2.2}}; 21 | std::vector buf = Serialize::serialize(pv); 22 | 23 | ... 24 | 25 | auto pv2 = Serialize::deserialize(buf); 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Andrea Griffini 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /test.cpp: -------------------------------------------------------------------------------- 1 | #include "serialize.h" 2 | 3 | struct P2d { 4 | double x, y; 5 | }; 6 | 7 | DefSerializer(P2d, x, y) 8 | 9 | typedef std::vector Path2d; 10 | 11 | struct Area2d { 12 | std::vector paths; 13 | std::string color; 14 | bool valid; 15 | }; 16 | 17 | DefSerializer(Area2d, paths, color, valid) 18 | 19 | ///////////////////////////////////////////////////////////// 20 | 21 | struct Base { 22 | int x = -1; 23 | Base(){} 24 | Base(int x) : x(x) {} 25 | virtual ~Base(){} 26 | }; 27 | 28 | DefSerializer(Base, x) 29 | 30 | struct Der1 : Base { 31 | int y = -1; 32 | Der1(){} 33 | Der1(int x, int y) : Base{x}, y(y) {} 34 | }; 35 | 36 | DefSerializer(Der1, y) 37 | 38 | struct Der2 : Base { 39 | std::string y; 40 | Der2(){} 41 | Der2(int x, const std::string& y) : Base{x}, y(y) {} 42 | }; 43 | 44 | DefSerializer(Der2, y) 45 | 46 | template<> 47 | struct Serialize::Serializer { 48 | static void save(WriteChannel& write, const Base * x) { 49 | if (auto p = dynamic_cast(x)) { 50 | write("1", 1); 51 | Serialize::save(write, *x); 52 | Serialize::save(write, *p); 53 | } else if (auto p = dynamic_cast(x)) { 54 | write("2", 1); 55 | Serialize::save(write, *x); 56 | Serialize::save(write, *p); 57 | } else { 58 | throw std::runtime_error("Unknown derived class"); 59 | } 60 | } 61 | static void load(ReadChannel& read, Base*& x) { 62 | char t; read(t); 63 | if (t == '1') { 64 | x = new Der1; Serialize::load(read, *x); Serialize::load(read, *(Der1 *)x); 65 | } else if (t == '2') { 66 | x = new Der2; Serialize::load(read, *x); Serialize::load(read, *(Der2 *)x); 67 | } else { 68 | throw std::runtime_error("Data stream error"); 69 | } 70 | } 71 | static std::string type() { 72 | return "*|" + Serializer::type() + Serializer::type() + Serializer::type() + "|"; 73 | } 74 | }; 75 | 76 | int main(int argc, const char *argv[]) { 77 | std::map areas; 78 | for (int j=0; j<100; j++) { 79 | Area2d& a = areas[j*3]; 80 | a.color = "#AABBCC"; 81 | a.valid = j % 4 == 0; 82 | for (int i = 0; i<2; i++) { 83 | a.paths.push_back({}); 84 | for (int j=0; j<1000; j++) { 85 | a.paths.back().push_back({i/10.0, j/10.0}); 86 | } 87 | } 88 | } 89 | 90 | clock_t start = clock(); 91 | std::vector buf = Serialize::serialize(areas); 92 | clock_t stop = clock(); 93 | printf("Serialization time = %.3fms (%i bytes)\n", 94 | 1000.0*(stop - start)/CLOCKS_PER_SEC, 95 | int(buf.size())); 96 | FILE *f = fopen("test.dat", "wb"); 97 | if (f) { 98 | fwrite(&buf[0], 1, buf.size(), f); 99 | fclose(f); 100 | } else { 101 | fprintf(stderr, "Error creating binary dump... skipping\n"); 102 | } 103 | clock_t start2 = clock(); 104 | auto res = Serialize::deserialize>(buf); 105 | clock_t stop2 = clock(); 106 | printf("Deserialization time = %.3fms\n", 107 | 1000.0*(stop2 - start2)/CLOCKS_PER_SEC); 108 | 109 | printf("Data descriptor: %s\n", Serialize::Serializer>::type().c_str()); 110 | 111 | std::vector bpv; 112 | bpv.push_back(new Der1(10, 99)); 113 | bpv.push_back(new Der2(20, "Hey")); 114 | 115 | auto buf2 = Serialize::serialize(bpv); 116 | 117 | auto bpv2 = Serialize::deserialize>(buf2); 118 | for (auto& bp : bpv2) { 119 | if (Der1 *p = dynamic_cast(bp)) { 120 | printf("Der1(%i, %i)\n", p->x, p->y); 121 | } else if (Der2 *p = dynamic_cast(bp)) { 122 | printf("Der2(%i, \"%s\")\n", p->x, p->y.c_str()); 123 | } else { 124 | printf("Unknown class\n"); 125 | } 126 | } 127 | 128 | return 0; 129 | } 130 | -------------------------------------------------------------------------------- /serialize.h: -------------------------------------------------------------------------------- 1 | #if !defined(SERIALIZE_H_INCLUDED) 2 | #define SERIALIZE_H_INCLUDED 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | namespace Serialize { 11 | 12 | struct WriteChannel { 13 | virtual ~WriteChannel() {} 14 | virtual void operator()(const void *p, int sz) = 0; 15 | template void operator()(const T& x) { (*this)(&x, sizeof(x)); } 16 | }; 17 | 18 | struct ReadChannel { 19 | virtual ~ReadChannel() {} 20 | virtual void operator()(void *p, int sz) = 0; 21 | template void operator()(T& x) { (*this)(&x, sizeof(x)); } 22 | }; 23 | 24 | struct VectorWriteChannel : WriteChannel { 25 | std::vector& buf; 26 | VectorWriteChannel(std::vector& buf) : buf(buf) {} 27 | virtual void operator()(const void *p, int sz) { 28 | buf.resize(buf.size() + sz); 29 | memcpy(&buf.back() - sz + 1, p, sz); 30 | } 31 | }; 32 | 33 | struct PtrReadChannel : ReadChannel { 34 | const unsigned char *& rp, *ep; 35 | bool err = false; 36 | PtrReadChannel(const unsigned char *& rp, const unsigned char *ep) : rp(rp), ep(ep) {} 37 | virtual void operator()(void *p, int sz) { 38 | if (ep-rp < sz) throw std::runtime_error("Out of input data"); 39 | memcpy(p, rp, sz); 40 | rp += sz; 41 | } 42 | }; 43 | 44 | template struct BaseType; 45 | template<> struct BaseType { static const std::string name() { return "x"; } }; 46 | template<> struct BaseType { static const std::string name() { return "b"; } }; 47 | template<> struct BaseType { static const std::string name() { return "B"; } }; 48 | template<> struct BaseType { static const std::string name() { return "w"; } }; 49 | template<> struct BaseType { static const std::string name() { return "W"; } }; 50 | template<> struct BaseType { static const std::string name() { return "i"; } }; 51 | template<> struct BaseType { static const std::string name() { return "I"; } }; 52 | template<> struct BaseType { static const std::string name() { return "l"; } }; 53 | template<> struct BaseType { static const std::string name() { return "L"; } }; 54 | template<> struct BaseType { static const std::string name() { return "f"; } }; 55 | template<> struct BaseType { static const std::string name() { return "F"; } }; 56 | 57 | template 58 | struct Serializer { 59 | static void save(WriteChannel& write, const T& x) { write(x); } 60 | static void load(ReadChannel& read, T& x) { read(x); } 61 | static std::string type() { return BaseType::name(); } 62 | }; 63 | 64 | template void save(WriteChannel& write, const T& x) { Serializer::save(write, x); } 65 | template void load(ReadChannel& read, T& x) { Serializer::load(read, x); } 66 | template T load(ReadChannel& read) { T x; load(read, x); return x; } 67 | 68 | template 69 | struct Serializer> { 70 | static void save(WriteChannel& write, const std::vector& x) { 71 | Serialize::save(write, int(x.size())); 72 | for (auto& i : x) Serialize::save(write, i); 73 | } 74 | static void load(ReadChannel& read, std::vector& x) { 75 | int n = Serialize::load(read); 76 | x.resize(n); 77 | for (auto& i : x) i = Serialize::load(read); 78 | } 79 | static std::string type() { 80 | return "v" + Serializer::type(); 81 | } 82 | }; 83 | 84 | template<> 85 | struct Serializer { 86 | static void save(WriteChannel& write, const std::string& x) { 87 | Serialize::save(write, int(x.size())); 88 | write(x.data(), int(x.size())); 89 | } 90 | static void load(ReadChannel& read, std::string& x) { 91 | int n = Serialize::load(read); 92 | x.resize(n); 93 | read(&x[0], n); 94 | } 95 | static std::string type() { 96 | return "s"; 97 | } 98 | }; 99 | 100 | template 101 | struct Serializer> { 102 | static void save(WriteChannel& write, const std::map& x) { 103 | Serialize::save(write, int(x.size())); 104 | for (auto& i : x) { 105 | Serialize::save(write, i.first); 106 | Serialize::save(write, i.second); 107 | } 108 | } 109 | static void load(ReadChannel& read, std::map& x) { 110 | int n = Serialize::load(read); 111 | for (int i=0; i(read); 113 | x[k] = Serialize::load(read); 114 | } 115 | } 116 | static std::string type() { 117 | return "m" + Serializer::type() + Serializer::type(); 118 | } 119 | }; 120 | 121 | template 122 | std::vector serialize(const T& x) { 123 | std::vector res; 124 | VectorWriteChannel write{res}; 125 | Serialize::save(write, Serializer::type()); 126 | Serialize::save(write, x); 127 | return res; 128 | } 129 | 130 | template 131 | T deserialize(const std::vector& buf) { 132 | const unsigned char *p = &buf[0], *ep = p+buf.size(); 133 | PtrReadChannel read{p, ep}; 134 | std::string sig = Serialize::load(read); 135 | if (sig != Serializer::type()) { 136 | throw std::runtime_error("Type mismatch: '" + sig + "' != '" + Serializer::type() + "'"); 137 | } 138 | T res = Serialize::load(read); 139 | if (p != ep) throw std::runtime_error("Extra data"); 140 | return res; 141 | } 142 | 143 | // 144 | // Macromagic: all the following is to be able to provide a DefSerializer macro that 145 | // greatly simplifies the serialization of simple custom classes... for example: 146 | // 147 | // struct P2d { 148 | // double x, y; 149 | // std::string color; 150 | // }; 151 | // 152 | // DefSerializer(P2d, x, y, color) 153 | // 154 | // The generated code is more or less 155 | // 156 | // template<> 157 | // struct Serialize::Serializer { 158 | // static void save(WriteChannel& write, const P2d& x) { 159 | // Serializer::save(write, x.x); 160 | // Serializer::save(write, x.y); 161 | // Serializer::save(write, x.color); 162 | // } 163 | // static void load(ReadChannel& read, P2d& x) { 164 | // Serializer::load(read, x.x); 165 | // Serializer::load(read, x.y); 166 | // Serializer::load(read, x.color); 167 | // } 168 | // static std::string type() { 169 | // return "{x:F,y:F,color:s}"; 170 | // } 171 | // }; 172 | // 173 | // Macros are ugly? yes... but only C++11 is needed and the usage is **way** better 174 | // that what would be possible just using templates even with C++17 (afaik). 175 | // 176 | 177 | #define SERIALIZEfsave1(F1) Serialize::save(write, x.F1); 178 | #define SERIALIZEfload1(F1) Serialize::load(read, x.F1); 179 | #define SERIALIZEftype1(F1) #F1 ":" + Serializer::type() 180 | 181 | #define SERIALIZEfsave2(F1,F2) \ 182 | SERIALIZEfsave1(F1) SERIALIZEfsave1(F2) 183 | #define SERIALIZEfload2(F1,F2) \ 184 | SERIALIZEfload1(F1) SERIALIZEfload1(F2) 185 | #define SERIALIZEftype2(F1,F2) \ 186 | SERIALIZEftype1(F1) + "," SERIALIZEftype1(F2) 187 | 188 | #define SERIALIZEfsave3(F1,F2,F3) \ 189 | SERIALIZEfsave1(F1) SERIALIZEfsave2(F2,F3) 190 | #define SERIALIZEfload3(F1,F2,F3) \ 191 | SERIALIZEfload1(F1) SERIALIZEfload2(F2,F3) 192 | #define SERIALIZEftype3(F1,F2,F3) \ 193 | SERIALIZEftype1(F1) + "," SERIALIZEftype2(F2,F3) 194 | 195 | #define SERIALIZEfsave4(F1,F2,F3,F4) \ 196 | SERIALIZEfsave1(F1) SERIALIZEfsave3(F2,F3,F4) 197 | #define SERIALIZEfload4(F1,F2,F3,F4) \ 198 | SERIALIZEfload1(F1) SERIALIZEfload3(F2,F3,F4) 199 | #define SERIALIZEftype4(F1,F2,F3,F4) \ 200 | SERIALIZEftype1(F1) + "," SERIALIZEftype3(F2,F3,F4) 201 | 202 | #define SERIALIZEfsave5(F1,F2,F3,F4,F5) \ 203 | SERIALIZEfsave1(F1) SERIALIZEfsave4(F2,F3,F4,F5) 204 | #define SERIALIZEfload5(F1,F2,F3,F4,F5) \ 205 | SERIALIZEfload1(F1) SERIALIZEfload4(F2,F3,F4,F5) 206 | #define SERIALIZEftype5(F1,F2,F3,F4,F5) \ 207 | SERIALIZEftype1(F1) + "," SERIALIZEftype4(F2,F3,F4,F5) 208 | 209 | #define SERIALIZEfsave6(F1,F2,F3,F4,F5,F6) \ 210 | SERIALIZEfsave1(F1) SERIALIZEfsave5(F2,F3,F4,F5,F6) 211 | #define SERIALIZEfload6(F1,F2,F3,F4,F5,F6) \ 212 | SERIALIZEfload1(F1) SERIALIZEfload5(F2,F3,F4,F5,F6) 213 | #define SERIALIZEftype6(F1,F2,F3,F4,F5,F6) \ 214 | SERIALIZEftype1(F1) + "," SERIALIZEftype5(F2,F3,F4,F5,F6) 215 | 216 | #define SERIALIZEfsave7(F1,F2,F3,F4,F5,F6,F7) \ 217 | SERIALIZEfsave1(F1) SERIALIZEfsave6(F2,F3,F4,F5,F6,F7) 218 | #define SERIALIZEfload7(F1,F2,F3,F4,F5,F6,F7) \ 219 | SERIALIZEfload1(F1) SERIALIZEfload6(F2,F3,F4,F5,F6,F7) 220 | #define SERIALIZEftype7(F1,F2,F3,F4,F5,F6,F7) \ 221 | SERIALIZEftype1(F1) + "," SERIALIZEftype6(F2,F3,F4,F5,F6,F7) 222 | 223 | #define SERIALIZEfsave8(F1,F2,F3,F4,F5,F6,F7,F8) \ 224 | SERIALIZEfsave1(F1) SERIALIZEfsave7(F2,F3,F4,F5,F6,F7,F8) 225 | #define SERIALIZEfload8(F1,F2,F3,F4,F5,F6,F7,F8) \ 226 | SERIALIZEfload1(F1) SERIALIZEfload7(F2,F3,F4,F5,F6,F7,F8) 227 | #define SERIALIZEftype8(F1,F2,F3,F4,F5,F6,F7,F8) \ 228 | SERIALIZEftype1(F1) + "," SERIALIZEftype7(F2,F3,F4,F5,F6,F7,F8) 229 | 230 | #define SERIALIZEfsave9(F1,F2,F3,F4,F5,F6,F7,F8,F9) \ 231 | SERIALIZEfsave1(F1) SERIALIZEfsave8(F2,F3,F4,F5,F6,F7,F8,F9) 232 | #define SERIALIZEfload9(F1,F2,F3,F4,F5,F6,F7,F8,F9) \ 233 | SERIALIZEfload1(F1) SERIALIZEfload8(F2,F3,F4,F5,F6,F7,F8,F9) 234 | #define SERIALIZEftype9(F1,F2,F3,F4,F5,F6,F7,F8,F9) \ 235 | SERIALIZEftype1(F1) + "," SERIALIZEftype8(F2,F3,F4,F5,F6,F7,F8,F9) 236 | 237 | #define SERIALIZEfsave10(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10) \ 238 | SERIALIZEfsave1(F1) SERIALIZEfsave9(F2,F3,F4,F5,F6,F7,F8,F9,F10) 239 | #define SERIALIZEfload10(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10) \ 240 | SERIALIZEfload1(F1) SERIALIZEfload9(F2,F3,F4,F5,F6,F7,F8,F9,F10) 241 | #define SERIALIZEftype10(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10) \ 242 | SERIALIZEftype1(F1) + "," SERIALIZEftype9(F2,F3,F4,F5,F6,F7,F8,F9,F10) 243 | 244 | #define SERIALIZEfsave11(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11) \ 245 | SERIALIZEfsave1(F1) SERIALIZEfsave10(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11) 246 | #define SERIALIZEfload11(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11) \ 247 | SERIALIZEfload1(F1) SERIALIZEfload10(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11) 248 | #define SERIALIZEftype11(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11) \ 249 | SERIALIZEftype1(F1) + "," SERIALIZEftype10(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11) 250 | 251 | #define SERIALIZEfsave12(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12) \ 252 | SERIALIZEfsave1(F1) SERIALIZEfsave11(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12) 253 | #define SERIALIZEfload12(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12) \ 254 | SERIALIZEfload1(F1) SERIALIZEfload11(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12) 255 | #define SERIALIZEftype12(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12) \ 256 | SERIALIZEftype1(F1) + "," SERIALIZEftype11(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12) 257 | 258 | #define SERIALIZEfsave13(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) \ 259 | SERIALIZEfsave1(F1) SERIALIZEfsave12(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) 260 | #define SERIALIZEfload13(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) \ 261 | SERIALIZEfload1(F1) SERIALIZEfload12(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) 262 | #define SERIALIZEftype13(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) \ 263 | SERIALIZEftype1(F1) + "," SERIALIZEftype12(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13) 264 | 265 | #define SERIALIZEfsave14(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14) \ 266 | SERIALIZEfsave1(F1) SERIALIZEfsave13(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14) 267 | #define SERIALIZEfload14(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14) \ 268 | SERIALIZEfload1(F1) SERIALIZEfload13(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14) 269 | #define SERIALIZEftype14(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14) \ 270 | SERIALIZEftype1(F1) + "," SERIALIZEftype13(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14) 271 | 272 | #define SERIALIZEfsave15(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15) \ 273 | SERIALIZEfsave1(F1) SERIALIZEfsave14(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15) 274 | #define SERIALIZEfload15(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15) \ 275 | SERIALIZEfload1(F1) SERIALIZEfload14(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15) 276 | #define SERIALIZEftype15(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15) \ 277 | SERIALIZEftype1(F1) + "," SERIALIZEftype14(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15) 278 | 279 | #define SERIALIZEfsave16(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16) \ 280 | SERIALIZEfsave1(F1) SERIALIZEfsave15(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16) 281 | #define SERIALIZEfload16(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16) \ 282 | SERIALIZEfload1(F1) SERIALIZEfload15(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16) 283 | #define SERIALIZEftype16(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16) \ 284 | SERIALIZEftype1(F1) + "," SERIALIZEftype15(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16) 285 | 286 | #define SERIALIZEfsave17(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17) \ 287 | SERIALIZEfsave1(F1) SERIALIZEfsave16(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17) 288 | #define SERIALIZEfload17(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17) \ 289 | SERIALIZEfload1(F1) SERIALIZEfload16(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17) 290 | #define SERIALIZEftype17(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17) \ 291 | SERIALIZEftype1(F1) + "," SERIALIZEftype16(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17) 292 | 293 | #define SERIALIZEfsave18(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18) \ 294 | SERIALIZEfsave1(F1) SERIALIZEfsave17(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18) 295 | #define SERIALIZEfload18(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18) \ 296 | SERIALIZEfload1(F1) SERIALIZEfload17(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18) 297 | #define SERIALIZEftype18(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18) \ 298 | SERIALIZEftype1(F1) + "," SERIALIZEftype17(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18) 299 | 300 | #define SERIALIZEfsave19(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19) \ 301 | SERIALIZEfsave1(F1) SERIALIZEfsave18(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19) 302 | #define SERIALIZEfload19(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19) \ 303 | SERIALIZEfload1(F1) SERIALIZEfload18(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19) 304 | #define SERIALIZEftype19(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19) \ 305 | SERIALIZEftype1(F1) + "," SERIALIZEftype18(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19) 306 | 307 | #define SERIALIZEfsave20(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20) \ 308 | SERIALIZEfsave1(F1) SERIALIZEfsave19(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20) 309 | #define SERIALIZEfload20(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20) \ 310 | SERIALIZEfload1(F1) SERIALIZEfload19(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20) 311 | #define SERIALIZEftype20(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20) \ 312 | SERIALIZEftype1(F1) + "," SERIALIZEftype19(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20) 313 | 314 | #define SERIALIZEfsave21(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21) \ 315 | SERIALIZEfsave1(F1) SERIALIZEfsave20(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21) 316 | #define SERIALIZEfload21(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21) \ 317 | SERIALIZEfload1(F1) SERIALIZEfload20(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21) 318 | #define SERIALIZEftype21(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21) \ 319 | SERIALIZEftype1(F1) + "," SERIALIZEftype20(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21) 320 | 321 | #define SERIALIZEfsave22(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22) \ 322 | SERIALIZEfsave1(F1) SERIALIZEfsave21(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22) 323 | #define SERIALIZEfload22(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22) \ 324 | SERIALIZEfload1(F1) SERIALIZEfload21(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22) 325 | #define SERIALIZEftype22(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22) \ 326 | SERIALIZEftype1(F1) + "," SERIALIZEftype21(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22) 327 | 328 | #define SERIALIZEfsave23(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23) \ 329 | SERIALIZEfsave1(F1) SERIALIZEfsave22(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23) 330 | #define SERIALIZEfload23(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23) \ 331 | SERIALIZEfload1(F1) SERIALIZEfload22(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23) 332 | #define SERIALIZEftype23(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23) \ 333 | SERIALIZEftype1(F1) + "," SERIALIZEftype22(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23) 334 | 335 | #define SERIALIZEfsave24(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24) \ 336 | SERIALIZEfsave1(F1) SERIALIZEfsave23(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24) 337 | #define SERIALIZEfload24(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24) \ 338 | SERIALIZEfload1(F1) SERIALIZEfload23(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24) 339 | #define SERIALIZEftype24(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24) \ 340 | SERIALIZEftype1(F1) + "," SERIALIZEftype23(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24) 341 | 342 | #define SERIALIZEfsave25(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25) \ 343 | SERIALIZEfsave1(F1) SERIALIZEfsave24(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25) 344 | #define SERIALIZEfload25(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25) \ 345 | SERIALIZEfload1(F1) SERIALIZEfload24(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25) 346 | #define SERIALIZEftype25(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25) \ 347 | SERIALIZEftype1(F1) + "," SERIALIZEftype24(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25) 348 | 349 | #define SERIALIZEfsave26(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26) \ 350 | SERIALIZEfsave1(F1) SERIALIZEfsave25(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26) 351 | #define SERIALIZEfload26(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26) \ 352 | SERIALIZEfload1(F1) SERIALIZEfload25(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26) 353 | #define SERIALIZEftype26(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26) \ 354 | SERIALIZEftype1(F1) + "," SERIALIZEftype25(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26) 355 | 356 | #define SERIALIZEfsave27(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27) \ 357 | SERIALIZEfsave1(F1) SERIALIZEfsave26(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27) 358 | #define SERIALIZEfload27(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27) \ 359 | SERIALIZEfload1(F1) SERIALIZEfload26(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27) 360 | #define SERIALIZEftype27(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27) \ 361 | SERIALIZEftype1(F1) + "," SERIALIZEftype26(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27) 362 | 363 | #define SERIALIZEfsave28(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28) \ 364 | SERIALIZEfsave1(F1) SERIALIZEfsave27(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28) 365 | #define SERIALIZEfload28(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28) \ 366 | SERIALIZEfload1(F1) SERIALIZEfload27(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28) 367 | #define SERIALIZEftype28(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28) \ 368 | SERIALIZEftype1(F1) + "," SERIALIZEftype27(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28) 369 | 370 | #define SERIALIZEfsave29(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29) \ 371 | SERIALIZEfsave1(F1) SERIALIZEfsave28(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29) 372 | #define SERIALIZEfload29(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29) \ 373 | SERIALIZEfload1(F1) SERIALIZEfload28(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29) 374 | #define SERIALIZEftype29(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29) \ 375 | SERIALIZEftype1(F1) + "," SERIALIZEftype28(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29) 376 | 377 | #define SERIALIZEfsave30(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30) \ 378 | SERIALIZEfsave1(F1) SERIALIZEfsave29(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30) 379 | #define SERIALIZEfload30(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30) \ 380 | SERIALIZEfload1(F1) SERIALIZEfload29(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30) 381 | #define SERIALIZEftype30(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30) \ 382 | SERIALIZEftype1(F1) + "," SERIALIZEftype29(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30) 383 | 384 | #define SERIALIZEfsave31(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31) \ 385 | SERIALIZEfsave1(F1) SERIALIZEfsave30(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31) 386 | #define SERIALIZEfload31(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31) \ 387 | SERIALIZEfload1(F1) SERIALIZEfload30(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31) 388 | #define SERIALIZEftype31(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31) \ 389 | SERIALIZEftype1(F1) + "," SERIALIZEftype30(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31) 390 | 391 | #define SERIALIZEfsave32(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32) \ 392 | SERIALIZEfsave1(F1) SERIALIZEfsave31(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32) 393 | #define SERIALIZEfload32(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32) \ 394 | SERIALIZEfload1(F1) SERIALIZEfload31(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32) 395 | #define SERIALIZEftype32(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32) \ 396 | SERIALIZEftype1(F1) + "," SERIALIZEftype31(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32) 397 | 398 | #define SERIALIZEfsave33(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33) \ 399 | SERIALIZEfsave1(F1) SERIALIZEfsave32(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33) 400 | #define SERIALIZEfload33(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33) \ 401 | SERIALIZEfload1(F1) SERIALIZEfload32(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33) 402 | #define SERIALIZEftype33(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33) \ 403 | SERIALIZEftype1(F1) + "," SERIALIZEftype32(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33) 404 | 405 | #define SERIALIZEfsave34(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34) \ 406 | SERIALIZEfsave1(F1) SERIALIZEfsave33(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34) 407 | #define SERIALIZEfload34(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34) \ 408 | SERIALIZEfload1(F1) SERIALIZEfload33(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34) 409 | #define SERIALIZEftype34(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34) \ 410 | SERIALIZEftype1(F1) + "," SERIALIZEftype33(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34) 411 | 412 | #define SERIALIZEfsave35(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35) \ 413 | SERIALIZEfsave1(F1) SERIALIZEfsave34(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35) 414 | #define SERIALIZEfload35(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35) \ 415 | SERIALIZEfload1(F1) SERIALIZEfload34(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35) 416 | #define SERIALIZEftype35(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35) \ 417 | SERIALIZEftype1(F1) + "," SERIALIZEftype34(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35) 418 | 419 | #define SERIALIZEfsave36(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36) \ 420 | SERIALIZEfsave1(F1) SERIALIZEfsave35(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36) 421 | #define SERIALIZEfload36(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36) \ 422 | SERIALIZEfload1(F1) SERIALIZEfload35(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36) 423 | #define SERIALIZEftype36(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36) \ 424 | SERIALIZEftype1(F1) + "," SERIALIZEftype35(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36) 425 | 426 | #define SERIALIZEfsave37(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37) \ 427 | SERIALIZEfsave1(F1) SERIALIZEfsave36(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37) 428 | #define SERIALIZEfload37(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37) \ 429 | SERIALIZEfload1(F1) SERIALIZEfload36(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37) 430 | #define SERIALIZEftype37(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37) \ 431 | SERIALIZEftype1(F1) + "," SERIALIZEftype36(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37) 432 | 433 | #define SERIALIZEfsave38(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38) \ 434 | SERIALIZEfsave1(F1) SERIALIZEfsave37(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38) 435 | #define SERIALIZEfload38(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38) \ 436 | SERIALIZEfload1(F1) SERIALIZEfload37(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38) 437 | #define SERIALIZEftype38(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38) \ 438 | SERIALIZEftype1(F1) + "," SERIALIZEftype37(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38) 439 | 440 | #define SERIALIZEfsave39(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39) \ 441 | SERIALIZEfsave1(F1) SERIALIZEfsave38(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39) 442 | #define SERIALIZEfload39(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39) \ 443 | SERIALIZEfload1(F1) SERIALIZEfload38(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39) 444 | #define SERIALIZEftype39(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39) \ 445 | SERIALIZEftype1(F1) + "," SERIALIZEftype38(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39) 446 | 447 | #define SERIALIZEfsave40(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40) \ 448 | SERIALIZEfsave1(F1) SERIALIZEfsave39(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40) 449 | #define SERIALIZEfload40(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40) \ 450 | SERIALIZEfload1(F1) SERIALIZEfload39(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40) 451 | #define SERIALIZEftype40(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40) \ 452 | SERIALIZEftype1(F1) + "," SERIALIZEftype39(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40) 453 | 454 | #define SERIALIZEfsave41(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41) \ 455 | SERIALIZEfsave1(F1) SERIALIZEfsave40(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41) 456 | #define SERIALIZEfload41(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41) \ 457 | SERIALIZEfload1(F1) SERIALIZEfload40(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41) 458 | #define SERIALIZEftype41(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41) \ 459 | SERIALIZEftype1(F1) + "," SERIALIZEftype40(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41) 460 | 461 | #define SERIALIZEfsave42(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42) \ 462 | SERIALIZEfsave1(F1) SERIALIZEfsave41(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42) 463 | #define SERIALIZEfload42(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42) \ 464 | SERIALIZEfload1(F1) SERIALIZEfload41(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42) 465 | #define SERIALIZEftype42(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42) \ 466 | SERIALIZEftype1(F1) + "," SERIALIZEftype41(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42) 467 | 468 | #define SERIALIZEfsave43(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43) \ 469 | SERIALIZEfsave1(F1) SERIALIZEfsave42(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43) 470 | #define SERIALIZEfload43(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43) \ 471 | SERIALIZEfload1(F1) SERIALIZEfload42(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43) 472 | #define SERIALIZEftype43(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43) \ 473 | SERIALIZEftype1(F1) + "," SERIALIZEftype42(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43) 474 | 475 | #define SERIALIZEfsave44(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44) \ 476 | SERIALIZEfsave1(F1) SERIALIZEfsave43(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44) 477 | #define SERIALIZEfload44(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44) \ 478 | SERIALIZEfload1(F1) SERIALIZEfload43(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44) 479 | #define SERIALIZEftype44(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44) \ 480 | SERIALIZEftype1(F1) + "," SERIALIZEftype43(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44) 481 | 482 | #define SERIALIZEfsave45(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45) \ 483 | SERIALIZEfsave1(F1) SERIALIZEfsave44(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45) 484 | #define SERIALIZEfload45(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45) \ 485 | SERIALIZEfload1(F1) SERIALIZEfload44(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45) 486 | #define SERIALIZEftype45(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45) \ 487 | SERIALIZEftype1(F1) + "," SERIALIZEftype44(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45) 488 | 489 | #define SERIALIZEfsave46(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46) \ 490 | SERIALIZEfsave1(F1) SERIALIZEfsave45(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46) 491 | #define SERIALIZEfload46(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46) \ 492 | SERIALIZEfload1(F1) SERIALIZEfload45(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46) 493 | #define SERIALIZEftype46(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46) \ 494 | SERIALIZEftype1(F1) + "," SERIALIZEftype45(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46) 495 | 496 | #define SERIALIZEfsave47(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47) \ 497 | SERIALIZEfsave1(F1) SERIALIZEfsave46(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47) 498 | #define SERIALIZEfload47(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47) \ 499 | SERIALIZEfload1(F1) SERIALIZEfload46(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47) 500 | #define SERIALIZEftype47(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47) \ 501 | SERIALIZEftype1(F1) + "," SERIALIZEftype46(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47) 502 | 503 | #define SERIALIZEfsave48(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48) \ 504 | SERIALIZEfsave1(F1) SERIALIZEfsave47(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48) 505 | #define SERIALIZEfload48(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48) \ 506 | SERIALIZEfload1(F1) SERIALIZEfload47(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48) 507 | #define SERIALIZEftype48(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48) \ 508 | SERIALIZEftype1(F1) + "," SERIALIZEftype47(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48) 509 | 510 | #define SERIALIZEfsave49(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49) \ 511 | SERIALIZEfsave1(F1) SERIALIZEfsave48(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49) 512 | #define SERIALIZEfload49(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49) \ 513 | SERIALIZEfload1(F1) SERIALIZEfload48(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49) 514 | #define SERIALIZEftype49(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49) \ 515 | SERIALIZEftype1(F1) + "," SERIALIZEftype48(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49) 516 | 517 | #define SERIALIZEfsave50(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50) \ 518 | SERIALIZEfsave1(F1) SERIALIZEfsave49(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50) 519 | #define SERIALIZEfload50(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50) \ 520 | SERIALIZEfload1(F1) SERIALIZEfload49(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50) 521 | #define SERIALIZEftype50(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50) \ 522 | SERIALIZEftype1(F1) + "," SERIALIZEftype49(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50) 523 | 524 | #define SERIALIZEfsave51(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51) \ 525 | SERIALIZEfsave1(F1) SERIALIZEfsave50(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51) 526 | #define SERIALIZEfload51(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51) \ 527 | SERIALIZEfload1(F1) SERIALIZEfload50(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51) 528 | #define SERIALIZEftype51(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51) \ 529 | SERIALIZEftype1(F1) + "," SERIALIZEftype50(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51) 530 | 531 | #define SERIALIZEfsave52(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52) \ 532 | SERIALIZEfsave1(F1) SERIALIZEfsave51(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52) 533 | #define SERIALIZEfload52(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52) \ 534 | SERIALIZEfload1(F1) SERIALIZEfload51(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52) 535 | #define SERIALIZEftype52(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52) \ 536 | SERIALIZEftype1(F1) + "," SERIALIZEftype51(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52) 537 | 538 | #define SERIALIZEfsave53(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53) \ 539 | SERIALIZEfsave1(F1) SERIALIZEfsave52(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53) 540 | #define SERIALIZEfload53(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53) \ 541 | SERIALIZEfload1(F1) SERIALIZEfload52(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53) 542 | #define SERIALIZEftype53(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53) \ 543 | SERIALIZEftype1(F1) + "," SERIALIZEftype52(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53) 544 | 545 | #define SERIALIZEfsave54(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54) \ 546 | SERIALIZEfsave1(F1) SERIALIZEfsave53(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54) 547 | #define SERIALIZEfload54(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54) \ 548 | SERIALIZEfload1(F1) SERIALIZEfload53(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54) 549 | #define SERIALIZEftype54(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54) \ 550 | SERIALIZEftype1(F1) + "," SERIALIZEftype53(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54) 551 | 552 | #define SERIALIZEfsave55(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55) \ 553 | SERIALIZEfsave1(F1) SERIALIZEfsave54(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55) 554 | #define SERIALIZEfload55(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55) \ 555 | SERIALIZEfload1(F1) SERIALIZEfload54(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55) 556 | #define SERIALIZEftype55(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55) \ 557 | SERIALIZEftype1(F1) + "," SERIALIZEftype54(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55) 558 | 559 | #define SERIALIZEfsave56(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56) \ 560 | SERIALIZEfsave1(F1) SERIALIZEfsave55(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56) 561 | #define SERIALIZEfload56(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56) \ 562 | SERIALIZEfload1(F1) SERIALIZEfload55(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56) 563 | #define SERIALIZEftype56(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56) \ 564 | SERIALIZEftype1(F1) + "," SERIALIZEftype55(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56) 565 | 566 | #define SERIALIZEfsave57(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57) \ 567 | SERIALIZEfsave1(F1) SERIALIZEfsave56(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57) 568 | #define SERIALIZEfload57(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57) \ 569 | SERIALIZEfload1(F1) SERIALIZEfload56(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57) 570 | #define SERIALIZEftype57(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57) \ 571 | SERIALIZEftype1(F1) + "," SERIALIZEftype56(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57) 572 | 573 | #define SERIALIZEfsave58(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58) \ 574 | SERIALIZEfsave1(F1) SERIALIZEfsave57(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58) 575 | #define SERIALIZEfload58(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58) \ 576 | SERIALIZEfload1(F1) SERIALIZEfload57(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58) 577 | #define SERIALIZEftype58(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58) \ 578 | SERIALIZEftype1(F1) + "," SERIALIZEftype57(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58) 579 | 580 | #define SERIALIZEfsave59(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59) \ 581 | SERIALIZEfsave1(F1) SERIALIZEfsave58(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59) 582 | #define SERIALIZEfload59(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59) \ 583 | SERIALIZEfload1(F1) SERIALIZEfload58(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59) 584 | #define SERIALIZEftype59(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59) \ 585 | SERIALIZEftype1(F1) + "," SERIALIZEftype58(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59) 586 | 587 | #define SERIALIZEfsave60(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60) \ 588 | SERIALIZEfsave1(F1) SERIALIZEfsave59(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60) 589 | #define SERIALIZEfload60(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60) \ 590 | SERIALIZEfload1(F1) SERIALIZEfload59(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60) 591 | #define SERIALIZEftype60(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60) \ 592 | SERIALIZEftype1(F1) + "," SERIALIZEftype59(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60) 593 | 594 | #define SERIALIZEfsave61(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61) \ 595 | SERIALIZEfsave1(F1) SERIALIZEfsave60(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61) 596 | #define SERIALIZEfload61(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61) \ 597 | SERIALIZEfload1(F1) SERIALIZEfload60(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61) 598 | #define SERIALIZEftype61(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61) \ 599 | SERIALIZEftype1(F1) + "," SERIALIZEftype60(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61) 600 | 601 | #define SERIALIZEfsave62(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62) \ 602 | SERIALIZEfsave1(F1) SERIALIZEfsave61(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62) 603 | #define SERIALIZEfload62(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62) \ 604 | SERIALIZEfload1(F1) SERIALIZEfload61(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62) 605 | #define SERIALIZEftype62(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62) \ 606 | SERIALIZEftype1(F1) + "," SERIALIZEftype61(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62) 607 | 608 | #define SERIALIZEfsave63(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63) \ 609 | SERIALIZEfsave1(F1) SERIALIZEfsave62(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63) 610 | #define SERIALIZEfload63(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63) \ 611 | SERIALIZEfload1(F1) SERIALIZEfload62(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63) 612 | #define SERIALIZEftype63(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63) \ 613 | SERIALIZEftype1(F1) + "," SERIALIZEftype62(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63) 614 | 615 | #define SERIALIZEfsave64(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63,F64) \ 616 | SERIALIZEfsave1(F1) SERIALIZEfsave63(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63,F64) 617 | #define SERIALIZEfload64(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63,F64) \ 618 | SERIALIZEfload1(F1) SERIALIZEfload63(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63,F64) 619 | #define SERIALIZEftype64(F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63,F64) \ 620 | SERIALIZEftype1(F1) + "," SERIALIZEftype63(F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F19,F20,F21,F22,F23,F24,F25,F26,F27,F28,F29,F30,F31,F32,F33,F34,F35,F36,F37,F38,F39,F40,F41,F42,F43,F44,F45,F46,F47,F48,F49,F50,F51,F52,F53,F54,F55,F56,F57,F58,F59,F60,F61,F62,F63,F64) 621 | 622 | #define SERIALIZEPP_NARG(...) SERIALIZEPP_NARG_(__VA_ARGS__,SERIALIZEPP_RSEQ_N()) 623 | 624 | #define SERIALIZEPP_NARG_(...) SERIALIZEPP_ARG_N(__VA_ARGS__) 625 | 626 | #define SERIALIZEPP_ARG_N( \ 627 | _1, _2, _3, _4, _5, _6, _7, _8, _9,_10, \ 628 | _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \ 629 | _21,_22,_23,_24,_25,_26,_27,_28,_29,_30, \ 630 | _31,_32,_33,_34,_35,_36,_37,_38,_39,_40, \ 631 | _41,_42,_43,_44,_45,_46,_47,_48,_49,_50, \ 632 | _51,_52,_53,_54,_55,_56,_57,_58,_59,_60, \ 633 | _61,_62,_63,N,...) N 634 | 635 | #define SERIALIZEPP_RSEQ_N() \ 636 | 63,62,61,60, \ 637 | 59,58,57,56,55,54,53,52,51,50, \ 638 | 49,48,47,46,45,44,43,42,41,40, \ 639 | 39,38,37,36,35,34,33,32,31,30, \ 640 | 29,28,27,26,25,24,23,22,21,20, \ 641 | 19,18,17,16,15,14,13,12,11,10, \ 642 | 9,8,7,6,5,4,3,2,1,0 643 | 644 | #define _SERIALIZEfload_N3(N, ...) SERIALIZEfload ## N(__VA_ARGS__) 645 | #define _SERIALIZEfload_N2(N, ...) _SERIALIZEfload_N3(N, __VA_ARGS__) 646 | #define SERIALIZEfload(...) _SERIALIZEfload_N2(SERIALIZEPP_NARG(__VA_ARGS__), __VA_ARGS__) 647 | #define _SERIALIZEfsave_N3(N, ...) SERIALIZEfsave ## N(__VA_ARGS__) 648 | #define _SERIALIZEfsave_N2(N, ...) _SERIALIZEfsave_N3(N, __VA_ARGS__) 649 | #define SERIALIZEfsave(...) _SERIALIZEfsave_N2(SERIALIZEPP_NARG(__VA_ARGS__), __VA_ARGS__) 650 | #define _SERIALIZEftype_N3(N, ...) SERIALIZEftype ## N(__VA_ARGS__) 651 | #define _SERIALIZEftype_N2(N, ...) _SERIALIZEftype_N3(N, __VA_ARGS__) 652 | #define SERIALIZEftype(...) _SERIALIZEftype_N2(SERIALIZEPP_NARG(__VA_ARGS__), __VA_ARGS__) 653 | 654 | #define DefSerializer(T, ...) \ 655 | template<> struct Serialize::Serializer { \ 656 | static void save(WriteChannel& write, const T& x) { SERIALIZEfsave(__VA_ARGS__) } \ 657 | static void load(ReadChannel& read, T& x) { SERIALIZEfload(__VA_ARGS__) } \ 658 | static std::string type() { typedef T x; return "{" SERIALIZEftype(__VA_ARGS__) + "}"; } \ 659 | }; 660 | 661 | } 662 | 663 | #endif // SERIALIZE_H_INCLUDED 664 | --------------------------------------------------------------------------------