From fb3699fb8902bd46ba0d984bc3fd8c30ae993793 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Fri, 22 Dec 2017 10:20:32 -0800 Subject: [PATCH] stash work-in-progress modified: stub/src/amd64-darwin.macho-main.c modified: stub/src/amd64-darwin.macho-upxmain.c modified: stub/src/arm.v5a-darwin.macho-entry.S modified: stub/src/arm.v5a-darwin.macho-fold.S modified: stub/src/arm.v5a-darwin.macho-main.c modified: stub/src/arm64-darwin.macho-entry.S modified: stub/src/arm64-darwin.macho-fold.S modified: stub/src/i386-darwin.macho-upxmain.c --- src/stub/amd64-darwin.macho-fold.h | 160 ++- src/stub/arm.v5a-darwin.macho-entry.h | 1257 ++++++++--------- src/stub/arm.v5a-darwin.macho-fold.h | 226 +-- src/stub/arm64-darwin.macho-entry.h | 390 ++--- src/stub/arm64-darwin.macho-fold.h | 572 ++++---- src/stub/src/amd64-darwin.macho-main.c | 93 +- src/stub/src/amd64-darwin.macho-upxmain.c | 3 +- src/stub/src/arm.v5a-darwin.macho-entry.S | 75 +- src/stub/src/arm.v5a-darwin.macho-fold.S | 124 +- src/stub/src/arm.v5a-darwin.macho-main.c | 460 +----- src/stub/src/arm64-darwin.macho-entry.S | 13 +- src/stub/src/arm64-darwin.macho-fold.S | 64 +- src/stub/src/i386-darwin.macho-upxmain.c | 2 +- src/stub/tmp/amd64-darwin.macho-fold.map | 66 +- .../tmp/arm.v5a-darwin.macho-entry.bin.dump | 14 +- src/stub/tmp/arm.v5a-darwin.macho-fold.map | 93 +- .../tmp/arm64-darwin.macho-entry.bin.dump | 4 +- src/stub/tmp/arm64-darwin.macho-fold.map | 116 +- 18 files changed, 1681 insertions(+), 2051 deletions(-) diff --git a/src/stub/amd64-darwin.macho-fold.h b/src/stub/amd64-darwin.macho-fold.h index 3cdbc03a..de5363a1 100644 --- a/src/stub/amd64-darwin.macho-fold.h +++ b/src/stub/amd64-darwin.macho-fold.h @@ -1,5 +1,5 @@ /* amd64-darwin.macho-fold.h - created from amd64-darwin.macho-fold.bin, 3747 (0xea3) bytes + created from amd64-darwin.macho-fold.bin, 3813 (0xee5) bytes This file is part of the UPX executable compressor. @@ -31,11 +31,11 @@ */ -#define STUB_AMD64_DARWIN_MACHO_FOLD_SIZE 3747 -#define STUB_AMD64_DARWIN_MACHO_FOLD_ADLER32 0xf284b1a1 -#define STUB_AMD64_DARWIN_MACHO_FOLD_CRC32 0x7a8ad96c +#define STUB_AMD64_DARWIN_MACHO_FOLD_SIZE 3813 +#define STUB_AMD64_DARWIN_MACHO_FOLD_ADLER32 0x64d1cde8 +#define STUB_AMD64_DARWIN_MACHO_FOLD_CRC32 0x84d8a714 -unsigned char stub_amd64_darwin_macho_fold[3747] = { +unsigned char stub_amd64_darwin_macho_fold[3813] = { /* 0x0000 */ 232, 74, 0, 0, 0,131,249, 73,117, 68, 83, 87, 72,141, 76, 55, /* 0x0010 */ 253, 94, 86, 91,235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128, /* 0x0020 */ 114, 10, 60,143,119, 6,128,126,254, 15,116, 6, 44,232, 60, 1, @@ -43,7 +43,7 @@ unsigned char stub_amd64_darwin_macho_fold[3747] = { /* 0x0040 */ 41,248, 1,216,171, 72, 57,206,115, 3,172,235,223, 91,195, 65, /* 0x0050 */ 89, 76,137,247, 76,137,254, 73,137,228,139, 79, 24,184, 0, 8, /* 0x0060 */ 0, 0, 57,193, 15, 66,200, 73,141, 68, 36, 32, 73,137,232, 72, -/* 0x0070 */ 41,204, 72,137,226, 80,232,181, 11, 0, 0, 72,139, 40, 72,139, +/* 0x0070 */ 41,204, 72,137,226, 80,232,247, 11, 0, 0, 72,139, 40, 72,139, /* 0x0080 */ 136,128, 0, 0, 0, 76,137,228, 72,137, 76, 36, 24, 95,232, 45, /* 0x0090 */ 0, 0, 0, 95, 94,184, 73, 0, 0, 2,255,229,139, 7, 15,200, /* 0x00a0 */ 137, 7,131,238, 4, 72,141,127, 4,119,241,195,176, 4,235, 2, @@ -169,9 +169,9 @@ unsigned char stub_amd64_darwin_macho_fold[3747] = { /* 0x0820 */ 80, 0,116, 9, 72,139, 92, 36, 80, 72,139, 67, 8, 80, 73,137, /* 0x0830 */ 209, 76,139, 68, 36, 88, 72,139, 84, 36,104,139,116, 36, 84, 49, /* 0x0840 */ 192,232,209,249,255,255, 65, 88, 65, 89, 49,210, 72,139, 68, 36, -/* 0x0850 */ 88,199, 68, 36, 20, 0, 0, 0, 0, 59, 80, 16, 15,131,186, 3, -/* 0x0860 */ 0, 0, 65,139, 69, 0,131,248, 25, 15,133, 39, 3, 0, 0, 73, -/* 0x0870 */ 131,125, 32, 0, 15,132, 28, 3, 0, 0, 73,131,125, 40, 0,117, +/* 0x0850 */ 88,199, 68, 36, 20, 0, 0, 0, 0, 59, 80, 16, 15,131,221, 3, +/* 0x0860 */ 0, 0, 65,139, 69, 0,131,248, 25, 15,133, 52, 3, 0, 0, 73, +/* 0x0870 */ 131,125, 32, 0, 15,132, 41, 3, 0, 0, 73,131,125, 40, 0,117, /* 0x0880 */ 61, 73,131,125, 48, 0,116, 54, 72,139, 76, 36, 56, 72,139, 1, /* 0x0890 */ 72,133,192,116, 41,246, 64, 26, 32,116, 35, 73, 43, 69, 24,232, /* 0x08a0 */ 10, 0, 0, 0,114,101,108,111, 99, 61, 37,112, 10, 0, 95, 72, @@ -193,8 +193,8 @@ unsigned char stub_amd64_darwin_macho_fold[3747] = { /* 0x09a0 */ 112, 10, 0, 95, 65, 84, 72,139, 84, 36, 16, 65,137,217,232,100, /* 0x09b0 */ 248,255,255, 94, 95, 65,137,216, 69,137,225, 68,137,241,186, 3, /* 0x09c0 */ 0, 0, 0, 72,137,239, 72,139, 52, 36,232,249,246,255,255, 72, -/* 0x09d0 */ 139, 92, 36, 56, 72,137,198, 72,131, 59, 0,117, 11, 72,137,197, -/* 0x09e0 */ 72,137, 3, 72,137, 68, 36, 24, 72, 57,245,116, 45, 72,137,234, +/* 0x09d0 */ 139, 92, 36, 56, 72,137,198, 72,131, 59, 0,117, 11, 72,137, 3, +/* 0x09e0 */ 72,137, 68, 36, 24, 72,137,197, 72, 57,245,116, 45, 72,137,234, /* 0x09f0 */ 49,192,232, 19, 0, 0, 0,109, 97,100,100,114, 61, 37,112, 32, /* 0x0a00 */ 32, 97,100,100,114, 61, 37,112, 10, 0, 95,232, 7,248,255,255, /* 0x0a10 */ 191, 8, 0, 0, 0,232, 83,251,255,255, 72,131,124, 36, 72, 0, @@ -202,73 +202,77 @@ unsigned char stub_amd64_darwin_macho_fold[3747] = { /* 0x0a30 */ 72,139, 68, 36, 56, 72,137, 40, 72,139, 76, 36, 40, 72,139, 84, /* 0x0a40 */ 36, 48, 72,141,116, 36, 96, 72,139,124, 36, 72,232, 66,251,255, /* 0x0a50 */ 255, 72,131,124, 36, 72, 0, 15,149,194, 49,192, 77,133,255, 15, -/* 0x0a60 */ 149,192,133,194,116,111, 73,131,125, 40, 0,117,104, 65,131,125, -/* 0x0a70 */ 64, 0,116, 97, 76,137,233, 72, 43, 76, 36, 88, 73,137,232,232, +/* 0x0a60 */ 149,192,133,194,116,120, 73,131,125, 40, 0,117,113, 65,131,125, +/* 0x0a70 */ 64, 0,116,106, 76,137,233, 72, 43, 76, 36, 88, 73,137,232,232, /* 0x0a80 */ 37, 0, 0, 0,104, 97,116, 99,104, 61, 37,112, 32, 32,115,101, /* 0x0a90 */ 99,112, 61, 37,112, 32, 32,115,101,103,112, 61, 37,112, 32, 32, -/* 0x0aa0 */ 109,104,100,114, 61, 37,112, 10, 0, 95, 72,141, 76, 13, 0, 72, -/* 0x0ab0 */ 141, 81, 72,139, 66, 48, 72,141, 68, 5, 0, 72,141, 88,252,199, -/* 0x0ac0 */ 64,252,144, 15, 5,195, 49,192, 72,137,222,232, 71,247,255,255, -/* 0x0ad0 */ 72,137, 92, 36, 32, 76,137,251, 74,141, 84, 61, 0, 72,247,219, -/* 0x0ae0 */ 129,227,255, 15, 0, 0, 72,137,216, 72,133,219,116, 11,198, 2, -/* 0x0af0 */ 0, 72,255,194, 72,255,200,235,243, 77,133,255,116, 29, 65,139, -/* 0x0b00 */ 85, 60, 76,137,254, 72,137,239,232,167,245,255,255,133,192,116, -/* 0x0b10 */ 10,191, 10, 0, 0, 0,232, 82,250,255,255, 73,141, 4, 31, 72, -/* 0x0b20 */ 1,197, 72, 59,108, 36, 8,115, 67, 72,133,237, 15,132,206, 0, -/* 0x0b30 */ 0, 0, 72, 41,108, 36, 8, 65,139, 85, 60, 69, 49,201, 72,139, -/* 0x0b40 */ 116, 36, 8, 65,131,200,255,185, 50, 0, 0, 0, 72,137,239,232, -/* 0x0b50 */ 116,245,255,255, 72, 57,197, 15,132,163, 0, 0, 0,191, 9, 0, -/* 0x0b60 */ 0, 0,232, 6,250,255,255,233,148, 0, 0, 0, 72,131,124, 36, -/* 0x0b70 */ 72, 0, 15,132,136, 0, 0, 0, 73,131,199, 3, 65,129,231,255, -/* 0x0b80 */ 15, 0, 0, 73,131,255, 3,119,119, 76,137,254, 72,137,239,232, -/* 0x0b90 */ 36,245,255,255,235,106,131,232, 4,131,248, 1,119, 98, 49,192, -/* 0x0ba0 */ 76,137,238,232, 20, 0, 0, 0,116,104,114,101, 97,100, 95, 99, -/* 0x0bb0 */ 111,109,109, 97,110,100, 61, 32, 37,112, 10, 0, 95,232, 85,246, -/* 0x0bc0 */ 255,255, 65,131,125, 8, 4,117, 55, 73,141, 93, 16, 49,192,232, -/* 0x0bd0 */ 18, 0, 0, 0,116,104,114,101, 97,100, 95,115,116, 97,116,101, -/* 0x0be0 */ 61, 32, 37,112, 10, 0, 95, 72,137,222,232, 40,246,255,255, 72, -/* 0x0bf0 */ 139, 84, 36, 24, 73, 1,149,144, 0, 0, 0, 72,137, 92, 36, 32, -/* 0x0c00 */ 65,139, 69, 4, 72,139, 76, 36, 88,255, 68, 36, 20,139, 92, 36, -/* 0x0c10 */ 20, 73, 1,197, 59, 89, 16,233, 64,252,255,255, 72,139, 68, 36, -/* 0x0c20 */ 32, 72,131,196,120, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195, -/* 0x0c30 */ 65, 87, 77,137,207, 65, 86, 65, 85, 77,137,197, 65, 84, 85, 72, -/* 0x0c40 */ 137,213, 72,141, 87, 24, 83, 72,131,236,104, 68,139, 79, 24, 72, -/* 0x0c50 */ 137,116, 36, 88, 72,139, 68, 36, 88, 76,141,116, 36, 48, 76,139, -/* 0x0c60 */ 164, 36,160, 0, 0, 0, 72,137, 76, 36, 16, 76,137,249, 72,137, -/* 0x0c70 */ 84, 36, 72, 72,137, 84, 36, 40, 77,137,240, 72,131,232, 24, 76, -/* 0x0c80 */ 137, 76, 36, 48, 72,139,116, 36, 88, 72,137, 68, 36, 64, 72,137, -/* 0x0c90 */ 68, 36, 32, 72,199, 68, 36, 8, 0, 0, 0, 0,199, 68, 36, 4, -/* 0x0ca0 */ 0, 0, 0, 0, 72,137,108, 36, 56, 65,255, 52, 36,232, 88, 0, -/* 0x0cb0 */ 0, 0,117,112,120, 95,109, 97,105,110, 32,115,122, 99, 61, 37, -/* 0x0cc0 */ 120, 32, 32,102, 95,100,101, 99, 61, 37,112, 32, 32,102, 95,117, -/* 0x0cd0 */ 110,102, 61, 37,112, 32, 32, 32, 32,120,111, 61, 37,112, 40, 37, -/* 0x0ce0 */ 120, 32, 37,112, 41, 32, 32,120,105, 61, 37,112, 40, 37,120, 32, -/* 0x0cf0 */ 37,112, 41, 32, 32,109,104,100,114,112,112, 61, 37,112, 32, 32, -/* 0x0d00 */ 109,104,100,114,112, 61, 37,112, 10, 0, 95, 65, 84, 82, 76,137, -/* 0x0d10 */ 234, 80, 49,192, 72,141, 92, 36, 96, 83, 85,232,247,244,255,255, -/* 0x0d20 */ 72,131,196, 48, 76,137,234, 76,137,246, 49,201, 72,137,223,232, -/* 0x0d30 */ 95,248,255,255, 80, 77,137,233, 77,137,224,131,201,255, 49,246, -/* 0x0d40 */ 72,137,239, 72,141, 84, 36, 40, 65, 87,232, 16,250,255,255, 65, -/* 0x0d50 */ 92, 65, 94,139,117, 16, 72,141, 85, 32, 73,137,197, 49,201, 57, -/* 0x0d60 */ 241, 15,131, 40, 1, 0, 0,131, 58, 14, 15,133, 18, 1, 0, 0, -/* 0x0d70 */ 139, 66, 8,232, 10, 0, 0, 0,100,121,108,100, 61, 32, 37,115, -/* 0x0d80 */ 10, 0, 95, 72,141, 28, 2, 49,192, 72,137,222,232,134,244,255, -/* 0x0d90 */ 255, 49,210, 49,246, 49,192, 72,137,223,232, 37,243,255,255,133, -/* 0x0da0 */ 192, 65,137,196,121, 10,191, 18, 0, 0, 0,232,189,247,255,255, -/* 0x0db0 */ 139, 76, 36, 4, 72,139, 84, 36, 16, 72,137,238, 68,137,231,232, -/* 0x0dc0 */ 248,242,255,255, 72, 57, 68, 36, 16,116, 10,191, 19, 0, 0, 0, -/* 0x0dd0 */ 232,152,247,255,255,139, 69, 0, 61,202,254,186,190,116, 7, 61, -/* 0x0de0 */ 190,186,254,202,117, 49, 72, 15,182,117, 7, 72,137,239, 72,141, -/* 0x0df0 */ 93, 8, 72,107,246, 20,131,198, 8,232,158,242,255,255,139, 69, -/* 0x0e00 */ 4, 49,201, 57,193,115, 16,129, 59, 7, 0, 0, 1,116,103,255, -/* 0x0e10 */ 193, 72,131,195, 20,235,236, 72,199, 68, 36, 24, 0, 0, 0, 0, -/* 0x0e20 */ 83, 69, 49,201, 68,137,225, 49,210,106, 0,139,116, 36, 20, 72, -/* 0x0e30 */ 137,239, 76,141, 68, 36, 40,232, 35,249,255,255, 72,137, 68, 36, -/* 0x0e40 */ 24, 72,137,198, 49,192, 65, 90, 65, 91,232, 15, 0, 0, 0,104, -/* 0x0e50 */ 97,116, 99,104, 32,112,116,114, 61, 32, 37,112, 10, 0, 95,232, -/* 0x0e60 */ 179,243,255,255, 72,139, 68, 36, 8, 68,137,231, 76,137, 40,232, -/* 0x0e70 */ 76,242,255,255,235, 25,139, 91, 8,137, 92, 36, 4,233, 46,255, -/* 0x0e80 */ 255,255,139, 66, 4,255,193, 72, 1,194,233,208,254,255,255, 72, -/* 0x0e90 */ 139, 68, 36, 8, 72,131,196,104, 91, 93, 65, 92, 65, 93, 65, 94, -/* 0x0ea0 */ 65, 95,195 +/* 0x0aa0 */ 109,104,100,114, 61, 37,112, 10, 0, 95, 72,131,225,252, 72,141, +/* 0x0ab0 */ 76, 13, 0, 72,141, 81, 72,139, 66, 48,193,232, 2,137,192, 72, +/* 0x0ac0 */ 141, 68,133, 0, 72,141, 88,252,199, 64,252,144, 15, 5,195, 49, +/* 0x0ad0 */ 192, 72,137,222,232, 62,247,255,255, 72,137, 92, 36, 32, 76,137, +/* 0x0ae0 */ 251, 74,141, 84, 61, 0, 72,247,219,129,227,255, 15, 0, 0, 72, +/* 0x0af0 */ 137,216, 72,133,219,116, 11,198, 2, 0, 72,255,194, 72,255,200, +/* 0x0b00 */ 235,243, 77,133,255,116, 29, 65,139, 85, 60, 76,137,254, 72,137, +/* 0x0b10 */ 239,232,158,245,255,255,133,192,116, 10,191, 10, 0, 0, 0,232, +/* 0x0b20 */ 73,250,255,255, 73,141, 4, 31, 72, 1,197, 72, 59,108, 36, 8, +/* 0x0b30 */ 115, 67, 72,133,237, 15,132,225, 0, 0, 0, 72, 41,108, 36, 8, +/* 0x0b40 */ 65,139, 85, 60, 69, 49,201, 72,139,116, 36, 8, 65,131,200,255, +/* 0x0b50 */ 185, 50, 0, 0, 0, 72,137,239,232,107,245,255,255, 72, 57,197, +/* 0x0b60 */ 15,132,182, 0, 0, 0,191, 9, 0, 0, 0,232,253,249,255,255, +/* 0x0b70 */ 233,167, 0, 0, 0, 72,131,124, 36, 72, 0, 15,132,155, 0, 0, +/* 0x0b80 */ 0, 73,131,199, 3, 65,129,231,255, 15, 0, 0, 73,131,255, 3, +/* 0x0b90 */ 15,135,134, 0, 0, 0, 76,137,254, 72,137,239,232, 23,245,255, +/* 0x0ba0 */ 255,235,121,131,232, 4,131,248, 1,119,113, 49,192, 76,137,238, +/* 0x0bb0 */ 232, 20, 0, 0, 0,116,104,114,101, 97,100, 95, 99,111,109,109, +/* 0x0bc0 */ 97,110,100, 61, 32, 37,112, 10, 0, 95,232, 72,246,255,255, 65, +/* 0x0bd0 */ 131,125, 8, 4,117, 70, 73,141, 93, 16, 72,139, 84, 36, 24, 49, +/* 0x0be0 */ 192,232, 28, 0, 0, 0,116,104,114,101, 97,100, 95,115,116, 97, +/* 0x0bf0 */ 116,101, 61, 32, 37,112, 32, 32,114,101,108,111, 99, 61, 37,112, +/* 0x0c00 */ 10, 0, 95, 72,137,222,232, 12,246,255,255, 72,139, 84, 36, 24, +/* 0x0c10 */ 73, 1,149,144, 0, 0, 0, 72,137, 92, 36, 32, 65,139, 69, 4, +/* 0x0c20 */ 72,139, 76, 36, 88,255, 68, 36, 20,139, 92, 36, 20,193,232, 2, +/* 0x0c30 */ 59, 89, 16,137,192, 77,141,108,133, 0,233, 29,252,255,255, 72, +/* 0x0c40 */ 139,116, 36, 32, 49,192,232, 13, 0, 0, 0,100,111, 95,120,109, +/* 0x0c50 */ 97,112, 61, 32, 37,112, 10, 0, 95,232,185,245,255,255, 72,139, +/* 0x0c60 */ 68, 36, 32, 72,131,196,120, 91, 93, 65, 92, 65, 93, 65, 94, 65, +/* 0x0c70 */ 95,195, 65, 87, 77,137,207, 65, 86, 65, 85, 77,137,197, 65, 84, +/* 0x0c80 */ 85, 72,137,213, 72,141, 87, 24, 83, 72,131,236,104, 68,139, 79, +/* 0x0c90 */ 24, 72,137,116, 36, 88, 72,139, 68, 36, 88, 76,141,116, 36, 48, +/* 0x0ca0 */ 76,139,164, 36,160, 0, 0, 0, 72,137, 76, 36, 16, 76,137,249, +/* 0x0cb0 */ 72,137, 84, 36, 72, 72,137, 84, 36, 40, 77,137,240, 72,131,232, +/* 0x0cc0 */ 24, 76,137, 76, 36, 48, 72,139,116, 36, 88, 72,137, 68, 36, 64, +/* 0x0cd0 */ 72,137, 68, 36, 32, 72,199, 68, 36, 8, 0, 0, 0, 0,199, 68, +/* 0x0ce0 */ 36, 4, 0, 0, 0, 0, 72,137,108, 36, 56, 65,255, 52, 36,232, +/* 0x0cf0 */ 88, 0, 0, 0,117,112,120, 95,109, 97,105,110, 32,115,122, 99, +/* 0x0d00 */ 61, 37,120, 32, 32,102, 95,100,101, 99, 61, 37,112, 32, 32,102, +/* 0x0d10 */ 95,117,110,102, 61, 37,112, 32, 32, 32, 32,120,111, 61, 37,112, +/* 0x0d20 */ 40, 37,120, 32, 37,112, 41, 32, 32,120,105, 61, 37,112, 40, 37, +/* 0x0d30 */ 120, 32, 37,112, 41, 32, 32,109,104,100,114,112,112, 61, 37,112, +/* 0x0d40 */ 32, 32,109,104,100,114,112, 61, 37,112, 10, 0, 95, 65, 84, 82, +/* 0x0d50 */ 76,137,234, 80, 49,192, 72,141, 92, 36, 96, 83, 85,232,181,244, +/* 0x0d60 */ 255,255, 72,131,196, 48, 76,137,234, 76,137,246, 49,201, 72,137, +/* 0x0d70 */ 223,232, 29,248,255,255, 80, 77,137,233, 77,137,224,131,201,255, +/* 0x0d80 */ 49,246, 72,137,239, 72,141, 84, 36, 40, 65, 87,232,206,249,255, +/* 0x0d90 */ 255, 65, 92, 65, 94,139,117, 16, 72,141, 85, 32, 73,137,197, 49, +/* 0x0da0 */ 201, 57,241, 15,131, 40, 1, 0, 0,131, 58, 14, 15,133, 18, 1, +/* 0x0db0 */ 0, 0,139, 66, 8,232, 10, 0, 0, 0,100,121,108,100, 61, 32, +/* 0x0dc0 */ 37,115, 10, 0, 95, 72,141, 28, 2, 49,192, 72,137,222,232, 68, +/* 0x0dd0 */ 244,255,255, 49,210, 49,246, 49,192, 72,137,223,232,227,242,255, +/* 0x0de0 */ 255,133,192, 65,137,196,121, 10,191, 18, 0, 0, 0,232,123,247, +/* 0x0df0 */ 255,255,139, 76, 36, 4, 72,139, 84, 36, 16, 72,137,238, 68,137, +/* 0x0e00 */ 231,232,182,242,255,255, 72, 57, 68, 36, 16,116, 10,191, 19, 0, +/* 0x0e10 */ 0, 0,232, 86,247,255,255,139, 69, 0, 61,202,254,186,190,116, +/* 0x0e20 */ 7, 61,190,186,254,202,117, 49, 72, 15,182,117, 7, 72,137,239, +/* 0x0e30 */ 72,141, 93, 8, 72,107,246, 20,131,198, 8,232, 92,242,255,255, +/* 0x0e40 */ 139, 69, 4, 49,201, 57,193,115, 16,129, 59, 7, 0, 0, 1,116, +/* 0x0e50 */ 103,255,193, 72,131,195, 20,235,236, 72,199, 68, 36, 24, 0, 0, +/* 0x0e60 */ 0, 0, 83, 69, 49,201, 68,137,225, 49,210,106, 0,139,116, 36, +/* 0x0e70 */ 20, 72,137,239, 76,141, 68, 36, 40,232,225,248,255,255, 72,137, +/* 0x0e80 */ 68, 36, 24, 72,137,198, 49,192, 65, 90, 65, 91,232, 15, 0, 0, +/* 0x0e90 */ 0,104, 97,116, 99,104, 32,112,116,114, 61, 32, 37,112, 10, 0, +/* 0x0ea0 */ 95,232,113,243,255,255, 72,139, 68, 36, 8, 68,137,231, 76,137, +/* 0x0eb0 */ 40,232, 10,242,255,255,235, 25,139, 91, 8,137, 92, 36, 4,233, +/* 0x0ec0 */ 46,255,255,255,139, 66, 4,255,193, 72, 1,194,233,208,254,255, +/* 0x0ed0 */ 255, 72,139, 68, 36, 8, 72,131,196,104, 91, 93, 65, 92, 65, 93, +/* 0x0ee0 */ 65, 94, 65, 95,195 }; diff --git a/src/stub/arm.v5a-darwin.macho-entry.h b/src/stub/arm.v5a-darwin.macho-entry.h index e652cf2e..aeb2786a 100644 --- a/src/stub/arm.v5a-darwin.macho-entry.h +++ b/src/stub/arm.v5a-darwin.macho-entry.h @@ -1,5 +1,5 @@ /* arm.v5a-darwin.macho-entry.h - created from arm.v5a-darwin.macho-entry.bin, 14641 (0x3931) bytes + created from arm.v5a-darwin.macho-entry.bin, 14633 (0x3929) bytes This file is part of the UPX executable compressor. @@ -31,15 +31,15 @@ */ -#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_SIZE 14641 -#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_ADLER32 0x8f2a1f61 -#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_CRC32 0xb74e9697 +#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_SIZE 14633 +#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_ADLER32 0xada01c67 +#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_CRC32 0xa5d52727 -unsigned char stub_arm_v5a_darwin_macho_entry[14641] = { +unsigned char stub_arm_v5a_darwin_macho_entry[14633] = { /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 48, 20, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, -/* 0x0030 */ 0, 0, 0, 0, 4,208, 77,226,255,223, 45,233, 62, 0, 0,235, +/* 0x0020 */ 40, 20, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, +/* 0x0030 */ 0, 0, 0, 0, 13,112,160,225, 20, 96, 79,226, 62, 0, 0,235, /* 0x0040 */ 252, 64, 45,233, 0,112,129,224, 0, 80,224,227, 2, 65,160,227, /* 0x0050 */ 24, 0, 0,234, 24, 0,189,232, 7, 0, 64,224, 3, 32, 66,224, /* 0x0060 */ 0, 32,132,229, 0, 64,160,225, 3, 0,160,225, 2, 16,131,224, @@ -323,633 +323,632 @@ unsigned char stub_arm_v5a_darwin_macho_entry[14641] = { /* 0x11c0 */ 1, 1, 0, 59,176, 48,209,225,167,229,160,225,147, 14, 14,224, /* 0x11d0 */ 14, 0, 92,225, 14,112,160, 49, 14,112, 71, 32, 2,235, 99, 50, /* 0x11e0 */ 14,192, 76, 32,174, 50,131, 48,163, 50, 67, 32, 0, 0,176,224, -/* 0x11f0 */ 176, 48,193,225, 2,240,160,225, 14,128,160,225, 0,112,152,229, -/* 0x1200 */ 8, 32,160,225, 12, 32, 66,224, 7, 32,130,224, 8, 32,141,229, +/* 0x11f0 */ 176, 48,193,225, 2,240,160,225, 14,112,160,225, 0,192,151,229, +/* 0x1200 */ 7, 32,160,225, 8, 32, 66,224, 12, 32,130,224, 8, 32,141,229, /* 0x1210 */ 2, 16,160,225, 0, 80,160,227, 0, 64,224,227, 34, 48,160,227, /* 0x1220 */ 3, 32,160,227, 0, 0,160,227, 7,192,160,225,192,112,160,227, -/* 0x1230 */ 0, 0, 0,239, 12,112,160,225, 4, 0,141,229, 12,160, 74,224, +/* 0x1230 */ 0, 0, 0,239, 12,112,160,225, 4, 0,141,229, 8,160, 74,224, /* 0x1240 */ 0,160,138,224, 0, 80,160,227, 0, 64,157,229, 18, 48,160,227, -/* 0x1250 */ 3, 32,160,227, 12, 16, 72,224, 7,192,160,225,192,112,160,227, +/* 0x1250 */ 3, 32,160,227, 8, 16, 71,224, 7,192,160,225,192,112,160,227, /* 0x1260 */ 0, 0, 0,239, 12,112,160,225, 8, 32,157,229, 16, 48,157,229, -/* 0x1270 */ 0, 32,130,224, 3,192, 64,224, 12, 48,137,224, 4, 48, 45,229, +/* 0x1270 */ 0, 32,130,224, 3,128, 64,224, 8, 48,137,224, 4, 48, 45,229, /* 0x1280 */ 32, 6,160,225, 0, 6,160,225, 4, 0, 45,229, 0, 32, 66,224, -/* 0x1290 */ 4, 32, 45,229, 0,112,152,229, 4,112, 13,229, 13, 48,160,225, -/* 0x12a0 */ 12, 32,136,224, 2, 96,160,225, 4,112,152,229, 8, 64,152,229, -/* 0x12b0 */ 12, 0,136,226, 7, 16,160,225, 57,255, 47,225, 4,208,141,226, +/* 0x1290 */ 4, 32, 45,229, 0,192,151,229, 4,192, 45,229, 13, 48,160,225, +/* 0x12a0 */ 8, 32,135,224, 2,128,160,225, 4,192,151,229, 8, 64,151,229, +/* 0x12b0 */ 12, 0,135,226, 12, 16,160,225, 57,255, 47,225, 4,208,141,226, /* 0x12c0 */ 4, 16,157,228, 4, 0,157,228, 4,144,157,228, 5, 32,160,227, /* 0x12d0 */ 7,192,160,225,125,112,160,227, 0, 0, 0,239, 12,112,160,225, -/* 0x12e0 */ 22,255, 47,225,101,120,101, 99,117,116, 97, 98,108,101, 95,112, -/* 0x12f0 */ 97,116,104, 61,112, 0, 32,225, 14, 80,160,225, 4, 32,141,226, -/* 0x1300 */ 4, 0,146,228, 0, 0, 80,227, 64, 0, 0, 26, 4, 0,146,228, -/* 0x1310 */ 0, 0, 80,227, 67, 0, 0, 26, 4, 0,146,228, 0, 0, 80,227, -/* 0x1320 */ 61, 0, 0, 10, 72, 16, 79,226, 16, 48,160,227, 1, 64,208,228, -/* 0x1330 */ 1, 80,209,228, 5, 0, 84,225, 70, 0, 0, 26, 1, 48, 83,226, -/* 0x1340 */ 75, 0, 0, 26, 0, 16,160,227, 7,192,160,225, 5,112,160,227, -/* 0x1350 */ 0, 0, 0,239, 12,112,160,225, 20, 80, 45,229, 16, 16, 79,226, -/* 0x1360 */ 1,192,160,225, 4, 0,145,228, 0,192, 76,224, 16,192,141,229, -/* 0x1370 */ 1,160,160,225, 4, 0,145,228, 0,160, 74,224, 8,176, 64,226, -/* 0x1380 */ 254,255,255,235,102,105,108,101, 32,102,111,114,109, 97,116, 32, -/* 0x1390 */ 101,108,102, 51, 50, 45,108,105,116,116,108,101, 97,114,109, 10, -/* 0x13a0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, -/* 0x13b0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, -/* 0x13c0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, -/* 0x13d0 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, -/* 0x13e0 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, -/* 0x13f0 */ 10, 32, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, -/* 0x1400 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 99, 32, 32, 48, 48, 48, -/* 0x1410 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1420 */ 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, -/* 0x1430 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, -/* 0x1440 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, -/* 0x1450 */ 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1460 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1470 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1480 */ 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1490 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x14a0 */ 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x14b0 */ 48, 48, 48, 48, 48, 49, 51, 99, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x14c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x14d0 */ 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x14e0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x14f0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, -/* 0x1500 */ 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, -/* 0x1510 */ 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1520 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 55, 99, -/* 0x1530 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1540 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x1550 */ 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, -/* 0x1560 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,101, 99, 32, 32, 48, 48, -/* 0x1570 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1580 */ 32, 32, 48, 48, 48, 48, 48, 50, 97, 52, 32, 32, 50, 42, 42, 48, -/* 0x1590 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, -/* 0x15a0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, -/* 0x15b0 */ 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, -/* 0x15c0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x15d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x15e0 */ 48, 51, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x15f0 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x1600 */ 32, 54, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, -/* 0x1610 */ 32, 48, 48, 48, 48, 48, 48, 98, 56, 32, 32, 48, 48, 48, 48, 48, -/* 0x1620 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1630 */ 48, 48, 48, 48, 51, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x1640 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, -/* 0x1650 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, -/* 0x1660 */ 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x1670 */ 57, 51, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1680 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 52, -/* 0x1690 */ 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x16a0 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x16b0 */ 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, -/* 0x16c0 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 55, 56, 32, 32, 48, -/* 0x16d0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x16e0 */ 48, 32, 32, 48, 48, 48, 48, 48,100, 56, 48, 32, 32, 50, 42, 42, -/* 0x16f0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, -/* 0x1700 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, -/* 0x1710 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, -/* 0x1720 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1730 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x1740 */ 48, 49, 49,102, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x1750 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, -/* 0x1760 */ 32, 49, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, -/* 0x1770 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1780 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1790 */ 48, 48, 48, 48, 49, 49,102, 56, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x17a0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x17b0 */ 76, 89, 10, 32, 49, 49, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, -/* 0x17c0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 56, 99, 32, 32, 48, -/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x17e0 */ 48, 32, 32, 48, 48, 48, 48, 49, 49,102, 56, 32, 32, 50, 42, 42, -/* 0x17f0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, -/* 0x1800 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, -/* 0x1810 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, -/* 0x1820 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, -/* 0x1830 */ 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, -/* 0x1840 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1850 */ 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1860 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1870 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, -/* 0x1880 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, -/* 0x1890 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x18a0 */ 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x18b0 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, -/* 0x18c0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x18d0 */ 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x18e0 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x18f0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x1900 */ 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1910 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x1920 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x1930 */ 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1940 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, -/* 0x1950 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, -/* 0x1960 */ 67, 72, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1970 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, -/* 0x1980 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, -/* 0x1990 */ 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, -/* 0x19a0 */ 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x19b0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, -/* 0x19c0 */ 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, -/* 0x19d0 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x19e0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, -/* 0x19f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, -/* 0x1a00 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1a10 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, -/* 0x1a20 */ 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, -/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x1a40 */ 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, -/* 0x1a50 */ 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, -/* 0x1a60 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, -/* 0x1a70 */ 9, 48, 48, 48, 48, 48, 49, 51, 99, 32,117, 99,108, 95,110,114, -/* 0x1a80 */ 118, 50,101, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, -/* 0x1a90 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x1aa0 */ 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 49, 50, 56, -/* 0x1ab0 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109, -/* 0x1ac0 */ 112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ad0 */ 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, -/* 0x1ae0 */ 48, 48, 48, 48, 48,101, 99, 32,117, 99,108, 95,110,114,118, 50, -/* 0x1af0 */ 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 10, 48, -/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x1b10 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, -/* 0x1b20 */ 48, 48, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, 10, 48, -/* 0x1b30 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x1b40 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, -/* 0x1b50 */ 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,115, -/* 0x1b60 */ 115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, -/* 0x1b70 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, -/* 0x1b80 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x1b90 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1ba0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 56, -/* 0x1bb0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x1bc0 */ 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 10, 82, 69, -/* 0x1bd0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x1be0 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, -/* 0x1bf0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x1c00 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x1c10 */ 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x1c20 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, -/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x1c40 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, -/* 0x1c50 */ 10, 48, 48, 48, 48, 48, 48, 55, 48, 32, 82, 95, 65, 82, 77, 95, -/* 0x1c60 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, -/* 0x1c70 */ 69, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, -/* 0x1c80 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, -/* 0x1c90 */ 50, 69, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, 82, -/* 0x1ca0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, -/* 0x1cb0 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, -/* 0x1cc0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x1cd0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, 95, -/* 0x1ce0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1cf0 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, -/* 0x1d00 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x1d10 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, -/* 0x1d20 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x1d30 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 98, 99, -/* 0x1d40 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x1d50 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 99, -/* 0x1d60 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x1d70 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x1d80 */ 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x1d90 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, -/* 0x1da0 */ 48,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x1db0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, -/* 0x1dc0 */ 48, 48,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x1dd0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, -/* 0x1de0 */ 48, 48, 48,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x1df0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, -/* 0x1e00 */ 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x1e10 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, -/* 0x1e20 */ 48, 48, 48, 48, 48,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x1e30 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, -/* 0x1e40 */ 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x1e50 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, -/* 0x1e60 */ 10, 48, 48, 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, 77, 95, -/* 0x1e70 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, -/* 0x1e80 */ 69, 10, 48, 48, 48, 48, 48, 49, 48, 52, 32, 82, 95, 65, 82, 77, -/* 0x1e90 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, -/* 0x1ea0 */ 50, 69, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, -/* 0x1eb0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, -/* 0x1ec0 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 51, 52, 32, 82, 95, 65, -/* 0x1ed0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x1ee0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, 51, 56, 32, 82, 95, -/* 0x1ef0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1f00 */ 78, 82, 86, 50, 69, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, -/* 0x1f10 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, -/* 0x1f20 */ 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x1f30 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1f40 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, -/* 0x1f50 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x1f60 */ 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 54, -/* 0x1f70 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x1f80 */ 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, -/* 0x1f90 */ 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x1fa0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, -/* 0x1fb0 */ 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x1fc0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, -/* 0x1fd0 */ 48, 48, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x1fe0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, -/* 0x1ff0 */ 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x2000 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, -/* 0x2010 */ 48, 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2020 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, -/* 0x2030 */ 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x2040 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, -/* 0x2050 */ 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2060 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, -/* 0x2070 */ 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, 77, 95, -/* 0x2080 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, -/* 0x2090 */ 68, 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, 82, 77, -/* 0x20a0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, -/* 0x20b0 */ 50, 68, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, -/* 0x20c0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, -/* 0x20d0 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,100, 56, 32, 82, 95, 65, -/* 0x20e0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x20f0 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,101, 48, 32, 82, 95, -/* 0x2100 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2110 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,101, 99, 32, 82, -/* 0x2120 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2130 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,102, 56, 32, -/* 0x2140 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2150 */ 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48,102, 99, -/* 0x2160 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2170 */ 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 49, 50, -/* 0x2180 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x2190 */ 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 49, -/* 0x21a0 */ 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x21b0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 10, 82, 69, 76, 79, -/* 0x21c0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, -/* 0x21d0 */ 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, -/* 0x21e0 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x21f0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x2200 */ 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x2210 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, -/* 0x2220 */ 48, 48, 48, 48, 55, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2230 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, -/* 0x2240 */ 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x2250 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, -/* 0x2260 */ 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2270 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, -/* 0x2280 */ 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, 82, 95, 65, 82, 77, 95, -/* 0x2290 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, -/* 0x22a0 */ 66, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, -/* 0x22b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, -/* 0x22c0 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 65, 82, -/* 0x22d0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, -/* 0x22e0 */ 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, 82, 95, 65, -/* 0x22f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, -/* 0x2300 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 98, 48, 32, 82, 95, -/* 0x2310 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2320 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, -/* 0x2330 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2340 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 98, 99, 32, -/* 0x2350 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2360 */ 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 99, 52, -/* 0x2370 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2380 */ 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 99, -/* 0x2390 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x23a0 */ 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, -/* 0x23b0 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x23c0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, -/* 0x23d0 */ 48,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x23e0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 10, 82, 69, 76, -/* 0x23f0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, -/* 0x2400 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, -/* 0x2410 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, -/* 0x2420 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, -/* 0x2430 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 65, 82, -/* 0x2440 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x2450 */ 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 52, -/* 0x2460 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x2470 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, -/* 0x2480 */ 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x2490 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 69, -/* 0x24a0 */ 76, 70, 48, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x24b0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, -/* 0x24c0 */ 77, 65, 95, 68, 69, 67, 50, 48, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x24d0 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x24e0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, -/* 0x24f0 */ 48, 48, 55, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2500 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2510 */ 48, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, -/* 0x2520 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2530 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 98, 56, -/* 0x2540 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2550 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2560 */ 48, 48, 48, 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2570 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2580 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 48,102, 52, 32, 82, 95, 65, -/* 0x2590 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x25a0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, -/* 0x25b0 */ 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x25c0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x25d0 */ 48, 48, 48, 48, 48, 49, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x25e0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x25f0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, -/* 0x2600 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2610 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2620 */ 48, 49, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2630 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2640 */ 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, -/* 0x2650 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2660 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49,100, 56, -/* 0x2670 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2680 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2690 */ 48, 48, 48, 50, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x26a0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x26b0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 49, 56, 32, 82, 95, 65, -/* 0x26c0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x26d0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x26e0 */ 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x26f0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2700 */ 48, 48, 48, 48, 48, 50, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2710 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2720 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 99, 32, 82, -/* 0x2730 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2740 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2750 */ 48, 50, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2760 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2770 */ 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, -/* 0x2780 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2790 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 53, 56, -/* 0x27a0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x27b0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x27c0 */ 48, 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x27d0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x27e0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, -/* 0x27f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2800 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, -/* 0x2810 */ 101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2820 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2830 */ 48, 48, 48, 48, 48, 51, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2840 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2850 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, -/* 0x2860 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2870 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2880 */ 48, 51, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2890 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x28a0 */ 48, 10, 48, 48, 48, 48, 48, 51, 56, 56, 32, 82, 95, 65, 82, 77, -/* 0x28b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x28c0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 48, -/* 0x28d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x28e0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x28f0 */ 48, 48, 48, 51, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2900 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2910 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, 65, -/* 0x2920 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2930 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, -/* 0x2940 */ 101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2950 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2960 */ 48, 48, 48, 48, 48, 51,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2970 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2980 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 50, 52, 32, 82, -/* 0x2990 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x29a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x29b0 */ 48, 52, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x29c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x29d0 */ 48, 10, 48, 48, 48, 48, 48, 52, 54, 99, 32, 82, 95, 65, 82, 77, -/* 0x29e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x29f0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 52, -/* 0x2a00 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2a10 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2a20 */ 48, 48, 48, 52, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2a30 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2a40 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 98, 48, 32, 82, 95, 65, -/* 0x2a50 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2a60 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, -/* 0x2a70 */ 100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2a80 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2a90 */ 48, 48, 48, 48, 48, 52,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2aa0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2ab0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,102, 52, 32, 82, -/* 0x2ac0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2ad0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2ae0 */ 48, 53, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2af0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2b00 */ 48, 10, 48, 48, 48, 48, 48, 53, 51, 99, 32, 82, 95, 65, 82, 77, -/* 0x2b10 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2b20 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 57, 56, -/* 0x2b30 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2b40 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2b50 */ 48, 48, 48, 53, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2b60 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2b70 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 99, 48, 32, 82, 95, 65, -/* 0x2b80 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2b90 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, -/* 0x2ba0 */ 101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2bb0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2bc0 */ 48, 48, 48, 48, 48, 53,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2bd0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2be0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 48, 52, 32, 82, -/* 0x2bf0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2c00 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2c10 */ 48, 54, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2c20 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2c30 */ 48, 10, 48, 48, 48, 48, 48, 54, 52, 56, 32, 82, 95, 65, 82, 77, -/* 0x2c40 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2c50 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 48, -/* 0x2c60 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2c70 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2c80 */ 48, 48, 48, 54, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2c90 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2ca0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54,100, 48, 32, 82, 95, 65, -/* 0x2cb0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2cc0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, -/* 0x2cd0 */ 101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2ce0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2cf0 */ 48, 48, 48, 48, 48, 55, 49, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2d00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2d10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 50, 56, 32, 82, -/* 0x2d20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2d30 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2d40 */ 48, 55, 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2d50 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2d60 */ 48, 10, 48, 48, 48, 48, 48, 55, 55, 99, 32, 82, 95, 65, 82, 77, -/* 0x2d70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2d80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 57, 99, -/* 0x2d90 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2da0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2db0 */ 48, 48, 48, 55, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2dc0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2dd0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 99, 52, 32, 82, 95, 65, -/* 0x2de0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2df0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, -/* 0x2e00 */ 100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2e10 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2e20 */ 48, 48, 48, 48, 48, 55,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2e30 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2e40 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 48, 32, 82, -/* 0x2e50 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2e60 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2e70 */ 48, 56, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2e80 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2e90 */ 48, 10, 48, 48, 48, 48, 48, 56, 55, 99, 32, 82, 95, 65, 82, 77, -/* 0x2ea0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, -/* 0x2eb0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 56, 56, -/* 0x2ec0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x2ed0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, -/* 0x2ee0 */ 48, 48, 48, 56, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, -/* 0x2ef0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2f00 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,101, 56, 32, 82, 95, 65, -/* 0x2f10 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2f20 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, -/* 0x2f30 */ 102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, -/* 0x2f40 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x2f50 */ 48, 48, 48, 48, 48, 56,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, -/* 0x2f60 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, -/* 0x2f70 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 48, 52, 32, 82, -/* 0x2f80 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2f90 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, -/* 0x2fa0 */ 48, 57, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x2fb0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x2fc0 */ 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, -/* 0x2fd0 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, -/* 0x2fe0 */ 68, 69, 67, 49, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, -/* 0x2ff0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3000 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, -/* 0x3010 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3020 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3030 */ 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3040 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3050 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 56, 32, 82, 95, -/* 0x3060 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3070 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3080 */ 48, 97, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3090 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x30a0 */ 10, 48, 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, -/* 0x30b0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x30c0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, -/* 0x30d0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x30e0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x30f0 */ 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3100 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3110 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 99, 32, 82, 95, 65, 82, -/* 0x3120 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3130 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, -/* 0x3140 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3150 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3160 */ 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3170 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3180 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, -/* 0x3190 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x31a0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x31b0 */ 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x31c0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x31d0 */ 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, -/* 0x31e0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x31f0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, 99, 32, -/* 0x3200 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3210 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3220 */ 48, 48, 49, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3230 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3240 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, 82, -/* 0x3250 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3260 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, -/* 0x3270 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3280 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3290 */ 48, 48, 48, 48, 49, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x32a0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x32b0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 57, 99, 32, 82, 95, -/* 0x32c0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x32d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x32e0 */ 49, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x32f0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3300 */ 10, 48, 48, 48, 48, 48, 49, 99, 48, 32, 82, 95, 65, 82, 77, 95, -/* 0x3310 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3320 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, 99, 32, -/* 0x3330 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3340 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3350 */ 48, 48, 49,100, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3360 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3370 */ 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 99, 32, 82, 95, 65, 82, -/* 0x3380 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3390 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, -/* 0x33a0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x33b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x33c0 */ 48, 48, 48, 48, 49,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x33d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x33e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 56, 32, 82, 95, -/* 0x33f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3400 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3410 */ 50, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3420 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3430 */ 10, 48, 48, 48, 48, 48, 50, 52, 52, 32, 82, 95, 65, 82, 77, 95, -/* 0x3440 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3450 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, 99, 32, -/* 0x3460 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3470 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x3480 */ 48, 48, 50, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x3490 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x34a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 54, 56, 32, 82, 95, 65, 82, -/* 0x34b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x34c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, -/* 0x34d0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x34e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x34f0 */ 48, 48, 48, 48, 50, 56, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3500 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3510 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, 95, -/* 0x3520 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3530 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3540 */ 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3550 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3560 */ 10, 48, 48, 48, 48, 48, 50,100, 48, 32, 82, 95, 65, 82, 77, 95, -/* 0x3570 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x3580 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, 99, 32, -/* 0x3590 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x35a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x35b0 */ 48, 48, 50,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x35c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x35d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, -/* 0x35e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x35f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 49, -/* 0x3600 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3610 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3620 */ 48, 48, 48, 48, 51, 50, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3630 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3640 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 48, 32, 82, 95, -/* 0x3650 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3660 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x3670 */ 51, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x3680 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x3690 */ 10, 48, 48, 48, 48, 48, 51, 55, 48, 32, 82, 95, 65, 82, 77, 95, -/* 0x36a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x36b0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, 56, 32, -/* 0x36c0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x36d0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x36e0 */ 48, 48, 51, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x36f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x3700 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, 48, 32, 82, 95, 65, 82, -/* 0x3710 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, -/* 0x3720 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 98, -/* 0x3730 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, -/* 0x3740 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, -/* 0x3750 */ 48, 48, 48, 48, 51, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, -/* 0x3760 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x3770 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 99, 32, 82, 95, -/* 0x3780 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x3790 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x37a0 */ 52, 48, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, -/* 0x37b0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x37c0 */ 10, 48, 48, 48, 48, 48, 52, 49, 56, 32, 82, 95, 65, 82, 77, 95, -/* 0x37d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, -/* 0x37e0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 52, 48, 32, -/* 0x37f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3800 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 10, 82, 69, -/* 0x3810 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x3820 */ 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 90, 93, -/* 0x3830 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, -/* 0x3840 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, -/* 0x3850 */ 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 48, 32, 82, 95, 65, 82, -/* 0x3860 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, -/* 0x3870 */ 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 49, 99, -/* 0x3880 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, -/* 0x3890 */ 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, -/* 0x38a0 */ 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, -/* 0x38b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, -/* 0x38c0 */ 90, 10, 48, 48, 48, 48, 48, 49, 52, 48, 32, 82, 95, 65, 82, 77, -/* 0x38d0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, -/* 0x38e0 */ 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 52, 56, 32, -/* 0x38f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x3900 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, -/* 0x3910 */ 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, -/* 0x3920 */ 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, -/* 0x3930 */ 10 +/* 0x12e0 */ 24,255, 47,225,101,120,101, 99,117,116, 97, 98,108,101, 95,112, +/* 0x12f0 */ 97,116,104, 61,112, 0, 32,225, 14,144,160,225, 4, 0,151,228, +/* 0x1300 */ 0, 0, 80,227, 63, 0, 0, 26, 4, 0,151,228, 0, 0, 80,227, +/* 0x1310 */ 66, 0, 0, 26, 4, 0,151,228, 0, 0, 80,227, 61, 0, 0, 10, +/* 0x1320 */ 68, 16, 79,226, 16,192,160,227, 1, 32,208,228, 1, 48,209,228, +/* 0x1330 */ 3, 0, 82,225, 69, 0, 0, 26, 1,192, 92,226, 74, 0, 0, 26, +/* 0x1340 */ 0, 16,160,227, 7,192,160,225, 5,112,160,227, 0, 0, 0,239, +/* 0x1350 */ 12,112,160,225, 20, 0, 45,229, 6,128,160,225, 4, 0,150,228, +/* 0x1360 */ 0,128, 72,224, 16,128,141,229, 6,160,160,225, 4, 0,150,228, +/* 0x1370 */ 0,160, 74,224, 8,176, 64,226,254,255,255,235,102,105,108,101, +/* 0x1380 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,108,105, +/* 0x1390 */ 116,116,108,101, 97,114,109, 10, 10, 83,101, 99,116,105,111,110, +/* 0x13a0 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, +/* 0x13b0 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, +/* 0x13c0 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, +/* 0x13d0 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, +/* 0x13e0 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 77, 65, 67, +/* 0x13f0 */ 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x1400 */ 48, 48, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1410 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, +/* 0x1420 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1430 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x1440 */ 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, +/* 0x1450 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1460 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1470 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, +/* 0x1480 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, +/* 0x1490 */ 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, +/* 0x14a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 51, 99, +/* 0x14b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x14c0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, +/* 0x14d0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, +/* 0x14e0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x14f0 */ 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, +/* 0x1500 */ 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, +/* 0x1510 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1520 */ 48, 48, 48, 48, 48, 49, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x1530 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, +/* 0x1540 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, +/* 0x1550 */ 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1560 */ 48, 48,101, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1570 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, +/* 0x1580 */ 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1590 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x15a0 */ 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 95, 84, 65, 73, 76, +/* 0x15b0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x15c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x15d0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 48, 32, 32, 50, 42, +/* 0x15e0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x15f0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, +/* 0x1600 */ 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, +/* 0x1610 */ 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1620 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 57, 48, 32, +/* 0x1630 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1640 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1650 */ 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, +/* 0x1660 */ 32, 32, 32, 48, 48, 48, 48, 48, 57, 51, 56, 32, 32, 48, 48, 48, +/* 0x1670 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1680 */ 32, 48, 48, 48, 48, 48, 52, 52, 56, 32, 32, 50, 42, 42, 48, 32, +/* 0x1690 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, +/* 0x16a0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, +/* 0x16b0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, +/* 0x16c0 */ 48, 48, 52, 55, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x16d0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x16e0 */ 100, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x16f0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, +/* 0x1700 */ 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1710 */ 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1720 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1730 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 49,102, 56, 32, 32, 50, +/* 0x1740 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x1750 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 77, 65, 67, 72, +/* 0x1760 */ 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1770 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1780 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 49,102, 56, +/* 0x1790 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x17a0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 77, +/* 0x17b0 */ 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x17c0 */ 48, 48, 49, 56, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x17d0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, +/* 0x17e0 */ 49,102, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x17f0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, +/* 0x1800 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, +/* 0x1810 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1820 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, +/* 0x1830 */ 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1840 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, +/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, +/* 0x1860 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1870 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, +/* 0x1880 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1890 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, +/* 0x18a0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, +/* 0x18b0 */ 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x18c0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x18d0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, +/* 0x18e0 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x18f0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x1900 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, +/* 0x1910 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1920 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, +/* 0x1930 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, +/* 0x1940 */ 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1950 */ 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, +/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, +/* 0x1970 */ 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1980 */ 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, +/* 0x1990 */ 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, +/* 0x19a0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x19b0 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, +/* 0x19c0 */ 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, +/* 0x19d0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, +/* 0x19e0 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x19f0 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a00 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, +/* 0x1a10 */ 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, +/* 0x1a20 */ 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1a30 */ 103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, +/* 0x1a40 */ 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114, +/* 0x1a50 */ 116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, +/* 0x1a60 */ 32, 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 49, 51, +/* 0x1a70 */ 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111, +/* 0x1a80 */ 109,112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a90 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 9, +/* 0x1aa0 */ 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118, +/* 0x1ab0 */ 50,100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 10, +/* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, +/* 0x1ad0 */ 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48,101, 99, 32, +/* 0x1ae0 */ 117, 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112, +/* 0x1af0 */ 114,101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1b00 */ 103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1b10 */ 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, +/* 0x1b20 */ 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1b30 */ 103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, +/* 0x1b40 */ 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100, +/* 0x1b50 */ 101, 99,111,109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, +/* 0x1b60 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x1b70 */ 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, +/* 0x1b80 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x1b90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x1bb0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, +/* 0x1bc0 */ 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x1bd0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, +/* 0x1be0 */ 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, +/* 0x1bf0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1c00 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, +/* 0x1c10 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x1c20 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 54, 99, +/* 0x1c30 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x1c40 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 55, +/* 0x1c50 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x1c60 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x1c70 */ 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x1c80 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x1c90 */ 48, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x1ca0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, +/* 0x1cb0 */ 48, 48, 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x1cc0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, +/* 0x1cd0 */ 48, 48, 48, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x1ce0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, +/* 0x1cf0 */ 48, 48, 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x1d00 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, +/* 0x1d10 */ 48, 48, 48, 48, 48, 97, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x1d20 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, +/* 0x1d30 */ 48, 48, 48, 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x1d40 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, +/* 0x1d50 */ 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x1d60 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x1d70 */ 69, 10, 48, 48, 48, 48, 48, 48, 99, 56, 32, 82, 95, 65, 82, 77, +/* 0x1d80 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x1d90 */ 50, 69, 10, 48, 48, 48, 48, 48, 48,100, 48, 32, 82, 95, 65, 82, +/* 0x1da0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x1db0 */ 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,100, 52, 32, 82, 95, 65, +/* 0x1dc0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x1dd0 */ 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,101, 48, 32, 82, 95, +/* 0x1de0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1df0 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, +/* 0x1e00 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x1e10 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,101, 99, 32, +/* 0x1e20 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x1e30 */ 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,102, 56, +/* 0x1e40 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x1e50 */ 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48,102, +/* 0x1e60 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x1e70 */ 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 49, +/* 0x1e80 */ 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x1e90 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x1ea0 */ 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x1eb0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, +/* 0x1ec0 */ 48, 49, 51, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x1ed0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, +/* 0x1ee0 */ 48, 48, 49, 51, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x1ef0 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 69, 10, 10, 82, +/* 0x1f00 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, +/* 0x1f10 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, +/* 0x1f20 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x1f30 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x1f50 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, +/* 0x1f60 */ 10, 48, 48, 48, 48, 48, 48, 54, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x1f70 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x1f80 */ 68, 10, 48, 48, 48, 48, 48, 48, 55, 48, 32, 82, 95, 65, 82, 77, +/* 0x1f90 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x1fa0 */ 50, 68, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, +/* 0x1fb0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x1fc0 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 56, 52, 32, 82, 95, 65, +/* 0x1fd0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, +/* 0x1fe0 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, +/* 0x1ff0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2000 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 57, 99, 32, 82, +/* 0x2010 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2020 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 97, 48, 32, +/* 0x2030 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x2040 */ 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 97, 99, +/* 0x2050 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2060 */ 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 98, +/* 0x2070 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2080 */ 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, +/* 0x2090 */ 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x20a0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, +/* 0x20b0 */ 48, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x20c0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, +/* 0x20d0 */ 48, 48,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x20e0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, +/* 0x20f0 */ 48, 48, 48,101, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2100 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, 48, +/* 0x2110 */ 48, 48, 48, 48,101, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2120 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, 48, +/* 0x2130 */ 48, 48, 48, 48, 48,102, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2140 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, 10, +/* 0x2150 */ 48, 48, 48, 48, 48, 48,102, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2160 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 68, +/* 0x2170 */ 10, 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, +/* 0x2180 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x2190 */ 68, 10, 48, 48, 48, 48, 48, 49, 50, 52, 32, 82, 95, 65, 82, 77, +/* 0x21a0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x21b0 */ 50, 68, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x21c0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, +/* 0x21d0 */ 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, +/* 0x21e0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, +/* 0x21f0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, +/* 0x2200 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2210 */ 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 55, 48, 32, 82, +/* 0x2220 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2230 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, +/* 0x2240 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x2250 */ 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 55, 99, +/* 0x2260 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2270 */ 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 56, +/* 0x2280 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x2290 */ 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, +/* 0x22a0 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x22b0 */ 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, +/* 0x22c0 */ 48, 57, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x22d0 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, +/* 0x22e0 */ 48, 48, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x22f0 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, +/* 0x2300 */ 48, 48, 48, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x2310 */ 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, 48, +/* 0x2320 */ 48, 48, 48, 48, 98, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2330 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, 48, +/* 0x2340 */ 48, 48, 48, 48, 48, 98, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x2350 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, 10, +/* 0x2360 */ 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2370 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, 66, +/* 0x2380 */ 10, 48, 48, 48, 48, 48, 48, 99, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x2390 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 50, +/* 0x23a0 */ 66, 10, 48, 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, +/* 0x23b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x23c0 */ 50, 66, 10, 48, 48, 48, 48, 48, 48,101, 56, 32, 82, 95, 65, 82, +/* 0x23d0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 78, 82, +/* 0x23e0 */ 86, 50, 66, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x23f0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, +/* 0x2400 */ 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x2410 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2420 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x2430 */ 48, 48, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x2440 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, +/* 0x2450 */ 10, 48, 48, 48, 48, 48, 48, 52, 99, 32, 82, 95, 65, 82, 77, 95, +/* 0x2460 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x2470 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, +/* 0x2480 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x2490 */ 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 10, 82, 69, +/* 0x24a0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, +/* 0x24b0 */ 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, +/* 0x24c0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, +/* 0x24d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x24e0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 52, 32, 82, 95, 65, +/* 0x24f0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2500 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x2510 */ 57, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2520 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2530 */ 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2540 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2550 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, +/* 0x2560 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2570 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2580 */ 48, 48,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2590 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x25a0 */ 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, 65, 82, 77, +/* 0x25b0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x25c0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 48, 56, +/* 0x25d0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x25e0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x25f0 */ 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2600 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2610 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, 57, 48, 32, 82, 95, 65, +/* 0x2620 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2630 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 49, +/* 0x2640 */ 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2650 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2660 */ 48, 48, 48, 48, 48, 49,100, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2670 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2680 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 48, 52, 32, 82, +/* 0x2690 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x26a0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x26b0 */ 48, 50, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x26c0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x26d0 */ 48, 10, 48, 48, 48, 48, 48, 50, 50, 48, 32, 82, 95, 65, 82, 77, +/* 0x26e0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x26f0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 51, 52, +/* 0x2700 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2710 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2720 */ 48, 48, 48, 50, 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2730 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2740 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 52, 48, 32, 82, 95, 65, +/* 0x2750 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2760 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, +/* 0x2770 */ 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2780 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2790 */ 48, 48, 48, 48, 48, 50, 53, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x27a0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x27b0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 50, 97, 52, 32, 82, +/* 0x27c0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x27d0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x27e0 */ 48, 50, 99, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x27f0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2800 */ 48, 10, 48, 48, 48, 48, 48, 50,101, 56, 32, 82, 95, 65, 82, 77, +/* 0x2810 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2820 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 48, 52, +/* 0x2830 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2840 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2850 */ 48, 48, 48, 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2860 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2870 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 51, 99, 32, 82, 95, 65, +/* 0x2880 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2890 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, +/* 0x28a0 */ 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x28b0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x28c0 */ 48, 48, 48, 48, 48, 51, 97, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x28d0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x28e0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51, 97, 56, 32, 82, +/* 0x28f0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2900 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2910 */ 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2920 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2930 */ 48, 10, 48, 48, 48, 48, 48, 51,101, 48, 32, 82, 95, 65, 82, 77, +/* 0x2940 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2950 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 51,101, 56, +/* 0x2960 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2970 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2980 */ 48, 48, 48, 52, 50, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2990 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x29a0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 51, 56, 32, 82, 95, 65, +/* 0x29b0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x29c0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, +/* 0x29d0 */ 54, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x29e0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x29f0 */ 48, 48, 48, 48, 48, 52, 56, 52, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2a00 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2a10 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52, 56, 99, 32, 82, +/* 0x2a20 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2a30 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2a40 */ 48, 52, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2a50 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2a60 */ 48, 10, 48, 48, 48, 48, 48, 52,100, 52, 32, 82, 95, 65, 82, 77, +/* 0x2a70 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2a80 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 52,101, 99, +/* 0x2a90 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2aa0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2ab0 */ 48, 48, 48, 52,102, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2ac0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2ad0 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 49, 56, 32, 82, 95, 65, +/* 0x2ae0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2af0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, +/* 0x2b00 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2b10 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2b20 */ 48, 48, 48, 48, 48, 53, 57, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2b30 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2b40 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53, 97, 48, 32, 82, +/* 0x2b50 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2b60 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2b70 */ 48, 53, 99, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2b80 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2b90 */ 48, 10, 48, 48, 48, 48, 48, 53,101, 52, 32, 82, 95, 65, 82, 77, +/* 0x2ba0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2bb0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 53,102, 99, +/* 0x2bc0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2bd0 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2be0 */ 48, 48, 48, 54, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2bf0 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2c00 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 50, 52, 32, 82, 95, 65, +/* 0x2c10 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2c20 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, +/* 0x2c30 */ 52, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2c40 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2c50 */ 48, 48, 48, 48, 48, 54, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2c60 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2c70 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 54, 56, 99, 32, 82, +/* 0x2c80 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2c90 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2ca0 */ 48, 54,100, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2cb0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2cc0 */ 48, 10, 48, 48, 48, 48, 48, 54,101, 99, 32, 82, 95, 65, 82, 77, +/* 0x2cd0 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2ce0 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 49, 99, +/* 0x2cf0 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2d00 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2d10 */ 48, 48, 48, 55, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2d20 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2d30 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 54, 99, 32, 82, 95, 65, +/* 0x2d40 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2d50 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, +/* 0x2d60 */ 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2d70 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2d80 */ 48, 48, 48, 48, 48, 55, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2d90 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2da0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55, 98, 56, 32, 82, +/* 0x2db0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2dc0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2dd0 */ 48, 55, 99, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2de0 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2df0 */ 48, 10, 48, 48, 48, 48, 48, 55,100, 48, 32, 82, 95, 65, 82, 77, +/* 0x2e00 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2e10 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 55,102, 52, +/* 0x2e20 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2e30 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2e40 */ 48, 48, 48, 56, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2e50 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2e60 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 50, 99, 32, 82, 95, 65, +/* 0x2e70 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2e80 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, +/* 0x2e90 */ 55, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x2ea0 */ 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, +/* 0x2eb0 */ 48, 48, 48, 48, 48, 56, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x2ec0 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x2ed0 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56, 97, 48, 32, 82, +/* 0x2ee0 */ 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, +/* 0x2ef0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, +/* 0x2f00 */ 48, 56,101, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, +/* 0x2f10 */ 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x2f20 */ 48, 10, 48, 48, 48, 48, 48, 56,102, 52, 32, 82, 95, 65, 82, 77, +/* 0x2f30 */ 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, +/* 0x2f40 */ 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 56,102, 99, +/* 0x2f50 */ 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, +/* 0x2f60 */ 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x2f70 */ 48, 48, 48, 57, 48, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, +/* 0x2f80 */ 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x2f90 */ 67, 50, 48, 10, 48, 48, 48, 48, 48, 57, 50, 56, 32, 82, 95, 65, +/* 0x2fa0 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2fb0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 10, 82, 69, 76, 79, 67, +/* 0x2fc0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x2fd0 */ 82, 32, 91, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 93, 58, 10, +/* 0x2fe0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x2ff0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x3000 */ 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x3010 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3020 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, +/* 0x3030 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3040 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3050 */ 48, 48, 48, 56, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3060 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3070 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, 56, 32, 82, 95, 65, 82, +/* 0x3080 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3090 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 97, +/* 0x30a0 */ 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x30b0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x30c0 */ 48, 48, 48, 48, 48,101, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x30d0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x30e0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32, 82, 95, +/* 0x30f0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3100 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3110 */ 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3120 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3130 */ 10, 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3140 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3150 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 49, 56, 32, +/* 0x3160 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3170 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3180 */ 48, 48, 49, 50, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3190 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x31a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, 65, 82, +/* 0x31b0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x31c0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 52, +/* 0x31d0 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x31e0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x31f0 */ 48, 48, 48, 48, 49, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3200 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3210 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 53, 48, 32, 82, 95, +/* 0x3220 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3230 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3240 */ 49, 56, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3250 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3260 */ 10, 48, 48, 48, 48, 48, 49, 56, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x3270 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3280 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 56, 99, 32, +/* 0x3290 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x32a0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x32b0 */ 48, 48, 49, 57, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x32c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x32d0 */ 49, 48, 10, 48, 48, 48, 48, 48, 49, 97, 48, 32, 82, 95, 65, 82, +/* 0x32e0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x32f0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49, 99, +/* 0x3300 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3310 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x3320 */ 48, 48, 48, 48, 49, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3330 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3340 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,100, 52, 32, 82, 95, +/* 0x3350 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3360 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3370 */ 49,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3380 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3390 */ 10, 48, 48, 48, 48, 48, 49,101, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x33a0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x33b0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 49,101, 99, 32, +/* 0x33c0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x33d0 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x33e0 */ 48, 48, 50, 50, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x33f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3400 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 50, 99, 32, 82, 95, 65, 82, +/* 0x3410 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3420 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 52, +/* 0x3430 */ 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3440 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x3450 */ 48, 48, 48, 48, 50, 52, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3460 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3470 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 53, 48, 32, 82, 95, +/* 0x3480 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3490 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x34a0 */ 50, 54, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x34b0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x34c0 */ 10, 48, 48, 48, 48, 48, 50, 56, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x34d0 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x34e0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50, 56, 99, 32, +/* 0x34f0 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3500 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3510 */ 48, 48, 50, 97, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3520 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3530 */ 49, 48, 10, 48, 48, 48, 48, 48, 50, 99, 56, 32, 82, 95, 65, 82, +/* 0x3540 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3550 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,100, +/* 0x3560 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x3570 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x3580 */ 48, 48, 48, 48, 50,100, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x3590 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x35a0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 50,102, 52, 32, 82, 95, +/* 0x35b0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x35c0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x35d0 */ 51, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x35e0 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x35f0 */ 10, 48, 48, 48, 48, 48, 51, 49, 52, 32, 82, 95, 65, 82, 77, 95, +/* 0x3600 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3610 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 50, 99, 32, +/* 0x3620 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3630 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3640 */ 48, 48, 51, 53, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3650 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3660 */ 49, 48, 10, 48, 48, 48, 48, 48, 51, 53, 56, 32, 82, 95, 65, 82, +/* 0x3670 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x3680 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 55, +/* 0x3690 */ 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x36a0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x36b0 */ 48, 48, 48, 48, 51, 55, 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x36c0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x36d0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 57, 99, 32, 82, 95, +/* 0x36e0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x36f0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, +/* 0x3700 */ 51, 98, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3710 */ 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x3720 */ 10, 48, 48, 48, 48, 48, 51, 98, 56, 32, 82, 95, 65, 82, 77, 95, +/* 0x3730 */ 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, +/* 0x3740 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 51, 99, 56, 32, +/* 0x3750 */ 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, +/* 0x3760 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, +/* 0x3770 */ 48, 48, 51, 99, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, +/* 0x3780 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x3790 */ 49, 48, 10, 48, 48, 48, 48, 48, 52, 48, 48, 32, 82, 95, 65, 82, +/* 0x37a0 */ 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, +/* 0x37b0 */ 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 52, 49, +/* 0x37c0 */ 56, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, +/* 0x37d0 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, +/* 0x37e0 */ 48, 48, 48, 48, 52, 52, 48, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x37f0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x3800 */ 69, 67, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x3810 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, +/* 0x3820 */ 67, 72, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x3830 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x3840 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x3850 */ 49, 48, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, +/* 0x3860 */ 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, +/* 0x3870 */ 48, 48, 48, 48, 48, 49, 49, 56, 32, 82, 95, 65, 82, 77, 95, 80, +/* 0x3880 */ 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, +/* 0x3890 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 50, 52, 32, 82, 95, +/* 0x38a0 */ 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x38b0 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, +/* 0x38c0 */ 51, 99, 32, 82, 95, 65, 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, +/* 0x38d0 */ 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, +/* 0x38e0 */ 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 65, 82, 77, 95, 80, 67, +/* 0x38f0 */ 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, +/* 0x3900 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 49, 56, 48, 32, 82, 95, 65, +/* 0x3910 */ 82, 77, 95, 80, 67, 50, 52, 32, 32, 32, 32, 32, 32, 32, 32, 77, +/* 0x3920 */ 65, 67, 72, 77, 65, 73, 78, 90, 10 }; diff --git a/src/stub/arm.v5a-darwin.macho-fold.h b/src/stub/arm.v5a-darwin.macho-fold.h index 78f018df..698038d9 100644 --- a/src/stub/arm.v5a-darwin.macho-fold.h +++ b/src/stub/arm.v5a-darwin.macho-fold.h @@ -1,5 +1,5 @@ /* arm.v5a-darwin.macho-fold.h - created from arm.v5a-darwin.macho-fold.bin, 1696 (0x6a0) bytes + created from arm.v5a-darwin.macho-fold.bin, 1756 (0x6dc) bytes This file is part of the UPX executable compressor. @@ -31,115 +31,119 @@ */ -#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_SIZE 1696 -#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_ADLER32 0x93dddb92 -#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_CRC32 0x2a2f439c +#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_SIZE 1756 +#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_ADLER32 0xa470fe2d +#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_CRC32 0x55f53e51 -unsigned char stub_arm_v5a_darwin_macho_fold[1696] = { -/* 0x0000 */ 0, 16,155,229, 68,112,141,226, 1, 0, 75,224, 24, 48,144,229, -/* 0x0010 */ 2, 10, 83,227, 2, 58,160,147, 3,208, 77,224, 13, 32,160,225, -/* 0x0020 */ 20, 96,143,226,224, 0, 45,233, 54, 1, 0,235, 60, 0,144,229, -/* 0x0030 */ 60,208, 71,226, 4, 0, 7,229,255,223,189,232,255, 48, 3,226, -/* 0x0040 */ 80, 0, 83,227, 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, -/* 0x0050 */ 14,240,160, 1, 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, -/* 0x0060 */ 11, 4, 83,227, 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224, -/* 0x0070 */ 255, 36,194,227, 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227, -/* 0x0080 */ 243,255,255, 26, 14,240,160,225, 30,255, 47,225, 1,192,160,227, -/* 0x0090 */ 128, 0, 0,239, 2, 1,128, 35, 30,255, 47,225, 3,192,160,227, -/* 0x00a0 */ 128, 0, 0,239, 2, 1,128, 35, 30,255, 47,225, 30,255, 47,225, -/* 0x00b0 */ 4,192,160,227,128, 0, 0,239, 2, 1,128, 35, 30,255, 47,225, -/* 0x00c0 */ 30,255, 47,225, 5,192,160,227,128, 0, 0,239, 2, 1,128, 35, -/* 0x00d0 */ 30,255, 47,225, 30,255, 47,225, 6,192,160,227,128, 0, 0,239, -/* 0x00e0 */ 2, 1,128, 35, 30,255, 47,225, 30,255, 47,225, 45,192,160,227, -/* 0x00f0 */ 128, 0, 0,239, 2, 1,128, 35, 30,255, 47,225, 30,255, 47,225, -/* 0x0100 */ 73,192,160,227,128, 0, 0,239, 2, 1,128, 35, 30,255, 47,225, -/* 0x0110 */ 30,255, 47,225, 74,192,160,227,128, 0, 0,239, 2, 1,128, 35, -/* 0x0120 */ 30,255, 47,225, 30,255, 47,225, 13,192,160,225,112, 0, 45,233, -/* 0x0130 */ 48, 0,156,232, 0, 96,160,227,197,192,160,227,128, 0, 0,239, -/* 0x0140 */ 2, 1,128, 35, 30,255, 47,225,112, 0,189,232, 30,255, 47,225, -/* 0x0150 */ 4, 64, 45,229, 0, 64,160,227,153,192,160,227,128, 0, 0,239, -/* 0x0160 */ 2, 1,128, 35, 30,255, 47,225, 4, 64,157,228, 30,255, 47,225, -/* 0x0170 */ 255,192,160,227,255,200,140,227, 4, 0, 0,234, 0, 32,144,229, -/* 0x0180 */ 2, 48, 12,224, 98, 44, 12,224, 99, 36,130,225, 4, 32,128,228, -/* 0x0190 */ 4, 16, 81,226,248,255,255,170, 30,255, 47,225, 0, 48,144,229, -/* 0x01a0 */ 2, 0, 83,225, 16, 64, 45,233, 0,192,160, 35, 2,224,160,225, -/* 0x01b0 */ 1, 64,160,225, 2, 32,160, 33, 4, 16,144,229, 4, 0, 0, 42, -/* 0x01c0 */ 127, 0,160,227,176,255,255,235, 1, 48,220,231, 4, 48,204,231, -/* 0x01d0 */ 1,192,140,226, 1, 32, 82,226,250,255,255, 42, 4, 32,144,229, -/* 0x01e0 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, -/* 0x01f0 */ 4, 32,128,229, 16,128,189,232,240, 64, 45,233, 0, 80,160,225, -/* 0x0200 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225, -/* 0x0210 */ 61, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227, -/* 0x0220 */ 221,255,255,235, 4,224,157,229, 0, 0, 94,227, 8, 16,157,229, -/* 0x0230 */ 6, 0, 0, 26,228, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26, -/* 0x0240 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 49, 0, 0,234, -/* 0x0250 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,138,255,255,235, -/* 0x0260 */ 14, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 94,225, -/* 0x0270 */ 248,255,255,138, 14, 0, 81,225, 26, 0, 0, 42, 12,192,221,229, -/* 0x0280 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 16,224,141,229, -/* 0x0290 */ 0,192,141,229, 15,224,160,225, 7,240,160,225, 0, 0, 80,227, -/* 0x02a0 */ 236,255,255, 26, 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225, -/* 0x02b0 */ 232,255,255, 26, 13, 48,221,229, 0, 0, 83,227, 0, 0, 86, 19, -/* 0x02c0 */ 4, 0,148, 21, 14, 32,221, 21, 15,224,160, 17, 6,240,160, 17, -/* 0x02d0 */ 8, 48,157,229, 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, -/* 0x02e0 */ 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, -/* 0x02f0 */ 4, 16,148,229,168,255,255,235, 4, 48,157,229, 6, 0,148,232, -/* 0x0300 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, -/* 0x0310 */ 0, 0, 83,227,190,255,255, 26, 20,208,141,226,240,128,189,232, -/* 0x0320 */ 85, 80, 88, 33,240, 79, 45,233, 0,176,160,227, 32,208, 77,226, -/* 0x0330 */ 2,160,160,225, 28, 80,128,226, 11,144,160,225, 16, 0,141,229, -/* 0x0340 */ 12, 16,141,229, 8, 48,141,229,102, 0, 0,234, 0, 48,149,229, -/* 0x0350 */ 1, 0, 83,227, 87, 0, 0, 26, 24,128,149,229, 36, 32,149,229, -/* 0x0360 */ 8, 58,160,225, 35, 58,160,225, 28, 0,149,229, 3,112,146,224, -/* 0x0370 */ 24, 32,141,229, 28,128,141,229, 20, 0,141,229, 8, 96, 99,224, -/* 0x0380 */ 23, 0, 0, 10, 0, 0, 90,227, 3, 0, 0, 26, 0, 0, 82,227, -/* 0x0390 */ 18, 48,160, 19, 3, 0, 0, 26, 4, 0, 0,234, 0, 0, 82,227, -/* 0x03a0 */ 2, 0, 0, 10, 88, 49,159,229, 8,224,157,229, 1, 0, 0,234, -/* 0x03b0 */ 76, 49,159,229, 0,224,224,227, 32,192,149,229, 12, 16,157,229, -/* 0x03c0 */ 6, 0,160,225, 12,192,129,224, 3, 32,160,227, 7, 16,160,225, -/* 0x03d0 */ 0,224,141,229, 4,192,141,229, 82,255,255,235, 0, 0, 86,225, -/* 0x03e0 */ 32, 0, 0, 26, 0, 0, 90,227, 11, 0, 0, 10, 36, 48,149,229, -/* 0x03f0 */ 0, 0, 83,227, 8, 0, 0, 10, 32, 48,149,229, 0, 0, 83,227, -/* 0x0400 */ 68, 32,157, 5, 10, 0,160,225, 0, 96,130, 5, 24, 16,141,226, -/* 0x0410 */ 72, 32,141,226, 12, 0,146,232,118,255,255,235, 0, 48,103,226, -/* 0x0420 */ 3, 74,160,225, 36, 74,160,225, 0, 0, 84,227, 5, 0, 0, 10, -/* 0x0430 */ 7, 16,134,224, 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, -/* 0x0440 */ 1, 48,193,228,251,255,255, 26, 0, 0, 87,227, 7, 0, 0, 10, -/* 0x0450 */ 6, 0,160,225, 7, 16,160,225, 44, 32,149,229, 44,255,255,235, -/* 0x0460 */ 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227, 6,255,255,235, -/* 0x0470 */ 20, 0,157,229, 4, 48,135,224, 0, 16,136,224, 3, 64,134,224, -/* 0x0480 */ 1, 0, 84,225, 20, 0, 0, 42, 0,192,224,227, 44, 32,149,229, -/* 0x0490 */ 1, 16,100,224, 0,192,141,229, 4, 0,160,225, 1,192,140,226, -/* 0x04a0 */ 92, 48,159,229, 4,192,141,229, 30,255,255,235, 0, 0, 84,225, -/* 0x04b0 */ 9, 0, 0, 10,235,255,255,234, 4, 48, 67,226, 1, 0, 83,227, -/* 0x04c0 */ 5, 0, 0,138, 8, 48,149,229, 1, 0, 83,227, 2, 0, 0, 26, -/* 0x04d0 */ 12, 48,149,229, 17, 0, 83,227, 16,176,133, 2, 4, 48,149,229, -/* 0x04e0 */ 1,144,137,226, 3, 80,133,224, 16, 16,157,229, 16, 48,145,229, -/* 0x04f0 */ 3, 0, 89,225,148,255,255, 58, 11, 0,160,225, 32,208,141,226, -/* 0x0500 */ 240,143,189,232, 18, 16, 0, 0,240, 67, 45,233, 40,208, 77,226, -/* 0x0510 */ 12, 16,141,229, 12, 16,157,229, 24,192,144,229, 24, 16, 65,226, -/* 0x0520 */ 24, 0,128,226, 68, 64,157,229, 36, 0,141,229, 32, 16,141,229, -/* 0x0530 */ 32,128,141,226, 0, 3,152,232, 2, 80,160,225, 32, 0,141,226, -/* 0x0540 */ 24, 16,141,226, 4, 32,160,225, 3,112,160,225, 0, 48,160,227, -/* 0x0550 */ 24,192,141,229, 28, 80,141,229, 16,128,141,229, 20,144,141,229, -/* 0x0560 */ 36,255,255,235, 76,192,157,229, 0,192,141,229, 72,192,157,229, -/* 0x0570 */ 0, 16,160,227, 16, 32,141,226, 5, 0,160,225, 0, 48,224,227, -/* 0x0580 */ 16, 16,141,233,102,255,255,235, 0, 96,160,225, 16, 0,149,229, -/* 0x0590 */ 28, 32,133,226, 0, 16,160,227, 58, 0, 0,234, 0, 48,146,229, -/* 0x05a0 */ 14, 0, 83,227, 52, 0, 0, 26, 8, 0,146,229, 0, 16,160,227, -/* 0x05b0 */ 0, 0,130,224, 1, 32,160,225,193,254,255,235, 0, 64, 80,226, -/* 0x05c0 */ 7, 0, 0,186, 0, 96,160,227, 4, 0,160,225, 5, 16,160,225, -/* 0x05d0 */ 7, 32,160,225, 6, 48,160,225,220,254,255,235, 0, 0, 87,225, -/* 0x05e0 */ 3, 0, 0, 10,127, 0,160,227,167,254,255,235, 8, 96,146,229, -/* 0x05f0 */ 244,255,255,234, 0, 32,149,229,156, 48,159,229, 3, 0, 82,225, -/* 0x0600 */ 16, 0, 0, 26, 7, 48,213,229, 20, 32,160,227,147, 2, 1,224, -/* 0x0610 */ 5, 0,160,225, 8, 16,129,226,212,254,255,235, 4, 0,149,229, -/* 0x0620 */ 8, 32,133,226, 0, 16,160,227, 4, 0, 0,234, 0, 48,146,229, -/* 0x0630 */ 12, 0, 83,227,236,255,255, 10, 1, 16,129,226, 20, 32,130,226, -/* 0x0640 */ 0, 0, 81,225,248,255,255, 26, 0,192,160,227, 6, 16,160,225, -/* 0x0650 */ 5, 0,160,225, 12, 32,160,225, 4, 48,160,225, 0,192,141,229, -/* 0x0660 */ 4,192,141,229, 8,192,141,229, 45,255,255,235, 0, 96,160,225, -/* 0x0670 */ 4, 0,160,225,151,254,255,235, 4, 0, 0,234, 4, 48,146,229, -/* 0x0680 */ 1, 16,129,226, 3, 32,130,224, 0, 0, 81,225,194,255,255, 26, -/* 0x0690 */ 6, 0,160,225, 40,208,141,226,240,131,189,232,190,186,254,202 +unsigned char stub_arm_v5a_darwin_macho_fold[1756] = { +/* 0x0000 */ 24, 48,144,229, 2,202,160,227, 12, 0, 83,225, 12, 48,160, 49, +/* 0x0010 */ 13,128,160,225, 3,208, 77,224, 13, 32,160,225, 11, 16,160,225, +/* 0x0020 */ 10, 0,160,225, 16, 96,136,226, 52, 80,143,226, 9, 64,160,225, +/* 0x0030 */ 112, 0, 45,233, 66, 1, 0,235, 56,160,144,229, 0,144,144,229, +/* 0x0040 */ 8,208,160,225, 0, 0,157,229, 44, 0, 0,235, 4, 0,157,229, +/* 0x0050 */ 8, 16,157,229, 91,112,160,227, 10,224,160,225, 16,208,141,226, +/* 0x0060 */ 25,255, 47,225,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, +/* 0x0070 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, +/* 0x0080 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26, +/* 0x0090 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, +/* 0x00a0 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225, +/* 0x00b0 */ 30,255, 47,225, 7,192,160,225, 1,112,160,227, 0, 0, 0,239, +/* 0x00c0 */ 12,112,160,225, 7,192,160,225, 3,112,160,227, 0, 0, 0,239, +/* 0x00d0 */ 12,112,160,225, 30,255, 47,225, 7,192,160,225, 4,112,160,227, +/* 0x00e0 */ 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, 7,192,160,225, +/* 0x00f0 */ 5,112,160,227, 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, +/* 0x0100 */ 7,192,160,225, 6,112,160,227, 0, 0, 0,239, 12,112,160,225, +/* 0x0110 */ 30,255, 47,225, 7,192,160,225, 45,112,160,227, 0, 0, 0,239, +/* 0x0120 */ 12,112,160,225, 30,255, 47,225, 7,192,160,225, 91,112,160,227, +/* 0x0130 */ 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, 7,192,160,225, +/* 0x0140 */ 125,112,160,227, 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, +/* 0x0150 */ 48, 0, 45,233, 12, 80,157,229, 8, 64,157,229, 5,202,176,225, +/* 0x0160 */ 6, 0, 0, 26, 37, 86,160,225, 7,192,160,225,192,112,160,227, +/* 0x0170 */ 0, 0, 0,239, 12,112,160,225, 48, 0,189,232, 30,255, 47,225, +/* 0x0180 */ 21, 0,224,227,251,255,255,234, 48, 0, 45,233, 3, 64,160,225, +/* 0x0190 */ 0, 80,160,227, 7,192,160,225,180,112,160,227, 0, 0, 0,239, +/* 0x01a0 */ 12,112,160,225, 48, 0,189,232, 30,255, 47,225,255,192,160,227, +/* 0x01b0 */ 255,200,140,227, 4, 0, 0,234, 0, 32,144,229, 2, 48, 12,224, +/* 0x01c0 */ 98, 44, 12,224, 99, 36,130,225, 4, 32,128,228, 4, 16, 81,226, +/* 0x01d0 */ 248,255,255,170, 30,255, 47,225, 0, 48,144,229, 2, 0, 83,225, +/* 0x01e0 */ 16, 64, 45,233, 0,192,160, 35, 2,224,160,225, 1, 64,160,225, +/* 0x01f0 */ 2, 32,160, 33, 4, 16,144,229, 4, 0, 0, 42,127, 0,160,227, +/* 0x0200 */ 171,255,255,235, 1, 48,220,231, 4, 48,204,231, 1,192,140,226, +/* 0x0210 */ 1, 32, 82,226,250,255,255, 42, 4, 32,144,229, 0, 48,144,229, +/* 0x0220 */ 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, 4, 32,128,229, +/* 0x0230 */ 16,128,189,232,240, 64, 45,233, 0, 80,160,225, 20,208, 77,226, +/* 0x0240 */ 1, 64,160,225, 2,112,160,225, 3, 96,160,225, 61, 0, 0,234, +/* 0x0250 */ 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,221,255,255,235, +/* 0x0260 */ 4,224,157,229, 0, 0, 94,227, 8, 16,157,229, 6, 0, 0, 26, +/* 0x0270 */ 228, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26, 0, 48,149,229, +/* 0x0280 */ 0, 0, 83,227, 2, 0, 0, 26, 49, 0, 0,234, 0, 0, 81,227, +/* 0x0290 */ 1, 0, 0, 26,127, 0,160,227,133,255,255,235, 14, 0, 81,225, +/* 0x02a0 */ 251,255,255,138, 0, 48,148,229, 3, 0, 94,225,248,255,255,138, +/* 0x02b0 */ 14, 0, 81,225, 26, 0, 0, 42, 12,192,221,229, 4, 0,149,229, +/* 0x02c0 */ 4, 32,148,229, 16, 48,141,226, 16,224,141,229, 0,192,141,229, +/* 0x02d0 */ 15,224,160,225, 7,240,160,225, 0, 0, 80,227,236,255,255, 26, +/* 0x02e0 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,232,255,255, 26, +/* 0x02f0 */ 13, 48,221,229, 0, 0, 83,227, 0, 0, 86, 19, 4, 0,148, 21, +/* 0x0300 */ 14, 32,221, 21, 15,224,160, 17, 6,240,160, 17, 8, 48,157,229, +/* 0x0310 */ 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232, +/* 0x0320 */ 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, 4, 16,148,229, +/* 0x0330 */ 168,255,255,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224, +/* 0x0340 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227, +/* 0x0350 */ 190,255,255, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33, +/* 0x0360 */ 240, 79, 45,233, 0,176,160,227, 32,208, 77,226, 2,160,160,225, +/* 0x0370 */ 28, 80,128,226, 11,144,160,225, 16, 0,141,229, 12, 16,141,229, +/* 0x0380 */ 8, 48,141,229,102, 0, 0,234, 0, 48,149,229, 1, 0, 83,227, +/* 0x0390 */ 87, 0, 0, 26, 24,128,149,229, 36, 32,149,229, 8, 58,160,225, +/* 0x03a0 */ 35, 58,160,225, 28, 0,149,229, 3,112,146,224, 24, 32,141,229, +/* 0x03b0 */ 28,128,141,229, 20, 0,141,229, 8, 96, 99,224, 23, 0, 0, 10, +/* 0x03c0 */ 0, 0, 90,227, 3, 0, 0, 26, 0, 0, 82,227, 18, 48,160, 19, +/* 0x03d0 */ 3, 0, 0, 26, 4, 0, 0,234, 0, 0, 82,227, 2, 0, 0, 10, +/* 0x03e0 */ 88, 49,159,229, 8,224,157,229, 1, 0, 0,234, 76, 49,159,229, +/* 0x03f0 */ 0,224,224,227, 32,192,149,229, 12, 16,157,229, 6, 0,160,225, +/* 0x0400 */ 12,192,129,224, 3, 32,160,227, 7, 16,160,225, 0,224,141,229, +/* 0x0410 */ 4,192,141,229, 77,255,255,235, 0, 0, 86,225, 32, 0, 0, 26, +/* 0x0420 */ 0, 0, 90,227, 11, 0, 0, 10, 36, 48,149,229, 0, 0, 83,227, +/* 0x0430 */ 8, 0, 0, 10, 32, 48,149,229, 0, 0, 83,227, 68, 32,157, 5, +/* 0x0440 */ 10, 0,160,225, 0, 96,130, 5, 24, 16,141,226, 72, 32,141,226, +/* 0x0450 */ 12, 0,146,232,118,255,255,235, 0, 48,103,226, 3, 74,160,225, +/* 0x0460 */ 36, 74,160,225, 0, 0, 84,227, 5, 0, 0, 10, 7, 16,134,224, +/* 0x0470 */ 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228, +/* 0x0480 */ 251,255,255, 26, 0, 0, 87,227, 7, 0, 0, 10, 6, 0,160,225, +/* 0x0490 */ 7, 16,160,225, 44, 32,149,229, 39,255,255,235, 0, 0, 80,227, +/* 0x04a0 */ 1, 0, 0, 10,127, 0,160,227, 1,255,255,235, 20, 0,157,229, +/* 0x04b0 */ 4, 48,135,224, 0, 16,136,224, 3, 64,134,224, 1, 0, 84,225, +/* 0x04c0 */ 20, 0, 0, 42, 0,192,224,227, 44, 32,149,229, 1, 16,100,224, +/* 0x04d0 */ 0,192,141,229, 4, 0,160,225, 1,192,140,226, 92, 48,159,229, +/* 0x04e0 */ 4,192,141,229, 25,255,255,235, 0, 0, 84,225, 9, 0, 0, 10, +/* 0x04f0 */ 235,255,255,234, 4, 48, 67,226, 1, 0, 83,227, 5, 0, 0,138, +/* 0x0500 */ 8, 48,149,229, 1, 0, 83,227, 2, 0, 0, 26, 12, 48,149,229, +/* 0x0510 */ 17, 0, 83,227, 16,176,133, 2, 4, 48,149,229, 1,144,137,226, +/* 0x0520 */ 3, 80,133,224, 16, 16,157,229, 16, 48,145,229, 3, 0, 89,225, +/* 0x0530 */ 148,255,255, 58, 11, 0,160,225, 32,208,141,226,240,143,189,232, +/* 0x0540 */ 18, 16, 0, 0,240, 67, 45,233, 40,208, 77,226, 12, 16,141,229, +/* 0x0550 */ 12, 16,157,229, 24,192,144,229, 24, 16, 65,226, 24, 0,128,226, +/* 0x0560 */ 68, 64,157,229, 36, 0,141,229, 32, 16,141,229, 32,128,141,226, +/* 0x0570 */ 0, 3,152,232, 2, 80,160,225, 32, 0,141,226, 24, 16,141,226, +/* 0x0580 */ 4, 32,160,225, 3,112,160,225, 0, 48,160,227, 24,192,141,229, +/* 0x0590 */ 28, 80,141,229, 16,128,141,229, 20,144,141,229, 36,255,255,235, +/* 0x05a0 */ 76,192,157,229, 0,192,141,229, 72,192,157,229, 0, 16,160,227, +/* 0x05b0 */ 16, 32,141,226, 5, 0,160,225, 0, 48,224,227, 16, 16,141,233, +/* 0x05c0 */ 102,255,255,235, 0, 96,160,225, 16, 0,149,229, 28, 32,133,226, +/* 0x05d0 */ 0, 16,160,227, 58, 0, 0,234, 0, 48,146,229, 14, 0, 83,227, +/* 0x05e0 */ 52, 0, 0, 26, 8, 0,146,229, 0, 16,160,227, 0, 0,130,224, +/* 0x05f0 */ 1, 32,160,225,188,254,255,235, 0, 64, 80,226, 7, 0, 0,186, +/* 0x0600 */ 0, 96,160,227, 4, 0,160,225, 5, 16,160,225, 7, 32,160,225, +/* 0x0610 */ 6, 48,160,225,219,254,255,235, 0, 0, 87,225, 3, 0, 0, 10, +/* 0x0620 */ 127, 0,160,227,162,254,255,235, 8, 96,146,229,244,255,255,234, +/* 0x0630 */ 0, 32,149,229,156, 48,159,229, 3, 0, 82,225, 16, 0, 0, 26, +/* 0x0640 */ 7, 48,213,229, 20, 32,160,227,147, 2, 1,224, 5, 0,160,225, +/* 0x0650 */ 8, 16,129,226,212,254,255,235, 4, 0,149,229, 8, 32,133,226, +/* 0x0660 */ 0, 16,160,227, 4, 0, 0,234, 0, 48,146,229, 12, 0, 83,227, +/* 0x0670 */ 236,255,255, 10, 1, 16,129,226, 20, 32,130,226, 0, 0, 81,225, +/* 0x0680 */ 248,255,255, 26, 0,192,160,227, 6, 16,160,225, 5, 0,160,225, +/* 0x0690 */ 12, 32,160,225, 4, 48,160,225, 0,192,141,229, 4,192,141,229, +/* 0x06a0 */ 8,192,141,229, 45,255,255,235, 0, 96,160,225, 4, 0,160,225, +/* 0x06b0 */ 146,254,255,235, 4, 0, 0,234, 4, 48,146,229, 1, 16,129,226, +/* 0x06c0 */ 3, 32,130,224, 0, 0, 81,225,194,255,255, 26, 6, 0,160,225, +/* 0x06d0 */ 40,208,141,226,240,131,189,232,190,186,254,202 }; diff --git a/src/stub/arm64-darwin.macho-entry.h b/src/stub/arm64-darwin.macho-entry.h index d0c9f804..bf24bc2c 100644 --- a/src/stub/arm64-darwin.macho-entry.h +++ b/src/stub/arm64-darwin.macho-entry.h @@ -1,5 +1,5 @@ /* arm64-darwin.macho-entry.h - created from arm64-darwin.macho-entry.bin, 7929 (0x1ef9) bytes + created from arm64-darwin.macho-entry.bin, 7921 (0x1ef1) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7929 -#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0x4d17a960 -#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x7e7a0dbf +#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7921 +#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0x5ccea70c +#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x829a61f1 -unsigned char stub_arm64_darwin_macho_entry[7929] = { +unsigned char stub_arm64_darwin_macho_entry[7921] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,192, 22, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,184, 22, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0040 */ 226, 3, 0,145, 0, 0, 0,148,254, 15, 31,248,226, 15,191,169, /* 0x0050 */ 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82, 24, 0, 0, 20, @@ -331,205 +331,205 @@ unsigned char stub_arm64_darwin_macho_entry[7929] = { /* 0x1240 */ 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214, /* 0x1250 */ 251, 3, 30,170,103, 3, 64,185, 98, 3, 22,203, 66, 64, 39,139, /* 0x1260 */ 226, 11, 0,249,225, 3, 2,170, 5, 0,128, 82, 4, 0,128, 18, -/* 0x1270 */ 67, 4,128, 82, 98, 0,128, 82, 0, 0,128,210,200, 27,128, 82, +/* 0x1270 */ 67, 4,128, 82, 98, 0,128, 82, 0, 0,128,210,168, 24,128, 82, /* 0x1280 */ 1, 0, 0,212,224, 7, 0,249,148, 2, 22,203,148, 2, 0,139, /* 0x1290 */ 5, 0,128,210,228, 3, 64,185, 67, 2,128, 82, 98, 0,128, 82, -/* 0x12a0 */ 97, 3, 22,203,200, 27,128, 82, 1, 0, 0,212,226, 11, 64,249, +/* 0x12a0 */ 97, 3, 22,203,168, 24,128, 82, 1, 0, 0,212,226, 11, 64,249, /* 0x12b0 */ 227, 19, 64,249, 66, 0, 0,139, 23, 0, 3,203,131, 3, 23,139, /* 0x12c0 */ 227, 15, 30,248, 0,204,116,146,224, 7, 0,249, 66, 0, 0,203, /* 0x12d0 */ 226, 11, 0,249,103, 3, 64,185,227, 99, 0,145,231, 15, 0,249, /* 0x12e0 */ 98, 3, 23,139,243, 3, 2,170,103, 7, 64,185,100, 11, 64,185, /* 0x12f0 */ 96, 51, 0,145,225, 3, 7,170,128, 3, 63,214,225, 11, 64,249, -/* 0x1300 */ 224, 7, 64,249,252, 7, 66,248,162, 0,128, 82, 72, 28,128, 82, +/* 0x1300 */ 224, 7, 64,249,252, 7, 66,248,162, 0,128, 82, 72, 9,128, 82, /* 0x1310 */ 1, 0, 0,212, 96, 2, 31,214,101,120,101, 99,117,116, 97, 98, /* 0x1320 */ 108,101, 95,112, 97,116,104, 61, 0, 0, 32,212,252, 3, 30,170, /* 0x1330 */ 64,132, 64,248,224,255,255,181, 64,132, 64,248,224,255,255,181, /* 0x1340 */ 64,132, 64,248, 32,255,255,180,129,254,255, 16, 3, 2,128, 82, /* 0x1350 */ 4, 20, 64, 56, 37, 20, 64, 56, 99, 4, 0, 81,159, 0, 5,107, -/* 0x1360 */ 1,255,255, 84, 99,255,255, 53, 2, 0,128,210,225, 3, 0,170, -/* 0x1370 */ 96, 12,128, 18, 8, 7,128, 82, 1, 0, 0,212,224, 15, 29,248, -/* 0x1380 */ 1, 0, 0, 16,246, 3, 1,170, 32, 68, 64,184,214, 66, 32,203, -/* 0x1390 */ 246, 19, 0,249,244, 3, 1,170, 32, 68, 64,184,148, 66, 32,203, -/* 0x13a0 */ 21, 32, 0,209,171,255,255,151,102,105,108,101, 32,102,111,114, -/* 0x13b0 */ 109, 97,116, 32,101,108,102, 54, 52, 45,108,105,116,116,108,101, -/* 0x13c0 */ 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105,111,110, -/* 0x13d0 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, -/* 0x13e0 */ 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, -/* 0x13f0 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1400 */ 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1410 */ 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, -/* 0x1420 */ 110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 77, 65, 67, -/* 0x1430 */ 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x1440 */ 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1450 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1460 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, -/* 0x1470 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x1480 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x1490 */ 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, -/* 0x14a0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x14b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x14c0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x14d0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, -/* 0x14e0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, -/* 0x14f0 */ 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, -/* 0x1500 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, -/* 0x1510 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1520 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1530 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 56, 32, 32, -/* 0x1540 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x1550 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, -/* 0x1560 */ 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x1570 */ 49, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1580 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1590 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 55, -/* 0x15a0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x15b0 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, -/* 0x15c0 */ 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, -/* 0x15d0 */ 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x15e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x15f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1600 */ 48, 50, 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x1610 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x1620 */ 32, 53, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, -/* 0x1630 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1640 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x1650 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1660 */ 48, 48, 48, 48, 51, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x1670 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x1680 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x1690 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,100, 48, 32, 32, 48, 48, -/* 0x16a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x16b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x16c0 */ 32, 32, 48, 48, 48, 48, 48, 51, 55, 99, 32, 32, 50, 42, 42, 48, -/* 0x16d0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, -/* 0x16e0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, -/* 0x16f0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, -/* 0x1700 */ 48, 48, 48, 57, 54, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1710 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1720 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1730 */ 48, 52, 52, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x1740 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x1750 */ 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, -/* 0x1760 */ 32, 48, 48, 48, 48, 48, 52, 57, 99, 32, 32, 48, 48, 48, 48, 48, -/* 0x1770 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x1780 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1790 */ 48, 48, 48, 48,100, 98, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x17a0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x17b0 */ 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, -/* 0x17c0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x17e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x17f0 */ 32, 32, 48, 48, 48, 48, 49, 50, 53, 48, 32, 32, 50, 42, 42, 48, -/* 0x1800 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x1810 */ 79, 78, 76, 89, 10, 32, 49, 48, 32, 77, 65, 67, 72, 77, 65, 73, -/* 0x1820 */ 78, 89, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1830 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1840 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1850 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53, 48, 32, 32, 50, -/* 0x1860 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x1870 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 77, 65, 67, 72, -/* 0x1880 */ 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, -/* 0x1890 */ 53, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x18a0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x18b0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53, 48, -/* 0x18c0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x18d0 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x18e0 */ 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, -/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1900 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x1910 */ 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1920 */ 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, -/* 0x1930 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1940 */ 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, -/* 0x1950 */ 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1960 */ 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, -/* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1980 */ 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, -/* 0x1990 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19a0 */ 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, -/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, -/* 0x19c0 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, -/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x19e0 */ 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1a00 */ 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a10 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, -/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1a30 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, -/* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, -/* 0x1a50 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a60 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, -/* 0x1a70 */ 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a80 */ 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, -/* 0x1a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x1aa0 */ 100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, -/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, -/* 0x1ac0 */ 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1ae0 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, -/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, -/* 0x1b00 */ 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1b20 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, -/* 0x1b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, -/* 0x1b40 */ 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b50 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1b60 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, -/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, -/* 0x1b80 */ 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b90 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, -/* 0x1ba0 */ 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, -/* 0x1bc0 */ 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bd0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, -/* 0x1be0 */ 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, -/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1c10 */ 103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, -/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32,117, -/* 0x1c30 */ 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109,112,114, -/* 0x1c40 */ 101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, -/* 0x1c60 */ 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c70 */ 48, 48, 48, 49, 49, 99, 32,117, 99,108, 95,110,114,118, 50,100, -/* 0x1c80 */ 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, -/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1ca0 */ 103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, -/* 0x1cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, 32,117, -/* 0x1cc0 */ 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114, -/* 0x1cd0 */ 101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x1cf0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, -/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, -/* 0x1d10 */ 68,101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x1d30 */ 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, -/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100, -/* 0x1d50 */ 101, 99,111,109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, -/* 0x1d60 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, -/* 0x1d70 */ 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, -/* 0x1d80 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1d90 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1da0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, -/* 0x1dc0 */ 54, 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 77, 65, 67, 72, 77, -/* 0x1dd0 */ 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1de0 */ 48, 48, 48, 48, 48,100, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x1df0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x1e00 */ 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, -/* 0x1e10 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, -/* 0x1e20 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1e30 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, -/* 0x1e50 */ 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, -/* 0x1e60 */ 95, 68, 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x1e70 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x1e80 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, -/* 0x1e90 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, -/* 0x1ea0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x1eb0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ec0 */ 48, 48, 49, 51, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, -/* 0x1ed0 */ 65, 68, 82, 95, 80, 82, 69, 76, 95, 76, 79, 50, 49, 32, 32, 95, -/* 0x1ee0 */ 115,116, 97,114,116, 45, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ef0 */ 48, 48, 48, 48, 48, 48, 48, 56, 10 +/* 0x1360 */ 1,255,255, 84, 99,255,255, 53, 1, 0,128,210,168, 0,128, 82, +/* 0x1370 */ 1, 0, 0,212,224, 15, 29,248, 1, 0, 0, 16,246, 3, 1,170, +/* 0x1380 */ 32, 68, 64,184,214, 66, 32,203,246, 19, 0,249,244, 3, 1,170, +/* 0x1390 */ 32, 68, 64,184,148, 66, 32,203, 21, 32, 0,209,173,255,255,151, +/* 0x13a0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, +/* 0x13b0 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, +/* 0x13c0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, +/* 0x13d0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, +/* 0x13e0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, +/* 0x13f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, +/* 0x1400 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, +/* 0x1410 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, +/* 0x1420 */ 10, 32, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, +/* 0x1430 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, +/* 0x1440 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1450 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1460 */ 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, +/* 0x1470 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, +/* 0x1480 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, +/* 0x1490 */ 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x14a0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x14b0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x14c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x14d0 */ 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x14e0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x14f0 */ 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1500 */ 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1530 */ 48, 48, 48, 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1540 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1550 */ 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, +/* 0x1560 */ 32, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, +/* 0x1570 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1580 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1590 */ 32, 48, 48, 48, 48, 48, 49, 55, 48, 32, 32, 50, 42, 42, 48, 32, +/* 0x15a0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, +/* 0x15b0 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, +/* 0x15c0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, 32, +/* 0x15d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x15e0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x15f0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 56, 99, 32, 32, 50, 42, +/* 0x1600 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1610 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 95, 84, +/* 0x1620 */ 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1630 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1640 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1650 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 55, 99, 32, +/* 0x1660 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1670 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, +/* 0x1680 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1690 */ 48, 48,100, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16a0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x16b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, +/* 0x16c0 */ 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x16d0 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x16e0 */ 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x16f0 */ 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 54, 56, 32, 32, +/* 0x1700 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1710 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1720 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 52, 99, 32, 32, 50, 42, +/* 0x1730 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1740 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, +/* 0x1750 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, +/* 0x1760 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1770 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1780 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 98, 52, 32, +/* 0x1790 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x17a0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, +/* 0x17b0 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x17c0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x17e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, +/* 0x17f0 */ 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1800 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, +/* 0x1810 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, +/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1850 */ 48, 49, 50, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1860 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x1870 */ 32, 49, 49, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, +/* 0x1880 */ 32, 32, 48, 48, 48, 48, 48, 49, 53, 48, 32, 32, 48, 48, 48, 48, +/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x18b0 */ 48, 48, 48, 48, 49, 50, 53, 48, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x18c0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, +/* 0x18d0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, +/* 0x18e0 */ 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1900 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, +/* 0x1910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, +/* 0x1920 */ 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1930 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1940 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, +/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, +/* 0x1960 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1970 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, +/* 0x1980 */ 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x1990 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, +/* 0x19a0 */ 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19b0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, +/* 0x19c0 */ 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, +/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19f0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, +/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1a10 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, +/* 0x1a30 */ 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a40 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, +/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1a60 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, +/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, +/* 0x1a80 */ 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a90 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, +/* 0x1aa0 */ 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ab0 */ 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, +/* 0x1ac0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1ad0 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x1ae0 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1af0 */ 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, +/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1b10 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x1b20 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b30 */ 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1b50 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x1b60 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b70 */ 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x1b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1b90 */ 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, +/* 0x1ba0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bb0 */ 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, +/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, +/* 0x1bd0 */ 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, +/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1bf0 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, +/* 0x1c10 */ 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c20 */ 48, 48, 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118, 50,101, +/* 0x1c30 */ 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, +/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1c50 */ 103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 9, 48, 48, +/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 99, 32,117, +/* 0x1c70 */ 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109,112,114, +/* 0x1c80 */ 101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, +/* 0x1ca0 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cb0 */ 48, 48, 48, 48,102, 48, 32,117, 99,108, 95,110,114,118, 50, 98, +/* 0x1cc0 */ 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, +/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1ce0 */ 103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, +/* 0x1cf0 */ 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d00 */ 48, 48, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101, 10, 48, +/* 0x1d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1d20 */ 103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, +/* 0x1d30 */ 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d40 */ 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,115, +/* 0x1d50 */ 115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, +/* 0x1d60 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, +/* 0x1d70 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, +/* 0x1d80 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, +/* 0x1d90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, +/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, +/* 0x1db0 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50, +/* 0x1dc0 */ 54, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,120, 48, +/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 99, 10, +/* 0x1de0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x1df0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, +/* 0x1e00 */ 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, +/* 0x1e10 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, +/* 0x1e20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, +/* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, +/* 0x1e40 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, +/* 0x1e50 */ 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 10, +/* 0x1e60 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, +/* 0x1e70 */ 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, +/* 0x1e80 */ 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, +/* 0x1e90 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x1ea0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x1eb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32, 82, 95, +/* 0x1ec0 */ 65, 65, 82, 67, 72, 54, 52, 95, 65, 68, 82, 95, 80, 82, 69, 76, +/* 0x1ed0 */ 95, 76, 79, 50, 49, 32, 32, 95,115,116, 97,114,116, 45, 48,120, +/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, +/* 0x1ef0 */ 10 }; diff --git a/src/stub/arm64-darwin.macho-fold.h b/src/stub/arm64-darwin.macho-fold.h index 644a76fa..6d401437 100644 --- a/src/stub/arm64-darwin.macho-fold.h +++ b/src/stub/arm64-darwin.macho-fold.h @@ -1,5 +1,5 @@ /* arm64-darwin.macho-fold.h - created from arm64-darwin.macho-fold.bin, 4528 (0x11b0) bytes + created from arm64-darwin.macho-fold.bin, 4552 (0x11c8) bytes This file is part of the UPX executable compressor. @@ -31,292 +31,294 @@ */ -#define STUB_ARM64_DARWIN_MACHO_FOLD_SIZE 4528 -#define STUB_ARM64_DARWIN_MACHO_FOLD_ADLER32 0xa7c7351d -#define STUB_ARM64_DARWIN_MACHO_FOLD_CRC32 0x27d37905 +#define STUB_ARM64_DARWIN_MACHO_FOLD_SIZE 4552 +#define STUB_ARM64_DARWIN_MACHO_FOLD_ADLER32 0x2d363f6f +#define STUB_ARM64_DARWIN_MACHO_FOLD_CRC32 0x36b2ceb5 -unsigned char stub_arm64_darwin_macho_fold[4528] = { +unsigned char stub_arm64_darwin_macho_fold[4552] = { /* 0x0000 */ 224, 3, 20,170,225, 3, 21,170, 3, 24, 64,185, 9, 0,132, 82, /* 0x0010 */ 127, 0, 9,107, 99,128,137, 26, 99, 60, 0, 17, 99,108, 28, 18, /* 0x0020 */ 230,131, 0,145,243, 3, 0,145,255, 67, 35,203,226, 3, 0,145, -/* 0x0030 */ 228, 3, 28,170,197, 1, 0, 16, 0, 0, 32,212, 60, 3, 0,148, -/* 0x0040 */ 20,128, 64,249, 28, 0, 64,249,127, 2, 0,145,224, 3, 64,185, -/* 0x0050 */ 42, 0, 0,148,224, 7, 64,249,225, 19, 64,185, 40, 9,128, 82, -/* 0x0060 */ 254, 3, 20,170,255,131, 0,145,128, 3, 31,214, 99, 28, 0, 18, -/* 0x0070 */ 127, 72, 1,113, 1, 2, 0, 84, 33,124, 2, 83,192, 1, 0,180, -/* 0x0080 */ 161, 1, 0, 52, 33, 4, 0, 81, 2, 88, 97,184, 67,124, 26, 83, -/* 0x0090 */ 127,148, 0,113,193, 0, 0, 84, 67, 20, 6, 18, 66, 0, 1, 75, -/* 0x00a0 */ 66,100, 0, 18, 66, 0, 3, 42, 2, 88, 33,184, 63, 0, 0,113, -/* 0x00b0 */ 161,254,255, 84,192, 3, 95,214,192, 3, 95,214,168, 11,128, 82, -/* 0x00c0 */ 1, 0, 0,212,232, 7,128, 82, 1, 0, 0,212,192, 3, 95,214, -/* 0x00d0 */ 8, 8,128, 82, 1, 0, 0,212,192, 3, 95,214, 0, 0, 32,212, -/* 0x00e0 */ 2, 0,128,210,225, 3, 0,170, 96, 12,128, 18, 8, 7,128, 82, -/* 0x00f0 */ 1, 0, 0,212,192, 3, 95,214, 40, 7,128, 82, 1, 0, 0,212, -/* 0x0100 */ 192, 3, 95,214,168, 5,128, 82, 1, 0, 0,212,192, 3, 95,214, -/* 0x0110 */ 232, 26,128, 82, 1, 0, 0,212,192, 3, 95,214, 72, 28,128, 82, -/* 0x0120 */ 1, 0, 0,212,192, 3, 95,214,200, 27,128, 82, 1, 0, 0,212, -/* 0x0130 */ 192, 3, 95,214,104, 8,128, 82, 1, 0, 0,212,192, 3, 95,214, -/* 0x0140 */ 233, 31,128, 82, 41, 29, 16, 50, 6, 0, 0, 20, 2, 0, 64,185, -/* 0x0150 */ 35, 1, 2, 10, 34, 97,194, 10, 66, 32,195, 42, 2, 68, 0,184, -/* 0x0160 */ 33, 16, 0,113, 74,255,255, 84,192, 3, 95,214, 67, 1,128, 82, -/* 0x0170 */ 229, 3, 3, 42, 4, 8,195, 26,159, 36, 0,113,105, 0, 0, 84, -/* 0x0180 */ 99,124, 5, 27,252,255,255, 23, 4, 0,128,210, 71, 1,128, 82, -/* 0x0190 */ 72,124, 64,147, 31, 36, 0,113, 69, 0, 4, 11, 41, 1, 0, 84, -/* 0x01a0 */ 5, 8,195, 26, 38, 0, 8,139,160,128, 3, 27,165,192, 0, 17, -/* 0x01b0 */ 197,104, 36, 56, 99, 8,199, 26,132, 4, 0,145,246,255,255, 23, -/* 0x01c0 */ 0,192, 0, 17, 32,200, 37, 56,160, 4, 0, 17,192, 3, 95,214, -/* 0x01d0 */ 229, 1,128, 82, 3, 0,254,210,127, 0, 0,234,129, 0, 0, 84, -/* 0x01e0 */ 165, 4, 0,113, 99,252, 68,211,129,255,255, 84, 4, 0,128,210, -/* 0x01f0 */ 230, 10,128, 82, 7, 6,128, 82,130, 8, 0, 17,163, 1, 0,180, -/* 0x0200 */ 162, 0, 4, 75, 40, 0, 4,139, 66,116, 30, 83, 99,252, 68,211, -/* 0x0210 */ 2, 36,194,154,132, 4, 0,145, 66, 12, 0, 18, 95, 36, 0,113, -/* 0x0220 */ 201,128,135, 26, 34, 1, 2, 11, 2, 9, 0, 57,243,255,255, 23, -/* 0x0230 */ 224, 3, 2, 42,192, 3, 95,214,253,123,171,169,253, 3, 0,145, -/* 0x0240 */ 245, 91, 2,169,247, 99, 3,169,243, 83, 1,169,161,143, 0,249, -/* 0x0250 */ 161, 3, 4,145,162,147, 0,249,248, 3, 0,170,249,107, 4,169, -/* 0x0260 */ 163,151, 0,249,160, 67, 5,145,164,155, 0,249, 2, 0,128,210, -/* 0x0270 */ 165,159, 0,249,243, 3, 2, 42,166,163, 0,249, 21, 6,128, 82, -/* 0x0280 */ 167,167, 0,249, 22, 15,128, 82,160, 39,128, 61,183, 5,128, 82, -/* 0x0290 */ 161, 43,128, 61,162, 47,128, 61,163, 51,128, 61,164, 55,128, 61, -/* 0x02a0 */ 165, 59,128, 61,166, 63,128, 61, 39, 0,128, 61,160, 59, 0,249, -/* 0x02b0 */ 160, 63, 0,249,160, 67, 4,145,160, 67, 0,249,224, 6,128, 18, -/* 0x02c0 */ 160,139, 0,185,224, 15,128, 18,160,143, 0,185, 25, 3, 64, 57, -/* 0x02d0 */ 20, 7, 0,145,250, 3, 20,170,121, 0, 0, 53, 34, 1, 0,181, -/* 0x02e0 */ 137, 0, 0, 20, 63,151, 0,113,160, 0, 0, 84, 95, 0, 31,235, -/* 0x02f0 */ 66, 16,148,154,248, 3, 20,170,245,255,255, 23,226, 0, 0,180, -/* 0x0300 */ 65, 4, 0,209, 64, 0,128, 82,130, 2, 2,203,113,255,255,151, -/* 0x0310 */ 115, 2, 0, 11,153, 15, 0, 52, 0, 7, 64, 57, 20, 11, 0,145, -/* 0x0320 */ 31,192, 1,113,224, 6, 0, 84,168, 0, 0, 84,192, 14, 0, 52, -/* 0x0330 */ 31,144, 1,113,160, 3, 0, 84, 7, 0, 0, 20, 31,212, 1,113, -/* 0x0340 */ 32, 1, 0, 84, 31,224, 1,113,224, 7, 0, 84, 31,204, 1,113, -/* 0x0350 */ 192, 10, 0, 84, 64, 0,128, 82,225, 3, 26,170, 34, 0,128,210, -/* 0x0360 */ 78, 0, 0, 20,161,139, 64,185,160, 59, 64,249,161, 0,248, 54, -/* 0x0370 */ 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107,173, 0, 0, 84, -/* 0x0380 */ 1, 44, 0,145, 33,240,125,146,161, 59, 0,249, 3, 0, 0, 20, -/* 0x0390 */ 160, 63, 64,249, 0,192, 33,139, 0, 0, 64,185,161, 99, 1,145, -/* 0x03a0 */ 2, 0,128, 82, 21, 0, 0, 20,161,139, 64,185,160, 59, 64,249, -/* 0x03b0 */ 161, 0,248, 54, 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107, -/* 0x03c0 */ 173, 0, 0, 84, 1, 44, 0,145, 33,240,125,146,161, 59, 0,249, -/* 0x03d0 */ 3, 0, 0, 20,160, 63, 64,249, 0,192, 33,139, 0, 0, 64,185, -/* 0x03e0 */ 2, 0,128, 82,128, 0,248, 54,224, 3, 0, 75,183, 99, 1, 57, -/* 0x03f0 */ 34, 0,128, 82,161, 99, 1,145, 93,255,255,151, 36, 0, 0, 20, -/* 0x0400 */ 161,139, 64,185,181, 99, 1, 57,182,103, 1, 57,160, 59, 64,249, -/* 0x0410 */ 161, 0,248, 54, 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107, -/* 0x0420 */ 173, 0, 0, 84, 1, 60, 0,145, 33,240,125,146,161, 59, 0,249, -/* 0x0430 */ 3, 0, 0, 20,160, 63, 64,249, 0,192, 33,139, 0, 0, 64,249, -/* 0x0440 */ 17, 0, 0, 20,161,139, 64,185,160,103, 1, 57,181, 99, 1, 57, -/* 0x0450 */ 160, 59, 64,249,161, 0,248, 54, 34, 32, 0, 17,162,139, 0,185, -/* 0x0460 */ 95, 0, 31,107,173, 0, 0, 84, 1, 44, 0,145, 33,240,125,146, -/* 0x0470 */ 161, 59, 0,249, 3, 0, 0, 20,160, 63, 64,249, 0,192, 33,139, -/* 0x0480 */ 0, 0,128,185,161, 99, 1,145, 82,255,255,151, 2,124, 64,147, -/* 0x0490 */ 161, 99, 1,145, 64, 0,128, 82, 14,255,255,151,115, 2, 0, 11, -/* 0x04a0 */ 2, 0,128,210,148,255,255, 23,161,139, 64,185,160, 59, 64,249, -/* 0x04b0 */ 161, 0,248, 54, 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107, -/* 0x04c0 */ 173, 0, 0, 84, 1, 60, 0,145, 33,240,125,146,161, 59, 0,249, -/* 0x04d0 */ 3, 0, 0, 20,160, 63, 64,249, 0,192, 33,139, 1, 0, 64,249, -/* 0x04e0 */ 226, 3, 1,170,161, 0, 0,180, 64, 0, 64, 57, 96, 0, 0, 52, -/* 0x04f0 */ 66, 4, 0,145,253,255,255, 23, 64, 0,128, 82, 66, 0, 1,203, -/* 0x0500 */ 230,255,255, 23,224, 3, 19, 42,243, 83, 65,169,245, 91, 66,169, -/* 0x0510 */ 247, 99, 67,169,249,107, 68,169,253,123,213,168,192, 3, 95,214, -/* 0x0520 */ 253,123,189,169,253, 3, 0,145,243, 83, 1,169,243, 3, 0,170, -/* 0x0530 */ 244, 3, 2,170,245, 91, 2,169, 22, 4, 64,249,245, 3, 1,170, -/* 0x0540 */ 98, 2, 64,249,225, 3, 19,170,227, 3, 22,170,228, 3, 21,170, -/* 0x0550 */ 229, 3, 20,170, 7, 0, 0,148,120,114,101, 97,100, 32, 37,112, -/* 0x0560 */ 40, 37,120, 32, 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, 0, -/* 0x0570 */ 224, 3, 30,170, 49,255,255,151, 98, 2, 64,249, 0, 0,128,210, -/* 0x0580 */ 95, 0, 20,235, 34, 2, 0, 84, 99, 6, 64,249,225, 3, 19,170, -/* 0x0590 */ 228, 3, 21,170,229, 3, 20,170, 8, 0, 0,148,120,114,101, 97, -/* 0x05a0 */ 100,102, 97,105,108, 32, 37,112, 40, 37,120, 32, 37,112, 41, 32, -/* 0x05b0 */ 37,112, 32, 37,120, 10, 0, 0,224, 3, 30,170, 31,255,255,151, -/* 0x05c0 */ 224, 15,128, 82,190,254,255,151, 31, 0, 20,235,160, 0, 0, 84, -/* 0x05d0 */ 193,106, 96, 56,161,106, 32, 56, 0, 4, 0,145,251,255,255, 23, -/* 0x05e0 */ 97, 6, 64,249,245, 91, 66,169, 33, 0, 0,139, 97, 6, 0,249, -/* 0x05f0 */ 97, 2, 64,249, 32, 0, 0,203, 96, 2, 0,249,243, 83, 65,169, -/* 0x0600 */ 253,123,195,168,192, 3, 95,214,253,123,190,169,253, 3, 0,145, -/* 0x0610 */ 243, 11, 0,249,243, 3, 0, 42,225, 3, 19, 42, 5, 0, 0,148, -/* 0x0620 */ 101,114,114, 95,101,120,105,116, 32, 37,120, 10, 0, 0, 0, 0, -/* 0x0630 */ 224, 3, 30,170, 1,255,255,151,224, 3, 19, 42,160,254,255,151, -/* 0x0640 */ 255,131, 1,209,253,123, 1,169,253, 67, 0,145,243, 83, 2,169, -/* 0x0650 */ 244, 3, 0,170,243, 3, 1,170,245, 91, 3,169,227, 3, 0,249, -/* 0x0660 */ 246, 3, 2,170,245, 3, 3,170,130, 2, 64,249,131, 6, 64,249, -/* 0x0670 */ 225, 3, 20,170,101, 2, 64,249,228, 3, 19,170,102, 6, 64,249, -/* 0x0680 */ 231, 3, 22,170, 14, 0, 0,148,117,110,112, 97, 99,107, 69,120, -/* 0x0690 */ 116,101,110,116, 32,105,110, 61, 37,112, 40, 37,120, 32, 37,112, -/* 0x06a0 */ 41, 32, 32,111,117,116, 61, 37,112, 40, 37,120, 32, 37,112, 41, -/* 0x06b0 */ 32, 32, 37,112, 32, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, -/* 0x06c0 */ 222,254,255,151, 96, 2, 64,249,160, 10, 0,180,130, 1,128,210, -/* 0x06d0 */ 224, 3, 20,170,161, 3, 1,145,146,255,255,151,162, 67, 64,185, -/* 0x06e0 */ 164, 71, 64,185, 98, 1, 0, 53,160, 10,138, 82, 0, 43,164,114, -/* 0x06f0 */ 159, 0, 0,107, 96, 0, 0, 84, 64, 0,128, 82, 4, 0, 0, 20, -/* 0x0700 */ 128, 2, 64,249,192, 8, 0,180, 96, 0,128, 82,191,255,255,151, -/* 0x0710 */ 100, 0, 0, 53,128, 0,128, 82,253,255,255, 23,159, 0, 2,107, -/* 0x0720 */ 41, 2, 0, 84, 99, 2, 64,249,225, 3, 4, 42, 10, 0, 0,148, -/* 0x0730 */ 115,122, 95, 99,112,114, 61, 37,120, 32, 32,115,122, 95,117,110, -/* 0x0740 */ 99, 61, 37,120, 32, 32,120,111, 45, 62,115,105,122,101, 61, 37, -/* 0x0750 */ 120, 10, 0, 0,224, 3, 30,170,184,254,255,151,160, 0,128, 82, -/* 0x0760 */ 235,255,255, 23, 97, 2, 64,249,224, 3, 2, 42, 31, 0, 1,235, -/* 0x0770 */ 168,253,255, 84,159, 0, 2,107,162, 3, 0, 84,160, 31, 0,249, -/* 0x0780 */ 225, 3, 4, 42,128, 6, 64,249,163,227, 0,145, 98, 6, 64,249, -/* 0x0790 */ 164, 35, 65, 57,192, 2, 63,214,160, 0, 0, 53,161, 31, 64,249, -/* 0x07a0 */ 160, 67, 64,185, 63, 0, 0,235, 96, 0, 0, 84,224, 0,128, 82, -/* 0x07b0 */ 215,255,255, 23,163, 39, 65, 57,181, 0, 0,180,131, 0, 0, 52, -/* 0x07c0 */ 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,162, 71, 64,185, -/* 0x07d0 */ 129, 6, 64,249,128, 2, 64,249, 33, 0, 2,139,129, 6, 0,249, -/* 0x07e0 */ 0, 0, 2,203,128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249, -/* 0x07f0 */ 224, 3, 20,170,226, 3, 4, 42, 74,255,255,151,162, 67, 64,185, -/* 0x0800 */ 97, 6, 64,249, 96, 2, 64,249, 33, 0, 2,139, 97, 6, 0,249, -/* 0x0810 */ 0, 0, 2,203, 96, 2, 0,249,171,255,255, 23,191, 67, 0,209, -/* 0x0820 */ 243, 83, 66,169,245, 91, 67,169,253,123, 65,169,255,131, 1,145, -/* 0x0830 */ 192, 3, 95,214,253,123,179,169,253, 3, 0,145,234, 47, 7,109, -/* 0x0840 */ 243, 83, 1,169,236, 55, 8,109,247, 99, 3,169,232, 39, 6,109, -/* 0x0850 */ 249,107, 4,169,238, 63, 9,109,251,115, 5,169,245, 91, 2,169, -/* 0x0860 */ 251, 3, 0,170, 19,128, 0,145,106, 0, 39, 30,247, 3, 2,170, -/* 0x0870 */ 44, 0, 39, 30,249, 3, 4,170,173, 0,103,158,227, 3, 4,170, -/* 0x0880 */ 203, 0,103,158, 17, 0, 0,148,100,111, 95,120,109, 97,112, 32, -/* 0x0890 */ 32,102,100,105, 61, 37,120, 32, 32,109,104,100,114, 61, 37,112, -/* 0x08a0 */ 32, 32, 42,109,104,100,114,112,112, 61, 37,112, 32, 32,120,105, -/* 0x08b0 */ 61, 37,112, 40, 37,120, 32, 37,112, 41, 32,102, 95,117,110,102, -/* 0x08c0 */ 61, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, 68, 0, 0,180, -/* 0x08d0 */ 131, 0, 64,249,151, 0, 0,180,229, 2, 64,249,230, 6, 64,249, -/* 0x08e0 */ 3, 0, 0, 20,229, 3, 23,170,230, 3, 23,170, 65, 1, 38, 30, -/* 0x08f0 */ 226, 3, 27,170,103, 1,102,158,228, 3, 23,170, 24, 0,128,210, -/* 0x0900 */ 28, 0,128, 82,250, 3, 24,170, 76,254,255,151, 6, 0, 0,148, -/* 0x0910 */ 116,104,114,101, 97,100, 95, 99,111,109,109, 97,110,100, 61, 32, -/* 0x0920 */ 37,112, 10, 0,224, 3, 30,170, 14, 0,103,158, 6, 0, 0,148, -/* 0x0930 */ 116,104,114,101, 97,100, 95,115,116, 97,116,101, 61, 32, 37,112, -/* 0x0940 */ 10, 0, 0, 0,224, 3, 30,170, 15, 0,103,158, 96, 19, 64,185, -/* 0x0950 */ 159, 3, 0,107, 66, 29, 0, 84, 96, 2, 64,185, 31,100, 0,113, -/* 0x0960 */ 97, 26, 0, 84, 97, 18, 64,249, 33, 26, 0,180, 96, 22, 64,249, -/* 0x0970 */ 0, 2, 0,181, 96, 26, 64,249,192, 1, 0,180, 32, 3, 64,249, -/* 0x0980 */ 128, 1, 0,180, 1, 24, 64,185, 65, 1,168, 54,120, 14, 64,249, -/* 0x0990 */ 24, 0, 24,203,225, 3, 24,170, 4, 0, 0,148,114,101,108,111, -/* 0x09a0 */ 99, 61, 37,112, 10, 0, 0, 0,224, 3, 30,170, 35,254,255,151, -/* 0x09b0 */ 118, 14, 64,249, 98, 26, 64,249, 22, 3, 22,139, 96, 18, 64,249, -/* 0x09c0 */ 212, 46, 64,146,182,103, 0,249,192, 2, 0,139,162, 99, 0,249, -/* 0x09d0 */ 214, 2, 20,203,148, 2, 2,171, 8, 0,103,158, 64, 10, 0, 84, -/* 0x09e0 */ 32, 3, 64,249,255, 2, 31,235,104, 0,128,210, 85, 0,128, 82, -/* 0x09f0 */ 8, 17,159,154, 31, 0, 31,235, 64, 2,128, 82, 8, 1, 20,139, -/* 0x0a00 */ 0, 16,149, 26,255, 2, 31,235,245, 7,159, 26, 85, 0, 0, 53, -/* 0x0a10 */ 66, 0, 0,181, 21, 4,128, 82,181, 2, 0, 42, 95, 0, 31,235, -/* 0x0a20 */ 64, 1, 38, 30,105, 22, 64,249,226, 3, 8,170,228, 3, 21, 42, -/* 0x0a30 */ 225, 3, 22,170, 99, 0,128, 82,231, 3, 24,170,168, 87, 0,249, -/* 0x0a40 */ 10, 16,159, 90,170, 91, 0,249,128, 1, 38, 30,229, 3, 10, 42, -/* 0x0a50 */ 9, 0, 9, 11,169, 95, 0,249,230, 3, 9, 42, 18, 0, 0,148, -/* 0x0a60 */ 109,109, 97,112, 32, 32, 97,100,100,114, 61, 37,112, 32, 32,108, -/* 0x0a70 */ 101,110, 61, 37,112, 32, 32,112,114,111,116, 61, 37,120, 32, 32, -/* 0x0a80 */ 102,108, 97,103,115, 61, 37,120, 32, 32,102,100, 61, 37,100, 32, -/* 0x0a90 */ 32,111,102,102, 61, 37,112, 32, 32,114,101,108,111, 99, 61, 37, -/* 0x0aa0 */ 112, 10, 0, 0,224, 3, 30,170,228,253,255,151,168, 87, 64,249, -/* 0x0ab0 */ 227, 3, 21, 42,170, 91, 64,249,224, 3, 22,170,169, 95, 64,249, -/* 0x0ac0 */ 225, 3, 8,170, 98, 0,128, 82,228, 3, 10, 42,229, 3, 9, 42, -/* 0x0ad0 */ 150,253,255,151,245, 3, 0,170, 32, 3, 64,249,128, 0, 0,181, -/* 0x0ae0 */ 53, 3, 0,249,248, 3, 21,170, 16, 0, 0, 20,223, 2, 21,235, -/* 0x0af0 */ 192, 1, 0, 84,225, 3, 21,170,226, 3, 22,170, 6, 0, 0,148, -/* 0x0b00 */ 109, 97,100,100,114, 61, 37,112, 32, 32, 97,100,100,114, 61, 37, -/* 0x0b10 */ 112, 10, 0, 0,224, 3, 30,170,200,253,255,151, 0, 1,128, 82, -/* 0x0b20 */ 71, 0, 0, 20,245, 3, 22,170,119, 1, 0,180, 96, 26, 64,249, -/* 0x0b30 */ 32, 1, 0,180, 96, 22, 64,249, 64, 0, 0,181, 53, 3, 0,249, -/* 0x0b40 */ 162, 1,102,158,224, 3, 23,170, 99, 1,102,158,161, 3, 3,145, -/* 0x0b50 */ 188,254,255,151,255, 2, 31,235,224, 7,159, 26,159, 2, 31,235, -/* 0x0b60 */ 229, 7,159, 26, 9, 0, 39, 30,101, 4, 0, 52, 64, 4, 0, 52, -/* 0x0b70 */ 96, 22, 64,249, 0, 4, 0,181, 96, 66, 64,185,192, 3, 0, 52, -/* 0x0b80 */ 99, 2, 27,203, 33, 0,128, 82,163, 2, 3,139, 1,128,186,114, -/* 0x0b90 */ 98, 32, 1,145,228, 3, 21,170,165, 95, 0,249, 64, 48, 64,185, -/* 0x0ba0 */ 0, 32, 0,209,186, 2, 0,139,161,106, 32,184, 0,120,128, 82, -/* 0x0bb0 */ 224,203,186,114,225, 3, 26,170, 64, 7, 0,185, 11, 0, 0,148, -/* 0x0bc0 */ 104, 97,116, 99,104, 61, 37,112, 32, 32,115,101, 99,112, 61, 37, -/* 0x0bd0 */ 112, 32, 32,115,101,103,112, 61, 37,112, 32, 32,109,104,100,114, -/* 0x0be0 */ 61, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170,147,253,255,151, -/* 0x0bf0 */ 165, 95, 64,249,246, 3, 20,203,214, 46, 64,242, 97, 0, 0, 84, -/* 0x0c00 */ 5, 2, 0, 52, 8, 0, 0, 20,161, 2, 20,139, 0, 0,128,210, -/* 0x0c10 */ 63,104, 32, 56, 0, 4, 0,145, 31, 0, 22,235,161,255,255, 84, -/* 0x0c20 */ 248,255,255, 23, 98, 62, 64,185,224, 3, 21,170,225, 3, 20,170, -/* 0x0c30 */ 59,253,255,151, 96, 0, 0, 52, 64, 1,128, 82,115,254,255,151, -/* 0x0c40 */ 0, 1,102,158,214, 2, 20,139,181, 2, 22,139,191, 2, 0,235, -/* 0x0c50 */ 194, 1, 0, 84,213, 4, 0,180, 1, 1,102,158, 98, 62, 64,185, -/* 0x0c60 */ 224, 3, 21,170, 67, 6,128, 82, 4, 0,128, 18, 5, 0,128, 82, -/* 0x0c70 */ 33, 0, 21,203, 45,253,255,151,191, 2, 0,235,128, 3, 0, 84, -/* 0x0c80 */ 32, 1,128, 82,238,255,255, 23, 32, 1, 38, 30, 0, 3, 0, 52, -/* 0x0c90 */ 129, 14, 0,145, 33, 44, 64,146, 63, 12, 0,241,136, 2, 0, 84, -/* 0x0ca0 */ 224, 3, 21,170, 27,253,255,151, 17, 0, 0, 20, 0, 16, 0, 81, -/* 0x0cb0 */ 31, 4, 0,113,200, 1, 0, 84,192, 1,102,158,225, 3, 19,170, -/* 0x0cc0 */ 94,253,255,151, 96, 10, 64,185, 31, 16, 0,113, 1, 1, 0, 84, -/* 0x0cd0 */ 224, 1,102,158,122, 66, 0,145,225, 3, 26,170, 87,253,255,151, -/* 0x0ce0 */ 96,138, 64,249, 0, 0, 24,139, 96,138, 0,249, 96, 6, 64,185, -/* 0x0cf0 */ 156, 7, 0, 17,115, 2, 0,139, 21,255,255, 23,224, 3, 26,170, -/* 0x0d00 */ 232, 39, 70,109,243, 83, 65,169,234, 47, 71,109,245, 91, 66,169, -/* 0x0d10 */ 236, 55, 72,109,247, 99, 67,169,238, 63, 73,109,249,107, 68,169, -/* 0x0d20 */ 251,115, 69,169,253,123,205,168,192, 3, 95,214,255, 3, 3,209, -/* 0x0d30 */ 253,123, 2,169,253,131, 0,145,243, 83, 3,169,161, 47, 0,249, -/* 0x0d40 */ 243, 3, 2,170, 2, 96, 0,145,162, 63, 0,249,167, 47, 64,249, -/* 0x0d50 */ 244, 3, 4,170,245, 91, 4,169,231, 96, 0,209,167, 59, 0,249, -/* 0x0d60 */ 246, 3, 5,170, 5, 24, 64,185,231, 3, 0,249,245, 3, 6,170, -/* 0x0d70 */ 230, 11, 0,249,167,195, 1,145,226, 7, 0,249,160, 7, 71,169, -/* 0x0d80 */ 194, 0, 64,249,230, 3, 19,170,160, 7, 9,169,161, 47, 64,249, -/* 0x0d90 */ 247, 99, 5,169,226, 15, 0,249,247, 3, 3,170,226, 3, 4,170, -/* 0x0da0 */ 227, 3, 22,170,164, 3, 2,145,165, 67, 0,249,249, 51, 0,249, -/* 0x0db0 */ 179, 71, 0,249, 23, 0, 0,148,117,112,120, 95,109, 97,105,110, -/* 0x0dc0 */ 32,115,122, 99, 61, 37,120, 32, 32,102, 95,100,101, 99, 61, 37, -/* 0x0dd0 */ 112, 32, 32,102, 95,117,110,102, 61, 37,112, 32, 32, 32, 32,120, -/* 0x0de0 */ 111, 61, 37,112, 40, 37,120, 32, 37,112, 41, 32, 32,120,105, 61, -/* 0x0df0 */ 37,112, 40, 37,120, 32, 37,112, 41, 32, 32,109,104,100,114,112, -/* 0x0e00 */ 112, 61, 37,112, 32, 32,109,104,100,114,112, 61, 37,112, 10, 0, -/* 0x0e10 */ 224, 3, 30,170, 9,253,255,151,160,195, 1,145,161, 3, 2,145, -/* 0x0e20 */ 226, 3, 20,170, 3, 0,128,210, 6,254,255,151, 1, 0,128, 82, -/* 0x0e30 */ 228, 3, 21,170,224, 3, 19,170,162, 67, 2,145, 3, 0,128, 18, -/* 0x0e40 */ 229, 3, 20,170,230, 3, 22,170,123,254,255,151,248, 3, 0,170, -/* 0x0e50 */ 96, 18, 64,185, 97,130, 0,145, 4, 0,128, 82,159, 0, 0,107, -/* 0x0e60 */ 224, 10, 0, 84, 34, 0, 64,185, 95, 56, 0,113, 1, 10, 0, 84, -/* 0x0e70 */ 52, 8, 64,185, 22, 0,128, 82, 4, 0, 0,148,100,121,108,100, -/* 0x0e80 */ 61, 32, 37,115, 10, 0, 0, 0,224, 3, 30,170, 52, 0, 20,139, -/* 0x0e90 */ 153, 2,128, 82,225, 3, 20,170,232,252,255,151, 1, 0,128, 82, -/* 0x0ea0 */ 224, 3, 20,170,226, 3, 1, 42,141,252,255,151,244, 3, 0, 42, -/* 0x0eb0 */ 20, 3,248, 54, 64, 2,128, 82, 30, 0, 0, 20, 98, 2, 64,185, -/* 0x0ec0 */ 64,217,159, 82, 64,215,183,114, 95, 0, 0,107, 65, 3, 0, 84, -/* 0x0ed0 */ 97, 30, 64, 57,224, 3, 19,170,117, 34, 0,145, 33,124, 25, 27, -/* 0x0ee0 */ 33, 32, 0, 17,151,252,255,151, 96, 6, 64,185, 1, 0,128, 82, -/* 0x0ef0 */ 63, 0, 0,107, 0, 3, 0, 84,163, 2, 64,185,226, 0,128, 82, -/* 0x0f00 */ 2, 32,160,114,127, 0, 2,107, 1, 2, 0, 84,182, 10, 64,185, -/* 0x0f10 */ 224, 3, 20, 42,225, 3, 19,170,226, 3, 23,170,227, 3, 22, 42, -/* 0x0f20 */ 133,252,255,151,255, 2, 0,235,160,252,255, 84, 96, 2,128, 82, -/* 0x0f30 */ 182,253,255,151,193, 87,151, 82,193, 95,185,114, 95, 0, 1,107, -/* 0x0f40 */ 128,252,255, 84, 4, 0, 0, 20, 33, 4, 0, 17,181, 82, 0,145, -/* 0x0f50 */ 232,255,255, 23,164,131, 2,145, 2, 0,128,210,225, 3, 22, 42, -/* 0x0f60 */ 227, 3, 20, 42,229, 3, 2,170,230, 3, 2,170,159,140, 28,248, -/* 0x0f70 */ 224, 3, 19,170, 48,254,255,151,243, 3, 0,170,225, 3, 19,170, -/* 0x0f80 */ 5, 0, 0,148,104, 97,116, 99,104, 32,112,116,114, 61, 32, 37, -/* 0x0f90 */ 112, 10, 0, 0,224, 3, 30,170,168,252,255,151,120, 2, 0,249, -/* 0x0fa0 */ 224, 3, 20, 42, 85,252,255,151, 6, 0, 0, 20, 34, 4, 64,185, -/* 0x0fb0 */ 132, 4, 0, 17, 33, 0, 2,139,169,255,255, 23, 19, 0,128,210, -/* 0x0fc0 */ 191,131, 0,209,224, 3, 19,170,243, 83, 67,169,245, 91, 68,169, -/* 0x0fd0 */ 247, 99, 69,169,249, 51, 64,249,253,123, 66,169,255, 3, 3,145, -/* 0x0fe0 */ 192, 3, 95,214, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, -/* 0x0ff0 */ 1,122, 82, 0, 4,120, 30, 1, 27, 12, 31, 0, 0, 0, 0, 0, -/* 0x1000 */ 20, 0, 0, 0, 28, 0, 0, 0,100,241,255,255,100, 0, 0, 0, -/* 0x1010 */ 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 52, 0, 0, 0, -/* 0x1020 */ 176,241,255,255,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1030 */ 60, 0, 0, 0, 76, 0, 0, 0, 0,242,255,255,232, 2, 0, 0, -/* 0x1040 */ 0, 65, 14,208, 2,157, 42,158, 41, 65, 13, 29, 70,149, 38,150, -/* 0x1050 */ 37,151, 36,152, 35,147, 40,148, 39, 66,153, 34,154, 33, 2,175, -/* 0x1060 */ 222,221,218,217,216,215,214,213,212,211, 12, 31, 0, 0, 0, 0, -/* 0x1070 */ 44, 0, 0, 0,140, 0, 0, 0,168,244,255,255,232, 0, 0, 0, -/* 0x1080 */ 0, 65, 14, 48,157, 6,158, 5, 65, 13, 29, 65,147, 4,148, 3, -/* 0x1090 */ 67,149, 2,150, 1,115,222,221,214,213,212,211, 12, 31, 0, 0, -/* 0x10a0 */ 28, 0, 0, 0,188, 0, 0, 0, 96,245,255,255, 56, 0, 0, 0, -/* 0x10b0 */ 0, 65, 14, 32,157, 4,158, 3, 65, 13, 29, 65,147, 2, 0, 0, -/* 0x10c0 */ 52, 0, 0, 0,220, 0, 0, 0,120,245,255,255,244, 1, 0, 0, -/* 0x10d0 */ 0, 65, 14, 96, 65,157, 10,158, 9, 65, 12, 29, 80, 65,147, 8, -/* 0x10e0 */ 148, 7, 67,149, 6,150, 5, 2,113, 12, 31, 96, 68,222,221,214, -/* 0x10f0 */ 213,212,211, 14, 0, 0, 0, 0,108, 0, 0, 0, 20, 1, 0, 0, -/* 0x1100 */ 52,247,255,255,248, 4, 0, 0, 0, 65, 14,208, 1,157, 26,158, -/* 0x1110 */ 25, 65, 13, 29, 73, 5, 74, 12, 5, 75, 11,147, 24,148, 23, 5, -/* 0x1120 */ 76, 10, 5, 77, 9,151, 20,152, 19, 5, 72, 14, 5, 73, 13,153, -/* 0x1130 */ 18,154, 17, 5, 78, 8, 5, 79, 7,155, 16,156, 15,149, 22,150, -/* 0x1140 */ 21, 3, 50, 1,222,221, 6, 79, 6, 78, 6, 77, 6, 76, 6, 75, -/* 0x1150 */ 6, 74, 6, 73, 6, 72,220,219,218,217,216,215,214,213,212,211, -/* 0x1160 */ 12, 31, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0,132, 1, 0, 0, -/* 0x1170 */ 188,251,255,255,184, 2, 0, 0, 0, 65, 14,192, 1, 65,157, 20, -/* 0x1180 */ 158, 19, 65, 12, 29,160, 1, 66,147, 18,148, 17, 72,149, 16,150, -/* 0x1190 */ 15, 78,151, 14,152, 13, 70,153, 12, 2,133, 12, 31,192, 1, 71, -/* 0x11a0 */ 222,221,217,216,215,214,213,212,211, 14, 0, 0, 0, 0, 0, 0 +/* 0x0030 */ 228, 3, 28,170,165, 1, 0, 16, 67, 3, 0,148, 20,128, 64,249, +/* 0x0040 */ 28, 0, 64,249,127, 2, 0,145,224, 3, 64,185, 38, 0, 0,148, +/* 0x0050 */ 224, 7, 64,249,225, 19, 64,185, 40, 9,128, 82,254, 3, 20,170, +/* 0x0060 */ 255,131, 0,145,128, 3, 31,214, 99, 28, 0, 18,127, 72, 1,113, +/* 0x0070 */ 1, 2, 0, 84, 33,124, 2, 83,192, 1, 0,180,161, 1, 0, 52, +/* 0x0080 */ 33, 4, 0, 81, 2, 88, 97,184, 67,124, 26, 83,127,148, 0,113, +/* 0x0090 */ 193, 0, 0, 84, 67, 20, 6, 18, 66, 0, 1, 75, 66,100, 0, 18, +/* 0x00a0 */ 66, 0, 3, 42, 2, 88, 33,184, 63, 0, 0,113,161,254,255, 84, +/* 0x00b0 */ 192, 3, 95,214,192, 3, 95,214, 40, 0,128, 82, 1, 0, 0,212, +/* 0x00c0 */ 104, 0,128, 82, 1, 0, 0,212,192, 3, 95,214,136, 0,128, 82, +/* 0x00d0 */ 1, 0, 0,212,192, 3, 95,214,168, 0,128, 82, 1, 0, 0,212, +/* 0x00e0 */ 192, 3, 95,214,200, 0,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x00f0 */ 168, 5,128, 82, 1, 0, 0,212,192, 3, 95,214, 40, 9,128, 82, +/* 0x0100 */ 1, 0, 0,212,192, 3, 95,214, 72, 9,128, 82, 1, 0, 0,212, +/* 0x0110 */ 192, 3, 95,214,168, 24,128, 82, 1, 0, 0,212,192, 3, 95,214, +/* 0x0120 */ 40, 19,128, 82, 1, 0, 0,212,192, 3, 95,214,233, 31,128, 82, +/* 0x0130 */ 41, 29, 16, 50, 6, 0, 0, 20, 2, 0, 64,185, 35, 1, 2, 10, +/* 0x0140 */ 34, 97,194, 10, 66, 32,195, 42, 2, 68, 0,184, 33, 16, 0,113, +/* 0x0150 */ 74,255,255, 84,192, 3, 95,214, 67, 1,128, 82,229, 3, 3, 42, +/* 0x0160 */ 4, 8,195, 26,159, 36, 0,113,105, 0, 0, 84, 99,124, 5, 27, +/* 0x0170 */ 252,255,255, 23, 4, 0,128,210, 71, 1,128, 82, 72,124, 64,147, +/* 0x0180 */ 31, 36, 0,113, 69, 0, 4, 11, 41, 1, 0, 84, 5, 8,195, 26, +/* 0x0190 */ 38, 0, 8,139,160,128, 3, 27,165,192, 0, 17,197,104, 36, 56, +/* 0x01a0 */ 99, 8,199, 26,132, 4, 0,145,246,255,255, 23, 0,192, 0, 17, +/* 0x01b0 */ 32,200, 37, 56,160, 4, 0, 17,192, 3, 95,214,229, 1,128, 82, +/* 0x01c0 */ 3, 0,254,210,127, 0, 0,234,129, 0, 0, 84,165, 4, 0,113, +/* 0x01d0 */ 99,252, 68,211,129,255,255, 84, 4, 0,128,210,230, 10,128, 82, +/* 0x01e0 */ 7, 6,128, 82,130, 8, 0, 17,163, 1, 0,180,162, 0, 4, 75, +/* 0x01f0 */ 40, 0, 4,139, 66,116, 30, 83, 99,252, 68,211, 2, 36,194,154, +/* 0x0200 */ 132, 4, 0,145, 66, 12, 0, 18, 95, 36, 0,113,201,128,135, 26, +/* 0x0210 */ 34, 1, 2, 11, 2, 9, 0, 57,243,255,255, 23,224, 3, 2, 42, +/* 0x0220 */ 192, 3, 95,214,253,123,171,169,253, 3, 0,145,245, 91, 2,169, +/* 0x0230 */ 247, 99, 3,169,243, 83, 1,169,161,143, 0,249,161, 3, 4,145, +/* 0x0240 */ 162,147, 0,249,248, 3, 0,170,249,107, 4,169,163,151, 0,249, +/* 0x0250 */ 160, 67, 5,145,164,155, 0,249, 2, 0,128,210,165,159, 0,249, +/* 0x0260 */ 243, 3, 2, 42,166,163, 0,249, 21, 6,128, 82,167,167, 0,249, +/* 0x0270 */ 22, 15,128, 82,160, 39,128, 61,183, 5,128, 82,161, 43,128, 61, +/* 0x0280 */ 162, 47,128, 61,163, 51,128, 61,164, 55,128, 61,165, 59,128, 61, +/* 0x0290 */ 166, 63,128, 61, 39, 0,128, 61,160, 59, 0,249,160, 63, 0,249, +/* 0x02a0 */ 160, 67, 4,145,160, 67, 0,249,224, 6,128, 18,160,139, 0,185, +/* 0x02b0 */ 224, 15,128, 18,160,143, 0,185, 25, 3, 64, 57, 20, 7, 0,145, +/* 0x02c0 */ 250, 3, 20,170,121, 0, 0, 53, 34, 1, 0,181,137, 0, 0, 20, +/* 0x02d0 */ 63,151, 0,113,160, 0, 0, 84, 95, 0, 31,235, 66, 16,148,154, +/* 0x02e0 */ 248, 3, 20,170,245,255,255, 23,226, 0, 0,180, 65, 4, 0,209, +/* 0x02f0 */ 64, 0,128, 82,130, 2, 2,203,117,255,255,151,115, 2, 0, 11, +/* 0x0300 */ 153, 15, 0, 52, 0, 7, 64, 57, 20, 11, 0,145, 31,192, 1,113, +/* 0x0310 */ 224, 6, 0, 84,168, 0, 0, 84,192, 14, 0, 52, 31,144, 1,113, +/* 0x0320 */ 160, 3, 0, 84, 7, 0, 0, 20, 31,212, 1,113, 32, 1, 0, 84, +/* 0x0330 */ 31,224, 1,113,224, 7, 0, 84, 31,204, 1,113,192, 10, 0, 84, +/* 0x0340 */ 64, 0,128, 82,225, 3, 26,170, 34, 0,128,210, 78, 0, 0, 20, +/* 0x0350 */ 161,139, 64,185,160, 59, 64,249,161, 0,248, 54, 34, 32, 0, 17, +/* 0x0360 */ 162,139, 0,185, 95, 0, 31,107,173, 0, 0, 84, 1, 44, 0,145, +/* 0x0370 */ 33,240,125,146,161, 59, 0,249, 3, 0, 0, 20,160, 63, 64,249, +/* 0x0380 */ 0,192, 33,139, 0, 0, 64,185,161, 99, 1,145, 2, 0,128, 82, +/* 0x0390 */ 21, 0, 0, 20,161,139, 64,185,160, 59, 64,249,161, 0,248, 54, +/* 0x03a0 */ 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107,173, 0, 0, 84, +/* 0x03b0 */ 1, 44, 0,145, 33,240,125,146,161, 59, 0,249, 3, 0, 0, 20, +/* 0x03c0 */ 160, 63, 64,249, 0,192, 33,139, 0, 0, 64,185, 2, 0,128, 82, +/* 0x03d0 */ 128, 0,248, 54,224, 3, 0, 75,183, 99, 1, 57, 34, 0,128, 82, +/* 0x03e0 */ 161, 99, 1,145, 93,255,255,151, 36, 0, 0, 20,161,139, 64,185, +/* 0x03f0 */ 181, 99, 1, 57,182,103, 1, 57,160, 59, 64,249,161, 0,248, 54, +/* 0x0400 */ 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107,173, 0, 0, 84, +/* 0x0410 */ 1, 60, 0,145, 33,240,125,146,161, 59, 0,249, 3, 0, 0, 20, +/* 0x0420 */ 160, 63, 64,249, 0,192, 33,139, 0, 0, 64,249, 17, 0, 0, 20, +/* 0x0430 */ 161,139, 64,185,160,103, 1, 57,181, 99, 1, 57,160, 59, 64,249, +/* 0x0440 */ 161, 0,248, 54, 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107, +/* 0x0450 */ 173, 0, 0, 84, 1, 44, 0,145, 33,240,125,146,161, 59, 0,249, +/* 0x0460 */ 3, 0, 0, 20,160, 63, 64,249, 0,192, 33,139, 0, 0,128,185, +/* 0x0470 */ 161, 99, 1,145, 82,255,255,151, 2,124, 64,147,161, 99, 1,145, +/* 0x0480 */ 64, 0,128, 82, 18,255,255,151,115, 2, 0, 11, 2, 0,128,210, +/* 0x0490 */ 148,255,255, 23,161,139, 64,185,160, 59, 64,249,161, 0,248, 54, +/* 0x04a0 */ 34, 32, 0, 17,162,139, 0,185, 95, 0, 31,107,173, 0, 0, 84, +/* 0x04b0 */ 1, 60, 0,145, 33,240,125,146,161, 59, 0,249, 3, 0, 0, 20, +/* 0x04c0 */ 160, 63, 64,249, 0,192, 33,139, 1, 0, 64,249,226, 3, 1,170, +/* 0x04d0 */ 161, 0, 0,180, 64, 0, 64, 57, 96, 0, 0, 52, 66, 4, 0,145, +/* 0x04e0 */ 253,255,255, 23, 64, 0,128, 82, 66, 0, 1,203,230,255,255, 23, +/* 0x04f0 */ 224, 3, 19, 42,243, 83, 65,169,245, 91, 66,169,247, 99, 67,169, +/* 0x0500 */ 249,107, 68,169,253,123,213,168,192, 3, 95,214,253,123,189,169, +/* 0x0510 */ 253, 3, 0,145,243, 83, 1,169,243, 3, 0,170,244, 3, 2,170, +/* 0x0520 */ 245, 91, 2,169, 22, 4, 64,249,245, 3, 1,170, 98, 2, 64,249, +/* 0x0530 */ 225, 3, 19,170,227, 3, 22,170,228, 3, 21,170,229, 3, 20,170, +/* 0x0540 */ 7, 0, 0,148,120,114,101, 97,100, 32, 37,112, 40, 37,120, 32, +/* 0x0550 */ 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, 0,224, 3, 30,170, +/* 0x0560 */ 49,255,255,151, 98, 2, 64,249, 0, 0,128,210, 95, 0, 20,235, +/* 0x0570 */ 34, 2, 0, 84, 99, 6, 64,249,225, 3, 19,170,228, 3, 21,170, +/* 0x0580 */ 229, 3, 20,170, 8, 0, 0,148,120,114,101, 97,100,102, 97,105, +/* 0x0590 */ 108, 32, 37,112, 40, 37,120, 32, 37,112, 41, 32, 37,112, 32, 37, +/* 0x05a0 */ 120, 10, 0, 0,224, 3, 30,170, 31,255,255,151,224, 15,128, 82, +/* 0x05b0 */ 194,254,255,151, 31, 0, 20,235,160, 0, 0, 84,193,106, 96, 56, +/* 0x05c0 */ 161,106, 32, 56, 0, 4, 0,145,251,255,255, 23, 97, 6, 64,249, +/* 0x05d0 */ 245, 91, 66,169, 33, 0, 0,139, 97, 6, 0,249, 97, 2, 64,249, +/* 0x05e0 */ 32, 0, 0,203, 96, 2, 0,249,243, 83, 65,169,253,123,195,168, +/* 0x05f0 */ 192, 3, 95,214,253,123,190,169,253, 3, 0,145,243, 11, 0,249, +/* 0x0600 */ 243, 3, 0, 42,225, 3, 19, 42, 5, 0, 0,148,101,114,114, 95, +/* 0x0610 */ 101,120,105,116, 32, 37,120, 10, 0, 0, 0, 0,224, 3, 30,170, +/* 0x0620 */ 1,255,255,151,224, 3, 19, 42,164,254,255,151,255,131, 1,209, +/* 0x0630 */ 253,123, 1,169,253, 67, 0,145,243, 83, 2,169,244, 3, 0,170, +/* 0x0640 */ 243, 3, 1,170,245, 91, 3,169,227, 3, 0,249,246, 3, 2,170, +/* 0x0650 */ 245, 3, 3,170,130, 2, 64,249,131, 6, 64,249,225, 3, 20,170, +/* 0x0660 */ 101, 2, 64,249,228, 3, 19,170,102, 6, 64,249,231, 3, 22,170, +/* 0x0670 */ 14, 0, 0,148,117,110,112, 97, 99,107, 69,120,116,101,110,116, +/* 0x0680 */ 32,105,110, 61, 37,112, 40, 37,120, 32, 37,112, 41, 32, 32,111, +/* 0x0690 */ 117,116, 61, 37,112, 40, 37,120, 32, 37,112, 41, 32, 32, 37,112, +/* 0x06a0 */ 32, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170,222,254,255,151, +/* 0x06b0 */ 96, 2, 64,249,160, 10, 0,180,130, 1,128,210,224, 3, 20,170, +/* 0x06c0 */ 161, 3, 1,145,146,255,255,151,162, 67, 64,185,164, 71, 64,185, +/* 0x06d0 */ 98, 1, 0, 53,160, 10,138, 82, 0, 43,164,114,159, 0, 0,107, +/* 0x06e0 */ 96, 0, 0, 84, 64, 0,128, 82, 4, 0, 0, 20,128, 2, 64,249, +/* 0x06f0 */ 192, 8, 0,180, 96, 0,128, 82,191,255,255,151,100, 0, 0, 53, +/* 0x0700 */ 128, 0,128, 82,253,255,255, 23,159, 0, 2,107, 41, 2, 0, 84, +/* 0x0710 */ 99, 2, 64,249,225, 3, 4, 42, 10, 0, 0,148,115,122, 95, 99, +/* 0x0720 */ 112,114, 61, 37,120, 32, 32,115,122, 95,117,110, 99, 61, 37,120, +/* 0x0730 */ 32, 32,120,111, 45, 62,115,105,122,101, 61, 37,120, 10, 0, 0, +/* 0x0740 */ 224, 3, 30,170,184,254,255,151,160, 0,128, 82,235,255,255, 23, +/* 0x0750 */ 97, 2, 64,249,224, 3, 2, 42, 31, 0, 1,235,168,253,255, 84, +/* 0x0760 */ 159, 0, 2,107,162, 3, 0, 84,160, 31, 0,249,225, 3, 4, 42, +/* 0x0770 */ 128, 6, 64,249,163,227, 0,145, 98, 6, 64,249,164, 35, 65, 57, +/* 0x0780 */ 192, 2, 63,214,160, 0, 0, 53,161, 31, 64,249,160, 67, 64,185, +/* 0x0790 */ 63, 0, 0,235, 96, 0, 0, 84,224, 0,128, 82,215,255,255, 23, +/* 0x07a0 */ 163, 39, 65, 57,181, 0, 0,180,131, 0, 0, 52, 96, 6, 64,249, +/* 0x07b0 */ 162, 43, 65, 57,160, 2, 63,214,162, 71, 64,185,129, 6, 64,249, +/* 0x07c0 */ 128, 2, 64,249, 33, 0, 2,139,129, 6, 0,249, 0, 0, 2,203, +/* 0x07d0 */ 128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249,224, 3, 20,170, +/* 0x07e0 */ 226, 3, 4, 42, 74,255,255,151,162, 67, 64,185, 97, 6, 64,249, +/* 0x07f0 */ 96, 2, 64,249, 33, 0, 2,139, 97, 6, 0,249, 0, 0, 2,203, +/* 0x0800 */ 96, 2, 0,249,171,255,255, 23,191, 67, 0,209,243, 83, 66,169, +/* 0x0810 */ 245, 91, 67,169,253,123, 65,169,255,131, 1,145,192, 3, 95,214, +/* 0x0820 */ 253,123,179,169,253, 3, 0,145,234, 47, 7,109,243, 83, 1,169, +/* 0x0830 */ 236, 55, 8,109,247, 99, 3,169,232, 39, 6,109,249,107, 4,169, +/* 0x0840 */ 238, 63, 9,109,251,115, 5,169,245, 91, 2,169,251, 3, 0,170, +/* 0x0850 */ 19,128, 0,145,106, 0, 39, 30,247, 3, 2,170, 44, 0, 39, 30, +/* 0x0860 */ 249, 3, 4,170,173, 0,103,158,227, 3, 4,170,203, 0,103,158, +/* 0x0870 */ 17, 0, 0,148,100,111, 95,120,109, 97,112, 32, 32,102,100,105, +/* 0x0880 */ 61, 37,120, 32, 32,109,104,100,114, 61, 37,112, 32, 32, 42,109, +/* 0x0890 */ 104,100,114,112,112, 61, 37,112, 32, 32,120,105, 61, 37,112, 40, +/* 0x08a0 */ 37,120, 32, 37,112, 41, 32,102, 95,117,110,102, 61, 37,112, 10, +/* 0x08b0 */ 0, 0, 0, 0,224, 3, 30,170, 68, 0, 0,180,131, 0, 64,249, +/* 0x08c0 */ 151, 0, 0,180,229, 2, 64,249,230, 6, 64,249, 3, 0, 0, 20, +/* 0x08d0 */ 229, 3, 23,170,230, 3, 23,170, 65, 1, 38, 30,226, 3, 27,170, +/* 0x08e0 */ 103, 1,102,158,228, 3, 23,170, 24, 0,128,210, 28, 0,128, 82, +/* 0x08f0 */ 250, 3, 24,170, 76,254,255,151, 6, 0, 0,148,116,104,114,101, +/* 0x0900 */ 97,100, 95, 99,111,109,109, 97,110,100, 61, 32, 37,112, 10, 0, +/* 0x0910 */ 224, 3, 30,170, 14, 0,103,158, 8, 0, 0,148,116,104,114,101, +/* 0x0920 */ 97,100, 95,115,116, 97,116,101, 61, 32, 37,112, 32, 32,114,101, +/* 0x0930 */ 108,111, 99, 61, 37,112, 10, 0,224, 3, 30,170, 15, 0,103,158, +/* 0x0940 */ 96, 19, 64,185,159, 3, 0,107, 98, 29, 0, 84, 96, 2, 64,185, +/* 0x0950 */ 31,100, 0,113, 97, 26, 0, 84, 97, 18, 64,249, 33, 26, 0,180, +/* 0x0960 */ 96, 22, 64,249, 0, 2, 0,181, 96, 26, 64,249,192, 1, 0,180, +/* 0x0970 */ 32, 3, 64,249,128, 1, 0,180, 1, 24, 64,185, 65, 1,168, 54, +/* 0x0980 */ 120, 14, 64,249, 24, 0, 24,203,225, 3, 24,170, 4, 0, 0,148, +/* 0x0990 */ 114,101,108,111, 99, 61, 37,112, 10, 0, 0, 0,224, 3, 30,170, +/* 0x09a0 */ 33,254,255,151,118, 14, 64,249, 98, 26, 64,249, 22, 3, 22,139, +/* 0x09b0 */ 96, 18, 64,249,212, 46, 64,146,182,103, 0,249,192, 2, 0,139, +/* 0x09c0 */ 162, 99, 0,249,214, 2, 20,203,148, 2, 2,171, 8, 0,103,158, +/* 0x09d0 */ 64, 10, 0, 84, 32, 3, 64,249,255, 2, 31,235,104, 0,128,210, +/* 0x09e0 */ 85, 0,128, 82, 8, 17,159,154, 31, 0, 31,235, 64, 2,128, 82, +/* 0x09f0 */ 8, 1, 20,139, 0, 16,149, 26,255, 2, 31,235,245, 7,159, 26, +/* 0x0a00 */ 85, 0, 0, 53, 66, 0, 0,181, 21, 4,128, 82,181, 2, 0, 42, +/* 0x0a10 */ 95, 0, 31,235, 64, 1, 38, 30,105, 22, 64,249,226, 3, 8,170, +/* 0x0a20 */ 228, 3, 21, 42,225, 3, 22,170, 99, 0,128, 82,231, 3, 24,170, +/* 0x0a30 */ 168, 87, 0,249, 10, 16,159, 90,170, 91, 0,249,128, 1, 38, 30, +/* 0x0a40 */ 229, 3, 10, 42, 9, 0, 9, 11,169, 95, 0,249,230, 3, 9, 42, +/* 0x0a50 */ 18, 0, 0,148,109,109, 97,112, 32, 32, 97,100,100,114, 61, 37, +/* 0x0a60 */ 112, 32, 32,108,101,110, 61, 37,112, 32, 32,112,114,111,116, 61, +/* 0x0a70 */ 37,120, 32, 32,102,108, 97,103,115, 61, 37,120, 32, 32,102,100, +/* 0x0a80 */ 61, 37,100, 32, 32,111,102,102, 61, 37,112, 32, 32,114,101,108, +/* 0x0a90 */ 111, 99, 61, 37,112, 10, 0, 0,224, 3, 30,170,226,253,255,151, +/* 0x0aa0 */ 168, 87, 64,249,227, 3, 21, 42,170, 91, 64,249,224, 3, 22,170, +/* 0x0ab0 */ 169, 95, 64,249,225, 3, 8,170, 98, 0,128, 82,228, 3, 10, 42, +/* 0x0ac0 */ 229, 3, 9, 42,148,253,255,151,245, 3, 0,170, 32, 3, 64,249, +/* 0x0ad0 */ 128, 0, 0,181, 53, 3, 0,249,248, 3, 21,170, 16, 0, 0, 20, +/* 0x0ae0 */ 223, 2, 21,235,192, 1, 0, 84,225, 3, 21,170,226, 3, 22,170, +/* 0x0af0 */ 6, 0, 0,148,109, 97,100,100,114, 61, 37,112, 32, 32, 97,100, +/* 0x0b00 */ 100,114, 61, 37,112, 10, 0, 0,224, 3, 30,170,198,253,255,151, +/* 0x0b10 */ 0, 1,128, 82, 71, 0, 0, 20,245, 3, 22,170,119, 1, 0,180, +/* 0x0b20 */ 96, 26, 64,249, 32, 1, 0,180, 96, 22, 64,249, 64, 0, 0,181, +/* 0x0b30 */ 53, 3, 0,249,162, 1,102,158,224, 3, 23,170, 99, 1,102,158, +/* 0x0b40 */ 161, 3, 3,145,186,254,255,151,255, 2, 31,235,224, 7,159, 26, +/* 0x0b50 */ 159, 2, 31,235,229, 7,159, 26, 9, 0, 39, 30,101, 4, 0, 52, +/* 0x0b60 */ 64, 4, 0, 52, 96, 22, 64,249, 0, 4, 0,181, 96, 66, 64,185, +/* 0x0b70 */ 192, 3, 0, 52, 99, 2, 27,203, 33, 0,128, 82,163, 2, 3,139, +/* 0x0b80 */ 1,128,186,114, 98, 32, 1,145,228, 3, 21,170,165, 95, 0,249, +/* 0x0b90 */ 64, 48, 64,185, 0, 32, 0,209,186, 2, 0,139,161,106, 32,184, +/* 0x0ba0 */ 0,120,128, 82,224,203,186,114,225, 3, 26,170, 64, 7, 0,185, +/* 0x0bb0 */ 11, 0, 0,148,104, 97,116, 99,104, 61, 37,112, 32, 32,115,101, +/* 0x0bc0 */ 99,112, 61, 37,112, 32, 32,115,101,103,112, 61, 37,112, 32, 32, +/* 0x0bd0 */ 109,104,100,114, 61, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, +/* 0x0be0 */ 145,253,255,151,165, 95, 64,249,246, 3, 20,203,214, 46, 64,242, +/* 0x0bf0 */ 97, 0, 0, 84, 5, 2, 0, 52, 8, 0, 0, 20,161, 2, 20,139, +/* 0x0c00 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 22,235, +/* 0x0c10 */ 161,255,255, 84,248,255,255, 23, 98, 62, 64,185,224, 3, 21,170, +/* 0x0c20 */ 225, 3, 20,170, 57,253,255,151, 96, 0, 0, 52, 64, 1,128, 82, +/* 0x0c30 */ 113,254,255,151, 0, 1,102,158,214, 2, 20,139,181, 2, 22,139, +/* 0x0c40 */ 191, 2, 0,235,194, 1, 0, 84,245, 4, 0,180, 1, 1,102,158, +/* 0x0c50 */ 98, 62, 64,185,224, 3, 21,170, 67, 6,128, 82, 4, 0,128, 18, +/* 0x0c60 */ 5, 0,128, 82, 33, 0, 21,203, 43,253,255,151,191, 2, 0,235, +/* 0x0c70 */ 160, 3, 0, 84, 32, 1,128, 82,238,255,255, 23, 32, 1, 38, 30, +/* 0x0c80 */ 32, 3, 0, 52,129, 14, 0,145, 33, 44, 64,146, 63, 12, 0,241, +/* 0x0c90 */ 168, 2, 0, 84,224, 3, 21,170, 25,253,255,151, 18, 0, 0, 20, +/* 0x0ca0 */ 0, 16, 0, 81, 31, 4, 0,113,232, 1, 0, 84,192, 1,102,158, +/* 0x0cb0 */ 225, 3, 19,170, 92,253,255,151, 96, 10, 64,185, 31, 16, 0,113, +/* 0x0cc0 */ 33, 1, 0, 84,224, 1,102,158,122, 66, 0,145,225, 3, 26,170, +/* 0x0cd0 */ 226, 3, 24,170, 84,253,255,151, 96,138, 64,249, 0, 0, 24,139, +/* 0x0ce0 */ 96,138, 0,249, 96, 6, 64,185,156, 7, 0, 17,115, 2, 0,139, +/* 0x0cf0 */ 20,255,255, 23,225, 3, 26,170, 5, 0, 0,148,100,111, 95,120, +/* 0x0d00 */ 109, 97,112, 61, 32, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, +/* 0x0d10 */ 69,253,255,151,224, 3, 26,170,232, 39, 70,109,243, 83, 65,169, +/* 0x0d20 */ 234, 47, 71,109,245, 91, 66,169,236, 55, 72,109,247, 99, 67,169, +/* 0x0d30 */ 238, 63, 73,109,249,107, 68,169,251,115, 69,169,253,123,205,168, +/* 0x0d40 */ 192, 3, 95,214,255, 3, 3,209,253,123, 2,169,253,131, 0,145, +/* 0x0d50 */ 243, 83, 3,169,161, 47, 0,249,243, 3, 2,170, 2, 96, 0,145, +/* 0x0d60 */ 162, 63, 0,249,167, 47, 64,249,244, 3, 4,170,245, 91, 4,169, +/* 0x0d70 */ 231, 96, 0,209,167, 59, 0,249,246, 3, 5,170, 5, 24, 64,185, +/* 0x0d80 */ 231, 3, 0,249,245, 3, 6,170,230, 11, 0,249,167,195, 1,145, +/* 0x0d90 */ 226, 7, 0,249,160, 7, 71,169,194, 0, 64,249,230, 3, 19,170, +/* 0x0da0 */ 160, 7, 9,169,161, 47, 64,249,247, 99, 5,169,226, 15, 0,249, +/* 0x0db0 */ 247, 3, 3,170,226, 3, 4,170,227, 3, 22,170,164, 3, 2,145, +/* 0x0dc0 */ 165, 67, 0,249,249, 51, 0,249,179, 71, 0,249, 23, 0, 0,148, +/* 0x0dd0 */ 117,112,120, 95,109, 97,105,110, 32,115,122, 99, 61, 37,120, 32, +/* 0x0de0 */ 32,102, 95,100,101, 99, 61, 37,112, 32, 32,102, 95,117,110,102, +/* 0x0df0 */ 61, 37,112, 32, 32, 32, 32,120,111, 61, 37,112, 40, 37,120, 32, +/* 0x0e00 */ 37,112, 41, 32, 32,120,105, 61, 37,112, 40, 37,120, 32, 37,112, +/* 0x0e10 */ 41, 32, 32,109,104,100,114,112,112, 61, 37,112, 32, 32,109,104, +/* 0x0e20 */ 100,114,112, 61, 37,112, 10, 0,224, 3, 30,170,254,252,255,151, +/* 0x0e30 */ 160,195, 1,145,161, 3, 2,145,226, 3, 20,170, 3, 0,128,210, +/* 0x0e40 */ 251,253,255,151, 1, 0,128, 82,228, 3, 21,170,224, 3, 19,170, +/* 0x0e50 */ 162, 67, 2,145, 3, 0,128, 18,229, 3, 20,170,230, 3, 22,170, +/* 0x0e60 */ 112,254,255,151,248, 3, 0,170, 96, 18, 64,185, 97,130, 0,145, +/* 0x0e70 */ 4, 0,128, 82,159, 0, 0,107,224, 10, 0, 84, 34, 0, 64,185, +/* 0x0e80 */ 95, 56, 0,113, 1, 10, 0, 84, 52, 8, 64,185, 22, 0,128, 82, +/* 0x0e90 */ 4, 0, 0,148,100,121,108,100, 61, 32, 37,115, 10, 0, 0, 0, +/* 0x0ea0 */ 224, 3, 30,170, 52, 0, 20,139,153, 2,128, 82,225, 3, 20,170, +/* 0x0eb0 */ 221,252,255,151, 1, 0,128, 82,224, 3, 20,170,226, 3, 1, 42, +/* 0x0ec0 */ 134,252,255,151,244, 3, 0, 42, 20, 3,248, 54, 64, 2,128, 82, +/* 0x0ed0 */ 30, 0, 0, 20, 98, 2, 64,185, 64,217,159, 82, 64,215,183,114, +/* 0x0ee0 */ 95, 0, 0,107, 65, 3, 0, 84, 97, 30, 64, 57,224, 3, 19,170, +/* 0x0ef0 */ 117, 34, 0,145, 33,124, 25, 27, 33, 32, 0, 17,140,252,255,151, +/* 0x0f00 */ 96, 6, 64,185, 1, 0,128, 82, 63, 0, 0,107, 0, 3, 0, 84, +/* 0x0f10 */ 163, 2, 64,185,226, 0,128, 82, 2, 32,160,114,127, 0, 2,107, +/* 0x0f20 */ 1, 2, 0, 84,182, 10, 64,185,224, 3, 20, 42,225, 3, 19,170, +/* 0x0f30 */ 226, 3, 23,170,227, 3, 22, 42,122,252,255,151,255, 2, 0,235, +/* 0x0f40 */ 160,252,255, 84, 96, 2,128, 82,171,253,255,151,193, 87,151, 82, +/* 0x0f50 */ 193, 95,185,114, 95, 0, 1,107,128,252,255, 84, 4, 0, 0, 20, +/* 0x0f60 */ 33, 4, 0, 17,181, 82, 0,145,232,255,255, 23,164,131, 2,145, +/* 0x0f70 */ 2, 0,128,210,225, 3, 22, 42,227, 3, 20, 42,229, 3, 2,170, +/* 0x0f80 */ 230, 3, 2,170,159,140, 28,248,224, 3, 19,170, 37,254,255,151, +/* 0x0f90 */ 243, 3, 0,170,225, 3, 19,170, 5, 0, 0,148,104, 97,116, 99, +/* 0x0fa0 */ 104, 32,112,116,114, 61, 32, 37,112, 10, 0, 0,224, 3, 30,170, +/* 0x0fb0 */ 157,252,255,151,120, 2, 0,249,224, 3, 20, 42, 74,252,255,151, +/* 0x0fc0 */ 6, 0, 0, 20, 34, 4, 64,185,132, 4, 0, 17, 33, 0, 2,139, +/* 0x0fd0 */ 169,255,255, 23, 19, 0,128,210,191,131, 0,209,224, 3, 19,170, +/* 0x0fe0 */ 243, 83, 67,169,245, 91, 68,169,247, 99, 69,169,249, 51, 64,249, +/* 0x0ff0 */ 253,123, 66,169,255, 3, 3,145,192, 3, 95,214, 0, 0, 0, 0, +/* 0x1000 */ 20, 0, 0, 0, 0, 0, 0, 0, 1,122, 82, 0, 4,120, 30, 1, +/* 0x1010 */ 27, 12, 31, 0, 0, 0, 0, 0, 20, 0, 0, 0, 28, 0, 0, 0, +/* 0x1020 */ 56,241,255,255,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1030 */ 20, 0, 0, 0, 52, 0, 0, 0,132,241,255,255,104, 0, 0, 0, +/* 0x1040 */ 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 76, 0, 0, 0, +/* 0x1050 */ 212,241,255,255,232, 2, 0, 0, 0, 65, 14,208, 2,157, 42,158, +/* 0x1060 */ 41, 65, 13, 29, 70,149, 38,150, 37,151, 36,152, 35,147, 40,148, +/* 0x1070 */ 39, 66,153, 34,154, 33, 2,175,222,221,218,217,216,215,214,213, +/* 0x1080 */ 212,211, 12, 31, 0, 0, 0, 0, 44, 0, 0, 0,140, 0, 0, 0, +/* 0x1090 */ 124,244,255,255,232, 0, 0, 0, 0, 65, 14, 48,157, 6,158, 5, +/* 0x10a0 */ 65, 13, 29, 65,147, 4,148, 3, 67,149, 2,150, 1,115,222,221, +/* 0x10b0 */ 214,213,212,211, 12, 31, 0, 0, 28, 0, 0, 0,188, 0, 0, 0, +/* 0x10c0 */ 52,245,255,255, 56, 0, 0, 0, 0, 65, 14, 32,157, 4,158, 3, +/* 0x10d0 */ 65, 13, 29, 65,147, 2, 0, 0, 52, 0, 0, 0,220, 0, 0, 0, +/* 0x10e0 */ 76,245,255,255,244, 1, 0, 0, 0, 65, 14, 96, 65,157, 10,158, +/* 0x10f0 */ 9, 65, 12, 29, 80, 65,147, 8,148, 7, 67,149, 6,150, 5, 2, +/* 0x1100 */ 113, 12, 31, 96, 68,222,221,214,213,212,211, 14, 0, 0, 0, 0, +/* 0x1110 */ 108, 0, 0, 0, 20, 1, 0, 0, 8,247,255,255, 36, 5, 0, 0, +/* 0x1120 */ 0, 65, 14,208, 1,157, 26,158, 25, 65, 13, 29, 73, 5, 74, 12, +/* 0x1130 */ 5, 75, 11,147, 24,148, 23, 5, 76, 10, 5, 77, 9,151, 20,152, +/* 0x1140 */ 19, 5, 72, 14, 5, 73, 13,153, 18,154, 17, 5, 78, 8, 5, 79, +/* 0x1150 */ 7,155, 16,156, 15,149, 22,150, 21, 3, 61, 1,222,221, 6, 79, +/* 0x1160 */ 6, 78, 6, 77, 6, 76, 6, 75, 6, 74, 6, 73, 6, 72,220,219, +/* 0x1170 */ 218,217,216,215,214,213,212,211, 12, 31, 0, 0, 0, 0, 0, 0, +/* 0x1180 */ 68, 0, 0, 0,132, 1, 0, 0,188,251,255,255,184, 2, 0, 0, +/* 0x1190 */ 0, 65, 14,192, 1, 65,157, 20,158, 19, 65, 12, 29,160, 1, 66, +/* 0x11a0 */ 147, 18,148, 17, 72,149, 16,150, 15, 78,151, 14,152, 13, 70,153, +/* 0x11b0 */ 12, 2,133, 12, 31,192, 1, 71,222,221,217,216,215,214,213,212, +/* 0x11c0 */ 211, 14, 0, 0, 0, 0, 0, 0 }; diff --git a/src/stub/src/amd64-darwin.macho-main.c b/src/stub/src/amd64-darwin.macho-main.c index e631050d..b7aeb67a 100644 --- a/src/stub/src/amd64-darwin.macho-main.c +++ b/src/stub/src/amd64-darwin.macho-main.c @@ -33,6 +33,8 @@ #define __WORDSIZE 64 #include "include/darwin.h" +#define SIMULATE_ON_LINUX_EABI4 0 + #ifndef DEBUG /*{*/ #define DEBUG 1 #endif /*}*/ @@ -80,6 +82,15 @@ /*und*/ : "x30"); \ dprintf(r_fmt, args); \ }) +#elif defined(__arm__) //}{ +#define DPRINTF(fmt, args...) ({ \ + char const *r_fmt; \ + asm("bl 0f; .string \"" fmt "\"; .balign 4; 0: mov %0,lr" \ +/*out*/ : "=r"(r_fmt) \ +/* in*/ : \ +/*und*/ : "lr"); \ + dprintf(r_fmt, args); \ +}) #endif //} static int dprintf(char const *fmt, ...); // forward @@ -282,8 +293,10 @@ typedef struct { unsigned ncmds; unsigned sizeofcmds; unsigned flags; - unsigned reserved; -} Mach_header64; +#if defined(__x86_64__) || defined(__aarch64__) //{ + unsigned reserved; // for 64-bit alignment +#endif //} +} Mach_header; // also Mach_header64 which has 4 more bytes enum e0 { MH_MAGIC = 0xfeedface, MH_MAGIC64 = 1+0xfeedface @@ -368,6 +381,21 @@ typedef struct { THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4 }; +#elif defined(__arm__) //}{ +typedef struct { + uint32_t r[13]; // r0-r12 + uint32_t sp; // r13 + uint32_t lr; // r14 + uint32_t pc; // r15 + uint32_t cpsr; +} Mach_thread_state; // Mach_ARM_thead_state; + enum e6 { + THREAD_STATE = 4 // ARM_THREAD_STATE + }; + enum e7 { + THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4 + }; + #elif defined(__x86_64__) //}{ typedef struct { uint64_t rax, rbx, rcx, rdx; @@ -415,18 +443,18 @@ ssize_t pread(int, void *, size_t, off_t_upx_stub); extern void bswap(void *, unsigned); // FIXME: must reserve convex hull of pages; must reloc PIE -unsigned char * // &hatch if main; &Mach_AMD64_thread_state if dyld +unsigned * // &hatch if main; &Mach_thread_state if dyld do_xmap( - Mach_header64 *const mhdr, + Mach_header *const mhdr, off_t_upx_stub const fat_offset, Extent *const xi, int const fdi, - Mach_header64 **mhdrpp, + Mach_header **mhdrpp, f_expand *const f_decompress, f_unfilter *const f_unf ) { - unsigned char *rv = 0; + unsigned *rv = 0; Mach_segment_command *sc = (Mach_segment_command *)(1+ mhdr); size_t reloc = 0; unsigned j; @@ -435,7 +463,7 @@ do_xmap( fdi, mhdr, (mhdrpp ? *mhdrpp : 0), xi, (xi? xi->size: 0), (xi? xi->buf: 0), f_unf); for ( j=0; j < mhdr->ncmds; ++j, - (sc = (Mach_segment_command *)(sc->cmdsize + (unsigned char *)sc)) + (sc = (Mach_segment_command *)((sc->cmdsize>>2) + (unsigned *)sc)) ) if (LC_SEGMENT_64==sc->cmd && sc->vmsize) { if (!sc->fileoff && sc->filesize // should be __TEXT && *mhdrpp && ((*mhdrpp)->flags & MH_PIE)) { @@ -461,19 +489,20 @@ do_xmap( DPRINTF("mmap addr=%%p len=%%p prot=%%x flags=%%x fd=%%d off=%%p reloc=%%p\\n", addr, mlen3, prot, flags, fdm, offset, reloc); - unsigned char *maddr = mmap(addr, mlen3, prot, flags, fdm, offset); + unsigned *maddr = mmap(addr, mlen3, prot, flags, fdm, offset); if (!*mhdrpp) { // MH_DYLINKER - *mhdrpp = (Mach_header64*)(addr = maddr); + *mhdrpp = (Mach_header*)maddr; + addr = (unsigned char *)maddr; reloc = (size_t)addr; } - if (addr != maddr) { + if (addr != (unsigned char *)maddr) { DPRINTF("maddr=%%p addr=%%p\\n", maddr, addr); err_exit(8); } } if (xi && 0!=sc->filesize) { if (0==sc->fileoff /*&& 0!=mhdrpp*/) { - *mhdrpp = (Mach_header64 *)(void *)addr; + *mhdrpp = (Mach_header *)(void *)addr; } unpackExtent(xi, &xo, f_decompress, f_unf); } @@ -481,18 +510,29 @@ do_xmap( // main target __TEXT segment at beginning of file with sections (__text) // Use upto 2 words of header padding for the escape hatch. // fold.S could do this easier, except PROT_WRITE is missing then. - Mach_segment_command *segp = (Mach_segment_command *)(((char *)sc - (char *)mhdr) + addr); + union { + unsigned char *p0; + unsigned short *p1; + unsigned int *p2; + unsigned long *p3; + } u; + u.p0 = addr; + Mach_segment_command *segp = (Mach_segment_command *)((((char *)sc - (char *)mhdr)>>2) + u.p2); Mach_section_command *const secp = (Mach_section_command *)(1+ segp); #if defined(__AARCH64EL__) //{ - unsigned *hatch= -2+ (unsigned *)(secp->offset + (char *)addr); - hatch[0] = 0xd4000001; // syscall + unsigned *hatch= -2+ (*secp->offset>>2) + u.p2); + hatch[0] = 0xd4000001; // svc #0 // syscall hatch[1] = 0xd65f03c0; // ret +#elif defined(__arm__) //}{ + unsigned *hatch= -2+ ((secp->offset>>2) + u.p2); + hatch[0] = 0xef000000; // svc 0x0 // syscall + hatch[1] = 0xe12fff1e; // bx lr #elif defined(__x86_64__) //}{ - unsigned *hatch= -1+ (unsigned *)(secp->offset + (char *)addr); + unsigned *hatch= -1+ ((secp->offset>>2) + u.p2); hatch[0] = 0xc3050f90; // nop; syscall; ret #endif //} DPRINTF("hatch=%%p secp=%%p segp=%%p mhdr=%%p\\n", hatch, secp, segp, addr); - rv = (unsigned char *)hatch; + rv = hatch; } /*bzero(addr, frag);*/ // fragment at lo end frag = (-mlen) &~ PAGE_MASK; // distance to next page boundary @@ -503,7 +543,7 @@ ERR_LAB } addr += mlen + frag; /* page boundary on hi end */ if ( -#if defined(SIMULATE_ON_DEBIAN_EABI4) /*{*/ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ 0!=addr && #endif /*}*/ addr < haddr) { // need pages for .bss @@ -524,15 +564,18 @@ ERR_LAB DPRINTF("thread_command= %%p\\n", sc); if (THREAD_STATE ==thrc->flavor /* FIXME && THREAD_STATE_COUNT==thrc->count*/ ) { - DPRINTF("thread_state= %%p\\n", &thrc->state); -#if defined(__AARCH64EL__) // { + DPRINTF("thread_state= %%p reloc=%%p\\n", &thrc->state, reloc); +#if defined(__AARCH64EL__) //{ + thrc->state.pc += reloc; +#elif defined(__arm__) //}{ thrc->state.pc += reloc; #elif defined(__x86_64__) //}{ thrc->state.rip += reloc; #endif //} - rv = (unsigned char *)&thrc->state; + rv = (unsigned *)&thrc->state; } } + DPRINTF("do_xmap= %%p\\n", rv); return rv; } @@ -545,15 +588,15 @@ Mach_thread_state const * upx_main( struct l_info const *const li, size_t volatile sz_compressed, // total length - Mach_header64 *const mhdr, // temp char[sz_mhdr] for decompressing + Mach_header *const mhdr, // temp char[sz_mhdr] for decompressing size_t const sz_mhdr, f_expand *const f_decompress, f_unfilter *const f_unf, - Mach_header64 **const mhdrpp // Out: *mhdrpp= &real Mach_header64 + Mach_header **const mhdrpp // Out: *mhdrpp= &real Mach_header ) { Mach_thread_state *ts = 0; - unsigned char *hatch; + unsigned *hatch; off_t_upx_stub fat_offset = 0; Extent xi, xo, xi0; xi.buf = CONST_CAST(unsigned char *, 1+ (struct p_info const *)(1+ li)); // &b_info @@ -609,11 +652,13 @@ ERR_LAB } } break; } // switch - Mach_header64 *dyhdr = 0; + Mach_header *dyhdr = 0; ts = (Mach_thread_state *)do_xmap(mhdr, fat_offset, 0, fdi, &dyhdr, 0, 0); DPRINTF("hatch ptr= %%p\\n", ts); #if defined(__AARCH64EL__) // { ts->x0 = (uint64_t)hatch; +#elif defined(__arm__) //}{ + ts->r[0] = (uint32_t)hatch; #elif defined(__x86_64__) //}{ ts->rax = (uint64_t)hatch; #endif //} diff --git a/src/stub/src/amd64-darwin.macho-upxmain.c b/src/stub/src/amd64-darwin.macho-upxmain.c index 8f75641a..977a6d74 100644 --- a/src/stub/src/amd64-darwin.macho-upxmain.c +++ b/src/stub/src/amd64-darwin.macho-upxmain.c @@ -34,6 +34,7 @@ typedef unsigned char * Addr; +#define SIMULATE_ON_LINUX_EABI4 0 #ifndef DEBUG /*{*/ #define DEBUG 0 #endif /*}*/ @@ -560,7 +561,7 @@ ERR_LAB } addr += mlen + frag; /* page boundary on hi end */ if ( -#if defined(SIMULATE_ON_DEBIAN_EABI4) /*{*/ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ 0!=addr && #endif /*}*/ addr < haddr) { // need pages for .bss diff --git a/src/stub/src/arm.v5a-darwin.macho-entry.S b/src/stub/src/arm.v5a-darwin.macho-entry.S index f670f0f4..713d4511 100644 --- a/src/stub/src/arm.v5a-darwin.macho-entry.S +++ b/src/stub/src/arm.v5a-darwin.macho-entry.S @@ -29,13 +29,12 @@ * */ -#define SIMULATE_ON_DEBIAN_EABI4 1 -//#undef SIMULATE_ON_DEBIAN_EABI4 +#define SIMULATE_ON_LINUX_EABI4 1 -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ - #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_DEBIAN_EABI4 */ - #define ARMEL_EABI4 1 /* SIMULATE_ON_DEBIAN_EABI4 */ -#else /*}{ usual case */ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ + #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_LINUX_EABI4 */ + #define ARMEL_EABI4 1 /* SIMULATE_ON_LINUX_EABI4 */ +#else /*}{ native darwin usual case */ #define DARWIN_ARM_CACHEFLUSH 1 #define ARMEL_DARWIN 1 #endif /*}*/ @@ -69,10 +68,10 @@ __NR_SYSCALL_BASE = 0 __NR_exit = 1 + __NR_SYSCALL_BASE __NR_write = 4 + __NR_SYSCALL_BASE __NR_open = 5 + __NR_SYSCALL_BASE -#if defined(SIMULATE_ON_DEBIAN_EABI4) //{ +#if SIMULATE_ON_LINUX_EABI4 //{ __NR_mmap = 0xc0 + __NR_SYSCALL_BASE __NR_mprotect=0x7d + __NR_SYSCALL_BASE -#else //}{ real Mach-o +#else //}{ native darwin usual case __NR_mmap = 197 + __NR_SYSCALL_BASE __NR_mprotect = 74 + __NR_SYSCALL_BASE #endif //} @@ -85,8 +84,8 @@ __ARM_NR_cacheflush = 2 + __ARM_NR_BASE //0: .word 0b - l_info // backwards distance to l_info section MACHMAINX _start: .globl _start - sub sp,sp,#NBPW // space for mhdrp - stmdb sp!,{r0-r12,r14,r15} // paranoia [omit sp===r13] + mov r7,sp // &argc + adr r6,-2*NBPW + _start bl main L20: f_decompress: @@ -113,11 +112,20 @@ end_decompress: .globl end_decompress /* IDENTSTR goes here */ -r_RELOC .req r12 // same as r_MHDR -r_MHDR .req r12 +r_tmp .req r12 +rax .req r12 // clobbered by do_sys + r_LENX .req r11 r_ADRX .req r10 -r_FOLD .req r6 +r_EXP .req r9 + +r_MHDR .req r8 +r_RELOC .req r8 +r_FOLD .req r8 + +rbx .req r7 + +// r0,r1,r2,r3,r6,r7 used by _start+main arg1 .req r0 arg2 .req r1 @@ -131,10 +139,6 @@ rdi .req r0 rdx .req r2 rcx .req r3 -rax .req r7 -rbx .req r8 -r_EXP .req r9 - section MACHMAINZ unfold: // lr= &b_info; sp/ fd,%ADRU,%LENU,%entry,%&Mach_header mov rbx,lr // &b_info:{sz_unc, sz_cpr, 4{byte}}, compressed_fold...} @@ -180,7 +184,7 @@ unfold: // lr= &b_info; sp/ fd,%ADRU,%LENU,%entry,%&Mach_header // Unfold ldr rax,[rbx,#sz_unc] // dstlen - str rax,[sp,#-NBPW]; mov arg4,sp // P_13 &dstlen + str rax,[sp,#-NBPW]!; mov arg4,sp // P_13 &dstlen add arg3,rbx,r_RELOC // dst= new unfold mov r_FOLD,arg3 // execute here ldr rax,[rbx,#sz_cpr] // srclen @@ -198,7 +202,7 @@ unfold: // lr= &b_info; sp/ fd,%ADRU,%LENU,%entry,%&Mach_header do_sys __NR_mprotect // Use the copy. -// r10= ADRX; r11= LENX; r9= f_exp +// r9= f_exp; r10= ADRX; r11= LENX // rsp/ fd,ADRU,LENU,%entry,&Mach_header bx r_FOLD @@ -207,38 +211,35 @@ execp: L99: bkpt -main: - mov r5,lr // &f_decompress - add r2,sp,#NBPW // &argv[0] +main: // lr= &f_exp; r7= &argc; r6= -2*NBPW + _start + mov r_EXP,lr // &f_decompress 0: - ldr r0,[r2],#NBPW + ldr r0,[r7],#NBPW cmp r0,#0; bne 0b // past argv 0: - ldr r0,[r2],#NBPW + ldr r0,[r7],#NBPW cmp r0,#0; bne 0b // past envp L30: - ldr r0,[r2],#NBPW // r0= *apple++ + ldr r0,[r7],#NBPW // r0= *apple++ cmp r0,#0; beq L99 - adr r1,execp; mov r3,#16 + adr r1,execp; mov r_tmp,#16 L40: - ldrb r4,[r0],#1 - ldrb r5,[r1],#1 - cmp r4,r5; bne L30 // mismatch ==> next apple[] - subs r3,r3,#1; bne L40 // not entire prefix + ldrb r2,[r0],#1 + ldrb r3,[r1],#1 + cmp r2,r3; bne L30 // mismatch ==> next apple[] + subs r_tmp,r_tmp,#1; bne L40 // not entire prefix mov arg2,#0 // O_RDONLY do_sys __NR_open - str r5,[sp,#-5*NBPW]! // fd,%ADRU,%LENU,%entry,%&Mach_header + str r0,[sp,#-5*NBPW]! // fd,%ADRU,%LENU,%entry,%&Mach_header - adr r1,-2*4 + _start - - mov r_MHDR,r1 - ldr r0,[r1],#4 + mov r_MHDR,r6 + ldr r0,[r6],#4 sub r_MHDR,r_MHDR,r0 // &Mach_header str r_MHDR,[sp,#4*NBPW] - mov r_ADRX,r1 - ldr r0,[r1],#4 + mov r_ADRX,r6 + ldr r0,[r6],#4 sub r_ADRX,r_ADRX,r0 // &l_info sub r_LENX,r0,#2*4 // omit words before _start diff --git a/src/stub/src/arm.v5a-darwin.macho-fold.S b/src/stub/src/arm.v5a-darwin.macho-fold.S index cba4702b..d0970ecf 100644 --- a/src/stub/src/arm.v5a-darwin.macho-fold.S +++ b/src/stub/src/arm.v5a-darwin.macho-fold.S @@ -27,19 +27,27 @@ // // -//#define SIMULATE_ON_DEBIAN_EABI4 1 -#undef SIMULATE_ON_DEBIAN_EABI4 +#define SIMULATE_ON_LINUX_EABI4 1 -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ - #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_DEBIAN_EABI4 */ - #define ARMEL_EABI4 1 /* SIMULATE_ON_DEBIAN_EABI4 */ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ + #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_LINUX_EABI4 */ + #define ARMEL_EABI4 1 /* SIMULATE_ON_LINUX_EABI4 */ #else /*}{ USUAL case */ #define DARWIN_ARM_CACHEFLUSH 1 #define ARMEL_DARWIN 1 #endif /*}*/ +NBPW= 4 #include "arch/arm/v5a/macros.S" +arg1 .req r0 +arg2 .req r1 +arg3 .req r2 +arg4 .req r3 +arg5 .req r4 +arg6 .req r5 +arg7 .req r6 + sz_l_info = 12 sz_p_info = 12 sz_b_info = 12 @@ -47,6 +55,31 @@ sz_b_info = 12 sz_cpr= 4 b_method= 8 +#if SIMULATE_ON_LINUX_EABI4 /*{*/ +__NR_brk = 45 + __NR_SYSCALL_BASE // 0x2d +__NR_close = 6 + __NR_SYSCALL_BASE // 0x06 +__NR_exit = 1 + __NR_SYSCALL_BASE // ?? +__NR_mmap = 192 + __NR_SYSCALL_BASE // 0xc0 +__NR_mprotect = 125 + __NR_SYSCALL_BASE // 0x7d +__NR_munmap = 91 + __NR_SYSCALL_BASE // 0x5b +__NR_open = 5 + __NR_SYSCALL_BASE // ?? +__NR_openat = 322 + __NR_SYSCALL_BASE // 0x142 +__NR_pread = 180 + __NR_SYSCALL_BASE // 0xb4 +__NR_read = 3 + __NR_SYSCALL_BASE // 0x03 +__NR_write = 4 + __NR_SYSCALL_BASE // 0x04 +#else //}{ native darwin usual case +__NR_brk = 45 + __NR_SYSCALL_BASE +__NR_close = 6 + __NR_SYSCALL_BASE +__NR_exit = 1 + __NR_SYSCALL_BASE +__NR_mmap = 197 + __NR_SYSCALL_BASE +__NR_mprotect = 74 + __NR_SYSCALL_BASE +__NR_munmap = 73 + __NR_SYSCALL_BASE +__NR_open = 5 + __NR_SYSCALL_BASE +__NR_pread = 153 + __NR_SYSCALL_BASE +__NR_read = 3 + __NR_SYSCALL_BASE +__NR_write = 4 + __NR_SYSCALL_BASE +#endif /*}*/ + _start: .globl _start // ignored, but silence "cannot find entry symbol _start" from ld // control just falls through, after this part and compiled C code @@ -54,26 +87,46 @@ _start: .globl _start // ignored, but silence "cannot find entry symbol _start" fold_begin: /* In: - r11= &sz_pack2; follows compressed program {l_info; p_info; b_info; data...} - r5= f_decompress - sp/ junk1,junk2,{15 original regs (omit sp)},junk3,original_stack... + r9= f_exp; r10= ADRX; r11= LENX + rsp/ fd,ADRU,LENU,%entry,&Mach_header */ - ldr r1,[r11] // sz_pack2 - add r7,sp,#4*(2+(16-1)) // &junk3; will become &mhdrp - sub r0,r11,r1 // &{l_info; p_info; b_info} - ldr r3,[r0,#sz_unc + sz_l_info + sz_p_info] // sz_unc of Mach_header - cmp r3,#(1<<13) - movls r3,#(1<<13) // at least 8KiB - sub sp,sp,r3 // alloca - mov r2,sp // Mach_header *tmp - adr r6,f_unfilter - stmdb sp!,{r5,r6,r7} - bl upx_main // (r0=l_info *, r1=sz_compressed, r2=Mach_header *tmp, - // r3=sz_mhdr, f_decompress, f_unfilter, Mach_header **) - ldr r0,[r0,#15*4] // entry: ((Mach_ARM_thread_state const *)dyld)->pc - sub sp, r7,#4*(16-1) // unalloca; keep 15 original registers and mhdrp - str r0,[r7,#-4] // .r15= entry - ldmia sp!,{r0-r12,r14,r15} // restore original registers; goto dynamic linker +r_t0 .req r12 // scratch value +r_LENX .req r11 +r_ADRX .req r10 +r_EXP .req r9 +r_OSTK .req r8 + + ldr arg4,[arg1,#sz_unc + sz_l_info + sz_p_info] // sz_unc of Mach_header + mov r_t0,#(1<<13) + cmp arg4,r_t0 + movlo arg4,r_t0 // at least 8KiB + mov r_OSTK,sp // where to un-alloca + sub sp,sp,arg4 // alloca + mov arg3,sp // temp[sz_mhdr] + mov arg2,r_LENX + mov arg1,r_ADRX // &{l_info; p_info; b_info} + + add arg7,r_OSTK,#4*NBPW // & &Mach_header + adr arg6,f_unfilter + mov arg5,r_EXP + stmdb sp!,{arg5,arg6,arg7} // ABI: only arg1,arg2,arg3,arg4 in registers +// upx_main(r0=&l_info, r1=len_cpr, r2=temp[sz_mhdr], r3=sz_mhdr, r4=f_exp, r5=f_unf, r6=mhdr **) + bl upx_main // OUT: r0= &Mach_thread_state of dyld; will be in temp mhdr[] + +ARM_ts_pc= 14*NBPW + ldr r_ADRX,[r0,#ARM_ts_pc] // dyld.entry + ldr r_EXP, [r0,#0] // &hatch + mov sp,r_OSTK // un-alloc + + ldr r0,[sp,#0*NBPW] // fd + bl close + + ldr r0,[sp,#1*NBPW] // ADRU + ldr r1,[sp,#2*NBPW] // LENU + mov r7,#__NR_munmap + mov lr,r_ADRX // dyld.entry + add sp,sp,#4*NBPW // leave &Mach_header + bx r_EXP // goto hatch: syscall.munmap(ADRU,LENU); ret f_unfilter: // (char *ptr, uint len, uint cto, uint fid) ptr .req r0 @@ -118,25 +171,6 @@ tst_unf: spin: .globl spin ret -__NR_exit = 1 + __NR_SYSCALL_BASE -__NR_read = 3 + __NR_SYSCALL_BASE -__NR_write = 4 + __NR_SYSCALL_BASE -__NR_open = 5 + __NR_SYSCALL_BASE -__NR_close = 6 + __NR_SYSCALL_BASE -__NR_brk = 45 + __NR_SYSCALL_BASE - -__NR_mmap = 197 + __NR_SYSCALL_BASE -__NR_munmap = 73 + __NR_SYSCALL_BASE -__NR_mprotect = 74 + __NR_SYSCALL_BASE -__NR_pread = 153 + __NR_SYSCALL_BASE - -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ -__NR_mmap = 192 + __NR_SYSCALL_BASE // mmap2 -__NR_munmap = 91 + __NR_SYSCALL_BASE -__NR_mprotect = 125 + __NR_SYSCALL_BASE -__NR_pread = 180 + __NR_SYSCALL_BASE -#endif /*}*/ - .globl exit exit: do_sys __NR_exit @@ -171,7 +205,7 @@ mprotect: .globl mmap mmap: -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ stmdb sp!,{r4,r5} ldr r5,[sp,#3*4] // off_t ldr r4,[sp,#2*4] // fd @@ -197,7 +231,7 @@ EINVAL=22 .globl pread pread: -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ stmdb sp!,{r4,r5} // EABI4 wants 64-bit off_t in even,odd register pair mov r4,r3 // 32-bit off_t mov r5,#0 // hi bits of 64-bit off_t diff --git a/src/stub/src/arm.v5a-darwin.macho-main.c b/src/stub/src/arm.v5a-darwin.macho-main.c index 2b63a5cf..2d64362d 100644 --- a/src/stub/src/arm.v5a-darwin.macho-main.c +++ b/src/stub/src/arm.v5a-darwin.macho-main.c @@ -1,459 +1 @@ -/* arm-darwin.macho-main.c -- loader stub for Mach-o ARMEL - - This file is part of the UPX executable compressor. - - Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1996-2017 Laszlo Molnar - Copyright (C) 2000-2017 John F. Reiser - All Rights Reserved. - - UPX and the UCL library are free software; you can redistribute them - and/or modify them 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. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - Markus F.X.J. Oberhumer Laszlo Molnar - - - John F. Reiser - - */ - - -//#define SIMULATE_ON_DEBIAN_EABI4 1 -#undef SIMULATE_ON_DEBIAN_EABI4 - -#define __WORDSIZE 32 -#include "include/darwin.h" - - -/************************************************************************* -// configuration section -**************************************************************************/ - -// In order to make it much easier to move this code at runtime and execute -// it at an address different from it load address: there must be no -// static data, and no string constants. - - -/************************************************************************* -// "file" util -**************************************************************************/ - -typedef struct { - size_t size; // must be first to match size[0] uncompressed size - void *buf; -} Extent; - - -static void -xread(Extent *x, void *buf, size_t count) -{ - unsigned char *p=x->buf, *q=buf; - size_t j; - if (x->size < count) { - exit(127); - } - for (j = count; 0!=j--; ++p, ++q) { - *q = *p; - } - x->buf += count; - x->size -= count; -} - - -/************************************************************************* -// util -**************************************************************************/ - -#if 1 //{ save space -#define ERR_LAB error: exit(127); -#define err_exit(a) goto error -#else //}{ save debugging time -#define ERR_LAB /*empty*/ -static void -err_exit(int a) -{ - (void)a; // debugging convenience - exit(127); -} -#endif //} - - -/************************************************************************* -// UPX & NRV stuff -**************************************************************************/ - -struct l_info { // 12-byte trailer for loader (after macho headers) - unsigned l_checksum; - unsigned l_magic; // UPX_MAGIC_LE32 - unsigned short l_lsize; - unsigned char l_version; - unsigned char l_format; -}; -struct p_info { // 12-byte packed program header - unsigned p_progid; - unsigned p_filesize; - unsigned p_blocksize; -}; - -struct b_info { // 12-byte header before each compressed block - unsigned sz_unc; // uncompressed_size - unsigned sz_cpr; // compressed_size - unsigned char b_method; // compression algorithm - unsigned char b_ftid; // filter id - unsigned char b_cto8; // filter parameter - unsigned char b_unused; -}; - -typedef void f_unfilter( - nrv_byte *, // also addvalue - nrv_uint, - unsigned cto8, // junk in high 24 bits - unsigned ftid -); -typedef int f_expand( - const nrv_byte *, nrv_uint, - nrv_byte *, nrv_uint *, unsigned ); - -static void -unpackExtent( - Extent *const xi, // input - Extent *const xo, // output - f_expand *const f_decompress, - f_unfilter *f_unf -) -{ - while (xo->size) { - struct b_info h; - // Note: if h.sz_unc == h.sz_cpr then the block was not - // compressible and is stored in its uncompressed form. - - // Read and check block sizes. - xread(xi, (unsigned char *)&h, sizeof(h)); - if (h.sz_unc == 0) { // uncompressed size 0 -> EOF - if (h.sz_cpr != UPX_MAGIC_LE32) // h.sz_cpr must be h->magic - err_exit(2); - if (xi->size != 0) // all bytes must be written - err_exit(3); - break; - } - if (h.sz_cpr <= 0) { - err_exit(4); -ERR_LAB - } - if (h.sz_cpr > h.sz_unc - || h.sz_unc > xo->size ) { - err_exit(5); - } - // Now we have: - // assert(h.sz_cpr <= h.sz_unc); - // assert(h.sz_unc > 0 && h.sz_unc <= blocksize); - // assert(h.sz_cpr > 0 && h.sz_cpr <= blocksize); - - if (h.sz_cpr < h.sz_unc) { // Decompress block - nrv_uint out_len = h.sz_unc; // EOF for lzma - int const j = (*f_decompress)(xi->buf, h.sz_cpr, - xo->buf, &out_len, h.b_method); - if (j != 0 || out_len != (nrv_uint)h.sz_unc) - err_exit(7); - if (h.b_ftid!=0 && f_unf) { // have filter - (*f_unf)(xo->buf, out_len, h.b_cto8, h.b_ftid); - } - xi->buf += h.sz_cpr; - xi->size -= h.sz_cpr; - } - else { // copy literal block - xread(xi, xo->buf, h.sz_cpr); - } - xo->buf += h.sz_unc; - xo->size -= h.sz_unc; - } -} - -static void -upx_bzero(unsigned char *p, size_t len) -{ - if (len) do { - *p++= 0; - } while (--len); -} -#define bzero upx_bzero - - -// The PF_* and PROT_* bits are {1,2,4}; the conversion table fits in 32 bits. -#define REP8(x) \ - ((x)|((x)<<4)|((x)<<8)|((x)<<12)|((x)<<16)|((x)<<20)|((x)<<24)|((x)<<28)) -#define EXP8(y) \ - ((1&(y)) ? 0xf0f0f0f0 : (2&(y)) ? 0xff00ff00 : (4&(y)) ? 0xffff0000 : 0) -#define PF_TO_PROT(pf) \ - ((PROT_READ|PROT_WRITE|PROT_EXEC) & ( \ - ( (REP8(PROT_EXEC ) & EXP8(PF_X)) \ - |(REP8(PROT_READ ) & EXP8(PF_R)) \ - |(REP8(PROT_WRITE) & EXP8(PF_W)) \ - ) >> ((pf & (PF_R|PF_W|PF_X))<<2) )) - -typedef struct { - unsigned magic; - unsigned nfat_arch; -} Fat_header; -typedef struct { - unsigned cputype; - unsigned cpusubtype; - unsigned offset; - unsigned size; - unsigned align; /* shift count (log base 2) */ -} Fat_arch; - enum e8 { - FAT_MAGIC = 0xcafebabe - }; - enum e9 { - CPU_TYPE_I386 = 7, - CPU_TYPE_ARM = 12, - CPU_TYPE_POWERPC = 0x00000012, - CPU_TYPE_POWERPC64 = 0x01000012 - }; - -typedef struct { - unsigned magic; - unsigned cputype; - unsigned cpysubtype; - unsigned filetype; - unsigned ncmds; - unsigned sizeofcmds; - unsigned flags; -} Mach_header; - enum e0 { - MH_MAGIC = 0xfeedface - }; - enum e2 { - MH_EXECUTE = 2 - }; - enum e3 { - MH_NOUNDEFS = 1 - }; - -typedef struct { - unsigned cmd; - unsigned cmdsize; -} Mach_load_command; - enum e4 { - LC_SEGMENT = 0x1, - LC_THREAD = 0x4, - LC_UNIXTHREAD = 0x5, - LC_LOAD_DYLINKER = 0xe - }; - -typedef struct { - unsigned cmd; - unsigned cmdsize; - char segname[16]; - unsigned vmaddr; - unsigned vmsize; - unsigned fileoff; - unsigned filesize; - unsigned maxprot; - unsigned initprot; - unsigned nsects; - unsigned flags; -} Mach_segment_command; - enum e5 { - VM_PROT_READ = 1, - VM_PROT_WRITE = 2, - VM_PROT_EXECUTE = 4 - }; - -typedef struct { - unsigned r[13]; // r0-r12 - unsigned sp; // r13 - unsigned lr; // r14 - unsigned pc; // r15 - unsigned cpsr; -} Mach_ARM_thread_state; - -typedef struct { - unsigned cmd; /* LC_THREAD or LC_UNIXTHREAD */ - unsigned cmdsize; /* total size of this command */ - unsigned flavor; - unsigned count; /* sizeof(following_thread_state)/4 */ - Mach_ARM_thread_state state; -} Mach_thread_command; - enum e6 { - ARM_THREAD_STATE = 1 - }; - enum e7 { - ARM_THREAD_STATE_COUNT = sizeof(Mach_ARM_thread_state)/4 - }; - -typedef union { - unsigned long offset; /* from start of load command to string */ - char *ptr; -} Mach_lc_str; - -#define MAP_FIXED 0x10 -#define MAP_PRIVATE 0x02 -#define MAP_ANON 0x1000 -//#define MAP_ANON 0x20 // x86 DEBUG ONLY -#define PROT_READ 1 -#define PROT_WRITE 2 -#define PROT_EXEC 4 - -#define MAP_ANON_FD -1 - -extern void *mmap(void *, size_t, unsigned, unsigned, int, off_t_upx_stub); -ssize_t pread(int, void *, size_t, off_t_upx_stub); -extern void bswap(void *, unsigned); - -static Mach_ARM_thread_state const * -do_xmap( - Mach_header const *const mhdr, - off_t_upx_stub const fat_offset, - Extent *const xi, - int const fdi, - Mach_header **mhdrpp, - f_expand *const f_decompress, - f_unfilter *const f_unf -) -{ - Mach_segment_command const *sc = (Mach_segment_command const *)(1+ mhdr); - Mach_ARM_thread_state const *entry = 0; - unsigned j; - - for ( j=0; j < mhdr->ncmds; ++j, - (sc = (Mach_segment_command const *)(sc->cmdsize + (void const *)sc)) - ) if (LC_SEGMENT==sc->cmd) { - Extent xo; - size_t mlen = xo.size = sc->filesize; - unsigned char *addr = xo.buf = (unsigned char *)sc->vmaddr; - unsigned char *haddr = sc->vmsize + addr; - size_t frag = (int)addr &~ PAGE_MASK; - addr -= frag; - mlen += frag; - - if (0!=mlen && addr != mmap(addr, mlen, VM_PROT_READ | VM_PROT_WRITE, - MAP_FIXED | MAP_PRIVATE | - ((xi || 0==sc->filesize) ? MAP_ANON : 0), - ((0==sc->filesize) ? MAP_ANON_FD : fdi), sc->fileoff + fat_offset) ) { - err_exit(8); - } - if (xi && 0!=sc->filesize) { - if (0==sc->fileoff /*&& 0!=mhdrpp*/) { - *mhdrpp = (Mach_header *)(void *)addr; - } - unpackExtent(xi, &xo, f_decompress, f_unf); - } - /*bzero(addr, frag);*/ // fragment at lo end - frag = (-mlen) &~ PAGE_MASK; // distance to next page boundary - bzero(mlen+addr, frag); // fragment at hi end - if (0!=mlen && 0!=mprotect(addr, mlen, sc->initprot)) { - err_exit(10); -ERR_LAB - } - addr += mlen + frag; /* page boundary on hi end */ - if ( -#if defined(SIMULATE_ON_DEBIAN_EABI4) /*{*/ - 0!=addr && -#endif /*}*/ - addr < haddr) { // need pages for .bss - if (addr != mmap(addr, haddr - addr, sc->initprot, - MAP_FIXED | MAP_PRIVATE | MAP_ANON, MAP_ANON_FD, 0 ) ) { - err_exit(9); - } - } - } - else if (LC_UNIXTHREAD==sc->cmd || LC_THREAD==sc->cmd) { - Mach_thread_command const *const thrc = (Mach_thread_command const *)sc; - if (ARM_THREAD_STATE ==thrc->flavor - && ARM_THREAD_STATE_COUNT==thrc->count ) { - entry = &thrc->state; - } - } - return entry; -} - - -extern void spin(void *, ...); - -/************************************************************************* -// upx_main - called by our entry code -// -**************************************************************************/ - -Mach_ARM_thread_state const * -upx_main( - struct l_info const *const li, - size_t volatile sz_compressed, // total length - Mach_header *const mhdr, // temp char[sz_mhdr] for decompressing - size_t const sz_mhdr, - f_expand *const f_decompress, - f_unfilter *const f_unf, - Mach_header **const mhdrpp // Out: *mhdrpp= &real Mach_header -) -{ - Mach_ARM_thread_state const *entry; - off_t_upx_stub fat_offset = 0; - Extent xi, xo, xi0; - xi.buf = CONST_CAST(unsigned char *, 1+ (struct p_info const *)(1+ li)); // &b_info - xi.size = sz_compressed - (sizeof(struct l_info) + sizeof(struct p_info)); - xo.buf = (unsigned char *)mhdr; - xo.size = ((struct b_info const *)(void const *)xi.buf)->sz_unc; - xi0 = xi; - - // Uncompress Macho headers - unpackExtent(&xi, &xo, f_decompress, 0); // never filtered? - - entry = do_xmap(mhdr, fat_offset, &xi0, MAP_ANON_FD, mhdrpp, f_decompress, f_unf); - - { // Map dyld dynamic loader - Mach_load_command const *lc = (Mach_load_command const *)(1+ mhdr); - unsigned j; - - for (j=0; j < mhdr->ncmds; ++j, - (lc = (Mach_load_command const *)(lc->cmdsize + (void const *)lc)) - ) if (LC_LOAD_DYLINKER==lc->cmd) { - char const *const dyld_name = ((Mach_lc_str const *)(1+ lc))->offset + - (char const *)lc; - int const fdi = open(dyld_name, O_RDONLY, 0); - if (0 > fdi) { - err_exit(18); - } -fat: - if ((ssize_t)sz_mhdr!=pread(fdi, (void *)mhdr, sz_mhdr, fat_offset)) { -ERR_LAB - err_exit(19); - } - switch (mhdr->magic) { - case MH_MAGIC: break; - case FAT_MAGIC: { - // stupid Apple: waste code and a page fault on EVERY execve - Fat_header *const fh = (Fat_header *)mhdr; - Fat_arch *fa = (Fat_arch *)(1+ fh); - bswap(fh, sizeof(*fh) + (fh->nfat_arch>>24)*sizeof(*fa)); - for (j= 0; j < fh->nfat_arch; ++j, ++fa) { - if (CPU_TYPE_ARM==fa->cputype) { - fat_offset= fa->offset; - goto fat; - } - } - } break; - } // switch - entry = do_xmap(mhdr, fat_offset, 0, fdi, 0, 0, 0); - close(fdi); - break; - } - } - - return entry; -} - -/* vim:set ts=4 sw=4 et: */ +#include "amd64-darwin.macho-main.c" diff --git a/src/stub/src/arm64-darwin.macho-entry.S b/src/stub/src/arm64-darwin.macho-entry.S index 154ea47e..b217e676 100644 --- a/src/stub/src/arm64-darwin.macho-entry.S +++ b/src/stub/src/arm64-darwin.macho-entry.S @@ -29,12 +29,11 @@ * */ -#define SIMULATE_ON_DEBIAN_EABI4 1 -//#undef SIMULATE_ON_DEBIAN_EABI4 +#define SIMULATE_ON_LINUX_EABI4 0 -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ - #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_DEBIAN_EABI4 */ - #define ARMEL_EABI4 1 /* SIMULATE_ON_DEBIAN_EABI4 */ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ + #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_LINUX_EABI4 */ + #define ARMEL_EABI4 1 /* SIMULATE_ON_LINUX_EABI4 */ #else /*}{ USUAL case */ #define DARWIN_ARM_CACHEFLUSH 1 #define ARMEL_DARWIN 1 @@ -70,7 +69,7 @@ __NR_open = 5 + __NR_SYSCALL_BASE __NR_mmap = 197 + __NR_SYSCALL_BASE __NR_mprotect= 74 + __NR_SYSCALL_BASE -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ __NR_mmap = 0xde // 222 __GI___mmap64 __NR_munmap = 0xd7 // 215 __NR_mprotect = 0xe2 // 226 @@ -231,7 +230,7 @@ L40: cmp w4,w5; bne L30 // mismatch ==> next apple[] cbnz w3,L40 // not entire prefix -#ifdef SIMULATE_ON_DEBIAN_EABI4 //{ +#if SIMULATE_ON_LINUX_EABI4 //{ mov arg3,#0 // O_RDONLY mov arg2,arg1 mov arg1w,#FD_CWD diff --git a/src/stub/src/arm64-darwin.macho-fold.S b/src/stub/src/arm64-darwin.macho-fold.S index d0289c85..ecf947e5 100644 --- a/src/stub/src/arm64-darwin.macho-fold.S +++ b/src/stub/src/arm64-darwin.macho-fold.S @@ -27,12 +27,11 @@ // // -#define SIMULATE_ON_DEBIAN_EABI4 1 -//#undef SIMULATE_ON_DEBIAN_EABI4 +#define SIMULATE_ON_LINUX_EABI4 0 -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ - #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_DEBIAN_EABI4 */ - #define ARMEL_EABI4 1 /* SIMULATE_ON_DEBIAN_EABI4 */ +#if SIMULATE_ON_LINUX_EABI4 /*{*/ + #define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_LINUX_EABI4 */ + #define ARMEL_EABI4 1 /* SIMULATE_ON_LINUX_EABI4 */ #else /*}{ USUAL case */ #define DARWIN_ARM_CACHEFLUSH 1 #define ARMEL_DARWIN 1 @@ -56,6 +55,32 @@ sz_b_info = 12 sz_cpr= 4 b_method= 8 +#if SIMULATE_ON_LINUX_EABI4 /*{*/ +__NR_brk = 0xd6 // 214 +__NR_close = 0x39 // 57 +__NR_exit = 0x5d // 93 +__NR_mmap = 0xde // 222 __GI___mmap64 +__NR_mprotect = 0xe2 // 226 +__NR_munmap = 0xd7 // 215 +__NR_openat = 0x38 // 56 +__NR_pread = 0x43 // 67 +__NR_read = 0x3f // 63 +__NR_write = 0x40 // 64 +#else //}{ native darwin usual case +__NR_exit = 1 +__NR_read = 3 +__NR_write = 4 +__NR_open = 5 +__NR_close = 6 +__NR_brk = 45 + +__NR_mmap = 197 +__NR_munmap = 73 +__NR_mprotect = 74 +__NR_pread = 153 +#endif /*}*/ +FD_CWD = -100 + _start: .globl _start // ignored, but silence "cannot find entry symbol _start" from ld // control just falls through, after this part and compiled C code @@ -89,7 +114,6 @@ r_EXP .req x28 mov arg5,r_EXP adr arg6,f_unfilter // upx_main(x0=&l_info, w1=len_cpr, x2=temp[sz_mhdr], w3=sz_mhdr, x4=f_exp, x5=f_unf, x6=mhdr **) - brk #0 bl upx_main // OUT: x0= &Mach_thread_state of dyld; will be in temp mhdr[] ARM64_ts_pc= 32*NBPW @@ -151,31 +175,6 @@ unf_ret: spin: .globl spin ret -__NR_exit = 1 -__NR_read = 3 -__NR_write = 4 -__NR_open = 5 -__NR_close = 6 -__NR_brk = 45 - -__NR_mmap = 197 -__NR_munmap = 73 -__NR_mprotect = 74 -__NR_pread = 153 - -#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/ -__NR_close = 0x39 // 57 -__NR_exit = 0x5d // 93 -__NR_mmap = 0xde // 222 __GI___mmap64 -__NR_mprotect = 0xe2 // 226 -__NR_munmap = 0xd7 // 215 -__NR_openat = 0x38 // 56 -__NR_pread = 0x43 // 67 -__NR_read = 0x3f // 63 -__NR_write = 0x40 // 64 -#endif /*}*/ -FD_CWD = -100 - .globl exit exit: do_sys __NR_exit @@ -190,8 +189,7 @@ write: .globl open open: - brk #0 -#ifdef SIMULATE_ON_DEBIAN_EABI4 //{ +#if SIMULATE_ON_LINUX_EABI4 //{ mov arg3,#0 // O_RDONLY mov arg2,arg1 mov arg1w,#FD_CWD diff --git a/src/stub/src/i386-darwin.macho-upxmain.c b/src/stub/src/i386-darwin.macho-upxmain.c index 3c2e691e..84882f17 100644 --- a/src/stub/src/i386-darwin.macho-upxmain.c +++ b/src/stub/src/i386-darwin.macho-upxmain.c @@ -559,7 +559,7 @@ ERR_LAB } addr += mlen + frag; /* page boundary on hi end */ if ( -#if defined(SIMULATE_ON_DEBIAN_EABI4) /*{*/ +#if defined(SIMULATE_ON_LINUX_EABI4) /*{*/ 0!=addr && #endif /*}*/ addr < haddr) { // need pages for .bss diff --git a/src/stub/tmp/amd64-darwin.macho-fold.map b/src/stub/tmp/amd64-darwin.macho-fold.map index 0d48ab00..fca4dab9 100644 --- a/src/stub/tmp/amd64-darwin.macho-fold.map +++ b/src/stub/tmp/amd64-darwin.macho-fold.map @@ -72,7 +72,7 @@ LOAD tmp/amd64-darwin.macho-main.o .plt *(.plt) -.text 0x0000000008048000 0xea3 +.text 0x0000000008048000 0xee5 *(.text .stub .text.* .gnu.linkonce.t.*) .text 0x0000000008048000 0x157 tmp/amd64-darwin.macho-fold.o 0x00000000080480b8 munmap @@ -87,17 +87,17 @@ LOAD tmp/amd64-darwin.macho-main.o 0x00000000080480b4 mprotect 0x00000000080480c0 close *fill* 0x0000000008048157 0x1 90909090 - .text 0x0000000008048158 0xd4b tmp/amd64-darwin.macho-main.o + .text 0x0000000008048158 0xd8d tmp/amd64-darwin.macho-main.o 0x000000000804875f do_xmap - 0x0000000008048c30 upx_main + 0x0000000008048c72 upx_main *(.text.*personality*) *(.gnu.warning) .fini *(.fini) - 0x0000000008048ea3 PROVIDE (__etext, .) - 0x0000000008048ea3 PROVIDE (_etext, .) - 0x0000000008048ea3 PROVIDE (etext, .) + 0x0000000008048ee5 PROVIDE (__etext, .) + 0x0000000008048ee5 PROVIDE (_etext, .) + 0x0000000008048ee5 PROVIDE (etext, .) .rodata *(.rodata .rodata.* .gnu.linkonce.r.*) @@ -113,8 +113,8 @@ LOAD tmp/amd64-darwin.macho-main.o .gcc_except_table *(.gcc_except_table .gcc_except_table.*) - 0x0000000008048ea3 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff)) - 0x0000000008049ea3 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000) + 0x0000000008048ee5 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff)) + 0x0000000008049ee5 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000) .eh_frame *(.eh_frame) @@ -129,22 +129,22 @@ LOAD tmp/amd64-darwin.macho-main.o *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) -.preinit_array 0x0000000008049ea3 0x0 - 0x0000000008049ea3 PROVIDE (__preinit_array_start, .) +.preinit_array 0x0000000008049ee5 0x0 + 0x0000000008049ee5 PROVIDE (__preinit_array_start, .) *(.preinit_array) - 0x0000000008049ea3 PROVIDE (__preinit_array_end, .) + 0x0000000008049ee5 PROVIDE (__preinit_array_end, .) -.init_array 0x0000000008049ea3 0x0 - 0x0000000008049ea3 PROVIDE (__init_array_start, .) +.init_array 0x0000000008049ee5 0x0 + 0x0000000008049ee5 PROVIDE (__init_array_start, .) *(SORT(.init_array.*)) *(.init_array) - 0x0000000008049ea3 PROVIDE (__init_array_end, .) + 0x0000000008049ee5 PROVIDE (__init_array_end, .) -.fini_array 0x0000000008049ea3 0x0 - 0x0000000008049ea3 PROVIDE (__fini_array_start, .) +.fini_array 0x0000000008049ee5 0x0 + 0x0000000008049ee5 PROVIDE (__fini_array_start, .) *(.fini_array) *(SORT(.fini_array.*)) - 0x0000000008049ea3 PROVIDE (__fini_array_end, .) + 0x0000000008049ee5 PROVIDE (__fini_array_end, .) .ctors *crtbegin*.o(.ctors) @@ -170,35 +170,35 @@ LOAD tmp/amd64-darwin.macho-main.o .got *(.got) - 0x0000000008049ea3 . = (. DATA_SEGMENT_RELRO_END 0xc) + 0x0000000008049ee5 . = (. DATA_SEGMENT_RELRO_END 0xc) .got.plt *(.got.plt) -.data 0x0000000008049ea4 0x0 +.data 0x0000000008049ee8 0x0 *(.data .data.* .gnu.linkonce.d.*) - .data 0x0000000008049ea4 0x0 tmp/amd64-darwin.macho-fold.o - .data 0x0000000008049ea4 0x0 tmp/amd64-darwin.macho-main.o + .data 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-fold.o + .data 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-main.o *(.gnu.linkonce.d.*personality*) .data1 *(.data1) - 0x0000000008049ea4 _edata = . - 0x0000000008049ea4 PROVIDE (edata, .) - 0x0000000008049ea4 __bss_start = . + 0x0000000008049ee8 _edata = . + 0x0000000008049ee8 PROVIDE (edata, .) + 0x0000000008049ee8 __bss_start = . -.bss 0x0000000008049ea4 0x0 +.bss 0x0000000008049ee8 0x0 *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x0000000008049ea4 0x0 tmp/amd64-darwin.macho-fold.o - .bss 0x0000000008049ea4 0x0 tmp/amd64-darwin.macho-main.o + .bss 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-fold.o + .bss 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-main.o *(COMMON) - 0x0000000008049ea4 . = ALIGN ((. != 0x0)?0x4:0x1) - 0x0000000008049ea4 . = ALIGN (0x4) - 0x0000000008049ea4 . = ALIGN (0x4) - 0x0000000008049ea4 _end = . - 0x0000000008049ea4 PROVIDE (end, .) - 0x0000000008049ea4 . = DATA_SEGMENT_END (.) + 0x0000000008049ee8 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x0000000008049ee8 . = ALIGN (0x4) + 0x0000000008049ee8 . = ALIGN (0x4) + 0x0000000008049ee8 _end = . + 0x0000000008049ee8 PROVIDE (end, .) + 0x0000000008049ee8 . = DATA_SEGMENT_END (.) .stab *(.stab) diff --git a/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump b/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump index 02c17358..b1e3df4a 100644 --- a/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump +++ b/src/stub/tmp/arm.v5a-darwin.macho-entry.bin.dump @@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn Flags 8 LZMA_DEC10 00000478 00000000 00000000 00000d80 2**0 CONTENTS, RELOC, READONLY 9 LZMA_DEC30 00000000 00000000 00000000 000011f8 2**0 CONTENTS, READONLY 10 MACHMAINY 00000000 00000000 00000000 000011f8 2**0 CONTENTS, READONLY - 11 MACHMAINZ 0000018c 00000000 00000000 000011f8 2**0 CONTENTS, RELOC, READONLY + 11 MACHMAINZ 00000184 00000000 00000000 000011f8 2**0 CONTENTS, RELOC, READONLY SYMBOL TABLE: 00000000 l d NRV2E 00000000 NRV2E 00000000 l d NRV2D 00000000 NRV2D @@ -245,9 +245,9 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [MACHMAINZ]: OFFSET TYPE VALUE -00000110 R_ARM_PC24 MACHMAINZ -0000011c R_ARM_PC24 MACHMAINZ -00000128 R_ARM_PC24 MACHMAINZ -00000140 R_ARM_PC24 MACHMAINZ -00000148 R_ARM_PC24 MACHMAINZ -00000188 R_ARM_PC24 MACHMAINZ +0000010c R_ARM_PC24 MACHMAINZ +00000118 R_ARM_PC24 MACHMAINZ +00000124 R_ARM_PC24 MACHMAINZ +0000013c R_ARM_PC24 MACHMAINZ +00000144 R_ARM_PC24 MACHMAINZ +00000180 R_ARM_PC24 MACHMAINZ diff --git a/src/stub/tmp/arm.v5a-darwin.macho-fold.map b/src/stub/tmp/arm.v5a-darwin.macho-fold.map index 0b72b47f..7027697d 100644 --- a/src/stub/tmp/arm.v5a-darwin.macho-fold.map +++ b/src/stub/tmp/arm.v5a-darwin.macho-fold.map @@ -72,32 +72,33 @@ LOAD tmp/arm.v5a-darwin.macho-main.o .plt *(.plt) -.text 0x0000000008048000 0x6a0 +.text 0x0000000008048000 0xfa8 *(.text .stub .text.* .gnu.linkonce.t.*) - .text 0x0000000008048000 0x19c tmp/arm.v5a-darwin.macho-fold.o - 0x0000000008048100 munmap - 0x0000000008048170 bswap - 0x0000000008048128 mmap - 0x00000000080480b0 write + .text 0x0000000008048000 0x1d8 tmp/arm.v5a-darwin.macho-fold.o + 0x0000000008048128 munmap + 0x00000000080481ac bswap + 0x0000000008048150 mmap + 0x00000000080480d8 write 0x0000000008048000 _start - 0x000000000804809c read - 0x0000000008048088 spin - 0x0000000008048150 pread - 0x000000000804808c exit - 0x00000000080480ec brk - 0x00000000080480c4 open - 0x0000000008048114 mprotect - 0x00000000080480d8 close - .text 0x000000000804819c 0x504 tmp/arm.v5a-darwin.macho-main.o - 0x0000000008048508 upx_main + 0x00000000080480c4 read + 0x00000000080480b0 spin + 0x0000000008048188 pread + 0x00000000080480b4 exit + 0x0000000008048114 brk + 0x00000000080480ec open + 0x000000000804813c mprotect + 0x0000000008048100 close + .text 0x00000000080481d8 0xdd0 tmp/arm.v5a-darwin.macho-main.o + 0x00000000080487bc do_xmap + 0x0000000008048d08 upx_main *(.text.*personality*) *(.gnu.warning) .fini *(.fini) - 0x00000000080486a0 PROVIDE (__etext, .) - 0x00000000080486a0 PROVIDE (_etext, .) - 0x00000000080486a0 PROVIDE (etext, .) + 0x0000000008048fa8 PROVIDE (__etext, .) + 0x0000000008048fa8 PROVIDE (_etext, .) + 0x0000000008048fa8 PROVIDE (etext, .) .rodata *(.rodata .rodata.* .gnu.linkonce.r.*) @@ -113,8 +114,8 @@ LOAD tmp/arm.v5a-darwin.macho-main.o .gcc_except_table *(.gcc_except_table .gcc_except_table.*) - 0x00000000080486a0 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff)) - 0x00000000080496a0 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000) + 0x0000000008048fa8 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff)) + 0x0000000008049fa8 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000) .eh_frame *(.eh_frame) @@ -129,22 +130,22 @@ LOAD tmp/arm.v5a-darwin.macho-main.o *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) -.preinit_array 0x00000000080496a0 0x0 - 0x00000000080496a0 PROVIDE (__preinit_array_start, .) +.preinit_array 0x0000000008049fa8 0x0 + 0x0000000008049fa8 PROVIDE (__preinit_array_start, .) *(.preinit_array) - 0x00000000080496a0 PROVIDE (__preinit_array_end, .) + 0x0000000008049fa8 PROVIDE (__preinit_array_end, .) -.init_array 0x00000000080496a0 0x0 - 0x00000000080496a0 PROVIDE (__init_array_start, .) +.init_array 0x0000000008049fa8 0x0 + 0x0000000008049fa8 PROVIDE (__init_array_start, .) *(SORT(.init_array.*)) *(.init_array) - 0x00000000080496a0 PROVIDE (__init_array_end, .) + 0x0000000008049fa8 PROVIDE (__init_array_end, .) -.fini_array 0x00000000080496a0 0x0 - 0x00000000080496a0 PROVIDE (__fini_array_start, .) +.fini_array 0x0000000008049fa8 0x0 + 0x0000000008049fa8 PROVIDE (__fini_array_start, .) *(.fini_array) *(SORT(.fini_array.*)) - 0x00000000080496a0 PROVIDE (__fini_array_end, .) + 0x0000000008049fa8 PROVIDE (__fini_array_end, .) .ctors *crtbegin*.o(.ctors) @@ -170,35 +171,35 @@ LOAD tmp/arm.v5a-darwin.macho-main.o .got *(.got) - 0x00000000080496a0 . = (. DATA_SEGMENT_RELRO_END 0xc) + 0x0000000008049fa8 . = (. DATA_SEGMENT_RELRO_END 0xc) .got.plt *(.got.plt) -.data 0x00000000080496a0 0x0 +.data 0x0000000008049fa8 0x0 *(.data .data.* .gnu.linkonce.d.*) - .data 0x00000000080496a0 0x0 tmp/arm.v5a-darwin.macho-fold.o - .data 0x00000000080496a0 0x0 tmp/arm.v5a-darwin.macho-main.o + .data 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-fold.o + .data 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-main.o *(.gnu.linkonce.d.*personality*) .data1 *(.data1) - 0x00000000080496a0 _edata = . - 0x00000000080496a0 PROVIDE (edata, .) - 0x00000000080496a0 __bss_start = . + 0x0000000008049fa8 _edata = . + 0x0000000008049fa8 PROVIDE (edata, .) + 0x0000000008049fa8 __bss_start = . -.bss 0x00000000080496a0 0x0 +.bss 0x0000000008049fa8 0x0 *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x00000000080496a0 0x0 tmp/arm.v5a-darwin.macho-fold.o - .bss 0x00000000080496a0 0x0 tmp/arm.v5a-darwin.macho-main.o + .bss 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-fold.o + .bss 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-main.o *(COMMON) - 0x00000000080496a0 . = ALIGN ((. != 0x0)?0x4:0x1) - 0x00000000080496a0 . = ALIGN (0x4) - 0x00000000080496a0 . = ALIGN (0x4) - 0x00000000080496a0 _end = . - 0x00000000080496a0 PROVIDE (end, .) - 0x00000000080496a0 . = DATA_SEGMENT_END (.) + 0x0000000008049fa8 . = ALIGN ((. != 0x0)?0x4:0x1) + 0x0000000008049fa8 . = ALIGN (0x4) + 0x0000000008049fa8 . = ALIGN (0x4) + 0x0000000008049fa8 _end = . + 0x0000000008049fa8 PROVIDE (end, .) + 0x0000000008049fa8 . = DATA_SEGMENT_END (.) .stab *(.stab) diff --git a/src/stub/tmp/arm64-darwin.macho-entry.bin.dump b/src/stub/tmp/arm64-darwin.macho-entry.bin.dump index dc010098..466de83f 100644 --- a/src/stub/tmp/arm64-darwin.macho-entry.bin.dump +++ b/src/stub/tmp/arm64-darwin.macho-entry.bin.dump @@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn 8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000db4 2**0 CONTENTS, READONLY 9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY 10 MACHMAINY 00000000 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, READONLY - 11 MACHMAINZ 00000158 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, RELOC, READONLY + 11 MACHMAINZ 00000150 0000000000000000 0000000000000000 00001250 2**0 CONTENTS, RELOC, READONLY SYMBOL TABLE: 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 0000000000000000 l d MACHMAINZ 0000000000000000 MACHMAINZ @@ -44,4 +44,4 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [MACHMAINZ]: OFFSET TYPE VALUE -0000000000000130 R_AARCH64_ADR_PREL_LO21 _start-0x0000000000000008 +0000000000000128 R_AARCH64_ADR_PREL_LO21 _start-0x0000000000000008 diff --git a/src/stub/tmp/arm64-darwin.macho-fold.map b/src/stub/tmp/arm64-darwin.macho-fold.map index 90cf85f4..2b7a33b7 100644 --- a/src/stub/tmp/arm64-darwin.macho-fold.map +++ b/src/stub/tmp/arm64-darwin.macho-fold.map @@ -67,36 +67,36 @@ LOAD tmp/arm64-darwin.macho-main.o *(.iplt) .iplt 0x0000000000400080 0x0 tmp/arm64-darwin.macho-fold.o -.text 0x0000000000400078 0xfe4 +.text 0x0000000000400078 0xffc *(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) - .text 0x0000000000400078 0x16c tmp/arm64-darwin.macho-fold.o + .text 0x0000000000400078 0x158 tmp/arm64-darwin.macho-fold.o 0x0000000000400078 _start - 0x0000000000400130 spin - 0x0000000000400134 exit - 0x000000000040013c read - 0x0000000000400148 write - 0x0000000000400154 open - 0x0000000000400170 close - 0x000000000040017c brk - 0x0000000000400188 munmap - 0x0000000000400194 mprotect - 0x00000000004001a0 mmap - 0x00000000004001ac pread - 0x00000000004001b8 bswap - .text 0x00000000004001e4 0xe78 tmp/arm64-darwin.macho-main.o - 0x00000000004008ac do_xmap - 0x0000000000400da4 upx_main + 0x000000000040012c spin + 0x0000000000400130 exit + 0x0000000000400138 read + 0x0000000000400144 write + 0x0000000000400150 open + 0x000000000040015c close + 0x0000000000400168 brk + 0x0000000000400174 munmap + 0x0000000000400180 mprotect + 0x000000000040018c mmap + 0x0000000000400198 pread + 0x00000000004001a4 bswap + .text 0x00000000004001d0 0xea4 tmp/arm64-darwin.macho-main.o + 0x0000000000400898 do_xmap + 0x0000000000400dbc upx_main *(.gnu.warning) .fini *(SORT(.fini)) - 0x000000000040105c PROVIDE (__etext, .) - 0x000000000040105c PROVIDE (_etext, .) - 0x000000000040105c PROVIDE (etext, .) + 0x0000000000401074 PROVIDE (__etext, .) + 0x0000000000401074 PROVIDE (_etext, .) + 0x0000000000401074 PROVIDE (etext, .) .rodata *(.rodata .rodata.* .gnu.linkonce.r.*) @@ -107,9 +107,9 @@ LOAD tmp/arm64-darwin.macho-main.o .eh_frame_hdr *(.eh_frame_hdr) -.eh_frame 0x0000000000401060 0x1c8 +.eh_frame 0x0000000000401078 0x1c8 *(.eh_frame) - .eh_frame 0x0000000000401060 0x1c8 tmp/arm64-darwin.macho-main.o + .eh_frame 0x0000000000401078 0x1c8 tmp/arm64-darwin.macho-main.o 0x1b8 (size before relaxing) .gcc_except_table @@ -117,8 +117,8 @@ LOAD tmp/arm64-darwin.macho-main.o .exception_ranges *(.exception_ranges .exception_ranges*) - 0x0000000000401228 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff)) - 0x0000000000411228 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000) + 0x0000000000401240 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff)) + 0x0000000000411240 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000) .eh_frame *(.eh_frame) @@ -136,22 +136,22 @@ LOAD tmp/arm64-darwin.macho-main.o *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) -.preinit_array 0x0000000000411228 0x0 - 0x0000000000411228 PROVIDE (__preinit_array_start, .) +.preinit_array 0x0000000000411240 0x0 + 0x0000000000411240 PROVIDE (__preinit_array_start, .) *(.preinit_array) - 0x0000000000411228 PROVIDE (__preinit_array_end, .) + 0x0000000000411240 PROVIDE (__preinit_array_end, .) -.init_array 0x0000000000411228 0x0 - 0x0000000000411228 PROVIDE (__init_array_start, .) +.init_array 0x0000000000411240 0x0 + 0x0000000000411240 PROVIDE (__init_array_start, .) *(SORT(.init_array.*)) *(.init_array) - 0x0000000000411228 PROVIDE (__init_array_end, .) + 0x0000000000411240 PROVIDE (__init_array_end, .) -.fini_array 0x0000000000411228 0x0 - 0x0000000000411228 PROVIDE (__fini_array_start, .) +.fini_array 0x0000000000411240 0x0 + 0x0000000000411240 PROVIDE (__fini_array_start, .) *(SORT(.fini_array.*)) *(.fini_array) - 0x0000000000411228 PROVIDE (__fini_array_end, .) + 0x0000000000411240 PROVIDE (__fini_array_end, .) .ctors *crtbegin.o(.ctors) @@ -180,43 +180,43 @@ LOAD tmp/arm64-darwin.macho-main.o .got *(.got) *(.igot) - 0x0000000000411228 . = DATA_SEGMENT_RELRO_END (., 0x18) + 0x0000000000411240 . = DATA_SEGMENT_RELRO_END (., 0x18) -.got.plt 0x0000000000411228 0x0 +.got.plt 0x0000000000411240 0x0 *(.got.plt) *(.igot.plt) - .igot.plt 0x0000000000411228 0x0 tmp/arm64-darwin.macho-fold.o + .igot.plt 0x0000000000411240 0x0 tmp/arm64-darwin.macho-fold.o -.data 0x0000000000411228 0x0 - 0x0000000000411228 PROVIDE (__data_start, .) +.data 0x0000000000411240 0x0 + 0x0000000000411240 PROVIDE (__data_start, .) *(.data .data.* .gnu.linkonce.d.*) - .data 0x0000000000411228 0x0 tmp/arm64-darwin.macho-fold.o - .data 0x0000000000411228 0x0 tmp/arm64-darwin.macho-main.o + .data 0x0000000000411240 0x0 tmp/arm64-darwin.macho-fold.o + .data 0x0000000000411240 0x0 tmp/arm64-darwin.macho-main.o .data1 *(.data1) - 0x0000000000411228 _edata = . - 0x0000000000411228 PROVIDE (edata, .) - 0x0000000000411228 . = . - 0x0000000000411228 __bss_start = . - 0x0000000000411228 __bss_start__ = . + 0x0000000000411240 _edata = . + 0x0000000000411240 PROVIDE (edata, .) + 0x0000000000411240 . = . + 0x0000000000411240 __bss_start = . + 0x0000000000411240 __bss_start__ = . -.bss 0x0000000000411228 0x0 +.bss 0x0000000000411240 0x0 *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x0000000000411228 0x0 tmp/arm64-darwin.macho-fold.o - .bss 0x0000000000411228 0x0 tmp/arm64-darwin.macho-main.o + .bss 0x0000000000411240 0x0 tmp/arm64-darwin.macho-fold.o + .bss 0x0000000000411240 0x0 tmp/arm64-darwin.macho-main.o *(COMMON) - 0x0000000000411228 . = ALIGN ((. != 0x0)?0x8:0x1) - 0x0000000000411228 _bss_end__ = . - 0x0000000000411228 __bss_end__ = . - 0x0000000000411228 . = ALIGN (0x8) - 0x0000000000411228 . = SEGMENT_START ("ldata-segment", .) - 0x0000000000411228 . = ALIGN (0x8) - 0x0000000000411228 __end__ = . - 0x0000000000411228 _end = . - 0x0000000000411228 PROVIDE (end, .) - 0x0000000000411228 . = DATA_SEGMENT_END (.) + 0x0000000000411240 . = ALIGN ((. != 0x0)?0x8:0x1) + 0x0000000000411240 _bss_end__ = . + 0x0000000000411240 __bss_end__ = . + 0x0000000000411240 . = ALIGN (0x8) + 0x0000000000411240 . = SEGMENT_START ("ldata-segment", .) + 0x0000000000411240 . = ALIGN (0x8) + 0x0000000000411240 __end__ = . + 0x0000000000411240 _end = . + 0x0000000000411240 PROVIDE (end, .) + 0x0000000000411240 . = DATA_SEGMENT_END (.) .stab *(.stab)