aboutsummaryrefslogtreecommitdiff
path: root/project/src/lib-common.c
diff options
context:
space:
mode:
authorroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
committerroot <root@dc13.lemmi>2020-07-21 10:00:46 +0200
commit1192c4575ea7afdf38e3fa0df4587a08620af11e (patch)
tree6910a62487c282d0840d2e668aa7eb40b7c8a3fd /project/src/lib-common.c
parent76de8a89f7c1d1b4522eb66e8f89d248e8c1781f (diff)
SZS v2.18a
Diffstat (limited to '')
-rw-r--r--project/src/lib-common.c1434
1 files changed, 1434 insertions, 0 deletions
diff --git a/project/src/lib-common.c b/project/src/lib-common.c
new file mode 100644
index 0000000..60d1184
--- /dev/null
+++ b/project/src/lib-common.c
@@ -0,0 +1,1434 @@
+
+/***************************************************************************
+ * _______ _______ _______ *
+ * | ___ |____ | ___ | *
+ * | | |_| / /| | |_| *
+ * | |_____ / / | |_____ *
+ * |_____ | / / |_____ | *
+ * _ | | / / _ | | *
+ * | |___| |/ /____| |___| | *
+ * |_______|_______|_______| *
+ * *
+ * Wiimms SZS Tools *
+ * https://szs.wiimm.de/ *
+ * *
+ ***************************************************************************
+ * *
+ * This file is part of the SZS project. *
+ * Visit https://szs.wiimm.de/ for project details and sources. *
+ * *
+ * Copyright (c) 2011-2020 by Dirk Clemens <wiimm@wiimm.de> *
+ * *
+ ***************************************************************************
+ * *
+ * 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 2 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. *
+ * *
+ * See file gpl-2.0.txt or http://www.gnu.org/licenses/gpl-2.0.txt *
+ * *
+ ***************************************************************************/
+
+#include <stddef.h>
+
+#include "dclib-xdump.h"
+#include "lib-szs.h"
+#include "lib-common.h"
+#include "lib-numeric.h"
+#include "lib-bzip2.h"
+
+#include "common.inc"
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////// original itemslot.bin ///////////////
+///////////////////////////////////////////////////////////////////////////////
+
+static const u8 itemslot_bin_bz2[] = // ItemSlot.bin
+{
+ // decompressed size: 0x713 = 1811 bytes
+ 0x00,0x00,0x07,0x13,
+
+ // bzipped data
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xe5,0x95, 0x32,0x15,0x00,0x01,
+ 0xc8,0x7f,0x0c,0x7f, 0x7f,0xce,0xa1,0x08, 0xc6,0x10,0x84,0x21, 0x08,0x40,0x00,0x04,
+ 0x00,0x00,0x01,0x00, 0x40,0x40,0x02,0x98, 0xea,0x3b,0x40,0xe0, 0x25,0x54,0xfc,0xa7,
+ 0xa9,0xb4,0x53,0x6d, 0x4f,0x53,0x4a,0x7a, 0x80,0xd3,0x40,0xda, 0x82,0x54,0xf1,0x12,
+ 0x23,0x10,0x84,0xd3, 0x1a,0x11,0x90,0x09, 0x34,0xa8,0xd4,0xd4, 0x6c,0x90,0x01,0x88,
+ 0x01,0xa0,0x90,0x89, 0x11,0xa8,0xc8,0x0f, 0x53,0x13,0x13,0x40, 0xd8,0xe3,0xed,0x4d,
+ 0x64,0x4e,0x8d,0x79, 0x1f,0xd7,0x24,0xe7, 0x73,0xe7,0x9f,0xc2, 0x3c,0x70,0x6c,0xcc,
+ 0xdb,0x66,0xa9,0xbc, 0x4c,0xd1,0xe5,0x4d, 0xf8,0xa1,0x9c,0x78, 0x54,0x4a,0x0a,0xb2,
+ 0x83,0x37,0x23,0x5d, 0xa9,0xd3,0x29,0x48, 0x49,0x81,0x82,0x27, 0x62,0x1b,0x75,0x50,
+ 0x38,0x1a,0x94,0x09, 0xa3,0x24,0x26,0x86, 0xf9,0x6b,0x0d,0x77, 0x50,0xcb,0x28,0x92,
+ 0x98,0x1f,0x2a,0x2e, 0x5d,0x16,0x32,0xa4, 0x03,0x4d,0x20,0x02, 0xa4,0xc0,0x4d,0x80,
+ 0xdb,0x66,0x04,0x30, 0xc3,0x44,0x03,0x40, 0xc5,0x20,0x88,0x7e, 0x7e,0xde,0xb6,0x66,
+ 0x82,0x09,0xa0,0x37, 0x61,0x15,0x0d,0x4a, 0x8a,0x96,0x70,0x54, 0x9a,0x00,0x67,0x68,
+ 0x21,0x41,0xdc,0x4e, 0x10,0x6f,0x0d,0x8f, 0xce,0xcc,0xae,0x16, 0x91,0x1a,0x30,0x35,
+ 0xa0,0xf0,0xc2,0x91, 0x81,0xe4,0xd6,0xa3, 0x0c,0xd8,0x6b,0x55, 0x44,0xc1,0x11,0x86,
+ 0x5e,0xa7,0x0b,0x77, 0x06,0x96,0xc3,0x24, 0x31,0xd3,0x80,0xd3, 0x5b,0x63,0x8b,0x31,
+ 0xad,0x1e,0x7f,0x26, 0x60,0x4a,0xcb,0x25, 0x55,0x0a,0x18,0x91, 0x31,0x0f,0x19,0xb1,
+ 0xc3,0x14,0x88,0x52, 0x49,0xc2,0x99,0x65, 0x42,0xa9,0x3b,0xe2, 0xdb,0x04,0xc5,0x16,
+ 0x14,0xcc,0xa1,0x83, 0x30,0xd5,0x36,0x93, 0x2a,0x52,0x42,0xc3, 0x11,0xcd,0x16,0xe1,
+ 0x54,0xc8,0x23,0x0d, 0x25,0x7b,0x67,0x7f, 0x6b,0x1e,0x8c,0xd0, 0x47,0x7c,0x90,0x81,
+ 0xc6,0xe7,0x92,0x0f, 0x37,0xe2,0x9f,0x5b, 0xc3,0x5d,0x49,0x8c, 0x35,0x95,0xda,0x6a,
+ 0x4b,0xb7,0x99,0x0c, 0x46,0x0c,0x49,0xa1, 0x94,0x30,0x60,0x93, 0x17,0x29,0x43,0x38,
+ 0x29,0xa0,0x42,0x17, 0x6f,0x69,0x12,0xe2, 0xde,0xa1,0x1f,0x7f, 0x24,0xf5,0xab,0xf9,
+ 0x81,0xe1,0x84,0x23, 0xa7,0x30,0xe0,0x3a, 0x4d,0x91,0xae,0x3a, 0xc3,0xaa,0x16,0x84,
+ 0xc3,0x2c,0x73,0x47, 0x58,0xb2,0xaa,0x31, 0x5b,0x59,0xa2,0x1b, 0x6e,0xd2,0x5c,0xac,
+ 0x96,0x7d,0xd7,0xa7, 0xaf,0xf3,0x44,0xdf, 0x1b,0x1c,0x69,0xfb, 0xae,0x8f,0x7d,0xf3,
+ 0x6b,0x52,0x63,0x22, 0xe1,0x65,0x76,0x57, 0xc8,0xda,0x06,0xb1, 0x72,0x13,0x3c,0xde,
+ 0x0d,0xe8,0xb6,0x34, 0x6d,0xce,0x9e,0x65, 0x9c,0x5f,0x1e,0xa9, 0x04,0x11,0x0e,0xb6,
+ 0x52,0x06,0x14,0x46, 0x46,0x18,0x8b,0xaf, 0x45,0x55,0x51,0x5c, 0x78,0x4c,0x73,0xf9,
+ 0x1c,0x2e,0xdb,0x41, 0x55,0x12,0x64,0xea, 0x30,0xd9,0x26,0xb3, 0x2b,0x96,0xa4,0xe1,
+ 0xb8,0xa6,0x98,0x9b, 0x5d,0x2e,0x2a,0x5c, 0x71,0xae,0x93,0xfb, 0x4a,0x93,0x67,0xc8,
+ 0x7c,0x09,0xb1,0xa5, 0x63,0x47,0x35,0x6c, 0x3e,0x8a,0x6f,0x9c, 0x57,0x3a,0x23,0x3b,
+ 0x3a,0x99,0x74,0xa9, 0xb9,0x6c,0xe8,0xe8, 0xb4,0xb5,0x8e,0xb9, 0xd3,0xb3,0x0c,0x50,
+ 0x53,0x83,0xeb,0x7e, 0xc7,0x3e,0x3e,0x7d, 0xf9,0xff,0x17,0x72, 0x45,0x38,0x50,0x90,
+ 0xe5,0x95,0x32,0x15,
+ // 0x224 = 548 data bytes (30%)
+};
+
+static BZ2Manager_t itemslot_bin_mgr
+ = { itemslot_bin_bz2, sizeof(itemslot_bin_bz2), 0, 0 };
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////// original minigame.kmg ///////////////
+///////////////////////////////////////////////////////////////////////////////
+
+static const u8 minigame_kmg_bz2[] = // minigame.kmg
+{
+ // decompressed size: 0x718 = 1816 bytes
+ 0x00,0x00,0x07,0x18,
+
+ // bzipped data
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xf6,0xc1, 0x8d,0x99,0x00,0x03,
+ 0x1a,0xfe,0x8c,0xef, 0xfc,0xc7,0x65,0xe0, 0x7a,0x92,0xa0,0x88, 0x8a,0x10,0x00,0x00,
+ 0x40,0x04,0x00,0x00, 0x04,0x00,0x00,0xb0, 0x01,0x36,0x00,0x63, 0x46,0x8d,0x00,0xc9,
+ 0x90,0xd1,0x88,0xd3, 0x40,0xd3,0x02,0x1a, 0x53,0x40,0x34,0x00, 0x00,0x00,0x00,0x22,
+ 0x48,0x4a,0x7a,0x6a, 0x9e,0x88,0x36,0x9a, 0x4f,0xd2,0x99,0x31, 0x3f,0x50,0xd4,0xcd,
+ 0x3e,0x1e,0x09,0xb9, 0x66,0xa5,0x05,0xb8, 0xf2,0xce,0x19,0x49, 0x14,0xa0,0xd8,0x33,
+ 0x40,0x0c,0xc4,0x04, 0x68,0x44,0x71,0x03, 0x24,0x6d,0x86,0x23, 0x65,0x36,0x8b,0xf9,
+ 0x08,0xee,0xca,0x8d, 0xfa,0x5b,0x38,0x5c, 0x99,0x64,0xad,0x92, 0xaa,0xa4,0x18,0x15,
+ 0x07,0x1b,0xdb,0x92, 0xd2,0x5e,0x9a,0x83, 0x63,0x08,0x95,0x09, 0x09,0x00,0xb0,0x55,
+ 0x1a,0x0d,0xab,0x34, 0x3e,0x6e,0x27,0x8d, 0xbb,0xe7,0x2d,0xe3, 0x9e,0xe7,0x88,0xe2,
+ 0x13,0xcb,0x3d,0xaf, 0xa0,0x9a,0x89,0xc0, 0x6c,0x5a,0x49,0x24, 0xa4,0xe4,0x25,0xc4,
+ 0x89,0x58,0x43,0xb3, 0x2b,0x88,0xf6,0x01, 0x5d,0xbd,0xfc,0xfd, 0xbd,0xce,0x77,0xe1,
+ 0x9f,0x56,0xff,0x20, 0xfb,0x7d,0xfc,0x68, 0x4f,0x31,0x33,0x1a, 0xc7,0x0d,0x48,0xa3,
+ 0x81,0x20,0x5c,0x32, 0xaa,0x84,0x12,0x23, 0xa0,0x16,0xff,0x15, 0xb7,0x11,0xc5,0xe0,
+ 0x94,0x09,0xb2,0x7a, 0xa6,0xad,0xf2,0xb1, 0x7f,0x68,0x41,0xce, 0x16,0x3d,0xc2,0xab,
+ 0x98,0x7f,0x05,0x74, 0x13,0x6d,0x5c,0x82, 0x27,0x14,0x32,0xb1, 0xa8,0xee,0x31,0x46,
+ 0xae,0x39,0x37,0xe4, 0x38,0xaf,0x01,0x14, 0x7a,0x7e,0xfd,0x50, 0x03,0xae,0x08,0x02,
+ 0x7a,0x40,0x54,0x0f, 0x98,0x07,0x4e,0x9d, 0xbd,0x57,0x05,0x47, 0xe3,0xa5,0x7d,0x0b,
+ 0xb9,0x22,0x9c,0x28, 0x48,0x7b,0x60,0xc6, 0xcc,0x80,
+ // 0x12a = 298 data bytes (17%)
+};
+
+static BZ2Manager_t minigame_kmg_mgr
+ = { minigame_kmg_bz2, sizeof(minigame_kmg_bz2), 0, 0 };
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////// original GeoHit data ///////////////
+///////////////////////////////////////////////////////////////////////////////
+
+static const u8 objflow_bin_bz2[] = // ObjFlow.bin
+{
+ // decompressed len: 0x951a = 38170 bytes
+ 0x00,0x00,0x95,0x1a,
+
+ // bzipped data
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xae,0x04, 0xda,0x11,0x00,0x09,
+ 0x4b,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xe0, 0x14,0x79,0x4b,0x00, 0x1f,0x3d,0x07,0x5b, 0x3e,0x17,0xcf,0x67,
+ 0x8d,0xd7,0xdb,0x50, 0x01,0xda,0xe7,0x33, 0xbd,0xd1,0xad,0xec, 0x17,0x8e,0x00,0x06,
+ 0xf7,0x70,0x7a,0x03, 0xd0,0x3a,0xa0,0x1d, 0xb0,0xd0,0x3a,0x70, 0x07,0x0d,0x11,0x21,
+ 0x3c,0x89,0xe4,0x0a, 0x61,0x35,0x3c,0x69, 0x32,0x9a,0x6d,0x31, 0x4f,0x6a,0x27,0x89,
+ 0x3f,0x2a,0x7a,0x99, 0xa8,0xd0,0x34,0x6d, 0x4f,0x48,0xd0,0x6d, 0x46,0x09,0xa3,0xd2,
+ 0x6d,0x31,0xa2,0x34, 0x9e,0x51,0xe8,0x99, 0x3d,0x13,0xd4,0xd3, 0xf5,0x06,0x44,0xc4,
+ 0xd3,0x35,0x00,0xd0, 0x7a,0x80,0xd0,0x1a, 0x68,0xd1,0x90,0x34, 0x1a,0x1e,0xa3,0x62,
+ 0x40,0x00,0x34,0x06, 0x8c,0xd4,0xd8,0x26, 0xf2,0xa6,0x50,0x6a, 0x68,0x23,0x41,0x90,
+ 0x99,0x34,0x34,0x26, 0x51,0xb1,0x53,0xf4, 0x88,0x00,0xd0,0xd0, 0xc8,0x06,0x99,0x34,
+ 0x00,0x00,0x00,0x00, 0x03,0xd4,0x34,0x01, 0xa0,0x00,0x1b,0x50, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x01,0xa0, 0x00,0x00,0x00,0xd0, 0x00,0x7a,0x80,0x03, 0x4d,0x4c,0x81,0x12,
+ 0x64,0xf5,0x28,0x1b, 0x35,0x40,0x32,0x34, 0x0d,0x01,0x91,0xa1, 0xa0,0x1e,0xa0,0x68,
+ 0xf4,0x40,0x06,0x80, 0x32,0x34,0xd0,0x34, 0x00,0x64,0xd0,0x00, 0x00,0x69,0x90,0x00,
+ 0x0d,0x00,0x00,0xd0, 0x19,0x00,0x00,0x68, 0x01,0x89,0xea,0x68, 0xd3,0x20,0x01,0x91,
+ 0xa6,0x80,0x01,0x29, 0xe9,0x48,0x48,0x9a, 0x89,0xed,0x51,0xbd, 0x22,0x63,0x53,0x1a,
+ 0x9e,0xa7,0xea,0x4d, 0x30,0x26,0x23,0xd1, 0x3d,0x4f,0x44,0x64, 0xf5,0x1b,0x44,0xc0,
+ 0x86,0x10,0xc4,0x61, 0x30,0x83,0x26,0x4c, 0x08,0x69,0x9a,0x13, 0x23,0x26,0x46,0x4c,
+ 0x99,0x34,0xc8,0x34, 0xc8,0x0c,0x43,0x08, 0x60,0x4c,0x4d,0x18, 0x04,0x06,0x09,0x80,
+ 0x9a,0x32,0x62,0x64, 0x61,0x03,0x46,0x81, 0x49,0x14,0xd3,0x07, 0xa9,0x0c,0x0f,0x52,
+ 0x61,0x0c,0x04,0xc9, 0x84,0xc4,0xc0,0x20, 0x62,0x69,0x80,0x13, 0x04,0xc0,0x9a,0x60,
+ 0x00,0x00,0x46,0x4d, 0x03,0x46,0x04,0x60, 0x00,0x01,0x30,0xd0, 0x00,0x02,0x31,0x30,
+ 0xd0,0x04,0xc0,0x8c, 0x00,0x01,0x32,0x30, 0x04,0x1a,0x00,0x12, 0x24,0x40,0x46,0x80,
+ 0x9a,0x00,0x09,0xa3, 0x4a,0x7b,0x46,0xa3, 0x01,0x4c,0xc2,0x4c, 0x34,0xc8,0x89,0xfa,
+ 0x0a,0x7e,0xa9,0xea, 0x6f,0x49,0x84,0x9e, 0x9a,0x80,0x3d,0x35, 0x00,0x03,0x20,0x00,
+ 0x00,0x32,0x0c,0x26, 0x9a,0x1e,0xa0,0x1a, 0x0d,0x00,0x06,0x9a, 0x03,0x4d,0x00,0x1e,
+ 0xa7,0xa8,0x7a,0x83, 0x40,0x3d,0x40,0x00, 0xf5,0x1b,0x4c,0xa7, 0xea,0x97,0x77,0x59,
+ 0x3b,0xce,0x28,0x0b, 0x9c,0x6f,0xd7,0x85, 0x0d,0x20,0x8a,0xb8, 0x88,0xfa,0xd0,0x5d,
+ 0x64,0x44,0x17,0xba, 0x41,0xc5,0x0d,0xa5, 0x80,0x0a,0x24,0xab, 0xa0,0x41,0x24,0x21,
+ 0x13,0xaa,0x77,0xf2, 0x49,0x77,0x2e,0xe2, 0xce,0x7b,0xf2,0x1b, 0xfd,0x7f,0x1f,0x09,
+ 0x84,0xa5,0xf7,0x30, 0x7c,0x05,0x28,0x2d, 0x32,0xfc,0xfc,0x0b, 0x9d,0xf7,0xf8,0x6c,
+ 0xee,0x56,0xc5,0x48, 0xc7,0xf2,0x6d,0x8e, 0x01,0x40,0x00,0x88, 0xd5,0x8f,0xa9,0xb3,
+ 0xda,0x24,0x8c,0xb5, 0x52,0xfb,0x69,0x7f, 0xd5,0xb3,0x72,0x61, 0x04,0xa1,0xe9,0xc9,
+ 0xcf,0xd8,0x6e,0xbc, 0x37,0x53,0x7c,0xac, 0xb3,0xa0,0xa0,0xd6, 0x15,0xc3,0x6e,0x0c,
+ 0x8e,0x02,0xb3,0x1a, 0x3d,0x95,0x64,0x10, 0x30,0x73,0xd5,0x41, 0xa1,0xc8,0xf1,0x00,
+ 0xd7,0x4a,0x8c,0x0d, 0x81,0x3a,0x8b,0x8d, 0x6d,0x48,0x3c,0x25, 0x69,0xdb,0x4d,0xe4,
+ 0x49,0x1b,0x2b,0x53, 0x28,0xa4,0x4d,0x2b, 0x86,0xac,0x97,0xfa, 0xf1,0x69,0xfa,0x10,
+ 0xed,0xdd,0xcf,0x0b, 0x1c,0xe6,0xeb,0x8d, 0x1a,0x70,0x1d,0x0a, 0x87,0x16,0x2d,0xa4,
+ 0x57,0x71,0x44,0xea, 0xce,0x96,0xb3,0x70, 0xdd,0xb4,0x61,0xc6, 0xb9,0x52,0x2b,0x0a,
+ 0xac,0xae,0x8d,0xbc, 0xa5,0x35,0x02,0x81, 0x46,0xce,0x50,0xb6, 0xb1,0x0a,0xb6,0xd6,
+ 0xcd,0x37,0xb2,0x7c, 0x4c,0x53,0x73,0x0c, 0x53,0x9d,0x4d,0x02, 0x02,0x89,0xa4,0x38,
+ 0x67,0x6a,0xa4,0xe4, 0x5c,0x89,0xea,0x66, 0x14,0xea,0x60,0xcd, 0x07,0xe7,0xae,0xd0,
+ 0x84,0x11,0x11,0x6e, 0x87,0x39,0x31,0x64, 0xf2,0x13,0x15,0x1a, 0x4d,0x64,0x40,0x4e,
+ 0xac,0x8a,0x31,0x9a, 0x53,0x1c,0x39,0x4d, 0xbf,0xd9,0x88,0x3b, 0x28,0xa6,0xfc,0xca,
+ 0xa5,0x4a,0x59,0xe3, 0x6d,0xaa,0x56,0x13, 0x3a,0x91,0x0b,0xef, 0xbf,0x1b,0x90,0x9c,
+ 0x50,0xb4,0x84,0xda, 0x81,0xe7,0x9e,0x6b, 0x02,0xa4,0x0b,0x2a, 0x95,0x4c,0x5c,0xa4,
+ 0x09,0x65,0xb7,0x52, 0xac,0x95,0x25,0xa6, 0x40,0xfb,0xb3,0xd3, 0x6c,0xc7,0x96,0x59,
+ 0x66,0x44,0xb0,0x2e, 0x90,0x77,0x8a,0x53, 0x5d,0x4d,0xaa,0xcf, 0x92,0x52,0xa8,0xe5,
+ 0x3b,0x98,0x96,0x2c, 0x37,0x32,0x7b,0x9c, 0x3d,0x9b,0xaf,0x2d, 0xc9,0x23,0xc0,0xa2,
+ 0x3a,0x71,0x94,0xa7, 0xb6,0x4b,0x55,0x3e, 0x3d,0xc9,0xeb,0x57, 0xdf,0x12,0x94,0xa6,
+ 0xd6,0x56,0xdc,0x09, 0x6d,0xb4,0x2e,0xee, 0x86,0xab,0x98,0x0e, 0xbb,0x71,0xaf,0x36,
+ 0x8d,0x2b,0x1a,0xe2, 0x2e,0x86,0x96,0x39, 0xa8,0xb7,0x80,0x89, 0x5b,0x25,0xe7,0xef,
+ 0xa2,0xa5,0xe4,0xb9, 0x85,0x3b,0xed,0x34, 0x94,0xe3,0x18,0x54, 0x83,0xcf,0xb5,0xe6,
+ 0x1d,0x50,0x1a,0x37, 0x2c,0xba,0x97,0x8a, 0x89,0x31,0x8a,0x0d, 0x52,0xee,0x34,0xa7,
+ 0x50,0x81,0x91,0x21, 0xc8,0x9e,0x45,0xc5, 0x22,0x68,0x15,0x5d, 0x6a,0xba,0xa5,0x2d,
+ 0x4d,0xba,0x22,0xa1, 0x2d,0x2b,0xa9,0x90, 0x3d,0x69,0x82,0xc3, 0x12,0x24,0x38,0x86,
+ 0x61,0x3a,0x2e,0x92, 0x65,0x7a,0x80,0xa7, 0x92,0x49,0x04,0x70, 0x45,0x6e,0x34,0x84,
+ 0xa5,0x56,0x2d,0x3e, 0xa1,0x4c,0x95,0x12, 0xd5,0x3c,0xcf,0xc2, 0xb9,0x43,0xa1,0x82,
+ 0x88,0x65,0x9e,0xe9, 0x82,0x27,0x8d,0x89, 0x07,0x80,0xb0,0x20, 0x76,0xcd,0x54,0x55,
+ 0x02,0x2a,0xb1,0xca, 0x17,0x04,0xb2,0xd5, 0x95,0x4c,0x27,0x1c, 0x70,0xe7,0x3d,0xc8,
+ 0x69,0xbf,0x04,0xeb, 0x5d,0x29,0xd4,0xd2, 0x02,0xd3,0x13,0x7d, 0xea,0x10,0xf4,0x55,
+ 0xd5,0x0d,0x99,0xec, 0xaa,0x7b,0xea,0xb5, 0x7e,0x89,0x96,0xa9, 0x80,0x5b,0xf2,0xcd,
+ 0x60,0xa2,0xab,0x7d, 0xc3,0xa5,0x66,0xaf, 0x6d,0xf4,0xe3,0x2f, 0x56,0xbc,0xfd,0x4a,
+ 0xc4,0x55,0x9d,0xa5, 0x77,0x0c,0x63,0x48, 0x4d,0x64,0xe0,0x53, 0xaa,0x71,0x1b,0xb7,
+ 0x51,0x39,0x3d,0x6d, 0x72,0x5f,0xc2,0xb2, 0xa7,0x5c,0x82,0x04, 0xb8,0x49,0x89,0xf5,
+ 0x9a,0x40,0x81,0x2e, 0x76,0xed,0xef,0x35, 0x8d,0x93,0x17,0x25, 0x89,0x23,0xb6,0x68,
+ 0x0e,0x3b,0x48,0x38, 0xec,0x48,0x04,0x2c, 0xb6,0x72,0x7b,0x21, 0xf2,0xd9,0x2f,0x79,
+ 0x15,0xfa,0x46,0x53, 0x2a,0xa9,0x52,0xe8, 0x77,0xa5,0xe1,0xf6, 0x47,0x39,0xd0,0xe8,
+ 0xc3,0x46,0x1e,0x89, 0xa0,0x88,0xdf,0xcb, 0xa4,0xb0,0xa9,0x8d, 0x28,0x08,0x95,0xb7,
+ 0xa6,0x00,0xa5,0x0b, 0x55,0xa3,0x68,0x90, 0xc0,0x52,0xbe,0x62, 0x7d,0xa3,0x2e,0xc3,
+ 0x90,0xe8,0xe3,0x90, 0x3d,0xac,0xa4,0xb1, 0x6f,0x1b,0x96,0x8e, 0xdb,0x5d,0x80,0xf3,
+ 0x8c,0xec,0x39,0x51, 0x7a,0xca,0x6a,0x8c, 0x78,0x8b,0x20,0x2a, 0x60,0xa8,0xae,0x43,
+ 0xc9,0x13,0x99,0x30, 0x90,0xd2,0x93,0x13, 0x69,0x36,0x0d,0x8d, 0xce,0x6b,0x0a,0x65,
+ 0x34,0x74,0x1a,0x11, 0xb7,0x75,0xca,0x39, 0x34,0xdc,0x4e,0x08, 0xc9,0x2b,0x26,0x2d,
+ 0xc3,0x06,0x12,0xf2, 0x49,0x74,0x57,0x73, 0x1a,0xcc,0x10,0x07, 0x7e,0xd2,0x3d,0x45,
+ 0x59,0xc2,0x5a,0x6c, 0xf0,0x1c,0x9b,0x68, 0x6e,0x83,0xc1,0xf0, 0xa1,0x1e,0x1b,0x49,
+ 0x7a,0x96,0x85,0xf0, 0x4d,0x21,0x60,0x62, 0x17,0x4d,0x82,0x47, 0x88,0xc1,0x2f,0x54,
+ 0xd0,0x0b,0xc5,0x68, 0x4b,0xe0,0xda,0x49, 0x7c,0x23,0x04,0x86, 0x7e,0x39,0x00,0x0d,
+ 0x01,0x90,0xa7,0xd0, 0xd4,0x54,0xd5,0x44, 0xab,0x81,0x58,0xae, 0x8a,0x6c,0x68,0xeb,
+ 0x54,0xd2,0x76,0x48, 0x02,0xba,0x12,0x2b, 0xfc,0xf4,0x01,0x61, 0x5c,0x82,0xe7,0x8c,
+ 0x0d,0x29,0x9e,0xb1, 0x88,0x39,0x4d,0x23, 0x85,0xd4,0x81,0x18, 0xd3,0x47,0x51,0x89,
+ 0x1d,0x46,0x24,0x1d, 0xa3,0x42,0x3c,0x56, 0x20,0x3d,0x6b,0x54, 0x57,0xc8,0x6a,0xaa,
+ 0xb8,0x76,0x80,0xe2, 0x1a,0x0d,0x1b,0x5c, 0x4a,0x56,0xcc,0xf1, 0x49,0x5c,0x5f,0xc9,
+ 0xd9,0x2c,0x7b,0xed, 0xca,0x57,0xbc,0x43, 0x4a,0xf8,0x68,0xee, 0x12,0x35,0x69,0x1d,
+ 0xcc,0x44,0x08,0xa7, 0x24,0x2c,0x11,0x62, 0x65,0x59,0x56,0x82, 0x22,0x1a,0xcd,0x6b,
+ 0xa0,0x35,0xda,0xfb, 0x0a,0x75,0x2c,0xf4, 0x1b,0x0a,0xfc,0xd3, 0xc1,0x5e,0xe2,0x26,
+ 0xc7,0xba,0xd9,0x5a, 0x6c,0xf6,0x9a,0x4d, 0x33,0xfa,0x90,0x20, 0x38,0x49,0xae,0x06,
+ 0x69,0x72,0xb1,0x30, 0x41,0xc2,0x95,0xd6, 0x3a,0x5d,0x17,0x69, 0xdd,0xea,0x34,0xda,
+ 0x77,0x20,0x49,0xf6, 0xd5,0xbb,0x55,0xec, 0x75,0x35,0xb8,0xdd, 0x57,0x6e,0xb0,0x4d,
+ 0xc4,0xf2,0x93,0x80, 0x05,0x5e,0x41,0xfe, 0x69,0x29,0x33,0x30, 0x78,0x63,0xa5,0x25,
+ 0x60,0x85,0x0c,0xb4, 0x6c,0xbc,0xc4,0xcc, 0xd4,0xdc,0x27,0xaa, 0x72,0x74,0x60,0x1a,
+ 0x08,0x00,0x49,0x4f, 0x4f,0x90,0x9c,0xa0, 0xa1,0xa2,0xf1,0x24, 0x80,0x6a,0x31,0x40,
+ 0x40,0x24,0x29,0x26, 0xa9,0x69,0xa9,0xea, 0x2a,0x5f,0x45,0xaa, 0x16,0x5e,0x66,0xae,
+ 0xb2,0xb6,0xba,0xbe, 0xc3,0xd7,0xec,0xb1, 0xb2,0xb3,0xa2,0xf6, 0xda,0x5a,0xdb,0x5b,
+ 0x91,0x30,0x0d,0xc7, 0x6c,0x03,0x5a,0xdc, 0xdd,0x5d,0xd9,0x5e, 0x5e,0xdf,0x5d,0xdf,
+ 0xfb,0xb0,0x30,0x70, 0xb0,0xf1,0x08,0xe2, 0xfb,0xf8,0x46,0x01, 0x80,0x71,0x87,0x04,
+ 0x61,0x00,0x20,0x04, 0x0d,0xb0,0xe2,0x23, 0xc0,0x38,0x29,0x58, 0xf9,0x19,0x2a,0x59,
+ 0x42,0x65,0xe6,0x66, 0xe1,0x71,0xb3,0xb9, 0x40,0x14,0x7e,0x7e, 0x82,0xd6,0x89,0x58,
+ 0x34,0xb3,0xf1,0xf4, 0xf5,0x09,0x42,0x1d, 0x51,0x72,0xf5,0xbe, 0x3a,0xfa,0x05,0x7b,
+ 0x02,0x7c,0xbe,0x7b, 0x25,0x9b,0x5b,0x1b, 0x64,0xba,0xe2,0x6e, 0x71,0xc3,0xbb,0xb3,
+ 0xbd,0xbf,0xc0,0x5f, 0xc2,0x9c,0x01,0xdd, 0x1b,0xcb,0xdb,0xeb, 0xbb,0xfc,0x0e,0x46,
+ 0x0e,0x0d,0x93,0xe0, 0xce,0x79,0x1c,0x8b, 0x4e,0x4e,0x16,0x1f, 0xd3,0x74,0x56,0xf7,
+ 0x1f,0x3d,0xc0,0xe0, 0xa4,0xee,0x4e,0xe9, 0x34,0xb7,0x2a,0x5d, 0x04,0x03,0xb8,0xc2,
+ 0x40,0x70,0xaa,0xb3, 0xac,0x8c,0xec,0xaf, 0xc5,0x4b,0x46,0x55, 0xc4,0xae,0xda,0x8a,
+ 0x01,0x94,0xb2,0xd6, 0xb3,0x9e,0xa7,0x19, 0x56,0x98,0x75,0x67, 0x19,0xc9,0x29,0x9c,
+ 0xad,0x2c,0x66,0x56, 0x08,0x25,0x4c,0x6a, 0xa5,0xdf,0x6b,0x42, 0x98,0x89,0x7c,0xd5,
+ 0x49,0x34,0x20,0x5a, 0x50,0x26,0x87,0x41, 0x81,0x7d,0x48,0x07, 0xb0,0x51,0x12,0x08,
+ 0x43,0x10,0xe2,0x05, 0xaa,0xcf,0xe2,0x62, 0x1b,0x14,0x44,0x05, 0x9e,0x5b,0x9d,0x1c,
+ 0x4c,0x34,0xac,0x79, 0xf8,0x31,0xc7,0xf2, 0x5d,0x88,0xb2,0xbe, 0x9f,0xab,0x81,0x4c,
+ 0xf7,0xde,0xfa,0x55, 0x9a,0xe0,0x18,0x36, 0x73,0x29,0x20,0xce, 0x6d,0x01,0xfc,0x8b,
+ 0x2c,0xb2,0xcb,0x2c, 0xb2,0xca,0xcc,0xb2, 0xcb,0x32,0x78,0x4d, 0x4c,0xb4,0xa9,0x4e,
+ 0x99,0x34,0xd2,0x03, 0x4d,0x2d,0x8c,0x69, 0xa6,0xb9,0x86,0x9a, 0x9f,0x6a,0x1b,0x4d,
+ 0x3a,0xe6,0xf1,0xf6, 0xdd,0x0f,0x2d,0x58, 0x21,0x09,0xc3,0x29, 0xc3,0x04,0x82,0x30,
+ 0x10,0xd6,0x42,0x8a, 0x7a,0x56,0x4f,0x9c, 0x4d,0x12,0x68,0x52, 0xec,0xe8,0x4e,0x1d,
+ 0xf9,0x56,0xf5,0xae, 0xc0,0xfa,0xeb,0xf3, 0xb6,0x99,0xf9,0xb0, 0xba,0x24,0xb8,0x5a,
+ 0x17,0x34,0x12,0x29, 0x8d,0x02,0x25,0x2a, 0x3a,0x4e,0x9c,0xe5, 0x55,0xc1,0x70,0x28,
+ 0xaa,0xb1,0x09,0x88, 0x95,0x06,0xd7,0xfb, 0x71,0x25,0x82,0x85, 0xad,0xaf,0x36,0x7a,
+ 0x83,0xbe,0xbf,0x48, 0xc3,0x1e,0xc5,0x5a, 0x46,0xac,0x91,0x55, 0xa4,0x6a,0x8d,0x38,
+ 0x97,0x22,0xa2,0xe6, 0xe6,0xc2,0x85,0xac, 0x8e,0x8b,0x90,0x55, 0x83,0x53,0x4f,0x46,
+ 0x91,0x52,0xc0,0xf3, 0x5a,0x12,0xcf,0x60, 0x5a,0xd0,0x96,0x8a, 0x62,0x33,0xef,0x41,
+ 0xd0,0x7a,0x84,0x34, 0x5c,0x04,0x21,0x45, 0x92,0x29,0x05,0xef, 0x10,0x21,0x6d,0xda,
+ 0x62,0x31,0x0a,0x08, 0xb1,0x28,0x81,0x2d, 0x16,0x4b,0x34,0x2f, 0x0c,0xd4,0xd7,0x6d,
+ 0x8e,0x05,0x03,0x6c, 0xa9,0xaa,0x08,0x25, 0x32,0x76,0xdb,0x30, 0xa0,0xd5,0xa2,0xf3,
+ 0xcb,0xd1,0x99,0xdb, 0x48,0xc7,0x5d,0xe4, 0x36,0x50,0xe5,0xf0, 0x2a,0xba,0x03,0x80,
+ 0x40,0x46,0x30,0x04, 0x43,0x14,0x8c,0x63, 0x4e,0x40,0xd8,0xb8, 0xa1,0x21,0x11,0xd2,
+ 0x86,0xe1,0xcc,0x8c, 0x1a,0xb5,0xeb,0x54, 0x55,0x5a,0x84,0x5e, 0x18,0x32,0xab,0x0a,
+ 0x95,0x96,0xdd,0x80, 0x17,0x82,0x99,0x0d, 0x2e,0xe0,0xe6,0x72, 0xd8,0x6b,0x84,0x91,
+ 0xb2,0xe7,0x4f,0x3c, 0x40,0x50,0x42,0x0f, 0xb8,0x73,0x04,0x77, 0x97,0x54,0x1e,0x55,
+ 0x84,0x56,0xc1,0xa6, 0xd1,0x48,0x0a,0x96, 0x70,0x06,0x24,0x12, 0xf1,0x28,0xf3,0x65,
+ 0x09,0xcd,0x6d,0xf7, 0x10,0xa5,0x5a,0xc5, 0xb0,0xe2,0xf2,0xf6, 0xb7,0xcb,0xe2,0x50,
+ 0x12,0x44,0xda,0x95, 0x0a,0xea,0x5c,0x51, 0x00,0x00,0x5f,0x56, 0xac,0xf3,0x07,0xef,
+ 0x59,0x37,0x41,0xef, 0x4d,0x1f,0xde,0xdf, 0x57,0x54,0x54,0x30, 0x69,0x36,0x17,0x41,
+ 0x50,0x1d,0x51,0xee, 0x4a,0x10,0xb7,0xec, 0xdb,0xa3,0xec,0xf8, 0x4a,0xcf,0x4f,0x4d,
+ 0x6c,0x96,0x1f,0x9f, 0xda,0x30,0x18,0x7d, 0x07,0xc9,0x91,0xcc, 0x34,0xaf,0x2b,0x72,
+ 0xb8,0x2f,0x8d,0x8b, 0x75,0xe5,0x38,0xa4, 0x19,0xcd,0x62,0xab, 0xf4,0xe5,0x5c,0xe7,
+ 0x80,0xee,0x5a,0x67, 0xb0,0x54,0x29,0xab, 0xae,0x21,0x26,0x31, 0x44,0xa1,0x57,0x0d,
+ 0x11,0x5e,0x15,0x29, 0xb4,0x13,0x68,0x9f, 0xa1,0x7b,0x16,0x76, 0x9e,0x49,0x61,0x6a,
+ 0xf1,0xc8,0x85,0x4e, 0xff,0x4c,0xc9,0x92, 0x4e,0x78,0x0c,0x4d, 0x2c,0x4d,0x18,0xb4,
+ 0x48,0xbb,0x17,0x44, 0x25,0x53,0x02,0xa6, 0x92,0xa9,0xf9,0xf7, 0xcf,0x5f,0xf9,0x5b,
+ 0xee,0x09,0x7d,0xe7, 0x66,0xc4,0x15,0xaa, 0x02,0xd5,0x93,0xaf, 0xd3,0xc2,0x8d,0x37,
+ 0x92,0x9c,0x90,0x42, 0x43,0x60,0x5a,0x86, 0x2c,0x94,0x41,0x43, 0x0c,0xac,0x11,0x26,
+ 0x01,0x36,0x19,0x2e, 0x66,0x82,0xd8,0x29, 0xa2,0xb6,0x0a,0x1a, 0x16,0xcb,0x09,0x34,
+ 0x04,0x98,0x85,0x26, 0x2b,0x69,0x0c,0x06, 0x16,0xb2,0xac,0xb9, 0x2f,0x68,0x55,0x42,
+ 0xcd,0x4d,0x33,0x20, 0xc3,0x6d,0x9e,0x29, 0x16,0x60,0x03,0x0b, 0xc1,0x18,0x21,0x12,
+ 0x68,0x58,0x58,0x29, 0xb0,0x09,0x30,0x58, 0xda,0xfd,0x7c,0x58, 0xe5,0x4b,0x48,0xa5,
+ 0xa5,0x4b,0x41,0x26, 0x89,0x34,0xa4,0xf5, 0x28,0xdc,0x7a,0xc3, 0x2f,0x8c,0x5e,0xa6,
+ 0x9e,0x65,0xe9,0xac, 0x99,0xda,0x38,0xd6, 0x6d,0x1a,0x4a,0xb3, 0x9e,0xb4,0xf2,0xe5,
+ 0xd4,0x78,0x15,0x6c, 0x9b,0x93,0x4b,0x41, 0x92,0x94,0x16,0x5e, 0xae,0x24,0xa8,0xa2,
+ 0x22,0x2d,0x9d,0x6a, 0x62,0x98,0xe8,0x6d, 0xf1,0x19,0x0d,0xba, 0x2b,0x55,0xd6,0x6c,
+ 0x64,0xa6,0xcd,0x78, 0xe1,0xa3,0x48,0x42, 0x6c,0x4a,0xf4,0xa4, 0x29,0x03,0x18,0x4a,
+ 0x4c,0x6d,0xb3,0x3f, 0x57,0x1e,0x29,0xd0, 0xc5,0x51,0xc8,0x95, 0xd5,0xe6,0x32,0x1f,
+ 0x68,0x17,0x60,0xaa, 0x25,0x20,0xa0,0x56, 0xe5,0xef,0x77,0x6f, 0x59,0xbb,0x6e,0xad,
+ 0xda,0x55,0xb7,0x5b, 0xee,0x20,0xd0,0x79, 0xc2,0x9d,0x34,0x32, 0xb2,0xaa,0xa8,0x14,
+ 0xa5,0x24,0x90,0x09, 0x35,0x5b,0xd9,0xb7, 0x7a,0x3c,0x5d,0xa0, 0xbc,0xa2,0x57,0x64,
+ 0x00,0x32,0x5d,0xdf, 0x78,0x7f,0xc2,0x12, 0x3a,0x07,0xbf,0x59, 0x36,0x01,0x88,0xa2,
+ 0x8b,0x86,0x37,0x9f, 0x86,0xc7,0x86,0xa7, 0xec,0xb4,0x3f,0xc6, 0xff,0x33,0x0c,0x3c,
+ 0xfe,0xc7,0xc8,0xca, 0x22,0x19,0xcf,0xda, 0x92,0x32,0x5f,0xd9, 0x38,0x18,0xd8,0xe2,
+ 0x12,0x49,0x14,0x6b, 0x11,0xc7,0x22,0x95, 0x24,0x46,0x8a,0x29, 0x0a,0x44,0xd4,0x30,
+ 0x12,0x91,0xa5,0x68, 0x48,0x24,0xa6,0x80, 0xc8,0x59,0x13,0xab, 0x22,0x14,0xd9,0x0b,
+ 0x1b,0x9c,0x3c,0x21, 0x6f,0xc1,0x04,0x30, 0x87,0x97,0x01,0x40, 0x96,0x00,0x66,0x90,
+ 0x33,0x21,0x31,0xe2, 0x4b,0x29,0xa1,0x95, 0xda,0xe7,0x22,0x52, 0x22,0xa0,0x54,0xb4,
+ 0x8a,0xa3,0xa2,0x56, 0xd5,0x35,0x42,0x50, 0xe1,0xef,0x54,0x01, 0x4b,0x49,0x12,0x08,
+ 0xa0,0x90,0x28,0x62, 0x1b,0x40,0x36,0x80, 0xa7,0x52,0x75,0x63, 0x94,0xef,0xd1,0x43,
+ 0x73,0x28,0x94,0xa7, 0x4d,0x4d,0x55,0x2d, 0x14,0xa5,0x50,0xa5, 0x0b,0x54,0xa5,0x0a,
+ 0x0b,0x54,0xeb,0x5a, 0xb9,0x2c,0x29,0x9a, 0xda,0xfd,0xb7,0x89, 0x9b,0xca,0xd1,0x7f,
+ 0x5c,0xa6,0xec,0xc1, 0x98,0xaa,0x51,0x6a, 0x95,0xdb,0xbe,0x05, 0x05,0x9a,0xb3,0x92,
+ 0x65,0x78,0xf9,0x76, 0x2c,0xda,0xd8,0x56, 0x4e,0x3a,0xa9,0x24, 0x92,0x40,0x80,0x12,
+ 0x8d,0xcf,0x14,0xd3, 0xfc,0xe8,0x9b,0x33, 0x33,0x51,0x40,0x02, 0x00,0x6e,0xe1,0x08,
+ 0xf8,0x75,0x1f,0xe8, 0x28,0xa8,0x93,0x70, 0x07,0x14,0x5f,0x42, 0xbe,0xa0,0xbe,0x3e,
+ 0x35,0x0a,0xa2,0x43, 0x8b,0x09,0xe8,0x87, 0x4b,0x91,0xcf,0xeb, 0xa1,0x08,0x60,0xa4,
+ 0x41,0x54,0x18,0x02, 0x55,0x08,0x32,0x30, 0x01,0x99,0x02,0x1c, 0x3d,0x50,0xb8,0x3d,
+ 0xb6,0xd7,0xd7,0x3e, 0xcd,0xf9,0x9f,0x37, 0x61,0x63,0x61,0xba, 0x19,0xb6,0x0e,0xb5,
+ 0x7f,0x63,0xab,0xcb, 0x17,0x1f,0x1a,0x3b, 0x61,0x6f,0x6b,0xb6, 0x43,0x63,0x94,0xc6,
+ 0xe8,0x7a,0x89,0x89, 0x88,0x2e,0x53,0x80, 0xa3,0x10,0xf9,0xd4, 0xa6,0x67,0x2b,0x42,
+ 0xec,0x74,0x18,0xb4, 0x10,0x42,0x10,0x56, 0x4f,0x6d,0xb5,0x7e, 0x2b,0x9b,0xc9,0x50,
+ 0xc4,0x1c,0x47,0x4d, 0x8a,0xbd,0x90,0x08, 0xbc,0x8e,0x96,0x0b, 0x07,0xa3,0x6e,0xf6,
+ 0xd5,0xbe,0xde,0x05, 0xab,0x6b,0x87,0xeb, 0x96,0x08,0x21,0x3c, 0x32,0xe3,0x74,0xe2,
+ 0x7c,0xf7,0x47,0xb9, 0x3d,0xcc,0xa4,0x60, 0xe7,0xc0,0xef,0x47, 0x09,0xf3,0xdb,0x96,
+ 0xc1,0x98,0xc7,0x66, 0xc9,0xf1,0x8e,0xec, 0xf3,0x67,0xe2,0x1d, 0x51,0xef,0x8f,0x70,
+ 0xbd,0x5e,0x5b,0x94, 0xd7,0xbd,0x71,0x33, 0xbc,0x91,0xd1,0x9e, 0xf0,0xf0,0xcf,0x56,
+ 0x73,0x93,0x05,0x49, 0x4c,0x67,0x36,0x39, 0x91,0xbc,0x6e,0x58, 0x6d,0xa3,0x79,0x80,
+ 0x85,0xf8,0xdd,0x50, 0xf9,0x86,0x70,0x32, 0x94,0x80,0x8b,0x44, 0xcb,0x4c,0x7c,0xc8,
+ 0x71,0x98,0xb4,0xbf, 0x0d,0xa4,0x6a,0xc2, 0xd5,0xb6,0xcb,0x6d, 0xab,0x13,0xcb,0x86,
+ 0x3c,0xd8,0x1b,0xd3, 0xc8,0xd5,0xc7,0x0c, 0xe0,0xf3,0x98,0x0c, 0x51,0xb0,0x49,0xe8,
+ 0x94,0x01,0x0f,0x82, 0x10,0xfc,0x18,0x11, 0x02,0x77,0x73,0x3d, 0x3c,0xce,0xef,0x39,
+ 0x1b,0x37,0x84,0xfe, 0x33,0xf0,0xde,0xf8, 0x39,0xe1,0xdb,0xe1, 0x33,0xc6,0x79,0xdb,
+ 0x1f,0xe9,0x6c,0xc5, 0xe3,0xf2,0xa0,0x47, 0xae,0xfb,0x9e,0xed, 0x69,0x10,0x3d,0x4d,
+ 0xd6,0xd1,0xdf,0xa0, 0x93,0x2c,0x10,0x70, 0x21,0x20,0x66,0x1f, 0x48,0x72,0x19,0xba,
+ 0xcb,0x1f,0xc5,0xed, 0xbf,0x62,0x7d,0x1d, 0x73,0xdb,0x8a,0xf2, 0xc2,0x0c,0xcf,0x8a,
+ 0xe6,0xd8,0x23,0xb3, 0xf7,0x13,0x0b,0x20, 0x57,0x8b,0x89,0x23, 0x95,0x69,0xa2,0xa9,
+ 0xbe,0x38,0xe7,0xce, 0x23,0xdf,0x70,0xfd, 0x88,0xfb,0xf4,0xdf, 0x9c,0x1d,0xeb,0x6d,
+ 0xf1,0xe0,0x36,0xbd, 0x3e,0x3a,0x9c,0x84, 0xdf,0x9e,0xfc,0xea, 0x0f,0x9a,0x3d,0x91,
+ 0xf4,0x63,0x83,0x90, 0x82,0x44,0x56,0x6d, 0xcb,0x6a,0x49,0xdc, 0x27,0x31,0x28,0x9e,
+ 0xf2,0xc0,0xc5,0xa5, 0xb5,0x2d,0xc4,0xeb, 0x9d,0x82,0xdb,0x3e, 0xf8,0xd7,0x3c,0xfc,
+ 0x93,0x8c,0xcb,0x80, 0x5b,0x22,0xd4,0x64, 0x8c,0x18,0x6c,0x43, 0x30,0x0c,0x4f,0x84,
+ 0xd1,0x82,0x01,0x24, 0x32,0x62,0x90,0x79, 0x73,0xdb,0x3a,0x18, 0xce,0xa4,0x6b,0xf1,
+ 0x5a,0xd5,0x88,0x0e, 0x26,0x3e,0x8b,0x88, 0xfb,0xae,0x78,0xeb, 0x3c,0x84,0x4d,0xbc,
+ 0xe0,0x22,0x89,0xb8, 0x37,0x83,0x2e,0x52, 0x06,0x44,0x66,0xac, 0xed,0x36,0x74,0x90,
+ 0x89,0x5b,0x65,0x17, 0x70,0x57,0xf9,0x3a, 0x7c,0xaa,0xe7,0x2c, 0x6c,0x04,0x02,0xb2,
+ 0x02,0x48,0x0c,0xd8, 0xdb,0x47,0xb6,0x02, 0xde,0x06,0x0a,0x8a, 0x11,0x10,0xc1,0x95,
+ 0x54,0x48,0x3a,0x01, 0xf4,0xc7,0xbc,0xcc, 0xa3,0xdd,0xb3,0xe1, 0x34,0x02,0xa3,0xfe,
+ 0x6d,0xf3,0x55,0x6b, 0x13,0xc0,0x36,0x18, 0x97,0x17,0x2b,0xa8, 0x14,0x4c,0xf7,0xc6,
+ 0x76,0xe5,0x72,0xf9, 0x13,0xae,0xf6,0xb7, 0x3f,0xe2,0xc5,0xd0, 0x18,0xff,0xe5,0xdf,
+ 0x49,0x89,0x83,0x10, 0xa0,0x6e,0xe3,0x72, 0x37,0x46,0x08,0x52, 0xc8,0x03,0x98,0x02,
+ 0x96,0x60,0x9c,0x78, 0x08,0x4d,0x62,0xe3, 0x1c,0x4b,0x5d,0x24, 0x92,0x49,0x02,0x21,
+ 0x26,0xb0,0x5a,0xda, 0x9d,0x83,0x5d,0x34, 0x8e,0x1c,0xb0,0x58, 0xcf,0xdf,0xab,0xb4,
+ 0x44,0x8c,0x15,0xc2, 0x5a,0xd0,0x91,0x32, 0xfd,0x5a,0x37,0x99, 0xe0,0xdf,0x0a,0xc5,
+ 0x30,0x8e,0x23,0xd0, 0x0b,0xd1,0x85,0xc6, 0x48,0x64,0x98,0xb3, 0x56,0xba,0xd6,0x95,
+ 0xb6,0x9e,0xd4,0x02, 0x60,0xb7,0xe4,0x67, 0x9c,0x73,0xe3,0x5d, 0x0e,0x5c,0xc3,0x47,
+ 0x98,0xe2,0x23,0xa3, 0x55,0x54,0x65,0xa0, 0xb6,0xc1,0xc2,0xe4, 0x8b,0x09,0x84,0x57,
+ 0xca,0xbc,0x61,0x2c, 0xe2,0xc2,0xa5,0xf7, 0xa4,0x13,0x31,0xde, 0xa8,0xbc,0x5f,0x0b,
+ 0x49,0xd8,0x5c,0x45, 0x04,0xa5,0x29,0x19, 0xe1,0x49,0x98,0xcf, 0x28,0xcb,0x26,0x5b,
+ 0x51,0x68,0xa8,0x14, 0x06,0x46,0x6a,0xea, 0x6a,0xe9,0xeb,0x9c, 0xab,0x35,0xa5,0x8c,
+ 0x76,0x66,0x89,0xd1, 0x08,0xa6,0x92,0x0a, 0x5d,0x34,0x94,0xdb, 0x3a,0xf4,0x40,0xc2,
+ 0x52,0x58,0x30,0xa0, 0x22,0xb1,0xab,0x0d, 0xa2,0xa2,0xd2,0x48, 0x61,0x60,0xd3,0x12,
+ 0x23,0xe4,0x89,0x16, 0xab,0xaf,0x53,0x48, 0x65,0x15,0x62,0xb4, 0xa8,0xcf,0x0d,0x55,
+ 0xf2,0x63,0x63,0x65, 0xc2,0x66,0x52,0x02, 0xb0,0x91,0x33,0x50, 0xc0,0x6c,0x17,0x20,
+ 0xbb,0xe4,0x7d,0x9c, 0x69,0x96,0xe3,0xd9, 0x87,0xaf,0x12,0xc2, 0xa7,0x39,0xcc,0x9a,
+ 0x82,0x6a,0x5a,0x50, 0x32,0x64,0xc9,0x9d, 0x34,0xd3,0x9d,0x15, 0x0d,0x8c,0xce,0x4b,
+ 0x38,0x4c,0x34,0x4c, 0xc7,0xb8,0x06,0x95, 0xe0,0x25,0x7a,0x58, 0x9b,0x64,0x50,0x03,
+ 0x0a,0x82,0x41,0x36, 0x68,0x06,0x00,0xbe, 0x17,0xc2,0xf9,0xa4, 0x6d,0x13,0x0a,0xcf,
+ 0x6c,0x5a,0x52,0xbb, 0xb2,0x28,0x2f,0x8a, 0xa2,0xa1,0x10,0x64, 0x2e,0x30,0x83,0x11,
+ 0x59,0xe4,0x18,0xea, 0x0d,0x9b,0x4b,0xc9, 0x23,0x63,0xd6,0xf4, 0x6a,0x0d,0xac,0x97,
+ 0x37,0x80,0xa9,0x70, 0x98,0x3d,0xbb,0xc2, 0xf2,0xba,0xee,0x08, 0xa9,0x37,0xc6,0xc0,
+ 0x0c,0x55,0xaf,0x61, 0x4f,0x91,0xc4,0x3e, 0xa3,0x26,0x37,0xff, 0x1d,0xc5,0xfb,0x46,
+ 0x2f,0x69,0xd4,0xc2, 0x7c,0xb0,0x81,0x80, 0x66,0xd8,0x31,0x8b, 0x06,0x46,0xd7,0x20,
+ 0x67,0xf0,0xf4,0xef, 0x88,0xd0,0x0e,0x45, 0x11,0x03,0x6c,0x54, 0x9e,0xe3,0xaf,0xf2,
+ 0x74,0x37,0x83,0xc0, 0xf6,0x45,0xee,0x64, 0xc8,0x72,0xf6,0xea, 0x37,0x3d,0x1d,0x18,
+ 0x47,0x12,0x8d,0xbd, 0x8e,0x38,0xb2,0x22, 0xae,0x40,0x52,0x70, 0xd2,0x61,0xeb,0xdf,
+ 0x81,0x96,0x0f,0x6f, 0x97,0xda,0xcf,0xc2, 0xe0,0x7e,0xa7,0x71, 0xdc,0xf8,0xda,0x51,
+ 0x8b,0x7d,0xbe,0x1f, 0x08,0x20,0x0c,0xa4, 0x1b,0x82,0xc7,0x08, 0xda,0x3c,0xef,0x81,
+ 0xeb,0xff,0xf3,0xf2, 0x29,0x0a,0x6b,0x1b, 0x13,0x06,0x40,0xc2, 0x02,0xd1,0x59,0x6f,
+ 0x7b,0xd7,0x6b,0x13, 0xf3,0xba,0x1e,0xba, 0x8a,0x83,0x9f,0x87, 0x17,0x97,0x95,0x70,
+ 0x10,0xac,0x31,0xe6, 0xc5,0x82,0x0c,0x6c, 0xe3,0xca,0x21,0xd2, 0x54,0x92,0xdf,0x92,
+ 0x46,0xe5,0xa4,0x24, 0x19,0x83,0x70,0x9f, 0xf4,0xcd,0xd8,0x70, 0x30,0x06,0x01,0x10,
+ 0x11,0x31,0xcf,0x8d, 0xf5,0x85,0x8c,0xa0, 0xcd,0xa5,0x23,0xca, 0xc1,0xc3,0x2c,0x8e,
+ 0xc3,0x93,0xaf,0x97, 0xed,0x38,0x39,0x00, 0x88,0x0f,0x38,0x93, 0x60,0xc1,0x0b,0x20,
+ 0x5f,0xf0,0x56,0xd8, 0x38,0xaa,0xd9,0xbd, 0xbd,0xd6,0x6b,0x05, 0x3a,0x4c,0xdf,0xae,
+ 0x49,0xe2,0x6f,0xa2, 0x4f,0x8c,0xd6,0x24, 0xd1,0x1a,0x16,0x26, 0x89,0x51,0x9d,0xc3,
+ 0x6f,0xc8,0xba,0xc5, 0x59,0xc6,0x48,0x60, 0x24,0x04,0x42,0xf0, 0xb8,0xbc,0x85,0x58,
+ 0xdb,0x10,0x53,0x1c, 0x40,0xb1,0x8e,0x60, 0xba,0x08,0x2c,0x0a, 0x8b,0xca,0x1a,0x1b,
+ 0x19,0x49,0x55,0x94, 0x01,0x74,0x91,0x72, 0xf8,0x02,0xf0,0x75, 0x26,0x4c,0xb4,0x82,
+ 0xd1,0x54,0x2d,0xf9, 0xd9,0xc9,0xd0,0x40, 0x24,0x64,0x29,0x0d, 0x65,0x21,0x65,0xb0,
+ 0x2b,0x37,0xaf,0x9d, 0xf0,0x16,0xa1,0x67, 0x1c,0x80,0xf1,0xc5, 0xbd,0x23,0x38,0x03,
+ 0x30,0x5b,0x83,0x09, 0x88,0x02,0xf8,0xb4, 0x40,0x91,0x9e,0x76, 0xe5,0xc1,0xe0,0xeb,
+ 0x53,0x73,0xab,0x16, 0x58,0x64,0x75,0x08, 0x8f,0x18,0x3a,0x90, 0x1a,0x28,0xfc,0x6e,
+ 0x27,0x6f,0xff,0xd3, 0x16,0xb9,0x78,0x0a, 0xc3,0x60,0x59,0xdd, 0x5c,0xfd,0x97,0xdf,
+ 0xb8,0x71,0xb5,0xf7, 0x1b,0x1c,0xc3,0xde, 0x52,0xaf,0x9b,0xc6, 0x79,0x69,0x69,0xb4,
+ 0x72,0x91,0xe8,0x7a, 0x5d,0x6e,0xcf,0x3b, 0x4a,0xa2,0xe7,0xc0, 0x6c,0x5b,0x83,0x1e,
+ 0x36,0x9b,0xf4,0x04, 0xa4,0x02,0x08,0x7c, 0x91,0x38,0x26,0xa7, 0xf2,0x98,0x78,0xc0,
+ 0x20,0x85,0x95,0x54, 0x88,0x67,0x60,0x49, 0x63,0x97,0x76,0x51, 0x81,0xe0,0x1c,0x35,
+ 0xe1,0x50,0x6f,0xff, 0x84,0xa9,0xe6,0x3f, 0xed,0x7e,0xed,0xfb, 0x47,0xb9,0xd6,0x83,
+ 0xc3,0xb7,0x10,0xb0, 0x99,0x83,0x4d,0x70, 0x46,0x6b,0xc1,0xd8, 0x1b,0x67,0xb5,0x3b,
+ 0x11,0x72,0x4d,0x7a, 0x44,0x69,0xd4,0x36, 0x31,0x81,0x69,0xec, 0x7b,0x2b,0xfa,0xa5,
+ 0x27,0x1b,0xcf,0xe6, 0xf9,0x3d,0xbd,0xd7, 0x17,0x1e,0x18,0x56, 0x12,0x0c,0x47,0xc5,
+ 0x08,0xf7,0xb8,0x6a, 0x46,0x03,0x38,0x20, 0x32,0x1c,0x1b,0x37, 0x22,0x5c,0xce,0xd6,
+ 0x72,0x28,0x9d,0x14, 0x50,0x69,0x52,0x4c, 0x38,0x7c,0x66,0xe4, 0x24,0x64,0x68,0x11,
+ 0x05,0x61,0x9b,0xbd, 0xd7,0x03,0x54,0x2b, 0x38,0xd4,0x87,0x18, 0xf5,0x67,0x1b,0x8a,
+ 0x18,0x8c,0x62,0xd2, 0x2a,0x26,0x40,0x62, 0xa8,0x2c,0x3b,0x53, 0xa4,0xcb,0x08,0x49,
+ 0x09,0x82,0xd5,0x26, 0x35,0xd2,0x93,0x70, 0xb2,0x86,0xe2,0xa0, 0x34,0x71,0x8a,0xc2,
+ 0xe5,0x2d,0xc1,0xb3, 0x0a,0xe7,0x92,0x34, 0x92,0x2d,0x09,0x86, 0x90,0xc2,0x05,0x7c,
+ 0x91,0x7f,0x29,0x8c, 0x0e,0x78,0x74,0x9c, 0xf4,0x71,0x06,0x23, 0x44,0xd8,0x0e,0x0f,
+ 0x62,0x77,0x7e,0x9a, 0x39,0x74,0x6c,0x19, 0x4d,0xf6,0x30,0x46, 0xbb,0x12,0xfb,0x5a,
+ 0x40,0xd6,0xdf,0xa6, 0x37,0x4c,0x08,0x20, 0x61,0xbe,0x36,0x00, 0xa0,0x0c,0xae,0x5b,
+ 0x13,0x98,0xeb,0xec, 0xd0,0x08,0x8c,0x03, 0xe1,0x95,0x8d,0x50, 0x0a,0x93,0x8b,0xb8,
+ 0xfc,0xf4,0xbe,0x8a, 0x9e,0xc7,0xd2,0xc0, 0x66,0x04,0xce,0x27, 0x31,0x8d,0xf5,0x43,
+ 0xd9,0x37,0xce,0xec, 0x38,0x05,0xa5,0xec, 0xad,0xb3,0x53,0x74, 0x52,0x3a,0xde,0x8f,
+ 0x6c,0x37,0x86,0x1c, 0x55,0x8d,0x95,0xc4, 0x0c,0x69,0xc4,0x43, 0x07,0xb7,0xdd,0xc8,
+ 0x16,0xb8,0xc2,0x66, 0xa9,0x84,0xde,0x10, 0x32,0xb8,0x41,0x42, 0xf1,0xc8,0x11,0x88,
+ 0x2a,0x4b,0x60,0xd3, 0xa4,0x24,0xb8,0x37, 0xa0,0x88,0x81,0xb4, 0x64,0xd0,0xde,0x0b,
+ 0xe6,0x03,0xbc,0xce, 0xb4,0xa0,0x55,0x15, 0x9b,0x75,0xe8,0x6e, 0xbd,0xdb,0xff,0x2b,
+ 0x66,0x3c,0x8b,0x13, 0x1d,0xf8,0x4e,0x08, 0x40,0x35,0x01,0x22, 0x42,0x31,0xa3,0x1b,
+ 0x0e,0x69,0x88,0x59, 0xe3,0x31,0x95,0x01, 0xa5,0x8f,0x1d,0xb0, 0xe3,0x4a,0x8b,0x82,
+ 0xb2,0x82,0xb5,0x57, 0xd0,0x66,0xf1,0x1f, 0xd3,0xec,0xe6,0xf8, 0xde,0xc0,0xbe,0x5a,
+ 0x2b,0x81,0x5f,0x41, 0xa6,0xc5,0x05,0xc1, 0xe9,0xec,0x80,0xd4, 0xdc,0xf4,0x47,0x3b,
+ 0x7e,0xdb,0x36,0xb5, 0x84,0x5a,0x22,0xa2, 0xb2,0x39,0x24,0x1c, 0xa6,0x63,0x3c,0x8f,
+ 0x49,0x58,0x15,0x1b, 0xf1,0x0c,0x03,0x3b, 0x25,0x5c,0x99,0x54, 0x96,0xb4,0xab,0x49,
+ 0x68,0x46,0xd1,0x56, 0xa2,0x23,0x62,0xd0, 0xb7,0x1f,0xe9,0xa8, 0xb8,0x33,0xe5,0xc4,
+ 0x15,0x53,0x04,0x41, 0xda,0x14,0x03,0x26, 0x50,0x15,0xa2,0x86, 0x31,0x4a,0x96,0xe0,
+ 0x16,0x40,0xc0,0x40, 0x94,0xe9,0x57,0xa9, 0x61,0x4a,0x80,0xa5, 0x62,0x11,0x08,0x62,
+ 0x2f,0x16,0x2c,0x83, 0x78,0x03,0x41,0xe9, 0x60,0x94,0x84,0x55, 0x42,0x54,0x0c,0x4d,
+ 0x0b,0x68,0x56,0x1e, 0xcb,0x47,0xd9,0xbc, 0xcf,0x42,0xf1,0xdb, 0x86,0x12,0x06,0xcb,
+ 0x84,0x30,0x6c,0xf5, 0x00,0x5c,0x05,0xc1, 0x9c,0x60,0xd2,0x94, 0x41,0xe8,0xbb,0x57,
+ 0x41,0x29,0xd1,0x3a, 0x1a,0x9a,0xcf,0x91, 0xf0,0xe5,0x24,0x15, 0x14,0x8c,0xa8,0x64,
+ 0xc2,0x65,0x40,0xc7, 0x40,0xc9,0x0e,0xf7, 0x6d,0xdf,0xf8,0x47, 0xb1,0xb4,0xd1,0x12,
+ 0xb0,0xa4,0x5c,0x33, 0xa4,0x30,0xde,0x18, 0x5a,0x14,0x07,0xba, 0x3c,0x4a,0x8f,0xda,
+ 0xeb,0xb9,0xa1,0xbb, 0xe9,0x5b,0x61,0xc3, 0xdf,0xb7,0x99,0x23, 0x04,0xba,0x0d,0x3a,
+ 0x0e,0xe7,0xf4,0x05, 0xe9,0xbd,0x53,0x6c, 0x09,0x06,0xea,0xc8, 0x2c,0xb7,0xa5,0xcd,
+ 0x88,0x94,0xb3,0x10, 0x4d,0xb6,0x99,0x75, 0x06,0x23,0x58,0xd7, 0x32,0x06,0x10,0x81,
+ 0x13,0xdc,0xe2,0x05, 0xe1,0x4c,0xd9,0x0e, 0x28,0xcb,0x80,0xbe, 0x83,0x00,0x99,0x41,
+ 0xd3,0x2e,0x47,0x38, 0x26,0x5c,0x96,0xa1, 0xa4,0xc3,0x64,0x26, 0xb4,0xc1,0x73,0x61,
+ 0x24,0x56,0x66,0xca, 0x39,0x18,0xcf,0x72, 0x2d,0x04,0x05,0xf0, 0xe4,0x00,0xb8,0x98,
+ 0xfd,0xcb,0xc0,0xc7, 0x13,0x12,0xdd,0x6a, 0x61,0x30,0x8a,0x04, 0x8c,0xc0,0x72,0x0e,
+ 0x09,0xe7,0xf3,0x7c, 0x9e,0x9c,0xfa,0x0f, 0x9b,0x9c,0x2b,0xe5, 0xa7,0x95,0xcf,0xb7,
+ 0xcb,0x99,0xee,0xe1, 0xdb,0x9d,0xa9,0xc2, 0x80,0xf8,0x03,0x1c, 0x9d,0x0e,0x35,0xe9,
+ 0x09,0xab,0xac,0x4a, 0xc1,0xe5,0x2e,0x1c, 0x7c,0x70,0x8d,0x0b, 0x8c,0x90,0x7e,0x43,
+ 0x0a,0x3e,0x50,0x62, 0xe4,0xea,0xf1,0xee, 0xa5,0xf2,0xd8,0x8f, 0x75,0x95,0xa1,0x33,
+ 0x68,0x99,0x92,0x54, 0x8b,0x2b,0x17,0x17, 0x2e,0x16,0xe4,0xaa, 0x8d,0x03,0x13,0x3b,
+ 0x84,0x2c,0x6b,0x06, 0x80,0xe5,0x54,0x13, 0x34,0x54,0x06,0x5a, 0xa5,0x0d,0x8c,0x24,
+ 0x0d,0x2e,0xb8,0xa5, 0x20,0x6c,0x63,0x69, 0x88,0xac,0x26,0x29, 0xd2,0x15,0x9c,0xc0,
+ 0xb0,0xb0,0x39,0x47, 0x57,0x5f,0x7c,0x15, 0xda,0x04,0x16,0xc1, 0xd8,0x97,0x4a,0x0e,
+ 0x59,0x79,0x17,0x8b, 0x8a,0xce,0x60,0x0b, 0x54,0xd0,0xbc,0x74, 0x98,0x17,0xc5,0x94,
+ 0x66,0x50,0x91,0x68, 0x48,0xd0,0xb7,0x97, 0xb6,0x43,0x89,0x66, 0x16,0x89,0x30,0xe7,
+ 0x52,0x1c,0xe2,0x59, 0xf7,0x9b,0x63,0x09, 0x9d,0x6d,0x43,0x85, 0xd6,0xeb,0x58,0x52,
+ 0xab,0x17,0xba,0xe0, 0x12,0x32,0x0f,0x64, 0xfc,0x7e,0x06,0x30, 0xd9,0x0a,0x06,0xe1,
+ 0xd8,0x22,0xea,0xc4, 0xb0,0x40,0xe1,0x3f, 0x08,0x1f,0x12,0xd2, 0x21,0x50,0xa0,0x09,
+ 0xa3,0xd4,0x52,0x5d, 0xea,0x60,0xf0,0xea, 0xe2,0x41,0x83,0x1a, 0x5c,0x7a,0x19,0x32,
+ 0x9d,0x00,0xcc,0x83, 0xa6,0x50,0x17,0xb9, 0x70,0x53,0xa8,0x52, 0x69,0x13,0x33,0x08,
+ 0x99,0xba,0x1a,0xc6, 0x9d,0x4d,0x78,0xdc, 0x5e,0x0c,0x97,0x16, 0xc3,0xdf,0xba,0x74,
+ 0xf1,0x48,0xb2,0x71, 0x29,0x4f,0x54,0xe2, 0xd0,0xaf,0xd0,0x3d, 0xa0,0x2b,0x2a,0x5c,
+ 0x03,0xfe,0xb3,0x52, 0xb0,0x01,0xcf,0x1a, 0x69,0x23,0x48,0xcb, 0x89,0xba,0x04,0x4c,
+ 0xa0,0xe4,0xe6,0x05, 0x05,0x19,0xe7,0x54, 0xb8,0x98,0x73,0x58, 0x88,0x65,0x34,0x8d,
+ 0x94,0xde,0x5b,0xa3, 0x4c,0xd3,0x02,0xf8, 0x65,0xc8,0xc6,0x37, 0x57,0x67,0x3a,0xce,
+ 0xbb,0x5f,0xf1,0x38, 0x13,0x28,0x2a,0x3b, 0xa2,0xe2,0x12,0x45, 0xf3,0x5f,0x8f,0xdd,
+ 0x3c,0x9c,0xf8,0x94, 0xa4,0x4b,0x63,0xc1, 0xfc,0x58,0xfc,0x1f, 0x8c,0xb0,0xaa,0xa3,
+ 0x4e,0x2c,0x36,0xc8, 0x35,0x04,0x64,0xc2, 0xcd,0x84,0x91,0xd8, 0x15,0x1e,0x31,0xda,
+ 0x0a,0xa0,0xbd,0xdf, 0x16,0x85,0xda,0xe5, 0x24,0xc3,0xbe,0x41, 0xd2,0xf9,0x80,0x2b,
+ 0xdc,0xbe,0xa2,0x21, 0x10,0x0d,0x56,0x85, 0xd5,0x18,0x0a,0x45, 0x81,0x84,0x83,0x18,
+ 0xca,0x00,0xa1,0x00, 0x88,0x52,0x02,0xa6, 0xd3,0x68,0x00,0x80, 0xcc,0x74,0x25,0x00,
+ 0x0b,0x03,0x23,0x9f, 0x68,0xd7,0xfa,0x02, 0xc8,0x96,0x78,0x28, 0x67,0x9f,0x93,0xf4,
+ 0x36,0x5d,0x66,0xa0, 0x2a,0x46,0x7b,0x83, 0xf6,0xff,0x47,0xf7, 0x39,0x06,0x90,0x1d,
+ 0xe6,0xcf,0x99,0x17, 0xf0,0x41,0x89,0x17, 0x86,0x1a,0x5a,0x73, 0x26,0x29,0xee,0x77,
+ 0x55,0x70,0xf2,0x08, 0xa5,0x25,0xa3,0x04, 0x65,0xc2,0x11,0xc5, 0x56,0xbb,0xb6,0x77,
+ 0xd2,0xd9,0x9c,0x2a, 0x27,0x2a,0x28,0x8a, 0x2c,0xb3,0x7e,0x12, 0x42,0xa8,0x61,0x41,
+ 0xc7,0x11,0x92,0x5e, 0x56,0x2c,0x59,0x01, 0x7d,0xad,0x99,0xa9, 0x1a,0x55,0x7d,0x9d,
+ 0x48,0xa8,0x2a,0xe4, 0xc8,0xaa,0xfa,0x30, 0xa0,0x8d,0x11,0xa2, 0x45,0x5c,0xe4,0xcb,
+ 0x6a,0xac,0xaa,0xb5, 0x4b,0x8c,0xc5,0x57, 0x39,0x41,0x75,0xa5, 0xa2,0xd0,0x2b,0xbd,
+ 0xc4,0x8c,0x8a,0xaa, 0xb7,0x48,0xae,0x78, 0x2a,0x9a,0x40,0x91, 0x55,0x55,0x55,0x55,
+ 0x55,0xc7,0xd9,0x6a, 0x8a,0xb5,0x90,0xcb, 0x04,0xc1,0xaa,0x3d, 0x48,0x14,0x21,0xbf,
+ 0xad,0x0a,0xaa,0xe7, 0x64,0x55,0x76,0x6a, 0x2a,0x20,0x46,0x45, 0x54,0xa2,0x97,0x1e,
+ 0x49,0x23,0x97,0x08, 0xa9,0x8f,0x25,0xa2, 0x54,0x68,0xa2,0x37, 0x36,0xb3,0x42,0x8c,
+ 0xd0,0xcb,0x9b,0x86, 0x49,0x25,0x49,0xaa, 0x96,0xb6,0x12,0x49, 0x30,0x92,0x4d,0x46,
+ 0x92,0x9a,0x44,0xa0, 0xba,0xeb,0x5d,0x26, 0x12,0x49,0xc8,0x05, 0xa5,0xa4,0x45,0x1b,
+ 0xe4,0xbe,0x49,0x09, 0x68,0xcb,0xa8,0xb3, 0x55,0x4c,0x94,0x10, 0x8c,0x90,0x24,0x92,
+ 0x46,0xe9,0x24,0x96, 0x94,0x32,0x37,0x46, 0x46,0x54,0x4a,0xa1, 0x55,0x5f,0x1e,0x45,
+ 0xaa,0x44,0x55,0x74, 0x92,0x48,0x0b,0xa4, 0xf5,0x90,0x01,0x64, 0x7e,0xf7,0x6c,0x2a,
+ 0xf7,0xff,0x17,0x72, 0x45,0x38,0x50,0x90, 0xae,0x04,0xda,0x11,
+ // 0x152c = 5420 data bytes (14% including 4 header bytes)
+};
+
+static BZ2Manager_t objflow_bin_mgr
+ = { objflow_bin_bz2, sizeof(objflow_bin_bz2), 0, 0 };
+
+///////////////////////////////////////////////////////////////////////////////
+
+static const u8 geohittableitem_bin_bz2[] = // GeoHitTableItem.bin
+{
+ // decompressed len: 0x2d6c = 11628 bytes
+ 0x00,0x00,0x2d,0x6c,
+
+ // bzipped data
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xf2,0xde, 0xe6,0xc5,0x00,0x06,
+ 0x03,0x7f,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xd0, 0x04,0x5e,0xee,0x75, 0xc2,0x69,0x6a,0x39, 0x1e,0x44,0x8e,0x49,
+ 0xea,0x1a,0x03,0x20, 0xd0,0x68,0x34,0x34, 0x06,0x40,0x00,0x03, 0x10,0x34,0x00,0x69,
+ 0xf9,0x28,0x0c,0x80, 0x06,0x80,0x00,0xc8, 0x61,0x34,0xc2,0x03, 0xd4,0xd0,0x00,0xc8,
+ 0x1a,0x03,0x4d,0x00, 0x00,0x01,0xa0,0x00, 0xc8,0x01,0xa6,0x43, 0x6c,0x4d,0x4f,0x53,
+ 0xfd,0x52,0x9f,0x9a, 0xa8,0x33,0xfc,0xaa, 0x62,0x05,0x6a,0x94, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x3d,0x40, 0xc8,0x06,0x80,0x0d, 0x07,0xa9,0xa0,0x00, 0x32,0x18,0x4c,0x65,
+ 0x3f,0x53,0xf5,0x4f, 0x54,0x68,0xd0,0x3f, 0xc5,0x29,0xa0,0x00, 0xcd,0x47,0xa8,0x3d,
+ 0x40,0x07,0xea,0x81, 0xa0,0x03,0xfd,0x2a, 0x0d,0x3d,0x4f,0x28, 0x06,0x9a,0x00,0x30,
+ 0x80,0x0f,0xfd,0x52, 0x9a,0x68,0x30,0x80, 0x0a,0x8d,0xea,0xaa, 0x68,0x30,0x8c,0x46,
+ 0x13,0x08,0x62,0x32, 0x68,0x60,0x26,0x4c, 0x10,0x0c,0x4c,0x9a, 0x64,0x68,0xc2,0x69,
+ 0x80,0x08,0xd1,0x82, 0x60,0x20,0x68,0x64, 0x30,0x9a,0x31,0x34, 0xd3,0x4d,0x1a,0x32,
+ 0x1a,0x62,0x62,0x62, 0x34,0x64,0xc4,0xc2, 0x1a,0x19,0x19,0x32, 0x64,0xc2,0x64,0xd3,
+ 0x26,0x08,0xc9,0x84, 0xc9,0x90,0x68,0xd0, 0x24,0xff,0xde,0xa5, 0x52,0x64,0x0c,0x20,
+ 0xd0,0xd0,0x01,0xa0, 0xc2,0x0d,0x1a,0x34, 0x1a,0x34,0x34,0x0c, 0x80,0xd1,0x84,0x64,
+ 0x03,0x10,0x06,0x10, 0xc4,0x68,0x34,0x0d, 0x00,0x06,0x80,0x69, 0xa0,0x00,0xd3,0x10,
+ 0xd0,0x03,0x40,0x00, 0xd1,0xa0,0x0c,0x8d, 0x34,0x68,0x19,0x00, 0x34,0x61,0x00,0x01,
+ 0x9a,0x92,0xa7,0xaa, 0x46,0x80,0x36,0x90, 0x32,0x03,0x43,0x13, 0x41,0xa6,0x9a,0x34,
+ 0xd1,0xea,0x00,0x34, 0x0d,0x34,0xc2,0x03, 0x20,0xd1,0x82,0x03, 0x26,0x40,0x3d,0x26,
+ 0x80,0x00,0x00,0x03, 0x43,0xd1,0xa2,0x31, 0x0d,0x0d,0x00,0x34, 0x06,0x86,0x4c,0x23,
+ 0x11,0xa6,0x80,0x33, 0x48,0xd1,0xa0,0x7a, 0x7a,0xa0,0x34,0xcf, 0xf5,0x4d,0x51,0xfa,
+ 0xa0,0xdb,0x49,0x42, 0x4d,0x09,0x83,0x63, 0x4c,0x04,0x02,0x68, 0x40,0x21,0xb1,0x03,
+ 0x69,0x9a,0x69,0x13, 0x94,0x14,0x94,0xd5, 0x15,0x75,0x4b,0x0b, 0x2b,0x4b,0x7a,0xbd,
+ 0x66,0xbb,0x5f,0xb0, 0xd8,0xec,0x97,0xd8, 0x18,0x76,0x8c,0x4c, 0x7b,0x5d,0xb6,0xdf,
+ 0x70,0xca,0xcc,0xce, 0xd0,0xd2,0xd6,0xd8, 0xda,0xdc,0xde,0xe0, 0xe2,0xe4,0xe6,0xe9,
+ 0xbb,0xde,0x3a,0xef, 0x60,0x60,0xa0,0xe1, 0x21,0x61,0xa1,0xd9, 0xb4,0xcd,0x29,0x10,
+ 0x58,0x95,0x73,0x79, 0xc8,0xac,0xee,0x7a, 0x2f,0x3f,0xa0,0xd0, 0xe8,0xb4,0x66,0x3a,
+ 0x1a,0xe9,0x23,0x34, 0xda,0x7d,0x46,0xa6, 0x66,0x6a,0x6e,0x73, 0xf1,0xf9,0xfd,0x7e,
+ 0xff,0x9f,0xdf,0xf6, 0x3f,0x27,0x94,0xca, 0xbf,0xc0,0x65,0xb2, 0xf0,0x30,0x50,0x70,
+ 0x99,0x98,0x58,0x76, 0x6d,0x14,0x88,0x2c, 0x4a,0xb1,0xb1,0xcc, 0x99,0x32,0xc3,0x3b,
+ 0xeb,0x75,0xfb,0x1d, 0x9e,0xd7,0x6f,0xb9, 0x23,0xdd,0x92,0xef, 0x77,0xfc,0x1e,0x1f,
+ 0x17,0x8f,0xc9,0xe5, 0xf3,0x79,0xe4,0xe5, 0x25,0x65,0xbf,0x53, 0x6c,0xd0,0x45,0x26,
+ 0x89,0xce,0x29,0x3a, 0x0d,0x7f,0x6a,0xac, 0x6f,0xe7,0xf7,0xfd, 0xff,0x9e,0x9f,0x12,
+ 0xa0,0x6c,0xdd,0xc5, 0x0e,0x27,0x9c,0x71, 0xc7,0x1c,0x71,0xc7, 0x73,0xcf,0x3c,0xf3,
+ 0xcf,0x3f,0xa0,0xc5, 0x8b,0x18,0xf7,0xe7, 0xe8,0xc4,0x21,0x08, 0x44,0x8b,0x54,0x21,
+ 0x07,0x39,0xdf,0x5f, 0x70,0x17,0xdb,0xe3, 0xe3,0xe3,0xdb,0xdb, 0x16,0x2c,0x63,0xc0,
+ 0x80,0x10,0x1c,0x62, 0x01,0x00,0x09,0x3a, 0x00,0xb5,0xb0,0x00, 0x60,0x81,0x31,0x8c,
+ 0x48,0x12,0x06,0x21, 0x34,0x21,0xc3,0x49, 0xb4,0xd4,0x0d,0xa4, 0xd3,0x70,0xdb,0x49,
+ 0x0d,0x36,0x36,0xe0, 0x69,0x82,0x1a,0x40, 0x81,0x34,0xdd,0xbb, 0x2f,0x98,0xf7,0xf3,
+ 0x39,0xac,0xdf,0xc1, 0xf0,0xe7,0x73,0xd9, 0xfc,0x36,0x1b,0x47, 0xa4,0xd2,0xd5,0xd5,
+ 0xd6,0x57,0xd7,0xd7, 0xd5,0x57,0x57,0x57, 0x72,0xfc,0x4d,0x87, 0xeb,0xf8,0x63,0x75,
+ 0xc4,0x93,0x4b,0x58, 0x1b,0x4b,0x69,0x6d, 0x21,0x26,0xd8,0xdb, 0x4a,0x12,0x6c,0x42,
+ 0x1b,0x6c,0x18,0x26, 0xd7,0xcb,0x74,0x86, 0xd2,0xfb,0xef,0x7f, 0x4f,0xd5,0xf5,0xfd,
+ 0x9a,0x3b,0x0d,0x27, 0xdb,0xf7,0x69,0x6c, 0x74,0xfe,0x66,0x27, 0x13,0x5b,0x5b,0x5b,
+ 0x5a,0xaa,0xaa,0x94, 0xa5,0x29,0x4a,0x52, 0x94,0xaa,0x28,0xa5, 0x74,0x00,0x84,0xf5,
+ 0xfb,0x7d,0xde,0xff, 0x87,0xc4,0x5e,0x7c, 0xa5,0xe2,0xda,0x43, 0x18,0xc6,0x31,0x8c,
+ 0xf5,0x4c,0xa1,0x18, 0xd7,0x30,0x20,0x10, 0x0c,0xc0,0x84,0x02, 0x10,0xc6,0x34,0xec,
+ 0xd8,0x33,0x1a,0x48, 0xef,0xe7,0x3d,0x48, 0xe7,0x3d,0x56,0xf6, 0x66,0xd4,0x90,0x21,
+ 0x08,0x00,0x46,0xcc, 0x00,0x84,0x20,0x36, 0x93,0x94,0x95,0x96, 0xf4,0x4d,0xb3,0x41,
+ 0x14,0x9a,0x27,0x38, 0xa5,0xd0,0x1a,0x84, 0x40,0x44,0x80,0x06, 0xb4,0x22,0xc2,0x30,
+ 0x00,0x2d,0x60,0x1b, 0x00,0x00,0x08,0x46, 0x4c,0x80,0x03,0x6a, 0x00,0x00,0x01,0xbb,
+ 0x07,0x8f,0x1a,0x88, 0xb7,0x8d,0x6e,0xdd, 0xd3,0xa7,0x4d,0xdd, 0x6c,0xc4,0x45,0x2e,
+ 0x1c,0x38,0x4a,0x52, 0x94,0xd4,0x13,0xae, 0x4a,0x53,0xba,0x4a, 0x52,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x22, 0x22,0x22,0x31,0xc2, 0x22,0x32,0xeb,0xae, 0xbc,0x56,0xd9,0x75,
+ 0xd7,0x5d,0x79,0x0e, 0x83,0xb6,0x6e,0xe4, 0x37,0xee,0xdc,0xac, 0xb2,0xcb,0x2c,0xb7,
+ 0x55,0xcb,0x9f,0x9c, 0xc7,0xd3,0xeb,0xf6, 0xfb,0xcc,0xcd,0x4d, 0xce,0x17,0xc1,0xb3,
+ 0x77,0x14,0x26,0x31, 0x8c,0x63,0x18,0xc6, 0x31,0x8c,0xb2,0xc9, 0x20,0x82,0xd2,0xe8,
+ 0xa2,0xb2,0x57,0xf4, 0xbe,0x49,0x24,0xaa, 0xa9,0xcc,0x4c,0x26, 0x9a,0x69,0xa6,0xaa,
+ 0xaa,0x28,0xa2,0x9f, 0x9e,0x9b,0x4d,0x4a, 0x95,0x2b,0x1b,0x1a, 0x5a,0x7a,0x55,0x29,
+ 0xd3,0xa7,0x4e,0x9d, 0x3e,0xae,0xca,0xca, 0xca,0xc1,0x26,0x93, 0xd5,0x36,0xd2,0x43,
+ 0x6d,0x27,0xaa,0x38, 0x61,0xa4,0xbd,0x72, 0xf6,0x0e,0x4b,0xd7, 0xae,0x5c,0xe4,0xc0,
+ 0xb1,0x02,0x22,0x22, 0x22,0x22,0x22,0x22, 0x22,0x22,0x2d,0x88, 0x88,0x88,0x88,0x88,
+ 0x88,0x88,0x88,0x88, 0xbf,0xe9,0xed,0xb3, 0xab,0x9c,0xa7,0x29, 0xca,0x72,0x99,0x32,
+ 0x74,0x4e,0x53,0x94, 0xe5,0x39,0x4e,0x53, 0x26,0x4c,0x74,0x09, 0x0c,0x60,0x98,0x26,
+ 0x02,0x13,0x48,0x12, 0x6f,0x74,0x12,0x84, 0x9b,0x13,0x55,0x8d, 0xb6,0x95,0x65,0x65,
+ 0xd6,0x13,0x4a,0xaa, 0xa9,0x34,0x93,0x74, 0x48,0x90,0x36,0x09, 0x83,0x06,0x81,0xa0,
+ 0x04,0xda,0x76,0xeb, 0x35,0x14,0x44,0xa5, 0x29,0x4a,0x52,0x94, 0x80,0x34,0xc2,0x18,
+ 0x43,0x00,0x28,0x34, 0x84,0x30,0x84,0x00, 0xa0,0x00,0x00,0x00, 0xd2,0x82,0x82,0x80,
+ 0x00,0x00,0x00,0x00, 0x04,0x00,0x00,0x00, 0x05,0x00,0x14,0x00, 0x00,0x00,0x00,0x50,
+ 0x01,0x41,0x40,0x05, 0x00,0xa5,0x29,0x4a, 0x69,0x84,0x21,0x0c, 0x6a,0x08,0x13,0x49,
+ 0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x84, 0x02,0x04,0x08,0x10, 0x20,0x40,0x81,0x02,
+ 0x04,0x08,0x10,0x20, 0x40,0x81,0x80,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x04,0x42,0x00,0x08, 0x00,0x00,0x00,0x00, 0x08,0x88,0x88,0x8a,
+ 0x00,0x30,0x80,0x00, 0x28,0x00,0x00,0x20, 0xe2,0xa2,0x80,0x0c, 0x00,0xa0,0x00,0x0a,
+ 0x0a,0x30,0x2a,0xa8, 0x88,0x88,0x88,0x88, 0x88,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x04,0xa2,0x00,0x10, 0x00,0x11,0x10,0x00, 0x00,0x00,0x00,0x11, 0x10,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x03, 0x70,0x26,0xa8,0x00, 0x00,0x00,0x00,0x00, 0x00,0xaa,0x88,0x88,
+ 0x88,0x88,0xa2,0x22, 0x22,0x22,0x22,0x51, 0x0a,0x00,0x00,0xa0, 0xa0,0xa0,0xa0,0x00,
+ 0x00,0x28,0x00,0xa0, 0x00,0x00,0x00,0x00, 0x00,0x28,0x00,0xa0, 0x00,0x00,0x00,0x00,
+ 0x0a,0x00,0x00,0xa0, 0x44,0x44,0x44,0x42, 0xa0,0x00,0x00,0x00, 0x00,0x02,0x85,0x02,
+ 0x76,0x6a,0x90,0x93, 0xa9,0x52,0xa5,0xc7, 0x68,0xa9,0xff,0x8b, 0xb9,0x22,0x9c,0x28,
+ 0x48,0x79,0x6f,0x73, 0x62,0x80,
+ // 0x536 = 1334 data bytes (12% including 4 header bytes)
+};
+
+static BZ2Manager_t geohittableitem_bin_mgr
+ = { geohittableitem_bin_bz2, sizeof(geohittableitem_bin_bz2), 0, 0 };
+
+//-----------------------------------------------------------------------------------
+
+static const u8 geohittableitemobj_bin_bz2[] = // GeoHitTableItemObj.bin
+{
+ // decompressed len: 0x2d6c = 11628 bytes
+ 0x00,0x00,0x2d,0x6c,
+
+ // bzipped data
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x27,0x12, 0x9a,0x09,0x00,0x04,
+ 0x12,0x7f,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xd0, 0x04,0x1e,0xc6,0xee, 0x5b,0xa1,0xc3,0xa1, 0xe8,0x88,0xc4,0xa6,
+ 0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x19,
+ 0x00,0x00,0x01,0xa0, 0x0d,0x00,0x01,0xea, 0x68,0x34,0x68,0xf5, 0x34,0x1e,0xa0,0x00,
+ 0x0d,0x00,0x7a,0x9b, 0x4f,0x49,0xa6,0x9f, 0xe5,0x53,0x69,0xa2, 0x7f,0xaa,0x80,0xfd,
+ 0xa9,0x35,0x4d,0x09, 0x32,0x69,0x93,0x4d, 0x0c,0x46,0x86,0x8d, 0x01,0x84,0x03,0x13,
+ 0x26,0x4d,0x31,0x34, 0xd3,0x4d,0x1a,0x69, 0xa6,0x43,0x4d,0x0d, 0xa4,0xc1,0x06,0xfd,
+ 0x51,0x18,0x46,0x4c, 0x10,0xf4,0x40,0xd0, 0xc2,0x66,0x00,0x8c, 0x27,0xea,0x02,0x4d,
+ 0x32,0x0d,0x18,0x99, 0xfa,0xa8,0x64,0x32, 0x0d,0x1a,0x68,0xc4, 0x01,0xa1,0xa1,0x90,
+ 0xfd,0xea,0xa8,0xc0, 0x4c,0x41,0xa3,0x40, 0xa9,0x4f,0x7e,0xaa, 0xa0,0x34,0x0d,0x32,
+ 0x34,0x03,0x46,0x4c, 0x46,0x26,0x9a,0x32, 0x68,0x03,0x46,0x8d, 0x03,0x13,0x46,0x9b,
+ 0xf2,0xa2,0x3f,0xf5, 0x51,0x0d,0x03,0x08, 0xd0,0xc8,0x00,0x0d, 0x34,0x34,0xc8,0xd0,
+ 0x34,0x07,0xfa,0xa2, 0x31,0x18,0x8d,0x34, 0xd0,0x68,0x34,0x68, 0xc8,0x1a,0x69,0x84,
+ 0x31,0x34,0x00,0xd0, 0x01,0xa1,0x84,0x68, 0x1a,0x62,0x68,0x24, 0xff,0xf6,0xa9,0x2a,
+ 0x68,0x03,0x40,0x00, 0x01,0xa0,0x03,0x4d, 0x34,0xd3,0x20,0x03, 0x4c,0x86,0x80,0xd0,
+ 0x00,0x34,0x62,0x1a, 0x34,0x1a,0x68,0x00, 0xd0,0x00,0x06,0x83, 0x41,0xa3,0x40,0x06,
+ 0x4d,0x00,0x68,0xc8, 0x1a,0x00,0x01,0xa6, 0x4d,0x00,0x34,0x00, 0x1a,0x03,0x46,0x80,
+ 0x00,0x19,0xa4,0xaa, 0x68,0xa0,0x00,0x00, 0x00,0x00,0x00,0x07, 0xa7,0xa5,0x01,0xea,
+ 0x00,0x1a,0x3d,0x40, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x6d,0x04, 0x00,0x3f,0xd5,0x41, 0xfa,0xa5,0xa4,0xdd,
+ 0xd8,0xad,0x21,0x24, 0xd2,0x04,0xb9,0xde, 0x7f,0xa2,0xf4,0xfd, 0x7f,0x63,0xdc,0xf7,
+ 0x7e,0x2f,0x8f,0xe4, 0xf9,0xfe,0x8f,0xbb, 0xef,0xc3,0x61,0xff, 0x0f,0x03,0xae,0xc8,
+ 0x93,0x6b,0xea,0xd3, 0x2f,0xf4,0xdd,0x39, 0xdb,0x56,0xef,0xac, 0x78,0xd6,0xbc,0xbd,
+ 0x6b,0xb5,0xfb,0x07, 0xbd,0x8b,0xe6,0xcb, 0x67,0xb4,0x7d,0x2d, 0xb5,0x7f,0x80,0x81,
+ 0x82,0x83,0xdb,0x6d, 0xf7,0x1b,0x98,0x41, 0x42,0xc3,0x6e,0xb7, 0x70,0xf1,0x11,0x31,
+ 0x5b,0xcd,0xec,0x5c, 0x66,0xfa,0x36,0x3a, 0x3e,0x42,0x47,0x7f, 0xc0,0xe0,0x97,0x92,
+ 0x93,0xe1,0x70,0xf8, 0x9c,0x5e,0x37,0x1f, 0x91,0xc9,0x95,0x96, 0x97,0x98,0x99,0x9a,
+ 0x30,0x64,0xd1,0xb3, 0x87,0x4f,0x1f,0x41, 0x37,0x38,0x85,0x12, 0x34,0x93,0xa3,0x4a,
+ 0x99,0x3a,0x85,0x2a, 0xa8,0x3a,0x14,0x5d, 0x1e,0x95,0x1d,0x25, 0x35,0x39,0x3a,0xb7,
+ 0xff,0x7f,0xc7,0xe7, 0xf5,0x81,0xfb,0xfe, 0x60,0xff,0x7f,0xc6, 0x4d,0x18,0x36,0x5c,
+ 0xd1,0xc3,0xa7,0x8f, 0xa0,0x9b,0x9c,0x42, 0x89,0x1a,0x49,0xd1, 0xa5,0x4c,0x9d,0x42,
+ 0x95,0x53,0xdc,0xb1, 0x08,0x42,0x10,0x84, 0x21,0x7e,0x7f,0x5f, 0xb6,0xdf,0xc8,0xa6,
+ 0xf1,0x6a,0x38,0x8c, 0x73,0x1a,0xea,0x3b, 0xb0,0x03,0x1f,0x0d, 0x0c,0xed,0x57,0x90,
+ 0xf0,0xeb,0x3d,0x66, 0xf9,0xa3,0x46,0x92, 0x05,0x11,0x11,0x23, 0x25,0x27,0x29,0x2a,
+ 0xd5,0xab,0x59,0x6f, 0x22,0x0d,0x79,0x9a, 0xcf,0xe5,0x6f,0xf4, 0x88,0xc4,0x44,0x44,
+ 0x44,0x44,0x44,0x44, 0x44,0x44,0x44,0x44, 0x49,0x4a,0x52,0x94, 0xa5,0x29,0xf5,0x44,
+ 0x25,0x29,0x4a,0x7d, 0x71,0x07,0x3e,0xb7, 0x81,0x81,0xac,0x61, 0x75,0x3b,0xfb,0xfb,
+ 0xfb,0xeb,0xeb,0xeb, 0x76,0xed,0xee,0x9e, 0xb3,0x49,0x35,0xa2, 0xe8,0xc9,0x22,0x44,
+ 0x36,0x9a,0x6d,0xac, 0xf8,0xbe,0x13,0x40, 0xdd,0xbc,0x1d,0x1e, 0x92,0x49,0x2a,0xbb,
+ 0x4d,0x44,0xc4,0x93, 0x12,0xd2,0x3e,0x9c, 0xaf,0x0f,0x88,0xc4, 0xe2,0xba,0x9d,0x8f,
+ 0x61,0xc0,0xc0,0xc2, 0xea,0xb8,0x38,0x6c, 0x1c,0x4e,0x23,0x15, 0xb2,0xe4,0xf2,0x14,
+ 0xf7,0x1b,0x69,0x8f, 0x6e,0x51,0x51,0x7f, 0x54,0x19,0x45,0x02, 0xc1,0x94,0x32,0x86,
+ 0x39,0xd5,0x39,0xce, 0x73,0xcd,0xa1,0x95, 0x08,0x42,0x10,0x84, 0x78,0xd1,0xab,0x5b,
+ 0x50,0xc6,0x32,0x69, 0x27,0x04,0xc9,0x24, 0x93,0x4d,0x38,0x28, 0xa6,0xf1,0x6a,0x38,
+ 0x8c,0x73,0x1a,0xea, 0x38,0x06,0x3d,0xdf, 0x21,0xe2,0xc2,0x22, 0x22,0x22,0x22,0x22,
+ 0x22,0x23,0x5c,0x11, 0x11,0x11,0x02,0xc0, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0f,
+ 0x65,0x14,0x51,0x08, 0x42,0x10,0x84,0x21, 0x0a,0x28,0xa1,0x8c, 0x63,0x18,0xc6,0x31,
+ 0xb0,0x8e,0x48,0x63, 0x18,0xe1,0x36,0x30, 0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x0f,0x60,0xe0,0xf8, 0x1a,0x91,0x5b,0x82, 0xb6,0xff,0x86,0xb7,
+ 0x11,0x5c,0xfa,0xaa, 0xaa,0xab,0x3e,0x9a, 0xaa,0xaa,0xcd,0x55, 0xa1,0x61,0x5f,0x48,
+ 0x14,0x8c,0x94,0x9c, 0xa4,0xac,0xb2,0x0f, 0xc4,0xfd,0x8f,0xec, 0xb9,0x11,0x11,0x11,
+ 0x11,0x11,0x12,0x8a, 0x28,0x5f,0x17,0x0e, 0x08,0x9c,0xfd,0x6e, 0x84,0x51,0x31,0x24,
+ 0xe8,0x88,0x9b,0x36, 0x22,0x76,0xed,0xdb, 0x75,0x08,0x89,0xc9, 0x3d,0x7a,0xf4,0x9f,
+ 0x3e,0x7c,0xf3,0xfc, 0xc3,0x0c,0x30,0xc3, 0x1a,0xe7,0xef,0xdf, 0xa1,0xc5,0xd5,0x92,
+ 0x46,0x94,0x01,0xc0, 0x24,0x9a,0x57,0xd4, 0x21,0x08,0x42,0x10, 0x84,0x21,0x08,0x42,
+ 0x10,0x84,0x21,0xf9, 0x99,0x99,0x99,0x99, 0x99,0x99,0x99,0x99, 0x9c,0xba,0xf5,0x25,
+ 0xe8,0x0b,0xb2,0x5d, 0x92,0xec,0xac,0x2c, 0x2c,0x2c,0x2c,0x2c, 0x2c,0x2c,0x2c,0x2c,
+ 0x2c,0x2c,0x12,0x58, 0xf8,0xd2,0x6b,0x08, 0x37,0x06,0x93,0x14, 0x52,0x40,0x11,0x13,
+ 0x88,0x61,0x22,0x89, 0xa8,0x66,0x37,0xa5, 0xb8,0xdd,0x26,0x9b, 0x45,0xb5,0x6a,0xd5,
+ 0x2b,0x42,0x49,0x25, 0x55,0x28,0x6d,0xbb, 0xa7,0x7a,0xc6,0x80, 0x40,0xd0,0x84,0x0c,
+ 0x10,0x46,0xd6,0x10, 0xbd,0xba,0x76,0x90, 0x81,0xb4,0xef,0x2f, 0x25,0x30,0x4a,0xd4,
+ 0x77,0x82,0x71,0x26, 0xe8,0x56,0xad,0x46, 0xa8,0x4d,0xd5,0x4a, 0x13,0x4a,0x18,0x05,
+ 0x40,0x00,0x2c,0x00, 0xa8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x18,0x00,0x00,0x00,
+ 0x00,0x00,0x15,0x55, 0x55,0x55,0x55,0x55, 0x55,0x55,0x52,0xaa, 0xa5,0x54,0x92,0x41,
+ 0xa4,0x9a,0x70,0x83, 0x4d,0xb0,0x00,0x00, 0x00,0x00,0x00,0x00, 0x10,0x80,0x40,0x81,
+ 0x02,0x04,0x08,0x10, 0x20,0x40,0x81,0x02, 0x04,0x08,0x10,0x30, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x92,0x49, 0x24,0x92,0x49,0x24,
+ 0x90,0x00,0x00,0x49, 0x24,0x98,0x00,0x00, 0x00,0x00,0x00,0x00, 0x22,0xb8,0xc1,0x80,
+ 0x49,0x77,0x25,0x49, 0x24,0x92,0x48,0x49, 0x75,0x2a,0xa0,0x00, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x01,0x52,0x00,0x20, 0x00,0x24,0x80,0x00, 0x00,0x00,0x01,0x24,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0xb8, 0x26,0xad,0x00,0x00, 0x00,0x92,0x49,0x24,
+ 0x92,0x49,0xa0,0x00, 0x10,0x29,0x70,0x00, 0xc1,0x03,0x01,0x00, 0xc0,0x60,0xc6,0x0c,
+ 0x04,0x03,0x60,0x81, 0x03,0x4c,0x1a,0x00, 0x10,0x00,0x80,0x04, 0x03,0x00,0x00,0x1a,
+ 0x1a,0x60,0x00,0x08, 0x10,0x20,0x1a,0x00, 0x40,0x98,0x0c,0x00, 0x02,0x58,0xd8,0x92,
+ 0x49,0x20,0x00,0x00, 0x02,0xed,0x41,0x3c, 0x5e,0xe4,0x49,0xdc, 0xb9,0x73,0x3f,0xcb,
+ 0xee,0x7f,0xe2,0xee, 0x48,0xa7,0x0a,0x12, 0x04,0xe2,0x53,0x41, 0x20,
+ // 0x4dd = 1245 data bytes (11% including 4 header bytes)
+};
+
+static BZ2Manager_t geohittableitemobj_bin_mgr
+ = { geohittableitemobj_bin_bz2, sizeof(geohittableitemobj_bin_bz2), 0, 0 };
+
+//-----------------------------------------------------------------------------------
+
+static const u8 geohittablekart_bin_bz2[] = // GeoHitTableKart.bin
+{
+ // decompressed len: 0x1244 = 4676 bytes
+ 0x00,0x00,0x12,0x44,
+
+ // bzipped data
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xeb,0x5c, 0x75,0x98,0x00,0x03,
+ 0x49,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xd0, 0x04,0x3b,0x9c,0xf2, 0x3d,0x23,0x00,0x00, 0x1d,0x4f,0x4d,0x4d,
+ 0x34,0x1a,0x64,0x03, 0x26,0x80,0xd0,0x34, 0xc8,0x0c,0x86,0x11, 0xea,0x36,0xa1,0x88,
+ 0xc4,0x61,0x1a,0x68, 0x19,0x01,0xa0,0x01, 0xa6,0x10,0x34,0xd1, 0xa6,0x8d,0x03,0x26,
+ 0x43,0x46,0x04,0x68, 0x03,0x46,0x40,0x00, 0x0d,0x34,0xc4,0x1a, 0x03,0x46,0x10,0x03,
+ 0xd1,0xa0,0x41,0xff, 0xaa,0x93,0xfd,0x4f, 0x54,0x86,0x9f,0xf9, 0x53,0xd2,0xa6,0x82,
+ 0x94,0xa0,0x01,0xea, 0x1a,0x00,0x00,0x00, 0x0d,0x00,0x00,0x00, 0x00,0xd3,0xf5,0x47,
+ 0xe4,0x91,0xa1,0xe9, 0x01,0xea,0x68,0xd0, 0xf4,0x9a,0x34,0x01, 0xa0,0x3f,0x54,0xd1,
+ 0xa1,0x9e,0x94,0x7a, 0x23,0xd2,0x33,0x48, 0x01,0xa3,0x10,0x07, 0xea,0x87,0xa9,0xfe,
+ 0xaa,0x00,0x7a,0x8c, 0x99,0x34,0x34,0xd0, 0xc4,0xd9,0xa4,0xf5, 0x1b,0x53,0x7e,0xa4,
+ 0xd4,0x04,0x00,0x06, 0x51,0xea,0x6d,0x46, 0x93,0x0d,0x02,0x63, 0x4d,0x00,0x9a,0x60,
+ 0x4d,0x30,0x00,0x00, 0x00,0x8c,0x00,0x02, 0x18,0x00,0x00,0x00, 0x00,0x00,0x02,0x61,
+ 0x18,0x04,0xc0,0x99, 0x18,0x11,0x82,0x61, 0x31,0x1a,0x62,0x30, 0x02,0x64,0x60,0x8c,
+ 0x00,0x00,0x00,0x01, 0x26,0x98,0x98,0x09, 0x80,0x00,0x98,0x04, 0xc1,0x30,0x26,0x00,
+ 0x00,0x00,0x26,0x00, 0x4c,0x19,0x06,0x4d, 0x34,0x00,0x00,0x00, 0x00,0x00,0x00,0x13,
+ 0x00,0x00,0x00,0x00, 0x4c,0x11,0x80,0x09, 0x80,0x00,0x00,0x00, 0x00,0x03,0x4f,0x29,
+ 0x54,0xd2,0x84,0x30, 0x9a,0x64,0xc8,0xc0, 0x04,0xc0,0x46,0x26, 0xd4,0xfd,0x40,0xd3,
+ 0x44,0x7a,0x00,0x34, 0x4c,0x00,0x46,0x01, 0x1a,0x0c,0x00,0x00, 0x06,0x80,0x00,0x46,
+ 0x00,0x4d,0x0d,0x18, 0x1a,0x02,0x0c,0x4c, 0x8c,0x41,0x93,0x00, 0x04,0xc2,0x18,0x00,
+ 0x00,0x03,0xd4,0x34, 0x2d,0x14,0x24,0x48, 0x22,0x04,0x10,0x91, 0x00,0x30,0x24,0x50,
+ 0x41,0x02,0x08,0xa0, 0x85,0x80,0x04,0x98, 0x00,0x85,0x89,0x03, 0x89,0x0e,0x58,0x18,
+ 0x00,0xe1,0xc0,0x04, 0xa0,0x60,0x40,0x05, 0x41,0x15,0xf8,0x00, 0x0c,0x18,0x03,0x73,
+ 0x43,0x63,0x73,0x83, 0x93,0xb3,0xd3,0xe3, 0xf4,0x14,0x24,0x54, 0xb4,0xc4,0xd4,0xf5,
+ 0x05,0x15,0x25,0x3f, 0xca,0xaa,0xb2,0xba, 0xc2,0xca,0xd2,0xe2, 0xf3,0x03,0x0b,0x10,
+ 0x00,0x2c,0x6c,0x8c, 0xac,0xc0,0x81,0xb3, 0x84,0x68,0x0a,0xd2, 0xdc,0xde,0xe0,0xe2,
+ 0xe4,0xe6,0xe8,0xea, 0xec,0xee,0xf0,0xf2, 0xf4,0xf6,0xf8,0xfa, 0xfc,0xff,0x01,0x03,
+ 0x05,0x07,0x09,0x0b, 0x0d,0x11,0x13,0x15, 0x17,0xd9,0xdb,0xdd, 0xdf,0xe1,0xe3,0xe5,
+ 0xe7,0xe9,0xeb,0xec, 0x10,0x2b,0x4b,0x53, 0x58,0x16,0xc0,0x0d, 0xa0,0xc0,0xb7,0x04,
+ 0x04,0xdf,0x04,0xbe, 0x06,0x01,0x7e,0xaf, 0x50,0xc6,0x20,0xa8, 0x9c,0xc1,0x5e,0x8f,
+ 0x4c,0x94,0x9f,0xaa, 0x52,0x57,0xd7,0x2d, 0xec,0xf6,0xfb,0xa5, 0xfd,0xf3,0x1f,0x0f,
+ 0x8f,0xca,0x66,0x6a, 0x6f,0xe7,0x38,0xd9, 0xba,0x0e,0x27,0x51, 0x9e,0x9f,0x72,0x95,
+ 0x03,0xa0,0x4d,0xda, 0x94,0x34,0x54,0x74, 0x94,0xb4,0xdf,0x4f, 0xaf,0xdb,0xef,0xf8,
+ 0xfc,0xfe,0xbf,0x7f, 0xcf,0xee,0x66,0x44, 0xb2,0xcb,0x2c,0xb2, 0xcb,0x8e,0x30,0xc3,
+ 0x0c,0x30,0xce,0x92, 0xc5,0x8b,0x23,0xde, 0xde,0xf7,0xa6,0x9a, 0x69,0xa6,0xca,0x4a,
+ 0xcb,0x71,0x3c,0x4e, 0x47,0x23,0x91,0xc8, 0x64,0x35,0x9d,0x5b, 0x55,0xc7,0xe3,0xf1,
+ 0xd8,0xed,0x3f,0x4f, 0xc4,0xc4,0xc4,0xdb, 0xb2,0x52,0x49,0x52, 0x4c,0x96,0x7e,0x13,
+ 0xed,0x68,0x1f,0x61, 0x93,0x01,0x4b,0x55, 0x52,0xa4,0x98,0xc2, 0x56,0x93,0xd5,0x32,
+ 0x60,0x5a,0x95,0x58, 0x45,0x55,0x4e,0xdf, 0x11,0xa9,0x2a,0x54, 0xc3,0x2a,0xa4,0xac,
+ 0x4c,0x4e,0xf7,0x21, 0x90,0xd6,0x7f,0xee, 0x50,0x31,0xab,0x1a, 0xb3,0x8e,0x39,0xf3,
+ 0x18,0xf1,0x25,0x26, 0xf3,0x5b,0x79,0x57, 0x89,0x64,0xc9,0x93, 0xc0,0xc6,0x2d,0x6a,
+ 0xa1,0x0c,0x62,0xc8, 0x2a,0x10,0xc4,0x29, 0x79,0xb6,0xc9,0xad, 0x5b,0x9b,0x7a,0x98,
+ 0x9a,0x45,0xca,0x40, 0x9a,0xed,0x26,0x6a, 0xc5,0x38,0x8d,0xe1, 0x61,0x6f,0x8d,0xd0,
+ 0x5e,0xb9,0x73,0xeb, 0xeb,0xb5,0x1f,0x97, 0x23,0xa3,0xd5,0x25, 0x8e,0xd6,0x63,0xd3,
+ 0x7e,0x15,0x81,0x53, 0xbb,0xed,0x39,0x2c, 0x99,0xaf,0xee,0x2c, 0xe9,0xd9,0x9d,0x06,
+ 0xcd,0x48,0x06,0xef, 0xfd,0x54,0x1c,0x4e, 0xa3,0x3d,0x3e,0xe5, 0x2a,0x07,0x41,0x15,
+ 0x14,0xed,0x45,0xb1, 0x82,0x18,0x84,0x22, 0x95,0x0c,0x42,0x14, 0x2c,0x24,0x25,0x3e,
+ 0x16,0x31,0xb4,0x39, 0xdc,0x16,0xf0,0x30, 0xcc,0x18,0x30,0x41, 0x05,0x94,0xf5,0x15,
+ 0x35,0x55,0x7f,0x4f, 0xaf,0xd9,0xc8,0x2b, 0x01,0xb0,0x1a,0xc0, 0x03,0x06,0x18,0x40,
+ 0x6d,0x00,0x0d,0x88, 0x02,0x95,0x21,0x13, 0x12,0xec,0xa9,0x50, 0x00,0x62,0xc0,0x00,
+ 0x00,0x1d,0x41,0x34, 0xde,0x80,0x32,0xf0, 0xc5,0x14,0xd7,0x3c, 0xd4,0xe6,0xac,0x00,
+ 0x00,0x85,0xe7,0x58, 0xc5,0xaa,0x8b,0x21, 0x08,0x42,0x59,0x19, 0xb3,0x66,0x42,0x56,
+ 0x39,0x64,0x21,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x02,0x44,0x00,0x01,
+ 0x46,0x9d,0x1e,0x7c, 0x3f,0x62,0x36,0x27, 0x84,0xd2,0x3d,0x8b, 0x4f,0x04,0x17,0x0f,
+ 0x88,0x7c,0x44,0x69, 0xe7,0xf2,0x38,0xc7, 0x9f,0xde,0x90,0x90, 0xa1,0xa2,0xa3,0xa4,
+ 0xa5,0xa6,0xfd,0xd7, 0x7f,0x04,0xa8,0x50, 0x97,0xf6,0xbc,0xe7, 0x39,0xce,0x73,0x9c,
+ 0xe7,0x39,0xd6,0xad, 0xc9,0xfc,0xbd,0x53, 0xeb,0x67,0x7c,0x5d, 0x9e,0xd2,0xd5,0x8e,
+ 0xab,0x3e,0x0a,0xd5, 0x98,0xd5,0x14,0x74, 0xb3,0x93,0x86,0x37, 0x9c,0xc6,0xaa,0xf4,
+ 0x53,0x53,0x5b,0xd5, 0xf9,0x57,0xa8,0x0c, 0x63,0x58,0x56,0x7b, 0x1a,0x3e,0xfe,0xda,
+ 0x3f,0xf2,0x49,0x24, 0x92,0x49,0x45,0x21, 0x08,0xc6,0xda,0x93, 0x12,0x7a,0x94,0xcb,
+ 0xd5,0xaf,0x62,0x22, 0xc8,0x22,0x22,0x22, 0x22,0x22,0x22,0x22, 0x82,0x2e,0x81,0x11,
+ 0x11,0x11,0x11,0x11, 0x11,0x11,0x57,0xae, 0x69,0x5c,0x84,0x28, 0x42,0x84,0x32,0x21,
+ 0x42,0x13,0xa1,0x3a, 0x17,0xd0,0xa3,0x16, 0xf1,0x6f,0x16,0xf1, 0x6f,0x14,0xc5,0xc5,
+ 0x71,0x84,0xc3,0x83, 0x3e,0x9d,0xcb,0xa0, 0x94,0x12,0x80,0x82, 0x49,0x21,0x74,0xd4,
+ 0x94,0x92,0x15,0x34, 0xe2,0x51,0x30,0x98, 0x68,0x8c,0xbc,0x0d, 0x4c,0x12,0xa1,0x69,
+ 0x7a,0x73,0x2a,0x56, 0x19,0x58,0x58,0x0a, 0xac,0x04,0xa4,0xa0, 0xa8,0x95,0x00,0x25,
+ 0x54,0xad,0x33,0x0b, 0x0b,0x0d,0xaa,0xa8, 0xdb,0x55,0x2a,0x54, 0xbb,0xbb,0xb2,0xaa,
+ 0x4a,0xbb,0x6e,0xee, 0xec,0x92,0xed,0x92, 0xa4,0x96,0x49,0x57, 0x6d,0x95,0x57,0x6d,
+ 0x95,0x23,0x6d,0xb7, 0x76,0x54,0xbb,0x6c, 0xa9,0x76,0xdd,0xdd, 0xd9,0x2e,0xd9,0x2c,
+ 0xbb,0x65,0x8d,0xb6, 0xdd,0xc9,0x65,0xdb, 0x56,0x5d,0xb6,0x36, 0xd8,0xdd,0xdc,0xbb,
+ 0x6c,0xab,0x22,0x44, 0xa9,0x52,0x92,0xaa, 0x44,0x48,0x01,0x20, 0x05,0x40,0x00,0x00,
+ 0x00,0x00,0x21,0x00, 0x81,0x02,0x04,0x08, 0x10,0x20,0x40,0x81, 0x02,0x04,0x08,0x10,
+ 0x20,0x50,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x28,0xaa,0x8a,0x28, 0xaa,0xaa,0xaa,0x00, 0x16,0xaa,0x90,0x20, 0x41,0x55,0x55,0x51,
+ 0xc6,0xdd,0xda,0xae, 0x35,0x4b,0x55,0x55, 0x20,0xb8,0x57,0x76, 0x80,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x16,0xa0, 0x10,0x00,0x05,0x40, 0x00,0x00,0x00,0x01,
+ 0x50,0x00,0x00,0x00, 0x00,0x00,0x00,0x2a, 0x92,0x54,0xc0,0x00, 0x00,0x00,0x00,0x00,
+ 0x01,0x84,0xaa,0xaa, 0x43,0x02,0xab,0x6b, 0x6a,0x41,0x5b,0x5b, 0x5b,0x5b,0x55,0x55,
+ 0x56,0xd5,0x5b,0x55, 0x55,0x55,0x5b,0x55, 0x6d,0x6d,0x55,0xb5, 0x55,0x55,0x48,0x2a,
+ 0x42,0xd5,0x55,0x48, 0x5a,0x90,0x59,0x80, 0x00,0x00,0x00,0x00, 0x03,0x04,0x49,0x58,
+ 0x79,0x36,0x4a,0xc9, 0xe4,0xf2,0x7a,0x3e, 0x73,0x94,0x7c,0xe2, 0xee,0x48,0xa7,0x0a,
+ 0x12,0x1d,0x6b,0x8e, 0xb3,0x00,
+ // 0x526 = 1318 data bytes (28% including 4 header bytes)
+};
+
+static BZ2Manager_t geohittablekart_bin_mgr
+ = { geohittablekart_bin_bz2, sizeof(geohittablekart_bin_bz2), 0, 0 };
+
+//-----------------------------------------------------------------------------------
+
+static const u8 geohittablekartobj_bin_bz2[] = // GeoHitTableKartObj.bin
+{
+ // decompressed len: 0x1244 = 4676 bytes
+ 0x00,0x00,0x12,0x44,
+
+ // bzipped data
+ 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x97,0x97, 0xae,0xb9,0x00,0x03,
+ 0x45,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,
+ 0xff,0xff,0xff,0xd0, 0x03,0xfd,0x8e,0x78, 0xde,0x06,0x72,0x00, 0x10,0x9f,0xfa,0xa7,
+ 0xaa,0x80,0x00,0x00, 0x00,0x00,0x00,0x00, 0x68,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x34,0x06,0x80,0x00, 0x00,0x00,0x00,0x68, 0xd0,0x0f,0x7a,0xa8, 0x01,0xfe,0xaa,0x00,
+ 0x00,0x06,0x80,0x3d, 0x46,0x86,0x9a,0x1b, 0x7e,0x54,0xa7,0xbc, 0xaa,0x06,0xfc,0xa7,
+ 0xa5,0x4d,0x08,0x20, 0x34,0x34,0xc2,0x64, 0x19,0x32,0x68,0xc4, 0xc2,0x68,0x34,0x61,
+ 0x1a,0x68,0x0d,0x30, 0x40,0xd1,0x88,0xc4, 0x01,0xa7,0xfa,0xa8, 0x61,0x3d,0xea,0xa0,
+ 0x7a,0x34,0xc0,0x43, 0x27,0xa9,0xa6,0x40, 0x43,0x4c,0x4d,0x34, 0x01,0x88,0x64,0x68,
+ 0x1a,0x00,0x06,0x4d, 0x19,0x1a,0x68,0x0c, 0x46,0x98,0x60,0x21, 0xa9,0xff,0xaa,0x53,
+ 0x4d,0x34,0xf2,0x69, 0xa9,0xa3,0x0a,0x8d, 0xfa,0xaa,0xa0,0x00, 0x00,0x00,0x1a,0x00,
+ 0x00,0x69,0xa6,0x80, 0xf2,0x83,0x4d,0x06, 0x9f,0xa6,0xa8,0xd0, 0x3f,0xf5,0x54,0x00,
+ 0x32,0x18,0x8d,0x00, 0x06,0x80,0x03,0x40, 0x07,0xea,0x20,0x00, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x32,0x00, 0x34,0x00,0xd0,0x00, 0x00,0x24,0xc0,0x01, 0x30,0x00,0x13,0x00,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x08, 0x9f,0xea,0x54,0x95,
+ 0x1a,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x01,0xea,0x0f,0x50,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x1a, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x64,0x00,0x1a,0x1a, 0x15,0x16,0x16,0x97, 0x17,0x98,0x18,0x99, 0x19,0x9a,0x1a,0x9b,
+ 0x1b,0x9c,0x1d,0x1d, 0x9e,0x1e,0x9f,0x1f, 0xa0,0x21,0x21,0xa2, 0x22,0xa3,0x23,0xa4,
+ 0x24,0xa5,0x25,0xa6, 0x26,0xa7,0x27,0xa8, 0x28,0xa9,0x29,0xaa, 0x2a,0xab,0x2b,0xac,
+ 0x2c,0xad,0x2d,0xae, 0x2e,0xaf,0x0b,0x77, 0xbc,0xde,0xc4,0x44, 0xc5,0x45,0xef,0x89,
+ 0x0f,0x7f,0xc3,0x27, 0x19,0x1a,0x50,0xa9, 0x62,0xe6,0x0c,0x9a, 0x37,0x1f,0x21,0x22,
+ 0x70,0xec,0x91,0x12, 0x67,0xa5,0x0f,0xa0, 0x95,0x96,0x97,0x98, 0x99,0x9a,0x9c,0xe5,
+ 0xf3,0x39,0xbc,0xee, 0x7f,0x42,0x8a,0x8f, 0xa4,0xa9,0x5d,0xea, 0xcb,0xe5,0xbf,0xdb,
+ 0xff,0xf7,0xff,0x00, 0x9c,0x64,0x69,0x48, 0xe2,0xa5,0x8b,0x98, 0x32,0x68,0xdc,0x7c,
+ 0x84,0x89,0xc3,0xb2, 0x44,0x49,0x9e,0x94, 0x3e,0x82,0x56,0x5a, 0x5c,0x42,0x10,0x84,
+ 0x21,0x08,0x55,0x75, 0x9e,0xcf,0x6d,0x6f, 0xba,0xbb,0xdf,0xf0, 0xf8,0xfc,0xbe,0x7f,
+ 0x4a,0xfb,0x0b,0x1f, 0xaf,0xda,0xcb,0xef, 0x67,0x69,0x6b,0x6c, 0x85,0x12,0x34,0x89,
+ 0x53,0x27,0xb7,0xb8, 0xb9,0x51,0xf8,0x05, 0x3f,0x9b,0xaf,0xd5, 0xdf,0xee,0xf3,0xf8,
+ 0xa9,0x5d,0xea,0xcb, 0xe5,0xbf,0xaf,0xdf, 0xf3,0xfa,0x88,0xa4, 0x44,0x44,0x44,0x44,
+ 0x44,0x44,0x44,0x44, 0x44,0x44,0x47,0x1c, 0x71,0xc7,0x1c,0x71, 0xce,0xcf,0x6a,0x2e,
+ 0x2e,0x2a,0x2b,0xb8, 0xf1,0xe5,0x86,0xbe, 0xfe,0xfc,0xfc,0xed, 0xdb,0xa7,0x4f,0xaf,
+ 0xb5,0x0b,0xb5,0x6f, 0xc7,0xca,0x52,0x98, 0x61,0x4a,0x61,0xe3, 0xb7,0x55,0x78,0xe8,
+ 0x18,0x1b,0x1b,0x6d, 0xb6,0xdb,0x6d,0x34, 0xd3,0x4d,0x40,0x40, 0x76,0xfc,0x1e,0x28,
+ 0xef,0x37,0x9f,0xd3, 0xea,0x8f,0xf6,0x7b, 0x75,0x9b,0x56,0x4d, 0x56,0xb5,0x5b,0x65,
+ 0x55,0xaa,0xd5,0x6a, 0xad,0x6d,0xaf,0x57, 0xd1,0xa0,0xfd,0x58, 0x2c,0x1e,0x1b,0xb0,
+ 0xd8,0xb5,0x56,0xc4, 0xb5,0xb0,0x0b,0xad, 0x55,0x56,0xab,0x60, 0x70,0x18,0x1c,0x0d,
+ 0xf5,0xf5,0xf5,0xf5, 0xf5,0xf5,0xf5,0xf7, 0xd9,0xa7,0x7d,0xd8, 0x3c,0x82,0xd5,0x8b,
+ 0xd9,0x4b,0x52,0x96, 0xa5,0x28,0x50,0xad, 0xbe,0xa4,0xb5,0x95, 0x56,0xb5,0x6a,0xd9,
+ 0x0d,0xeb,0xad,0x6b, 0xcb,0x5a,0xc0,0x55, 0xa8,0xab,0x52,0xad, 0x6a,0xb6,0x0b,0x07,
+ 0x2e,0xbc,0xa5,0x5f, 0xdf,0xdf,0xdf,0xdf, 0x8c,0x63,0x18,0xc6, 0x31,0x8c,0x63,0xcf,
+ 0x92,0x20,0x82,0x2d, 0x2d,0x6d,0x90,0xa2, 0x46,0x91,0x2a,0x64, 0xf6,0xf7,0x17,0x2a,
+ 0x28,0x41,0x48,0x6b, 0xc0,0x00,0x00,0x00, 0x00,0x00,0x02,0x00, 0x08,0x88,0x88,0xac,
+ 0x24,0x44,0x44,0x44, 0x44,0x44,0x44,0x44, 0x56,0xe1,0x11,0x42, 0x10,0x84,0x21,0x08,
+ 0x40,0x88,0xde,0x71, 0x87,0x39,0xce,0x73, 0x9c,0xf3,0x48,0x59, 0x36,0x50,0xe7,0x36,
+ 0x58,0xe7,0xc8,0x42, 0x88,0x88,0x88,0x88, 0x88,0x88,0x88,0x88, 0x88,0x88,0x88,0x88,
+ 0xfd,0xe1,0xb5,0x30, 0xd9,0x52,0xe6,0x6a, 0x91,0xab,0xd6,0xc3, 0xc3,0x96,0x34,0x88,
+ 0x8b,0x7f,0xc5,0x22, 0x27,0x7c,0x37,0x6e, 0xdd,0xbf,0x4a,0xbf, 0x1f,0x9f,0xd7,0xef,
+ 0xf9,0x1a,0xb6,0x79, 0x5a,0xe7,0xf6,0x39, 0x4a,0x52,0x94,0xa5, 0x29,0x4a,0x55,0xbd,
+ 0x41,0xdd,0x4a,0x4d, 0x12,0x11,0x29,0xec, 0xc4,0x47,0xfe,0x61, 0xf1,0x4b,0xa8,0x80,
+ 0xb1,0x87,0xc9,0x2e, 0xa2,0x82,0x29,0x29, 0x34,0x58,0x45,0xbc, 0x8c,0x33,0xc0,0x78,
+ 0x94,0x9b,0xec,0x94, 0x99,0xe8,0x3d,0x07, 0xa0,0xf4,0x1f,0x07, 0xd0,0x1f,0x25,0x26,
+ 0x8c,0x07,0xe0,0xfd, 0x2e,0x92,0xfb,0xfc, 0xe3,0x8e,0x38,0xe3, 0x99,0xe6,0xb5,0xac,
+ 0x8d,0xb2,0x84,0x14, 0x08,0x23,0x50,0xad, 0x92,0xea,0x92,0xd6, 0xb5,0xad,0x6b,0x5a,
+ 0xd6,0xb5,0xad,0x6b, 0x5b,0x58,0xc6,0x31, 0x8c,0x63,0x18,0xc6, 0x31,0x8c,0x63,0x18,
+ 0xc8,0xe8,0x14,0x18, 0x0d,0x69,0x9a,0x66, 0x83,0x41,0xa0,0xd0, 0x68,0x34,0x1a,0x0d,
+ 0x06,0x83,0x58,0x46, 0x11,0x84,0xcf,0xe5, 0xad,0x8b,0x2d,0x55, 0x6a,0xcf,0xae,0xa9,
+ 0x6a,0xb9,0x6a,0xab, 0x2a,0x8a,0x8a,0xa9, 0x56,0x92,0x59,0x16, 0x95,0x6a,0xd0,0x13,
+ 0x42,0x68,0x57,0x55, 0xaa,0xd6,0xab,0xd7, 0x5e,0xb5,0x5a,0xaf, 0x2a,0xd7,0x5d,0x2a,
+ 0xd6,0xb5,0x55,0xae, 0xba,0xeb,0xaa,0xd6, 0xb5,0x55,0x5c,0xcb, 0x0a,0x53,0x0a,0x50,
+ 0x2d,0x86,0x06,0x41, 0x60,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00, 0x2c,0x05,0x82,0xd6, 0xb5,0xad,0x6b,0x5b, 0x2c,0xb2,0xcb,0x20,
+ 0x00,0x00,0x29,0x42, 0x8a,0x28,0xa2,0x8a, 0x28,0xa2,0x8a,0x28, 0xa2,0x8a,0x28,0xb0,
+ 0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0x24, 0x92,0x49,0x24,0x92, 0x49,0x24,0x92,0x49,
+ 0x24,0x02,0xe9,0x14, 0x92,0x49,0x24,0x92, 0x49,0x24,0x92,0x44, 0xd0,0xee,0xba,0xe8,
+ 0x92,0x29,0x24,0x92, 0x29,0x22,0x4b,0xa5, 0xd7,0x40,0x00,0x00, 0x00,0x00,0x05,0xd2,
+ 0x05,0x00,0x92,0x00, 0x00,0x12,0x40,0x00, 0x00,0x01,0x6b,0x45, 0x5a,0xaf,0x00,0x00,
+ 0x00,0x28,0xa5,0xe9, 0x24,0x8a,0x29,0x24, 0x51,0x45,0x24,0x8a, 0x28,0xa4,0x91,0x45,
+ 0x24,0x92,0x45,0x14, 0x51,0x45,0x24,0x92, 0x45,0x24,0x92,0x45, 0x14,0x51,0x45,0x14,
+ 0x52,0x49,0x24,0x51, 0x45,0x24,0x8b,0x5e, 0x00,0x00,0x0b,0xd5, 0x15,0x6c,0x33,0x0b,
+ 0x2a,0xad,0x85,0xc2, 0xe1,0x73,0x6c,0x93, 0x01,0xff,0x8b,0xb9, 0x22,0x9c,0x28,0x48,
+ 0x4b,0xcb,0xd7,0x5c, 0x80,
+ // 0x495 = 1173 data bytes (25% including 4 header bytes)
+};
+
+static BZ2Manager_t geohittablekartobj_bin_mgr
+ = { geohittablekartobj_bin_bz2, sizeof(geohittablekartobj_bin_bz2), 0, 0 };
+
+///////////////////////////////////////////////////////////////////////////////
+
+BZ2Manager_t * GetCommonBZ2Manager ( file_format_t fform )
+{
+ BZ2Manager_t *bm;
+ switch(fform)
+ {
+ case FF_ITEMSLT:
+ case FF_ITEMSLT_TXT:
+ bm = &itemslot_bin_mgr;
+ break;
+
+ case FF_KMG:
+ case FF_KMG_TXT:
+ bm = &minigame_kmg_mgr;
+ break;
+
+ case FF_OBJFLOW:
+ case FF_OBJFLOW_TXT:
+ bm = &objflow_bin_mgr;
+ break;
+
+ case FF_GH_ITEM:
+ case FF_GH_ITEM_TXT:
+ bm = &geohittableitem_bin_mgr;
+ break;
+
+ case FF_GH_IOBJ:
+ case FF_GH_IOBJ_TXT:
+ bm = &geohittableitemobj_bin_mgr;
+ break;
+
+ case FF_GH_KART:
+ case FF_GH_KART_TXT:
+ bm = &geohittablekart_bin_mgr;
+ break;
+
+ case FF_GH_KOBJ:
+ case FF_GH_KOBJ_TXT:
+ bm = &geohittablekartobj_bin_mgr;
+ break;
+
+ default:
+ return 0;
+ }
+
+ DecodeBZIP2Manager(bm);
+ return bm;
+}
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////// global common ///////////////
+///////////////////////////////////////////////////////////////////////////////
+
+const VarMap_t * SetupVarsCOMMON()
+{
+ static VarMap_t vm = {0};
+ if (!vm.used)
+ {
+ DefineObjectNameVars(&vm);
+ DefineParserVars(&vm);
+
+
+ //--- setup integer variables
+
+ struct inttab_t { ccp name; int val; };
+ static const struct inttab_t inttab[] =
+ {
+ { "NEWOBJ$OFF", NEWOBJ_OFF },
+ { "NEWOBJ$REPLACE", NEWOBJ_REPLACE },
+ { "NEWOBJ$SHRINK", NEWOBJ_SHRINK },
+ { "NEWOBJ$GROW", NEWOBJ_GROW },
+
+ { "NEW_OBJECT", NEWOBJ__DEFAULT },
+ { "OBJECT_SLOTS", OBJMGR_USUAL_SLOTS },
+ { "MAX_OBJECT_ID", OBJMGR_USUAL_MAX_OBJID },
+
+ {0,0}
+ };
+
+ const struct inttab_t * ip;
+ for ( ip = inttab; ip->name; ip++ )
+ DefineIntVar(&vm,ip->name,ip->val);
+ }
+
+ return &vm;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+bool WriteObjMgrToSetupSection
+(
+ FILE *f, // output file
+ const object_mgr_t *om, // valid object manager
+ bool always, // false: write only if not standard
+ uint header, // 0: off
+ // 1: start with: [SECTION]\n @REVISION=
+ // 2: add 'section_sep' before step 1
+ bool explain // true: insert extented explainations
+)
+{
+ DASSERT(f);
+ DASSERT(om);
+
+ if ( !always && IsStandardObjType(&om->otype) )
+ return false;
+
+ if (header)
+ {
+ if (header>1)
+ fputs(section_sep,f);
+ fprintf(f,"\r\n[SETUP]\r\nREVISION = %u\r\n",REVISION_NUM );
+ }
+
+ if (explain)
+ fputs(text_explain_objmgr_cr,f);
+
+ fprintf(f,
+ "\r\n"
+ "NEW-OBJECT = NEWOBJ$%s\r\n"
+ "OBJECT-SLOTS = 0x%03x\r\n"
+ "MAX-OBJECT-ID = 0x%03x\r\n"
+ ,GetNewObjectName(om->otype.new_object)
+ ,om->otype.object_slots
+ ,om->otype.max_object_id
+ );
+
+ return true;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+bool SetupObjMgrBySI
+(
+ object_mgr_t * om, // valid data
+ ScanInfo_t * si, // valid data
+ ccp name // name of command
+)
+{
+ DASSERT(om);
+ DASSERT(si);
+ DASSERT(name);
+
+ if ( *name == '@' )
+ name++;
+
+ if (!strcmp(name,"NEW-OBJECT"))
+ {
+ u32 val;
+ ScanU32SI(si,&val,1,0);
+ if ( val < NEWOBJ__N )
+ {
+ om->otype.new_object = val;
+ DefineIntVar(&si->gvar,"NEW_OBJECT",val);
+ PRINT("NEW_OBJECT = %d",val);
+ }
+ return true;
+ }
+
+ if (!strcmp(name,"OBJECT-SLOTS"))
+ {
+ u32 val;
+ ScanU32SI(si,&val,1,0);
+ if ( val > OBJMGR_MAX_SLOTS )
+ val = OBJMGR_MAX_SLOTS;
+ om->otype.object_slots = val;
+ DefineIntVar(&si->gvar,"OBJECT_SLOTS",val);
+ PRINT("OBJECT_SLOTS = %d = 0x%x",val,val);
+ return true;
+ }
+
+ if (!strcmp(name,"MAX-OBJECT-ID"))
+ {
+ u32 val;
+ ScanU32SI(si,&val,1,0);
+ if ( val > OBJMGR_MAX_OBJID )
+ val = OBJMGR_MAX_OBJID;
+ om->otype.max_object_id = val;
+ DefineIntVar(&si->gvar,"MAX_OBJECT_ID",val);
+ PRINT("MAX_OBJECT_ID = %d = 0x%x",val,val);
+ return true;
+ }
+
+ return false;
+}
+
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////// object_mgr_t ///////////////
+///////////////////////////////////////////////////////////////////////////////
+
+void InitializeObjMgr ( object_mgr_t *om, file_format_t fform )
+{
+ DASSERT(om);
+ memset(om,0,sizeof(*om));
+ InitializeObjType(&om->otype,fform);
+ #if USE_OBJECT_MANAGER
+ if (om->otype.row_size)
+ SetupObjMgr(om,om->otype.row_size);
+ #endif
+}
+
+//-----------------------------------------------------------------------------
+
+void ResetObjMgr ( object_mgr_t *om )
+{
+ if (om)
+ {
+ FREE(om->list);
+ InitializeObjMgr(om,om->otype.fform);
+ }
+}
+
+//-----------------------------------------------------------------------------
+
+ccp LogStateObjMgr ( const object_mgr_t *om )
+{
+ if (!om)
+ return "-";
+
+ if (!om->list)
+ return LogObjType(&om->otype);
+
+ const int PRIO_SIZE = OBJMGR_MAX_PRIO+1;
+
+ uint usage_count = 0;
+ u16 count[PRIO_SIZE], max[PRIO_SIZE];
+ memset(count,0,sizeof(count));
+ memset(max,0,sizeof(max));
+
+ int i;
+ for ( i = 0; i < OBJMGR_MAX_SLOTS; i++ )
+ {
+ const u8 prio = om->prio[i];
+ if ( prio <= OBJMGR_MAX_PRIO )
+ {
+ count[prio]++;
+ max[prio] = i;
+ if (prio)
+ usage_count++;
+ }
+ }
+
+ char buf[200], *dest = buf;
+ dest = snprintfE(dest,buf+sizeof(buf),
+ "nr=%u/%u ds=%u %s",
+ usage_count, OBJMGR_MAX_SLOTS, om->row_data_size,
+ LogObjType(&om->otype) );
+
+ for ( i = 0; i < PRIO_SIZE; i++ )
+ if (count[i])
+ dest = snprintfE(dest,buf+sizeof(buf),
+ " P%u=%u,%x",i,count[i],max[i]);
+
+ MARK_USED(count,max);
+ return CopyCircBuf0(buf,dest-buf);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#if USE_OBJECT_MANAGER
+///////////////////////////////////////////////////////////////////////////////
+
+bool SetupObjMgr ( object_mgr_t *om, uint row_size )
+{
+ DASSERT(om);
+ DASSERT( row_size <= OBJMGR_MAX_ROW_SIZE );
+
+ if ( row_size >= 2 && row_size <= OBJMGR_MAX_ROW_SIZE )
+ {
+ FREE(om->list);
+ om->otype.row_size = row_size;
+ om->row_data_size = row_size - 2;
+ om->list = CALLOC(row_size,OBJMGR_MAX_SLOTS);
+
+ uint obj_id;
+ u8 *dest = om->list;
+ for ( obj_id = 0; obj_id < OBJMGR_MAX_SLOTS; obj_id++ )
+ {
+ write_be16(dest,obj_id);
+ dest += row_size;
+ }
+ return true;
+ }
+ return false;
+}
+
+//-----------------------------------------------------------------------------
+
+bool SetupObjMgrByData ( object_mgr_t *om, cvp data, uint data_size, u8 prio )
+{
+ bool stat = ScanObjType(&om->otype,data,data_size,data_size);
+ if (stat)
+ {
+ SetupObjMgr(om,om->otype.row_size);
+
+ uint i;
+ const u8 *ptr = (u8*)data + om->otype.slot_offset;
+ for ( i = 0; i < om->otype.object_slots; i++, ptr += om->otype.row_size )
+ InsertObjMgr(om,be16(ptr),ptr+2,prio);
+ }
+ return stat;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+u8 * InsertObjMgr ( object_mgr_t *om, uint obj_id, cvp data, u8 prio )
+{
+ DASSERT(om);
+ if (!prio)
+ return RemoveObjMgr(om,obj_id);
+
+ if ( om && om->list && obj_id < OBJMGR_MAX_SLOTS )
+ {
+ u8 *dest = om->list + obj_id * om->otype.row_size;
+ if ( om->prio[obj_id] <= prio )
+ {
+ om->prio[obj_id] = prio;
+ memcpy( dest+2, data, om->row_data_size );
+ if ( om->max_prio < prio )
+ om->max_prio = prio;
+ }
+ return dest;
+ }
+ return 0;
+}
+
+//-----------------------------------------------------------------------------
+
+u8 * ClearObjMgr ( object_mgr_t *om, uint obj_id )
+{
+ DASSERT(om);
+ if ( om && om->list && obj_id < OBJMGR_MAX_SLOTS )
+ {
+ om->prio[obj_id] = 1;
+ u8 *dest = om->list + obj_id * om->otype.row_size;
+ memset( dest+2, 0, om->row_data_size );
+ return dest;
+ }
+ return 0;
+}
+
+//-----------------------------------------------------------------------------
+
+u8 * RemoveObjMgr ( object_mgr_t *om, uint obj_id )
+{
+ DASSERT(om);
+ if ( om && om->list && obj_id < OBJMGR_MAX_SLOTS )
+ {
+ om->prio[obj_id] = 0;
+ u8 *dest = om->list + obj_id * om->otype.row_size;
+ memset( dest+2, 0, om->row_data_size );
+ return dest;
+ }
+ return 0;
+}
+
+//-----------------------------------------------------------------------------
+
+u8 * GetObjMgr ( object_mgr_t *om, uint obj_id )
+{
+ DASSERT(om);
+ if ( om && om->list && obj_id < OBJMGR_MAX_SLOTS )
+ return om->list + obj_id * om->otype.row_size;
+ return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+u8 * CreateBinObjMgr
+(
+ // return alloced data
+ uint *res_size, // not NULL: store size of alloced data
+
+ const object_mgr_t
+ *om, // valid object manager
+ uint min_prio, // minimal prio
+ uint max_elem, // >0: limit number of elements
+ uint max_obj_id // >0: ignore objects with id >#
+)
+{
+ DASSERT(om);
+ PRINT("CreateBinObjMgr( minp=%u, maxe=%u, maxo=%u )"
+ " list=%d, USE_OBJECT_MANAGER=%d\n",
+ min_prio, max_elem, max_obj_id, !om ? -1 : om->list!=0,
+ USE_OBJECT_MANAGER );
+ PRINT(" -> %s\n",LogStateObjMgr(om));
+ if ( !om || !om->list || !om->otype.row_size )
+ return 0;
+
+ if ( !max_elem || max_elem >= OBJMGR_MAX_SLOTS )
+ max_elem = OBJMGR_MAX_SLOTS - 1;
+ const uint limit_obj_id = max_obj_id && max_obj_id < OBJMGR_MAX_SLOTS
+ ? max_obj_id : OBJMGR_MAX_SLOTS - 1;
+
+
+ //--- statistical analysis
+
+ const int PRIO_SIZE = OBJMGR_MAX_PRIO+1;
+
+ uint total_count = 0;
+ u16 count[PRIO_SIZE], max[PRIO_SIZE];
+ memset(count,0,sizeof(count));
+ memset(max,0,sizeof(max));
+
+ int i;
+ for ( i = 0; i < limit_obj_id; i++ )
+ {
+ const u8 prio = om->prio[i];
+ if ( prio >= min_prio && prio <= OBJMGR_MAX_PRIO )
+ {
+ count[prio]++;
+ max[prio] = i;
+ total_count++;
+ }
+ }
+
+
+ //--- find elements to insert
+
+ uint total_use = 0;
+ u16 use[OBJMGR_MAX_SLOTS];
+ memset(use,0,sizeof(use));
+
+ int prio, max_obj_used = 0;
+ for ( prio = OBJMGR_MAX_PRIO;
+ prio >= min_prio && total_use < max_elem; prio-- )
+ {
+ if (count[prio])
+ {
+ uint i;
+ for ( i = 0; i < limit_obj_id; i++ )
+ if ( prio == om->prio[i] )
+ {
+ use[i]++;
+ if ( max_obj_used < i )
+ max_obj_used = i;
+ if ( ++total_use >= max_elem )
+ break;
+ }
+ }
+ }
+
+ if (!max_obj_id)
+ max_obj_id = max_obj_used;
+
+ PRINT(" -> FOUND: %u/%u/%u, max_obj=%x/%x/%x\n",
+ total_use, total_count, max_elem,
+ max_obj_used, max_obj_id, limit_obj_id );
+
+
+ //--- calculate data size
+
+ const uint data_size
+ = om->otype.slot_offset
+ + total_use * om->otype.row_size
+ + (max_obj_id+1) * sizeof(u16);
+ if (res_size)
+ *res_size = data_size;
+ u8 *data = MALLOC(data_size);
+
+
+ //--- fill data
+
+ write_be16( data, total_use );
+ write_be16( data+2, om->row_data_size/2 );
+
+ u8 *bin = data + om->otype.slot_offset;
+ u16 *ref = (u16*)( bin + total_use * om->otype.row_size );
+ DASSERT( (u8*)ref + (max_obj_id+1) * sizeof(u16) == data + data_size );
+ memset( ref, ~0, (max_obj_id+1) * sizeof(u16) );
+
+ uint idx = 0;
+
+ for ( i = 0; i <= max_obj_id; i++ )
+ {
+ if (!use[i])
+ continue;
+
+ memcpy(bin,om->list+i*om->otype.row_size,om->otype.row_size);
+ bin += om->otype.row_size;
+ ref[i] = htons(idx++);
+ }
+ DASSERT( idx == total_use );
+
+ return data;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+bool VerifyObjMgr
+(
+ const object_mgr_t
+ *om, // valid object manager
+ cvp data, // data to compare
+ uint data_size, // size of 'data'
+ ccp identify // string to identify the caller
+)
+{
+ uint om_size;
+ u8 *om_data = CreateBinObjMgr(&om_size,om,1,0,0);
+
+ bool status = false;
+ if (!om_data)
+ fprintf(stderr,"VERIFY OBJ-MGR[%s]: no data\n",identify);
+ else if ( om_size != data_size )
+ fprintf(stderr,
+ "VERIFY OBJ-MGR[%s]: size differ: %u : %u\n",
+ identify, data_size, om_size );
+ else if ( memcmp(om_data,data,data_size) )
+ fprintf(stderr,"VERIFY OBJ-MGR[%s]: data differ\n",identify);
+ else
+ status = true;
+
+ if (!status)
+ fprintf(stderr,"LOG: %s\n",LogStateObjMgr(om));
+
+ if ( !status && om_data )
+ {
+ XDump_t xd;
+ InitializeXDump(&xd);
+ xd.f = stderr;
+ xd.indent = 6;
+ xd.format = XDUMPF_INT_2;
+ xd.endian = DC_BIG_ENDIAN;
+ xd.assumed_size = data_size < om_size ? data_size : om_size;
+ xd.min_width = om->otype.row_size;
+ while ( xd.min_width > 40 && !(xd.min_width&1) )
+ xd.min_width /= 2;
+
+ #if 0
+ const uint off = om->otype.slot_offset;
+ if ( data_size <= off || om_size <= off || memcmp(data,om_data,off) )
+ XDiff( &xd, data,data_size,true, om_data,om_size,true, 5,false );
+ else
+ XDiff( &xd, data+off,data_size-off,true,
+ om_data+off,om_size-off,true, 5,false );
+ #else
+ u64 break_list[] = { om->otype.slot_offset, om->otype.ref_offset, 0 };
+ xd.addr_break = break_list;
+ XDiff( &xd, data,data_size,true, om_data,om_size,true, 5,false );
+ #endif
+ ResetXDump(&xd);
+ }
+ FREE(om_data);
+ return status;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+
+bool VerifyBinObjMgr ( cvp data, uint data_size, ccp identify )
+{
+ object_mgr_t om;
+ InitializeObjMgr(&om,FF_UNKNOWN);
+ SetupObjMgrByData(&om,data,data_size,1);
+ const bool stat = VerifyObjMgr(&om,data,data_size,identify);
+ ResetObjMgr(&om);
+ return stat;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#endif // USE_OBJECT_MANAGER
+//
+///////////////////////////////////////////////////////////////////////////////
+/////////////// END ///////////////
+///////////////////////////////////////////////////////////////////////////////
+