stash work-in-progress

modified:   stub/src/amd64-darwin.macho-main.c
	modified:   stub/src/arm.v5a-darwin.macho-entry.S
	modified:   stub/src/arm.v5a-darwin.macho-fold.S
	modified:   stub/src/arm64-darwin.macho-entry.S
	modified:   stub/src/arm64-darwin.macho-fold.S
This commit is contained in:
John Reiser
2017-12-22 23:07:03 -08:00
parent fb3699fb89
commit 59f18b9d9f
13 changed files with 964 additions and 720 deletions
+194 -184
View File
@@ -1,5 +1,5 @@
/* amd64-darwin.macho-fold.h /* amd64-darwin.macho-fold.h
created from amd64-darwin.macho-fold.bin, 3813 (0xee5) bytes created from amd64-darwin.macho-fold.bin, 3977 (0xf89) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,11 +31,11 @@
*/ */
#define STUB_AMD64_DARWIN_MACHO_FOLD_SIZE 3813 #define STUB_AMD64_DARWIN_MACHO_FOLD_SIZE 3977
#define STUB_AMD64_DARWIN_MACHO_FOLD_ADLER32 0x64d1cde8 #define STUB_AMD64_DARWIN_MACHO_FOLD_ADLER32 0x2226023d
#define STUB_AMD64_DARWIN_MACHO_FOLD_CRC32 0x84d8a714 #define STUB_AMD64_DARWIN_MACHO_FOLD_CRC32 0x75b9482f
unsigned char stub_amd64_darwin_macho_fold[3813] = { unsigned char stub_amd64_darwin_macho_fold[3977] = {
/* 0x0000 */ 232, 74, 0, 0, 0,131,249, 73,117, 68, 83, 87, 72,141, 76, 55, /* 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, /* 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, /* 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[3813] = {
/* 0x0040 */ 41,248, 1,216,171, 72, 57,206,115, 3,172,235,223, 91,195, 65, /* 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, /* 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, /* 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,247, 11, 0, 0, 72,139, 40, 72,139, /* 0x0070 */ 41,204, 72,137,226, 80,232,149, 12, 0, 0, 72,139, 40, 72,139,
/* 0x0080 */ 136,128, 0, 0, 0, 76,137,228, 72,137, 76, 36, 24, 95,232, 45, /* 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, /* 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, /* 0x00a0 */ 137, 7,131,238, 4, 72,141,127, 4,119,241,195,176, 4,235, 2,
@@ -79,15 +79,15 @@ unsigned char stub_amd64_darwin_macho_fold[3813] = {
/* 0x0280 */ 41, 96,193, 15, 41, 88,177, 15, 41, 80,161, 15, 41, 72,145, 15, /* 0x0280 */ 41, 96,193, 15, 41, 88,177, 15, 41, 80,161, 15, 41, 72,145, 15,
/* 0x0290 */ 41, 64,129, 72,141,132, 36, 32, 1, 0, 0, 72,137, 68, 36, 8, /* 0x0290 */ 41, 64,129, 72,141,132, 36, 32, 1, 0, 0, 72,137, 68, 36, 8,
/* 0x02a0 */ 72,141, 68, 36, 64, 72,137, 68, 36, 16, 65, 15,182, 28, 36, 73, /* 0x02a0 */ 72,141, 68, 36, 64, 72,137, 68, 36, 16, 65, 15,182, 28, 36, 73,
/* 0x02b0 */ 255,196,132,219,117, 11, 77,133,237, 15,132,227, 1, 0, 0,235, /* 0x02b0 */ 255,196,132,219,117, 11, 77,133,237, 15,132,226, 1, 0, 0,235,
/* 0x02c0 */ 20,128,251, 37,116, 10, 77,133,237,117,223, 77,137,229,235,218, /* 0x02c0 */ 20,128,251, 37,116, 10, 77,133,237,117,223, 77,137,229,235,218,
/* 0x02d0 */ 77,133,237,116, 33, 73,141,117,255, 76,137,226,191, 2, 0, 0, /* 0x02d0 */ 77,133,237,116, 33, 73,141,117,255, 76,137,226,191, 2, 0, 0,
/* 0x02e0 */ 0, 76, 41,234, 69, 49,237,232,192,253,255,255, 1,197,132,219, /* 0x02e0 */ 0, 76, 41,234, 69, 49,237,232,192,253,255,255, 1,197,132,219,
/* 0x02f0 */ 15,132,172, 1, 0, 0, 65, 15,190, 4, 36, 73,255,196,131,248, /* 0x02f0 */ 15,132,171, 1, 0, 0, 65, 15,190, 4, 36, 73,255,196,131,248,
/* 0x0300 */ 115, 15,132, 74, 1, 0, 0,127, 28,131,248,100,116,108,127, 10, /* 0x0300 */ 115, 15,132, 73, 1, 0, 0,127, 28,131,248,100,116,108,127, 10,
/* 0x0310 */ 133,192, 15,132,138, 1, 0, 0,235, 25,131,248,112, 15,132,165, /* 0x0310 */ 133,192, 15,132,137, 1, 0, 0,235, 25,131,248,112, 15,132,165,
/* 0x0320 */ 0, 0, 0,235, 14,131,248,117,116, 24,131,248,120, 15,132,224, /* 0x0320 */ 0, 0, 0,235, 14,131,248,117,116, 24,131,248,120, 15,132,224,
/* 0x0330 */ 0, 0, 0, 73,141,116, 36,255,186, 1, 0, 0, 0,233, 79, 1, /* 0x0330 */ 0, 0, 0, 73,141,116, 36,255,186, 1, 0, 0, 0,233, 78, 1,
/* 0x0340 */ 0, 0,139, 4, 36, 72,141,116, 36, 32,131,248, 48,115, 15,137, /* 0x0340 */ 0, 0,139, 4, 36, 72,141,116, 36, 32,131,248, 48,115, 15,137,
/* 0x0350 */ 193, 72, 3, 76, 36, 16,131,192, 8,137, 4, 36,235, 14, 72,139, /* 0x0350 */ 193, 72, 3, 76, 36, 16,131,192, 8,137, 4, 36,235, 14, 72,139,
/* 0x0360 */ 76, 36, 8, 72,141, 65, 8, 72,137, 68, 36, 8,139, 57, 49,210, /* 0x0360 */ 76, 36, 8, 72,141, 65, 8, 72,137, 68, 36, 8,139, 57, 49,210,
@@ -96,183 +96,193 @@ unsigned char stub_amd64_darwin_macho_fold[3813] = {
/* 0x0390 */ 14, 72,139, 84, 36, 8, 72,141, 66, 8, 72,137, 68, 36, 8,139, /* 0x0390 */ 14, 72,139, 84, 36, 8, 72,141, 66, 8, 72,137, 68, 36, 8,139,
/* 0x03a0 */ 58, 49,210, 72,141, 92, 36, 32,133,255,121, 9,247,223,198, 68, /* 0x03a0 */ 58, 49,210, 72,141, 92, 36, 32,133,255,121, 9,247,223,198, 68,
/* 0x03b0 */ 36, 32, 45,178, 1, 72,137,222,232,155,253,255,255, 72,137,222, /* 0x03b0 */ 36, 32, 45,178, 1, 72,137,222,232,155,253,255,255, 72,137,222,
/* 0x03c0 */ 72, 99,208,233,201, 0, 0, 0,139, 4, 36,198, 68, 36, 32, 48, /* 0x03c0 */ 72, 99,208,233,200, 0, 0, 0,139, 4, 36,198, 68, 36, 32, 48,
/* 0x03d0 */ 72,141,116, 36, 32,198, 68, 36, 33,120,131,248, 48,115, 15,137, /* 0x03d0 */ 72,141,116, 36, 32,198, 68, 36, 33,120,131,248, 48,115, 15,137,
/* 0x03e0 */ 193, 72, 3, 76, 36, 16,131,192, 8,137, 4, 36,235, 14, 72,139, /* 0x03e0 */ 193, 72, 3, 76, 36, 16,131,192, 8,137, 4, 36,235, 14, 72,139,
/* 0x03f0 */ 76, 36, 8, 72,141, 65, 8, 72,137, 68, 36, 8, 72,139, 57,186, /* 0x03f0 */ 76, 36, 8, 72,141, 65, 8, 72,137, 68, 36, 8, 72,139, 57,186,
/* 0x0400 */ 2, 0, 0, 0,232,175,253,255,255, 72,141,116, 36, 32, 72, 99, /* 0x0400 */ 2, 0, 0, 0,232,175,253,255,255, 72,141,116, 36, 32, 72, 99,
/* 0x0410 */ 208,235,126,139, 4, 36,198, 68, 36, 32, 48, 72,141,116, 36, 32, /* 0x0410 */ 208,235,125,139, 4, 36,198, 68, 36, 32, 48, 72,141,116, 36, 32,
/* 0x0420 */ 198, 68, 36, 33,120,131,248, 48,115, 15,137,194, 72, 3, 84, 36, /* 0x0420 */ 198, 68, 36, 33,120,131,248, 48,115, 15,137,194, 72, 3, 84, 36,
/* 0x0430 */ 16,131,192, 8,137, 4, 36,235, 14, 72,139, 84, 36, 8, 72,141, /* 0x0430 */ 16,131,192, 8,137, 4, 36,235, 14, 72,139, 84, 36, 8, 72,141,
/* 0x0440 */ 66, 8, 72,137, 68, 36, 8, 72, 99, 58,186, 2, 0, 0, 0,235, /* 0x0440 */ 66, 8, 72,137, 68, 36, 8,139, 58,186, 2, 0, 0, 0,235,180,
/* 0x0450 */ 179,139, 4, 36,131,248, 48,115, 15,137,194, 72, 3, 84, 36, 16, /* 0x0450 */ 139, 4, 36,131,248, 48,115, 15,137,194, 72, 3, 84, 36, 16,131,
/* 0x0460 */ 131,192, 8,137, 4, 36,235, 14, 72,139, 84, 36, 8, 72,141, 66, /* 0x0460 */ 192, 8,137, 4, 36,235, 14, 72,139, 84, 36, 8, 72,141, 66, 8,
/* 0x0470 */ 8, 72,137, 68, 36, 8, 72,139, 50, 72,133,246, 72,137,242,116, /* 0x0470 */ 72,137, 68, 36, 8, 72,139, 50, 72,133,246, 72,137,242,116, 13,
/* 0x0480 */ 13,128, 62, 0,116, 8, 72,255,194,128, 58, 0,235,246, 72, 41, /* 0x0480 */ 128, 62, 0,116, 8, 72,255,194,128, 58, 0,235,246, 72, 41,242,
/* 0x0490 */ 242,191, 2, 0, 0, 0,232, 17,252,255,255, 1,197,233, 8,254, /* 0x0490 */ 191, 2, 0, 0, 0,232, 18,252,255,255, 1,197,233, 9,254,255,
/* 0x04a0 */ 255,255, 72,129,196,248, 0, 0, 0,137,232, 91, 93, 65, 92, 65, /* 0x04a0 */ 255, 72,129,196,248, 0, 0, 0,137,232, 91, 93, 65, 92, 65, 93,
/* 0x04b0 */ 93,195, 65, 85, 73,137,209, 73,137,240, 49,192, 65, 84, 73,137, /* 0x04b0 */ 195, 65, 85, 73,137,209, 73,137,240, 49,192, 65, 84, 73,137,244,
/* 0x04c0 */ 244, 85, 72,137,213, 83, 72,137,251, 72,137,222, 81, 76,139,111, /* 0x04c0 */ 85, 72,137,213, 83, 72,137,251, 72,137,222, 81, 76,139,111, 8,
/* 0x04d0 */ 8, 72,139, 19,232, 23, 0, 0, 0,120,114,101, 97,100, 32, 37, /* 0x04d0 */ 72,139, 19,232, 23, 0, 0, 0,120,114,101, 97,100, 32, 37,112,
/* 0x04e0 */ 112, 40, 37,120, 32, 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, /* 0x04e0 */ 40, 37,120, 32, 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, 95,
/* 0x04f0 */ 95, 76,137,233,232, 30,253,255,255, 72,139, 19, 72, 57,234,115, /* 0x04f0 */ 76,137,233,232, 31,253,255,255, 72,139, 19, 72, 57,234,115, 63,
/* 0x0500 */ 63, 72,139, 75, 8, 73,137,233, 77,137,224, 72,137,222, 49,192, /* 0x0500 */ 72,139, 75, 8, 73,137,233, 77,137,224, 72,137,222, 49,192,232,
/* 0x0510 */ 232, 27, 0, 0, 0,120,114,101, 97,100,102, 97,105,108, 32, 37, /* 0x0510 */ 27, 0, 0, 0,120,114,101, 97,100,102, 97,105,108, 32, 37,112,
/* 0x0520 */ 112, 40, 37,120, 32, 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, /* 0x0520 */ 40, 37,120, 32, 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, 95,
/* 0x0530 */ 95,232,225,252,255,255,191,127, 0, 0, 0,232,112,251,255,255, /* 0x0530 */ 232,226,252,255,255,191,127, 0, 0, 0,232,113,251,255,255, 72,
/* 0x0540 */ 72,141, 85,255, 72,131,250,255,116, 20, 65, 15,182, 69, 0, 72, /* 0x0540 */ 141, 85,255, 72,131,250,255,116, 20, 65, 15,182, 69, 0, 72,255,
/* 0x0550 */ 255,202, 73,255,197, 65,136, 4, 36, 73,255,196,235,230, 72, 1, /* 0x0550 */ 202, 73,255,197, 65,136, 4, 36, 73,255,196,235,230, 72, 1,107,
/* 0x0560 */ 107, 8, 72, 41, 43, 88, 91, 93, 65, 92, 65, 93,195, 83,137,251, /* 0x0560 */ 8, 72, 41, 43, 88, 91, 93, 65, 92, 65, 93,195, 83,137,251, 49,
/* 0x0570 */ 49,192,137,222,232, 13, 0, 0, 0,101,114,114, 95,101,120,105, /* 0x0570 */ 192,137,222,232, 13, 0, 0, 0,101,114,114, 95,101,120,105,116,
/* 0x0580 */ 116, 32, 37,120, 10, 0, 95,232,139,252,255,255,137,223,232, 29, /* 0x0580 */ 32, 37,120, 10, 0, 95,232,140,252,255,255,137,223,232, 30,251,
/* 0x0590 */ 251,255,255, 65, 85, 73,137,213, 73,137,240, 49,192, 65, 84, 73, /* 0x0590 */ 255,255, 65, 85, 73,137,213, 73,137,240, 49,192, 65, 84, 73,137,
/* 0x05a0 */ 137,204, 85, 72,137,253,232, 49, 0, 0, 0,117,110,112, 97, 99, /* 0x05a0 */ 204, 85, 72,137,253,232, 49, 0, 0, 0,117,110,112, 97, 99,107,
/* 0x05b0 */ 107, 69,120,116,101,110,116, 32,105,110, 61, 37,112, 40, 37,120, /* 0x05b0 */ 69,120,116,101,110,116, 32,105,110, 61, 37,112, 40, 37,120, 32,
/* 0x05c0 */ 32, 37,112, 41, 32, 32,111,117,116, 61, 37,112, 40, 37,120, 32, /* 0x05c0 */ 37,112, 41, 32, 32,111,117,116, 61, 37,112, 40, 37,120, 32, 37,
/* 0x05d0 */ 37,112, 41, 32, 32, 37,112, 32, 37,112, 10, 0, 95, 83, 72,137, /* 0x05d0 */ 112, 41, 32, 32, 37,112, 32, 37,112, 10, 0, 95, 83, 72,137,243,
/* 0x05e0 */ 243, 72,131,236, 48, 72,139, 77, 8, 65, 84, 82,255,118, 8, 76, /* 0x05e0 */ 72,131,236, 48, 72,139, 77, 8, 65, 84, 82,255,118, 8, 76,139,
/* 0x05f0 */ 139, 14, 72,139, 85, 0, 72,137,238,232, 25,252,255,255, 72,131, /* 0x05f0 */ 14, 72,139, 85, 0, 72,137,238,232, 26,252,255,255, 72,131,196,
/* 0x0600 */ 196, 32, 72,131, 59, 0, 15,132, 72, 1, 0, 0, 72,141,116, 36, /* 0x0600 */ 32, 72,131, 59, 0, 15,132, 72, 1, 0, 0, 72,141,116, 36, 16,
/* 0x0610 */ 16,186, 12, 0, 0, 0, 72,137,239,232,148,254,255,255,131,124, /* 0x0610 */ 186, 12, 0, 0, 0, 72,137,239,232,148,254,255,255,131,124, 36,
/* 0x0620 */ 36, 16, 0,139, 68, 36, 20,117, 43, 61, 85, 80, 88, 33,116, 10, /* 0x0620 */ 16, 0,139, 68, 36, 20,117, 43, 61, 85, 80, 88, 33,116, 10,191,
/* 0x0630 */ 191, 2, 0, 0, 0,232, 51,255,255,255, 72,131,125, 0, 0, 15, /* 0x0630 */ 2, 0, 0, 0,232, 51,255,255,255, 72,131,125, 0, 0, 15,132,
/* 0x0640 */ 132, 15, 1, 0, 0,191, 3, 0, 0, 0,232, 30,255,255,255,233, /* 0x0640 */ 15, 1, 0, 0,191, 3, 0, 0, 0,232, 30,255,255,255,233, 0,
/* 0x0650 */ 0, 1, 0, 0,133,192,117, 10,191, 4, 0, 0, 0,232, 11,255, /* 0x0650 */ 1, 0, 0,133,192,117, 10,191, 4, 0, 0, 0,232, 11,255,255,
/* 0x0660 */ 255,255,139,116, 36, 20,139, 84, 36, 16, 57,214,119, 7,137,208, /* 0x0660 */ 255,139,116, 36, 20,139, 84, 36, 16, 57,214,119, 7,137,208, 72,
/* 0x0670 */ 72, 59, 3,118, 61, 72,139, 11, 49,192,232, 35, 0, 0, 0,115, /* 0x0670 */ 59, 3,118, 61, 72,139, 11, 49,192,232, 35, 0, 0, 0,115,122,
/* 0x0680 */ 122, 95, 99,112,114, 61, 37,120, 32, 32,115,122, 95,117,110, 99, /* 0x0680 */ 95, 99,112,114, 61, 37,120, 32, 32,115,122, 95,117,110, 99, 61,
/* 0x0690 */ 61, 37,120, 32, 32,120,111, 45, 62,115,105,122,101, 61, 37,120, /* 0x0690 */ 37,120, 32, 32,120,111, 45, 62,115,105,122,101, 61, 37,120, 10,
/* 0x06a0 */ 10, 0, 95,232,111,251,255,255,191, 5, 0, 0, 0,232,187,254, /* 0x06a0 */ 0, 95,232,112,251,255,255,191, 5, 0, 0, 0,232,187,254,255,
/* 0x06b0 */ 255,255,139,116, 36, 20,139, 68, 36, 16, 76,139, 75, 8, 57,198, /* 0x06b0 */ 255,139,116, 36, 20,139, 68, 36, 16, 76,139, 75, 8, 57,198,115,
/* 0x06c0 */ 115,108,137,192, 68, 15,182, 68, 36, 24, 72,139,125, 8, 72,137, /* 0x06c0 */ 108,137,192, 68, 15,182, 68, 36, 24, 72,139,125, 8, 72,137, 68,
/* 0x06d0 */ 68, 36, 8, 72,141, 76, 36, 8, 76,137,202, 65,255,213,133,192, /* 0x06d0 */ 36, 8, 72,141, 76, 36, 8, 76,137,202, 65,255,213,133,192,117,
/* 0x06e0 */ 117, 11,139, 68, 36, 16, 72, 57, 68, 36, 8,116, 10,191, 7, 0, /* 0x06e0 */ 11,139, 68, 36, 16, 72, 57, 68, 36, 8,116, 10,191, 7, 0, 0,
/* 0x06f0 */ 0, 0,232,118,254,255,255, 15,182, 76, 36, 25,132,201, 15,149, /* 0x06f0 */ 0,232,118,254,255,255, 15,182, 76, 36, 25,132,201, 15,149,194,
/* 0x0700 */ 194, 49,192, 77,133,228, 15,149,192,133,194,116, 19, 15,182, 84, /* 0x0700 */ 49,192, 77,133,228, 15,149,192,133,194,116, 19, 15,182, 84, 36,
/* 0x0710 */ 36, 26, 15,182,201, 72,139,123, 8,139,116, 36, 8, 65,255,212, /* 0x0710 */ 26, 15,182,201, 72,139,123, 8,139,116, 36, 8, 65,255,212,139,
/* 0x0720 */ 139, 68, 36, 20, 72, 1, 69, 8, 72, 41, 69, 0,235, 13,137,242, /* 0x0720 */ 68, 36, 20, 72, 1, 69, 8, 72, 41, 69, 0,235, 13,137,242, 72,
/* 0x0730 */ 72,137,239, 76,137,206,232,119,253,255,255,139, 84, 36, 16, 72, /* 0x0730 */ 137,239, 76,137,206,232,119,253,255,255,139, 84, 36, 16, 72,139,
/* 0x0740 */ 139, 3, 72, 1, 83, 8, 72, 41,208, 72,133,192, 72,137, 3,233, /* 0x0740 */ 3, 72, 1, 83, 8, 72, 41,208, 72,133,192, 72,137, 3,233,178,
/* 0x0750 */ 178,254,255,255, 72,131,196, 40, 91, 93, 65, 92, 65, 93,195, 65, /* 0x0750 */ 254,255,255, 72,131,196, 40, 91, 93, 65, 92, 65, 93,195, 65, 87,
/* 0x0760 */ 87, 65, 86, 65, 85, 73,137,253, 73,131,197, 32, 65, 84, 85, 83, /* 0x0760 */ 65, 86, 65, 85, 73,137,253, 73,131,197, 32, 65, 84, 85, 83, 72,
/* 0x0770 */ 72,131,236,120, 72,137, 84, 36, 72, 72,137,124, 36, 88, 49,210, /* 0x0770 */ 131,236,120, 72,137, 84, 36, 72, 72,137,124, 36, 88, 49,210,232,
/* 0x0780 */ 232, 61, 0, 0, 0,100,111, 95,120,109, 97,112, 32, 32,102,100, /* 0x0780 */ 61, 0, 0, 0,100,111, 95,120,109, 97,112, 32, 32,102,100,105,
/* 0x0790 */ 105, 61, 37,120, 32, 32,109,104,100,114, 61, 37,112, 32, 32, 42, /* 0x0790 */ 61, 37,120, 32, 32,109,104,100,114, 61, 37,112, 32, 32, 42,109,
/* 0x07a0 */ 109,104,100,114,112,112, 61, 37,112, 32, 32,120,105, 61, 37,112, /* 0x07a0 */ 104,100,114,112,112, 61, 37,112, 32, 32,120,105, 61, 37,112, 40,
/* 0x07b0 */ 40, 37,120, 32, 37,112, 41, 32,102, 95,117,110,102, 61, 37,112, /* 0x07b0 */ 37,120, 32, 37,112, 41, 32,102, 95,117,110,102, 61, 37,112, 10,
/* 0x07c0 */ 10, 0, 95, 72,131,124, 36, 72, 0, 72,139,132, 36,176, 0, 0, /* 0x07c0 */ 0, 95, 72,131,124, 36, 72, 0, 72,139,132, 36,176, 0, 0, 0,
/* 0x07d0 */ 0,137,116, 36, 84,137, 76, 36, 68, 76,137, 68, 36, 56, 76,137, /* 0x07d0 */ 137,116, 36, 84,137, 76, 36, 68, 76,137, 68, 36, 56, 76,137, 76,
/* 0x07e0 */ 76, 36, 48, 72,137, 68, 36, 40, 72,199, 68, 36, 32, 0, 0, 0, /* 0x07e0 */ 36, 48, 72,137, 68, 36, 40, 72,199, 68, 36, 32, 0, 0, 0, 0,
/* 0x07f0 */ 0, 72,199, 68, 36, 24, 0, 0, 0, 0,116, 8, 72,139, 76, 36, /* 0x07f0 */ 72,199, 68, 36, 24, 0, 0, 0, 0,116, 8, 72,139, 76, 36, 72,
/* 0x0800 */ 72, 72,139, 17, 49,201, 72,131,124, 36, 56, 0,116, 8, 72,139, /* 0x0800 */ 72,139, 17, 49,201, 72,131,124, 36, 56, 0,116, 8, 72,139, 92,
/* 0x0810 */ 92, 36, 56, 72,139, 11,255,116, 36, 40, 49,192, 72,131,124, 36, /* 0x0810 */ 36, 56, 72,139, 11,255,116, 36, 40, 49,192, 72,131,124, 36, 80,
/* 0x0820 */ 80, 0,116, 9, 72,139, 92, 36, 80, 72,139, 67, 8, 80, 73,137, /* 0x0820 */ 0,116, 9, 72,139, 92, 36, 80, 72,139, 67, 8, 80, 73,137,209,
/* 0x0830 */ 209, 76,139, 68, 36, 88, 72,139, 84, 36,104,139,116, 36, 84, 49, /* 0x0830 */ 76,139, 68, 36, 88, 72,139, 84, 36,104,139,116, 36, 84, 49,192,
/* 0x0840 */ 192,232,209,249,255,255, 65, 88, 65, 89, 49,210, 72,139, 68, 36, /* 0x0840 */ 232,210,249,255,255, 65, 88, 65, 89, 49,210, 72,139, 68, 36, 88,
/* 0x0850 */ 88,199, 68, 36, 20, 0, 0, 0, 0, 59, 80, 16, 15,131,221, 3, /* 0x0850 */ 199, 68, 36, 20, 0, 0, 0, 0, 59, 80, 16, 15,131,124, 4, 0,
/* 0x0860 */ 0, 0, 65,139, 69, 0,131,248, 25, 15,133, 52, 3, 0, 0, 73, /* 0x0860 */ 0, 65,139, 77, 4, 65,139, 85, 0, 49,192,139,116, 36, 20,232,
/* 0x0870 */ 131,125, 32, 0, 15,132, 41, 3, 0, 0, 73,131,125, 40, 0,117, /* 0x0870 */ 27, 0, 0, 0, 32, 32, 35, 37,100, 32, 32, 99,109,100, 61, 37,
/* 0x0880 */ 61, 73,131,125, 48, 0,116, 54, 72,139, 76, 36, 56, 72,139, 1, /* 0x0880 */ 120, 32, 32, 99,109,100,115,105,122,101, 61, 37,120, 10, 0, 95,
/* 0x0890 */ 72,133,192,116, 41,246, 64, 26, 32,116, 35, 73, 43, 69, 24,232, /* 0x0890 */ 232,130,249,255,255, 65,139, 69, 0,131,248, 25, 15,133,121, 3,
/* 0x08a0 */ 10, 0, 0, 0,114,101,108,111, 99, 61, 37,112, 10, 0, 95, 72, /* 0x08a0 */ 0, 0, 73,131,125, 32, 0, 15,132,110, 3, 0, 0, 73,131,125,
/* 0x08b0 */ 137, 68, 36, 24, 72,137,198, 49,192,232, 89,249,255,255, 73,139, /* 0x08b0 */ 40, 0,117, 61, 73,131,125, 48, 0,116, 54, 72,139, 76, 36, 56,
/* 0x08c0 */ 85, 48, 72,139,124, 36, 24, 72,137, 84, 36, 96, 73, 3,125, 24, /* 0x08c0 */ 72,139, 1, 72,133,192,116, 41,246, 64, 26, 32,116, 35, 73, 43,
/* 0x08d0 */ 73,137,215, 73,139, 93, 32, 72, 1,251, 72,137,253, 72,137,124, /* 0x08d0 */ 69, 24,232, 10, 0, 0, 0,114,101,108,111, 99, 61, 37,112, 10,
/* 0x08e0 */ 36,104, 72,137, 92, 36, 8, 72,137,251,129,227,255, 15, 0, 0, /* 0x08e0 */ 0, 95, 72,137, 68, 36, 24, 72,137,198, 49,192,232, 38,249,255,
/* 0x08f0 */ 72, 41,221, 73, 1,223, 15,132, 30, 1, 0, 0, 72,131,124, 36, /* 0x08f0 */ 255, 73,139, 85, 48, 72,139,124, 36, 24, 72,137, 84, 36, 96, 73,
/* 0x0900 */ 72, 0, 73,141, 71, 3, 72,139, 76, 36, 56, 73, 15, 68,199, 72, /* 0x0900 */ 3,125, 24, 73,137,214, 73,139, 93, 32, 72, 1,251, 72,137,253,
/* 0x0910 */ 137, 4, 36, 72,139, 1, 72,131,248, 1, 25,192,131,224,240, 72, /* 0x0910 */ 72,137,124, 36,104, 72,137, 92, 36, 8, 72,137,251,129,227,255,
/* 0x0920 */ 131,124, 36, 72, 0, 68,141,112, 18,117, 5, 72,133,210,117, 4, /* 0x0920 */ 15, 0, 0, 72, 41,221, 73, 1,222, 15,132, 33, 1, 0, 0, 72,
/* 0x0930 */ 65,131,206, 32,131,203,255, 73,131,125, 48, 0, 68,139,100, 36, /* 0x0930 */ 131,124, 36, 72, 0, 73,141, 70, 3, 72,139, 76, 36, 56, 73, 15,
/* 0x0940 */ 84, 15, 69, 92, 36, 68, 69, 3,101, 40, 69,137,240,255,116, 36, /* 0x0940 */ 68,198, 72,137, 4, 36, 72,139, 1, 72,131,248, 1, 25,192,131,
/* 0x0950 */ 24,185, 3, 0, 0, 0, 72,137,238, 49,192,232, 67, 0, 0, 0, /* 0x0950 */ 224,240, 72,131,124, 36, 72, 0, 68,141,120, 18,117, 5, 72,133,
/* 0x0960 */ 109,109, 97,112, 32, 32, 97,100,100,114, 61, 37,112, 32, 32,108, /* 0x0960 */ 210,117, 7, 65,129,207, 0, 16, 0, 0,131,203,255, 73,131,125,
/* 0x0970 */ 101,110, 61, 37,112, 32, 32,112,114,111,116, 61, 37,120, 32, 32, /* 0x0970 */ 48, 0, 68,139,100, 36, 84, 15, 69, 92, 36, 68, 69, 3,101, 40,
/* 0x0980 */ 102,108, 97,103,115, 61, 37,120, 32, 32,102,100, 61, 37,100, 32, /* 0x0980 */ 69,137,248,255,116, 36, 24,185, 3, 0, 0, 0, 72,137,238, 49,
/* 0x0990 */ 32,111,102,102, 61, 37,112, 32, 32,114,101,108,111, 99, 61, 37, /* 0x0990 */ 192,232, 67, 0, 0, 0,109,109, 97,112, 32, 32, 97,100,100,114,
/* 0x09a0 */ 112, 10, 0, 95, 65, 84, 72,139, 84, 36, 16, 65,137,217,232,100, /* 0x09a0 */ 61, 37,112, 32, 32,108,101,110, 61, 37,112, 32, 32,112,114,111,
/* 0x09b0 */ 248,255,255, 94, 95, 65,137,216, 69,137,225, 68,137,241,186, 3, /* 0x09b0 */ 116, 61, 37,120, 32, 32,102,108, 97,103,115, 61, 37,120, 32, 32,
/* 0x09c0 */ 0, 0, 0, 72,137,239, 72,139, 52, 36,232,249,246,255,255, 72, /* 0x09c0 */ 102,100, 61, 37,100, 32, 32,111,102,102, 61, 37,112, 32, 32,114,
/* 0x09d0 */ 139, 92, 36, 56, 72,137,198, 72,131, 59, 0,117, 11, 72,137, 3, /* 0x09d0 */ 101,108,111, 99, 61, 37,112, 10, 0, 95, 65, 84, 72,139, 84, 36,
/* 0x09e0 */ 72,137, 68, 36, 24, 72,137,197, 72, 57,245,116, 45, 72,137,234, /* 0x09e0 */ 16, 65,137,217,232, 46,248,255,255, 94, 95, 65,137,216, 69,137,
/* 0x09f0 */ 49,192,232, 19, 0, 0, 0,109, 97,100,100,114, 61, 37,112, 32, /* 0x09f0 */ 225, 68,137,249,186, 3, 0, 0, 0, 72,137,239, 72,139, 52, 36,
/* 0x0a00 */ 32, 97,100,100,114, 61, 37,112, 10, 0, 95,232, 7,248,255,255, /* 0x0a00 */ 232,195,246,255,255, 72,139, 92, 36, 56, 72,137,198, 72,131, 59,
/* 0x0a10 */ 191, 8, 0, 0, 0,232, 83,251,255,255, 72,131,124, 36, 72, 0, /* 0x0a10 */ 0,117, 11, 72,137, 3, 72,137, 68, 36, 24, 72,137,197, 72, 57,
/* 0x0a20 */ 116, 47, 73,131,125, 48, 0,116, 40, 73,131,125, 40, 0,117, 8, /* 0x0a20 */ 245,116, 45, 72,137,234, 49,192,232, 19, 0, 0, 0,109, 97,100,
/* 0x0a30 */ 72,139, 68, 36, 56, 72,137, 40, 72,139, 76, 36, 40, 72,139, 84, /* 0x0a30 */ 100,114, 61, 37,112, 32, 32, 97,100,100,114, 61, 37,112, 10, 0,
/* 0x0a40 */ 36, 48, 72,141,116, 36, 96, 72,139,124, 36, 72,232, 66,251,255, /* 0x0a40 */ 95,232,209,247,255,255,191, 8, 0, 0, 0,232, 28,251,255,255,
/* 0x0a50 */ 255, 72,131,124, 36, 72, 0, 15,149,194, 49,192, 77,133,255, 15, /* 0x0a50 */ 72,131,124, 36, 72, 0,116, 47, 73,131,125, 48, 0,116, 40, 73,
/* 0x0a60 */ 149,192,133,194,116,120, 73,131,125, 40, 0,117,113, 65,131,125, /* 0x0a60 */ 131,125, 40, 0,117, 8, 72,139, 68, 36, 56, 72,137, 40, 72,139,
/* 0x0a70 */ 64, 0,116,106, 76,137,233, 72, 43, 76, 36, 88, 73,137,232,232, /* 0x0a70 */ 76, 36, 40, 72,139, 84, 36, 48, 72,141,116, 36, 96, 72,139,124,
/* 0x0a80 */ 37, 0, 0, 0,104, 97,116, 99,104, 61, 37,112, 32, 32,115,101, /* 0x0a80 */ 36, 72,232, 11,251,255,255, 73,139, 77, 40, 69,139, 69, 64, 76,
/* 0x0a90 */ 99,112, 61, 37,112, 32, 32,115,101,103,112, 61, 37,112, 32, 32, /* 0x0a90 */ 137,242, 72,139,116, 36, 72, 49,192,232, 39, 0, 0, 0,120,105,
/* 0x0aa0 */ 109,104,100,114, 61, 37,112, 10, 0, 95, 72,131,225,252, 72,141, /* 0x0aa0 */ 61, 37,112, 32, 32,109,108,101,110, 61, 37,112, 32, 32,102,105,
/* 0x0ab0 */ 76, 13, 0, 72,141, 81, 72,139, 66, 48,193,232, 2,137,192, 72, /* 0x0ab0 */ 108,101,111,102,102, 61, 37,112, 32, 32,110,115,101, 99,116,115,
/* 0x0ac0 */ 141, 68,133, 0, 72,141, 88,252,199, 64,252,144, 15, 5,195, 49, /* 0x0ac0 */ 61, 37,100, 10, 0, 95,232, 76,247,255,255, 72,131,124, 36, 72,
/* 0x0ad0 */ 192, 72,137,222,232, 62,247,255,255, 72,137, 92, 36, 32, 76,137, /* 0x0ad0 */ 0, 15,149,194, 49,192, 77,133,246, 15,149,192,133,194,116,115,
/* 0x0ae0 */ 251, 74,141, 84, 61, 0, 72,247,219,129,227,255, 15, 0, 0, 72, /* 0x0ae0 */ 73,131,125, 40, 0,117,108, 65,131,125, 64, 0,116,101, 76,137,
/* 0x0af0 */ 137,216, 72,133,219,116, 11,198, 2, 0, 72,255,194, 72,255,200, /* 0x0af0 */ 233, 72, 43, 76, 36, 88, 73,137,232,232, 37, 0, 0, 0,104, 97,
/* 0x0b00 */ 235,243, 77,133,255,116, 29, 65,139, 85, 60, 76,137,254, 72,137, /* 0x0b00 */ 116, 99,104, 61, 37,112, 32, 32,115,101, 99,112, 61, 37,112, 32,
/* 0x0b10 */ 239,232,158,245,255,255,133,192,116, 10,191, 10, 0, 0, 0,232, /* 0x0b10 */ 32,115,101,103,112, 61, 37,112, 32, 32,109,104,100,114, 61, 37,
/* 0x0b20 */ 73,250,255,255, 73,141, 4, 31, 72, 1,197, 72, 59,108, 36, 8, /* 0x0b20 */ 112, 10, 0, 95, 72,131,225,252, 72,141, 76, 13, 0, 72,141, 81,
/* 0x0b30 */ 115, 67, 72,133,237, 15,132,225, 0, 0, 0, 72, 41,108, 36, 8, /* 0x0b30 */ 72,139, 66, 48,193,232, 2,255,200, 72,141, 92,133, 0, 49,192,
/* 0x0b40 */ 65,139, 85, 60, 69, 49,201, 72,139,116, 36, 8, 65,131,200,255, /* 0x0b40 */ 199, 3,144, 15, 5,195, 72,137,222,232,201,246,255,255, 72,137,
/* 0x0b50 */ 185, 50, 0, 0, 0, 72,137,239,232,107,245,255,255, 72, 57,197, /* 0x0b50 */ 92, 36, 32, 76,137,243, 74,141, 84, 53, 0, 72,247,219,129,227,
/* 0x0b60 */ 15,132,182, 0, 0, 0,191, 9, 0, 0, 0,232,253,249,255,255, /* 0x0b60 */ 255, 15, 0, 0, 72,137,216, 72,133,219,116, 11,198, 2, 0, 72,
/* 0x0b70 */ 233,167, 0, 0, 0, 72,131,124, 36, 72, 0, 15,132,155, 0, 0, /* 0x0b70 */ 255,194, 72,255,200,235,243, 77,133,246,116, 29, 65,139, 85, 60,
/* 0x0b80 */ 0, 73,131,199, 3, 65,129,231,255, 15, 0, 0, 73,131,255, 3, /* 0x0b80 */ 76,137,246, 72,137,239,232, 41,245,255,255,133,192,116, 10,191,
/* 0x0b90 */ 15,135,134, 0, 0, 0, 76,137,254, 72,137,239,232, 23,245,255, /* 0x0b90 */ 10, 0, 0, 0,232,211,249,255,255, 73,141, 4, 30, 72, 1,197,
/* 0x0ba0 */ 255,235,121,131,232, 4,131,248, 1,119,113, 49,192, 76,137,238, /* 0x0ba0 */ 72, 59,108, 36, 8,115, 67, 72,133,237, 15,132, 10, 1, 0, 0,
/* 0x0bb0 */ 232, 20, 0, 0, 0,116,104,114,101, 97,100, 95, 99,111,109,109, /* 0x0bb0 */ 72, 41,108, 36, 8, 65,139, 85, 60, 69, 49,201, 72,139,116, 36,
/* 0x0bc0 */ 97,110,100, 61, 32, 37,112, 10, 0, 95,232, 72,246,255,255, 65, /* 0x0bc0 */ 8, 65,131,200,255,185, 18, 16, 0, 0, 72,137,239,232,246,244,
/* 0x0bd0 */ 131,125, 8, 4,117, 70, 73,141, 93, 16, 72,139, 84, 36, 24, 49, /* 0x0bd0 */ 255,255, 72, 57,197, 15,132,223, 0, 0, 0,191, 9, 0, 0, 0,
/* 0x0be0 */ 192,232, 28, 0, 0, 0,116,104,114,101, 97,100, 95,115,116, 97, /* 0x0be0 */ 232,135,249,255,255,233,208, 0, 0, 0, 72,131,124, 36, 72, 0,
/* 0x0bf0 */ 116,101, 61, 32, 37,112, 32, 32,114,101,108,111, 99, 61, 37,112, /* 0x0bf0 */ 15,132,196, 0, 0, 0, 73,131,198, 3, 65,129,230,255, 15, 0,
/* 0x0c00 */ 10, 0, 95, 72,137,222,232, 12,246,255,255, 72,139, 84, 36, 24, /* 0x0c00 */ 0, 73,131,254, 3, 15,135,175, 0, 0, 0, 76,137,246, 72,137,
/* 0x0c10 */ 73, 1,149,144, 0, 0, 0, 72,137, 92, 36, 32, 65,139, 69, 4, /* 0x0c10 */ 239,232,162,244,255,255,233,159, 0, 0, 0, 72,131,124, 36, 72,
/* 0x0c20 */ 72,139, 76, 36, 88,255, 68, 36, 20,139, 92, 36, 20,193,232, 2, /* 0x0c20 */ 0, 15,133,147, 0, 0, 0,131,232, 4,131,248, 1, 15,135,135,
/* 0x0c30 */ 59, 89, 16,137,192, 77,141,108,133, 0,233, 29,252,255,255, 72, /* 0x0c30 */ 0, 0, 0, 76,137,238, 49,192, 73,141, 93, 16,232, 20, 0, 0,
/* 0x0c40 */ 139,116, 36, 32, 49,192,232, 13, 0, 0, 0,100,111, 95,120,109, /* 0x0c40 */ 0,116,104,114,101, 97,100, 95, 99,111,109,109, 97,110,100, 61,
/* 0x0c50 */ 97,112, 61, 32, 37,112, 10, 0, 95,232,185,245,255,255, 72,139, /* 0x0c50 */ 32, 37,112, 10, 0, 95,232,188,245,255,255, 65,139, 85, 8, 65,
/* 0x0c60 */ 68, 36, 32, 72,131,196,120, 91, 93, 65, 92, 65, 93, 65, 94, 65, /* 0x0c60 */ 139, 77, 12, 72,137,222, 76,139, 68, 36, 24, 49,192,232, 49, 0,
/* 0x0c70 */ 95,195, 65, 87, 77,137,207, 65, 86, 65, 85, 77,137,197, 65, 84, /* 0x0c70 */ 0, 0,116,104,114,101, 97,100, 95,115,116, 97,116,101, 61, 32,
/* 0x0c80 */ 85, 72,137,213, 72,141, 87, 24, 83, 72,131,236,104, 68,139, 79, /* 0x0c80 */ 37,112, 32, 32,102,108, 97,118,111,114, 61, 37,100, 32, 32, 99,
/* 0x0c90 */ 24, 72,137,116, 36, 88, 72,139, 68, 36, 88, 76,141,116, 36, 48, /* 0x0c90 */ 111,117,110,116, 61, 37,120, 32, 32,114,101,108,111, 99, 61, 37,
/* 0x0ca0 */ 76,139,164, 36,160, 0, 0, 0, 72,137, 76, 36, 16, 76,137,249, /* 0x0ca0 */ 112, 10, 0, 95,232,110,245,255,255, 72,139, 84, 36, 24, 73, 1,
/* 0x0cb0 */ 72,137, 84, 36, 72, 72,137, 84, 36, 40, 77,137,240, 72,131,232, /* 0x0cb0 */ 149,144, 0, 0, 0, 72,137, 92, 36, 32, 65,139, 69, 4, 72,139,
/* 0x0cc0 */ 24, 76,137, 76, 36, 48, 72,139,116, 36, 88, 72,137, 68, 36, 64, /* 0x0cc0 */ 76, 36, 88,255, 68, 36, 20,139, 92, 36, 20,193,232, 2, 59, 89,
/* 0x0cd0 */ 72,137, 68, 36, 32, 72,199, 68, 36, 8, 0, 0, 0, 0,199, 68, /* 0x0cd0 */ 16,137,192, 77,141,108,133, 0,233,126,251,255,255, 72,139,116,
/* 0x0ce0 */ 36, 4, 0, 0, 0, 0, 72,137,108, 36, 56, 65,255, 52, 36,232, /* 0x0ce0 */ 36, 32, 49,192,232, 13, 0, 0, 0,100,111, 95,120,109, 97,112,
/* 0x0cf0 */ 88, 0, 0, 0,117,112,120, 95,109, 97,105,110, 32,115,122, 99, /* 0x0cf0 */ 61, 32, 37,112, 10, 0, 95,232, 27,245,255,255, 72,139, 68, 36,
/* 0x0d00 */ 61, 37,120, 32, 32,102, 95,100,101, 99, 61, 37,112, 32, 32,102, /* 0x0d00 */ 32, 72,131,196,120, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195,
/* 0x0d10 */ 95,117,110,102, 61, 37,112, 32, 32, 32, 32,120,111, 61, 37,112, /* 0x0d10 */ 65, 87, 77,137,207, 65, 86, 65, 85, 77,137,197, 65, 84, 85, 72,
/* 0x0d20 */ 40, 37,120, 32, 37,112, 41, 32, 32,120,105, 61, 37,112, 40, 37, /* 0x0d20 */ 137,213, 72,141, 87, 24, 83, 72,131,236,104, 68,139, 79, 24, 72,
/* 0x0d30 */ 120, 32, 37,112, 41, 32, 32,109,104,100,114,112,112, 61, 37,112, /* 0x0d30 */ 137,116, 36, 88, 72,139, 68, 36, 88, 76,141,116, 36, 48, 76,139,
/* 0x0d40 */ 32, 32,109,104,100,114,112, 61, 37,112, 10, 0, 95, 65, 84, 82, /* 0x0d40 */ 164, 36,160, 0, 0, 0, 72,137, 76, 36, 16, 76,137,249, 72,137,
/* 0x0d50 */ 76,137,234, 80, 49,192, 72,141, 92, 36, 96, 83, 85,232,181,244, /* 0x0d50 */ 84, 36, 72, 72,137, 84, 36, 40, 77,137,240, 72,131,232, 24, 76,
/* 0x0d60 */ 255,255, 72,131,196, 48, 76,137,234, 76,137,246, 49,201, 72,137, /* 0x0d60 */ 137, 76, 36, 48, 72,139,116, 36, 88, 72,137, 68, 36, 64, 72,137,
/* 0x0d70 */ 223,232, 29,248,255,255, 80, 77,137,233, 77,137,224,131,201,255, /* 0x0d70 */ 68, 36, 32, 72,199, 68, 36, 8, 0, 0, 0, 0,199, 68, 36, 4,
/* 0x0d80 */ 49,246, 72,137,239, 72,141, 84, 36, 40, 65, 87,232,206,249,255, /* 0x0d80 */ 0, 0, 0, 0, 72,137,108, 36, 56, 65,255, 52, 36,232, 88, 0,
/* 0x0d90 */ 255, 65, 92, 65, 94,139,117, 16, 72,141, 85, 32, 73,137,197, 49, /* 0x0d90 */ 0, 0,117,112,120, 95,109, 97,105,110, 32,115,122, 99, 61, 37,
/* 0x0da0 */ 201, 57,241, 15,131, 40, 1, 0, 0,131, 58, 14, 15,133, 18, 1, /* 0x0da0 */ 120, 32, 32,102, 95,101,120,112, 61, 37,112, 32, 32,102, 95,117,
/* 0x0db0 */ 0, 0,139, 66, 8,232, 10, 0, 0, 0,100,121,108,100, 61, 32, /* 0x0db0 */ 110,102, 61, 37,112, 32, 32, 32, 32,120,111, 61, 37,112, 40, 37,
/* 0x0dc0 */ 37,115, 10, 0, 95, 72,141, 28, 2, 49,192, 72,137,222,232, 68, /* 0x0dc0 */ 120, 32, 37,112, 41, 32, 32,120,105, 61, 37,112, 40, 37,120, 32,
/* 0x0dd0 */ 244,255,255, 49,210, 49,246, 49,192, 72,137,223,232,227,242,255, /* 0x0dd0 */ 37,112, 41, 32, 32,109,104,100,114,112,112, 61, 37,112, 32, 32,
/* 0x0de0 */ 255,133,192, 65,137,196,121, 10,191, 18, 0, 0, 0,232,123,247, /* 0x0de0 */ 109,104,100,114,112, 61, 37,112, 10, 0, 95, 65, 84, 82, 76,137,
/* 0x0df0 */ 255,255,139, 76, 36, 4, 72,139, 84, 36, 16, 72,137,238, 68,137, /* 0x0df0 */ 234, 80, 49,192, 72,141, 92, 36, 96, 83, 85,232, 23,244,255,255,
/* 0x0e00 */ 231,232,182,242,255,255, 72, 57, 68, 36, 16,116, 10,191, 19, 0, /* 0x0e00 */ 72,131,196, 48, 76,137,234, 76,137,246, 49,201, 72,137,223,232,
/* 0x0e10 */ 0, 0,232, 86,247,255,255,139, 69, 0, 61,202,254,186,190,116, /* 0x0e10 */ 126,247,255,255, 80, 77,137,233, 77,137,224,131,201,255, 49,246,
/* 0x0e20 */ 7, 61,190,186,254,202,117, 49, 72, 15,182,117, 7, 72,137,239, /* 0x0e20 */ 72,137,239, 72,141, 84, 36, 40, 65, 87,232, 47,249,255,255, 65,
/* 0x0e30 */ 72,141, 93, 8, 72,107,246, 20,131,198, 8,232, 92,242,255,255, /* 0x0e30 */ 92, 65, 94,139,117, 16, 72,141, 85, 32, 73,137,197, 49,201, 57,
/* 0x0e40 */ 139, 69, 4, 49,201, 57,193,115, 16,129, 59, 7, 0, 0, 1,116, /* 0x0e40 */ 241, 15,131, 46, 1, 0, 0,131, 58, 14, 15,133, 24, 1, 0, 0,
/* 0x0e50 */ 103,255,193, 72,131,195, 20,235,236, 72,199, 68, 36, 24, 0, 0, /* 0x0e50 */ 139, 66, 8,232, 10, 0, 0, 0,100,121,108,100, 61, 32, 37,115,
/* 0x0e60 */ 0, 0, 83, 69, 49,201, 68,137,225, 49,210,106, 0,139,116, 36, /* 0x0e60 */ 10, 0, 95, 72,141, 28, 2, 49,192, 72,137,222,232,166,243,255,
/* 0x0e70 */ 20, 72,137,239, 76,141, 68, 36, 40,232,225,248,255,255, 72,137, /* 0x0e70 */ 255, 49,210, 49,246, 49,192, 72,137,223,232, 69,242,255,255,133,
/* 0x0e80 */ 68, 36, 24, 72,137,198, 49,192, 65, 90, 65, 91,232, 15, 0, 0, /* 0x0e80 */ 192, 65,137,196,121, 10,191, 18, 0, 0, 0,232,220,246,255,255,
/* 0x0e90 */ 0,104, 97,116, 99,104, 32,112,116,114, 61, 32, 37,112, 10, 0, /* 0x0e90 */ 139, 76, 36, 4, 72,139, 84, 36, 16, 72,137,238, 68,137,231,232,
/* 0x0ea0 */ 95,232,113,243,255,255, 72,139, 68, 36, 8, 68,137,231, 76,137, /* 0x0ea0 */ 24,242,255,255, 72, 57, 68, 36, 16,116, 10,191, 19, 0, 0, 0,
/* 0x0eb0 */ 40,232, 10,242,255,255,235, 25,139, 91, 8,137, 92, 36, 4,233, /* 0x0eb0 */ 232,183,246,255,255,139, 69, 0, 61,202,254,186,190,116, 7, 61,
/* 0x0ec0 */ 46,255,255,255,139, 66, 4,255,193, 72, 1,194,233,208,254,255, /* 0x0ec0 */ 190,186,254,202,117, 49, 72, 15,182,117, 7, 72,137,239, 72,141,
/* 0x0ed0 */ 255, 72,139, 68, 36, 8, 72,131,196,104, 91, 93, 65, 92, 65, 93, /* 0x0ed0 */ 93, 8, 72,107,246, 20,131,198, 8,232,190,241,255,255,139, 69,
/* 0x0ee0 */ 65, 94, 65, 95,195 /* 0x0ee0 */ 4, 49,201, 57,193,115, 16,129, 59, 7, 0, 0, 1,116,109,255,
/* 0x0ef0 */ 193, 72,131,195, 20,235,236, 72,199, 68, 36, 24, 0, 0, 0, 0,
/* 0x0f00 */ 83, 69, 49,201, 68,137,225, 49,210,106, 0,139,116, 36, 20, 72,
/* 0x0f10 */ 137,239, 76,141, 68, 36, 40,232, 66,248,255,255, 72,137, 68, 36,
/* 0x0f20 */ 24, 72,137,198, 76,137,234, 65, 90, 65, 91, 49,192,232, 18, 0,
/* 0x0f30 */ 0, 0,116,115, 61, 32, 37,112, 32, 32,104, 97,116, 99,104, 61,
/* 0x0f40 */ 37,112, 10, 0, 95,232,205,242,255,255, 72,139, 68, 36, 8, 68,
/* 0x0f50 */ 137,231, 76,137, 40,232,102,241,255,255,235, 25,139, 91, 8,137,
/* 0x0f60 */ 92, 36, 4,233, 40,255,255,255,139, 66, 4,255,193, 72, 1,194,
/* 0x0f70 */ 233,202,254,255,255, 72,139, 68, 36, 8, 72,131,196,104, 91, 93,
/* 0x0f80 */ 65, 92, 65, 93, 65, 94, 65, 95,195
}; };
+5 -5
View File
@@ -32,8 +32,8 @@
#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_SIZE 14633 #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_ADLER32 0x983a1b77
#define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_CRC32 0xa5d52727 #define STUB_ARM_V5A_DARWIN_MACHO_ENTRY_CRC32 0x415fd26a
unsigned char stub_arm_v5a_darwin_macho_entry[14633] = { 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, /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -332,10 +332,10 @@ unsigned char stub_arm_v5a_darwin_macho_entry[14633] = {
/* 0x1250 */ 3, 32,160,227, 8, 16, 71,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, /* 0x1260 */ 0, 0, 0,239, 12,112,160,225, 8, 32,157,229, 16, 48,157,229,
/* 0x1270 */ 0, 32,130,224, 3,128, 64,224, 8, 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, /* 0x1280 */ 35, 6,160,225, 0, 6,160,225, 4, 0, 45,229, 0, 32, 66,224,
/* 0x1290 */ 4, 32, 45,229, 0,192,151,229, 4,192, 45,229, 13, 48,160,225, /* 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, /* 0x12a0 */ 8, 32,135,224, 2,128,160,225, 8, 64,151,229, 4, 16,151,229,
/* 0x12b0 */ 12, 0,135,226, 12, 16,160,225, 57,255, 47,225, 4,208,141,226, /* 0x12b0 */ 12, 0,135,226, 4, 64, 45,229, 57,255, 47,225, 8,208,141,226,
/* 0x12c0 */ 4, 16,157,228, 4, 0,157,228, 4,144,157,228, 5, 32,160,227, /* 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, /* 0x12d0 */ 7,192,160,225,125,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x12e0 */ 24,255, 47,225,101,120,101, 99,117,116, 97, 98,108,101, 95,112, /* 0x12e0 */ 24,255, 47,225,101,120,101, 99,117,116, 97, 98,108,101, 95,112,
+277 -114
View File
@@ -1,5 +1,5 @@
/* arm.v5a-darwin.macho-fold.h /* arm.v5a-darwin.macho-fold.h
created from arm.v5a-darwin.macho-fold.bin, 1756 (0x6dc) bytes created from arm.v5a-darwin.macho-fold.bin, 4360 (0x1108) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,119 +31,282 @@
*/ */
#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_SIZE 1756 #define STUB_ARM_V5A_DARWIN_MACHO_FOLD_SIZE 4360
#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_ADLER32 0xa470fe2d #define STUB_ARM_V5A_DARWIN_MACHO_FOLD_ADLER32 0x79ebf58e
#define STUB_ARM_V5A_DARWIN_MACHO_FOLD_CRC32 0x55f53e51 #define STUB_ARM_V5A_DARWIN_MACHO_FOLD_CRC32 0x61ea297c
unsigned char stub_arm_v5a_darwin_macho_fold[1756] = { unsigned char stub_arm_v5a_darwin_macho_fold[4360] = {
/* 0x0000 */ 24, 48,144,229, 2,202,160,227, 12, 0, 83,225, 12, 48,160, 49, /* 0x0000 */ 24, 48,154,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, /* 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, /* 0x0020 */ 10, 0,160,225, 16, 96,136,226, 56, 80,143,226, 9, 64,160,225,
/* 0x0030 */ 112, 0, 45,233, 66, 1, 0,235, 56,160,144,229, 0,144,144,229, /* 0x0030 */ 112, 0, 45,233,112, 0, 32,225,136, 3, 0,235, 56,160,144,229,
/* 0x0040 */ 8,208,160,225, 0, 0,157,229, 44, 0, 0,235, 4, 0,157,229, /* 0x0040 */ 0,144,144,229, 8,208,160,225, 0, 0,157,229, 44, 0, 0,235,
/* 0x0050 */ 8, 16,157,229, 91,112,160,227, 10,224,160,225, 16,208,141,226, /* 0x0050 */ 4, 0,157,229, 8, 16,157,229, 91,112,160,227, 10,224,160,225,
/* 0x0060 */ 25,255, 47,225,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, /* 0x0060 */ 16,208,141,226, 25,255, 47,225,255, 48, 3,226, 80, 0, 83,227,
/* 0x0070 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, /* 0x0070 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1,
/* 0x0080 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26, /* 0x0080 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227,
/* 0x0090 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, /* 0x0090 */ 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227,
/* 0x00a0 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225, /* 0x00a0 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,243,255,255, 26,
/* 0x00b0 */ 30,255, 47,225, 7,192,160,225, 1,112,160,227, 0, 0, 0,239, /* 0x00b0 */ 14,240,160,225, 30,255, 47,225, 7,192,160,225, 1,112,160,227,
/* 0x00c0 */ 12,112,160,225, 7,192,160,225, 3,112,160,227, 0, 0, 0,239, /* 0x00c0 */ 0, 0, 0,239, 12,112,160,225, 7,192,160,225, 3,112,160,227,
/* 0x00d0 */ 12,112,160,225, 30,255, 47,225, 7,192,160,225, 4,112,160,227, /* 0x00d0 */ 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, 7,192,160,225,
/* 0x00e0 */ 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, 7,192,160,225, /* 0x00e0 */ 4,112,160,227, 0, 0, 0,239, 12,112,160,225, 30,255, 47,225,
/* 0x00f0 */ 5,112,160,227, 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, /* 0x00f0 */ 7,192,160,225, 5,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0100 */ 7,192,160,225, 6,112,160,227, 0, 0, 0,239, 12,112,160,225, /* 0x0100 */ 30,255, 47,225, 7,192,160,225, 6,112,160,227, 0, 0, 0,239,
/* 0x0110 */ 30,255, 47,225, 7,192,160,225, 45,112,160,227, 0, 0, 0,239, /* 0x0110 */ 12,112,160,225, 30,255, 47,225, 7,192,160,225, 45,112,160,227,
/* 0x0120 */ 12,112,160,225, 30,255, 47,225, 7,192,160,225, 91,112,160,227, /* 0x0120 */ 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, 7,192,160,225,
/* 0x0130 */ 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, 7,192,160,225, /* 0x0130 */ 91,112,160,227, 0, 0, 0,239, 12,112,160,225, 30,255, 47,225,
/* 0x0140 */ 125,112,160,227, 0, 0, 0,239, 12,112,160,225, 30,255, 47,225, /* 0x0140 */ 7,192,160,225,125,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0150 */ 48, 0, 45,233, 12, 80,157,229, 8, 64,157,229, 5,202,176,225, /* 0x0150 */ 30,255, 47,225, 48, 0, 45,233, 12, 80,157,229, 8, 64,157,229,
/* 0x0160 */ 6, 0, 0, 26, 37, 86,160,225, 7,192,160,225,192,112,160,227, /* 0x0160 */ 5,202,176,225, 6, 0, 0, 26, 37, 86,160,225, 7,192,160,225,
/* 0x0170 */ 0, 0, 0,239, 12,112,160,225, 48, 0,189,232, 30,255, 47,225, /* 0x0170 */ 192,112,160,227, 0, 0, 0,239, 12,112,160,225, 48, 0,189,232,
/* 0x0180 */ 21, 0,224,227,251,255,255,234, 48, 0, 45,233, 3, 64,160,225, /* 0x0180 */ 30,255, 47,225, 21, 0,224,227,251,255,255,234, 48, 0, 45,233,
/* 0x0190 */ 0, 80,160,227, 7,192,160,225,180,112,160,227, 0, 0, 0,239, /* 0x0190 */ 3, 64,160,225, 0, 80,160,227, 7,192,160,225,180,112,160,227,
/* 0x01a0 */ 12,112,160,225, 48, 0,189,232, 30,255, 47,225,255,192,160,227, /* 0x01a0 */ 0, 0, 0,239, 12,112,160,225, 48, 0,189,232, 30,255, 47,225,
/* 0x01b0 */ 255,200,140,227, 4, 0, 0,234, 0, 32,144,229, 2, 48, 12,224, /* 0x01b0 */ 255,192,160,227,255,200,140,227, 4, 0, 0,234, 0, 32,144,229,
/* 0x01c0 */ 98, 44, 12,224, 99, 36,130,225, 4, 32,128,228, 4, 16, 81,226, /* 0x01c0 */ 2, 48, 12,224, 98, 44, 12,224, 99, 36,130,225, 4, 32,128,228,
/* 0x01d0 */ 248,255,255,170, 30,255, 47,225, 0, 48,144,229, 2, 0, 83,225, /* 0x01d0 */ 4, 16, 81,226,248,255,255,170, 30,255, 47,225,112, 0, 32,225,
/* 0x01e0 */ 16, 64, 45,233, 0,192,160, 35, 2,224,160,225, 1, 64,160,225, /* 0x01e0 */ 10, 0, 81,227,252,255,255, 26, 0,192,160,225, 1, 16, 65,224,
/* 0x01f0 */ 2, 32,160, 33, 4, 16,144,229, 4, 0, 0, 42,127, 0,160,227, /* 0x01f0 */ 0, 32,160,225,128, 1,144,224,129, 17,161,224,162, 30,129,224,
/* 0x0200 */ 171,255,255,235, 1, 48,220,231, 4, 48,204,231, 1,192,140,226, /* 0x0200 */ 0, 32,160,225, 0, 2,144,224, 1, 18,161,224, 34, 30,129,224,
/* 0x0210 */ 1, 32, 82,226,250,255,255, 42, 4, 32,144,229, 0, 48,144,229, /* 0x0210 */ 0, 32,160,225, 0, 4,144,224, 1, 20,161,224, 34, 28,129,224,
/* 0x0220 */ 14, 32,130,224, 3, 48,110,224, 0, 48,128,229, 4, 32,128,229, /* 0x0220 */ 0, 32,160,225, 0, 8,144,224, 1, 24,161,224, 34, 24,129,224,
/* 0x0230 */ 16,128,189,232,240, 64, 45,233, 0, 80,160,225, 20,208, 77,226, /* 0x0230 */ 140, 15, 80,224,172, 16,193,224, 12, 0,144,224, 0, 0,161,226,
/* 0x0240 */ 1, 64,160,225, 2,112,160,225, 3, 96,160,225, 61, 0, 0,234, /* 0x0240 */ 30,255, 47,225,240, 69, 45,233, 0, 96,160,225, 1,160,160,225,
/* 0x0250 */ 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,221,255,255,235, /* 0x0250 */ 2, 64,160,225, 10, 80,160,227, 1, 0, 0,234, 10, 48,160,227,
/* 0x0260 */ 4,224,157,229, 0, 0, 94,227, 8, 16,157,229, 6, 0, 0, 26, /* 0x0260 */ 147, 5, 5,224, 5, 16,160,225, 6, 0,160,225,219,255,255,235,
/* 0x0270 */ 228, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26, 0, 48,149,229, /* 0x0270 */ 9, 0, 80,227,248,255,255,138, 4,112,138,224, 10, 0, 0,234,
/* 0x0280 */ 0, 0, 83,227, 2, 0, 0, 26, 49, 0, 0,234, 0, 0, 81,227, /* 0x0280 */ 214,255,255,235,144, 5, 3,224, 0, 64,160,225, 10, 16,160,227,
/* 0x0290 */ 1, 0, 0, 26,127, 0,160,227,133,255,255,235, 14, 0, 81,225, /* 0x0290 */ 5, 0,160,225, 6, 96, 99,224,208,255,255,235, 48, 64,132,226,
/* 0x02a0 */ 251,255,255,138, 0, 48,148,229, 3, 0, 94,225,248,255,255,138, /* 0x02a0 */ 1, 64, 71,229, 0, 80,160,225, 8, 64,160,225, 9, 0, 86,227,
/* 0x02b0 */ 14, 0, 81,225, 26, 0, 0, 42, 12,192,221,229, 4, 0,149,229, /* 0x02b0 */ 5, 16,160,225, 6, 0,160,225, 1,112,135,226, 1,128,132,226,
/* 0x02c0 */ 4, 32,148,229, 16, 48,141,226, 16,224,141,229, 0,192,141,229, /* 0x02c0 */ 238,255,255,138, 48, 48,134,226, 8, 0,160,225, 4, 48,202,231,
/* 0x02d0 */ 15,224,160,225, 7,240,160,225, 0, 0, 80,227,236,255,255, 26, /* 0x02d0 */ 240,133,189,232,112, 64, 45,233, 7, 48,160,227, 1, 96,160,225,
/* 0x02e0 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,232,255,255, 26, /* 0x02e0 */ 0, 80,160,225, 2, 64,160,225, 15, 18,160,227, 5, 0, 17,225,
/* 0x02f0 */ 13, 48,221,229, 0, 0, 83,227, 0, 0, 86, 19, 4, 0,148, 21, /* 0x02f0 */ 2, 0, 0, 26, 1, 48, 83,226, 33, 18,160,225,250,255,255, 26,
/* 0x0300 */ 14, 32,221, 21, 15,224,160, 17, 6,240,160, 17, 8, 48,157,229, /* 0x0300 */ 3,193,160,225, 0,224,160,227, 8, 0, 0,234, 53, 44,160,225,
/* 0x0310 */ 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232, /* 0x0310 */ 15, 32, 2,226, 9, 0, 82,227, 87, 48,160,131, 48, 48,160,147,
/* 0x0320 */ 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, 4, 16,148,229, /* 0x0320 */ 2, 48,131,224, 0, 48,196,231, 1,224,142,226, 4,192, 76,226,
/* 0x0330 */ 168,255,255,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224, /* 0x0330 */ 0, 0, 81,227, 14, 0,134,224, 33, 18,160,225,242,255,255, 26,
/* 0x0340 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227, /* 0x0340 */ 14, 0,132,224,112,128,189,232, 15, 0, 45,233,240, 64, 45,233,
/* 0x0350 */ 190,255,255, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33, /* 0x0350 */ 28,208, 77,226, 52, 48,141,226, 0, 80,160,227, 24, 48,141,229,
/* 0x0360 */ 240, 79, 45,233, 0,176,160,227, 32,208, 77,226, 2,160,160,225, /* 0x0360 */ 48, 96,157,229, 5,112,160,225, 1, 48,214,228, 0, 0, 83,227,
/* 0x0370 */ 28, 80,128,226, 11,144,160,225, 16, 0,141,229, 12, 16,141,229, /* 0x0370 */ 2, 0, 0, 26, 0, 0, 87,227, 8, 0, 0, 26,104, 0, 0,234,
/* 0x0380 */ 8, 48,141,229,102, 0, 0,234, 0, 48,149,229, 1, 0, 83,227, /* 0x0380 */ 37, 0, 83,227, 2, 0, 0, 10, 0, 0, 87,227, 6,112,160, 1,
/* 0x0390 */ 87, 0, 0, 26, 24,128,149,229, 36, 32,149,229, 8, 58,160,225, /* 0x0390 */ 244,255,255,234, 0, 0, 87,227, 90, 0, 0, 26, 5, 0, 0,234,
/* 0x03a0 */ 35, 58,160,225, 28, 0,149,229, 3,112,146,224, 24, 32,141,229, /* 0x03a0 */ 6, 32,103,224, 2, 0,160,227, 1, 16, 71,226, 74,255,255,235,
/* 0x03b0 */ 28,128,141,229, 20, 0,141,229, 8, 96, 99,224, 23, 0, 0, 10, /* 0x03b0 */ 0, 80,133,224, 90, 0, 0,234, 1, 32,214,228,115, 0, 82,227,
/* 0x03c0 */ 0, 0, 90,227, 3, 0, 0, 26, 0, 0, 82,227, 18, 48,160, 19, /* 0x03c0 */ 62, 0, 0, 10, 6, 0, 0,138,100, 0, 82,227, 19, 0, 0, 10,
/* 0x03d0 */ 3, 0, 0, 26, 4, 0, 0,234, 0, 0, 82,227, 2, 0, 0, 10, /* 0x03d0 */ 112, 0, 82,227, 31, 0, 0, 10, 0, 0, 82,227, 80, 0, 0, 10,
/* 0x03e0 */ 88, 49,159,229, 8,224,157,229, 1, 0, 0,234, 76, 49,159,229, /* 0x03e0 */ 3, 0, 0,234,117, 0, 82,227, 5, 0, 0, 10,120, 0, 82,227,
/* 0x03f0 */ 0,224,224,227, 32,192,149,229, 12, 16,157,229, 6, 0,160,225, /* 0x03f0 */ 36, 0, 0, 10, 2, 0,160,227, 1, 16, 70,226, 1, 32,160,227,
/* 0x0400 */ 12,192,129,224, 3, 32,160,227, 7, 16,160,225, 0,224,141,229, /* 0x0400 */ 61, 0, 0,234, 24, 48,157,229, 0, 0,147,229, 13, 64,160,225,
/* 0x0410 */ 4,192,141,229, 77,255,255,235, 0, 0, 86,225, 32, 0, 0, 26, /* 0x0410 */ 4, 48,131,226, 13, 16,160,225, 0, 32,160,227, 10, 0, 0,234,
/* 0x0420 */ 0, 0, 90,227, 11, 0, 0, 10, 36, 48,149,229, 0, 0, 83,227, /* 0x0420 */ 24, 16,157,229, 0, 0,145,229, 0, 0, 80,227, 45, 48,160,179,
/* 0x0430 */ 8, 0, 0, 10, 32, 48,149,229, 0, 0, 83,227, 68, 32,157, 5, /* 0x0430 */ 0, 48,205,181, 0, 32,160,163, 4, 48,129,226, 0, 0, 96,178,
/* 0x0440 */ 10, 0,160,225, 0, 96,130, 5, 24, 16,141,226, 72, 32,141,226, /* 0x0440 */ 1, 32,160,179, 13, 64,160,225, 13, 16,160,225, 24, 48,141,229,
/* 0x0450 */ 12, 0,146,232,118,255,255,235, 0, 48,103,226, 3, 74,160,225, /* 0x0450 */ 123,255,255,235, 22, 0, 0,234, 24, 16,157,229, 48, 48,160,227,
/* 0x0460 */ 36, 74,160,225, 0, 0, 84,227, 5, 0, 0, 10, 7, 16,134,224, /* 0x0460 */ 4, 32,129,226, 0, 48,205,229, 72, 48,131,226, 24, 32,141,229,
/* 0x0470 */ 4, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228, /* 0x0470 */ 1, 48,205,229, 0, 0,145,229, 13, 64,160,225, 13, 16,160,225,
/* 0x0480 */ 251,255,255, 26, 0, 0, 87,227, 7, 0, 0, 10, 6, 0,160,225, /* 0x0480 */ 2, 32,160,227, 9, 0, 0,234, 48, 48,160,227, 0, 48,205,229,
/* 0x0490 */ 7, 16,160,225, 44, 32,149,229, 39,255,255,235, 0, 0, 80,227, /* 0x0490 */ 1, 32,205,229, 24, 48,157,229, 0, 0,147,229, 4, 48,131,226,
/* 0x04a0 */ 1, 0, 0, 10,127, 0,160,227, 1,255,255,235, 20, 0,157,229, /* 0x04a0 */ 24, 48,141,229, 13, 64,160,225, 13, 16,160,225, 2, 32,160,227,
/* 0x04b0 */ 4, 48,135,224, 0, 16,136,224, 3, 64,134,224, 1, 0, 84,225, /* 0x04b0 */ 135,255,255,235, 0, 32,160,225, 13, 16,160,225, 13, 0, 0,234,
/* 0x04c0 */ 20, 0, 0, 42, 0,192,224,227, 44, 32,149,229, 1, 16,100,224, /* 0x04c0 */ 24, 48,157,229, 0, 16,147,229, 4, 48,131,226, 0, 0, 81,227,
/* 0x04d0 */ 0,192,141,229, 4, 0,160,225, 1,192,140,226, 92, 48,159,229, /* 0x04d0 */ 24, 48,141,229, 1, 32,160, 1, 1, 32,160, 17, 1, 0, 0, 26,
/* 0x04e0 */ 4,192,141,229, 25,255,255,235, 0, 0, 84,225, 9, 0, 0, 10, /* 0x04e0 */ 3, 0, 0,234, 1, 32,130,226, 0, 48,210,229, 0, 0, 83,227,
/* 0x04f0 */ 235,255,255,234, 4, 48, 67,226, 1, 0, 83,227, 5, 0, 0,138, /* 0x04f0 */ 251,255,255, 26, 2, 32, 97,224, 2, 0,160,227,246,254,255,235,
/* 0x0500 */ 8, 48,149,229, 1, 0, 83,227, 2, 0, 0, 26, 12, 48,149,229, /* 0x0500 */ 0, 80,133,224,151,255,255,234, 6, 32,103,224, 1, 16, 71,226,
/* 0x0510 */ 17, 0, 83,227, 16,176,133, 2, 4, 48,149,229, 1,144,137,226, /* 0x0510 */ 2, 0,160,227,240,254,255,235, 0,112,160,227, 0, 80,133,224,
/* 0x0520 */ 3, 80,133,224, 16, 16,157,229, 16, 48,145,229, 3, 0, 89,225, /* 0x0520 */ 164,255,255,234, 5, 0,160,225, 28,208,141,226,240, 64,189,232,
/* 0x0530 */ 148,255,255, 58, 11, 0,160,225, 32,208,141,226,240,143,189,232, /* 0x0530 */ 16,208,141,226, 14,240,160,225, 16, 64, 45,233, 0, 64,160,225,
/* 0x0540 */ 18, 16, 0, 0,240, 67, 45,233, 40,208, 77,226, 12, 16,141,229, /* 0x0540 */ 4, 16,160,225, 3, 0, 0,235,101,114,114, 95,101,120,105,116,
/* 0x0550 */ 12, 16,157,229, 24,192,144,229, 24, 16, 65,226, 24, 0,128,226, /* 0x0550 */ 32, 37,120, 10, 0, 0, 0, 0, 14, 0,160,225,121,255,255,235,
/* 0x0560 */ 68, 64,157,229, 36, 0,141,229, 32, 16,141,229, 32,128,141,226, /* 0x0560 */ 4, 0,160,225,211,254,255,235,240, 64, 45,233, 4,112,144,229,
/* 0x0570 */ 0, 3,152,232, 2, 80,160,225, 32, 0,141,226, 24, 16,141,226, /* 0x0570 */ 0, 64,160,225, 2, 80,160,225, 8,208, 77,226, 0, 32,148,229,
/* 0x0580 */ 4, 32,160,225, 3,112,160,225, 0, 48,160,227, 24,192,141,229, /* 0x0580 */ 5, 0, 0,235,120,114,101, 97,100, 32, 37,112, 40, 37,120, 32,
/* 0x0590 */ 28, 80,141,229, 16,128,141,229, 20,144,141,229, 36,255,255,235, /* 0x0590 */ 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, 0, 14, 0,160,225,
/* 0x05a0 */ 76,192,157,229, 0,192,141,229, 72,192,157,229, 0, 16,160,227, /* 0x05a0 */ 1, 96,160,225, 7, 48,160,225, 4, 16,160,225, 0, 96,141,229,
/* 0x05b0 */ 16, 32,141,226, 5, 0,160,225, 0, 48,224,227, 16, 16,141,233, /* 0x05b0 */ 4, 80,141,229, 99,255,255,235, 0, 32,148,229, 5, 0, 82,225,
/* 0x05c0 */ 102,255,255,235, 0, 96,160,225, 16, 0,149,229, 28, 32,133,226, /* 0x05c0 */ 5, 32,160, 33, 0, 16,160, 35, 18, 0, 0, 42, 0, 96,141,229,
/* 0x05d0 */ 0, 16,160,227, 58, 0, 0,234, 0, 48,146,229, 14, 0, 83,227, /* 0x05d0 */ 6, 0, 0,235,120,114,101, 97,100,102, 97,105,108, 32, 37,112,
/* 0x05e0 */ 52, 0, 0, 26, 8, 0,146,229, 0, 16,160,227, 0, 0,130,224, /* 0x05e0 */ 40, 37,120, 32, 37,112, 41, 32, 37,112, 32, 37,120, 10, 0, 0,
/* 0x05f0 */ 1, 32,160,225,188,254,255,235, 0, 64, 80,226, 7, 0, 0,186, /* 0x05f0 */ 14, 0,160,225, 4, 80,141,229, 4, 16,160,225, 4, 48,148,229,
/* 0x0600 */ 0, 96,160,227, 4, 0,160,225, 5, 16,160,225, 7, 32,160,225, /* 0x0600 */ 80,255,255,235,127, 0,160,227,170,254,255,235, 7, 48,209,231,
/* 0x0610 */ 6, 48,160,225,219,254,255,235, 0, 0, 87,225, 3, 0, 0, 10, /* 0x0610 */ 6, 48,193,231, 1, 16,129,226, 1, 32, 82,226,250,255,255, 42,
/* 0x0620 */ 127, 0,160,227,162,254,255,235, 8, 96,146,229,244,255,255,234, /* 0x0620 */ 4, 32,148,229, 0, 48,148,229, 5, 32,130,224, 3, 48,101,224,
/* 0x0630 */ 0, 32,149,229,156, 48,159,229, 3, 0, 82,225, 16, 0, 0, 26, /* 0x0630 */ 0, 48,132,229, 4, 32,132,229, 8,208,141,226,240,128,189,232,
/* 0x0640 */ 7, 48,213,229, 20, 32,160,227,147, 2, 1,224, 5, 0,160,225, /* 0x0640 */ 240, 64, 45,233, 0,192,145,229, 0, 80,160,225, 12, 0, 0,235,
/* 0x0650 */ 8, 16,129,226,212,254,255,235, 4, 0,149,229, 8, 32,133,226, /* 0x0650 */ 117,110,112, 97, 99,107, 69,120,116,101,110,116, 32,105,110, 61,
/* 0x0660 */ 0, 16,160,227, 4, 0, 0,234, 0, 48,146,229, 12, 0, 83,227, /* 0x0660 */ 37,112, 40, 37,120, 32, 37,112, 41, 32, 32,111,117,116, 61, 37,
/* 0x0670 */ 236,255,255, 10, 1, 16,129,226, 20, 32,130,226, 0, 0, 81,225, /* 0x0670 */ 112, 40, 37,120, 32, 37,112, 41, 32, 32, 37,112, 32, 37,112, 10,
/* 0x0680 */ 248,255,255, 26, 0,192,160,227, 6, 16,160,225, 5, 0,160,225, /* 0x0680 */ 0, 0, 0, 0, 14, 0,160,225, 4,224,145,229, 36,208, 77,226,
/* 0x0690 */ 12, 32,160,225, 4, 48,160,225, 0,192,141,229, 4,192,141,229, /* 0x0690 */ 1, 64,160,225, 2,112,160,225, 3, 96,160,225, 12, 0,149,232,
/* 0x06a0 */ 8,192,141,229, 45,255,255,235, 0, 96,160,225, 4, 0,160,225, /* 0x06a0 */ 5, 16,160,225, 16, 80,141,232, 12,112,141,229, 16, 96,141,229,
/* 0x06b0 */ 146,254,255,235, 4, 0, 0,234, 4, 48,146,229, 1, 16,129,226, /* 0x06b0 */ 36,255,255,235, 85, 0, 0,234, 12, 32,160,227, 5, 0,160,225,
/* 0x06c0 */ 3, 32,130,224, 0, 0, 81,225,194,255,255, 26, 6, 0,160,225, /* 0x06c0 */ 20, 16,141,226,167,255,255,235, 20, 48,157,229, 0, 0, 83,227,
/* 0x06d0 */ 40,208,141,226,240,131,189,232,190,186,254,202 /* 0x06d0 */ 24, 32,157,229, 9, 0, 0, 26, 68, 49,159,229, 3, 0, 82,225,
/* 0x06e0 */ 2, 0,160, 19,147,255,255, 27, 0, 48,149,229, 0, 0, 83,227,
/* 0x06f0 */ 73, 0, 0, 10, 3, 0,160,227,142,255,255,235, 70, 0, 0,234,
/* 0x0700 */ 0, 0, 82,227, 4, 0,160, 3,138,255,255, 11, 24, 16,157,229,
/* 0x0710 */ 20, 32,157,229, 2, 0, 81,225, 2, 0, 0,138, 0, 48,148,229,
/* 0x0720 */ 3, 0, 82,225, 14, 0, 0,154, 8, 0, 0,235,115,122, 95, 99,
/* 0x0730 */ 112,114, 61, 37,120, 32, 32,115,122, 95,117,110, 99, 61, 37,120,
/* 0x0740 */ 32, 32,120,111, 45, 62,115,105,122,101, 61, 37,120, 10, 0, 0,
/* 0x0750 */ 14, 0,160,225, 0, 48,148,229,250,254,255,235, 5, 0,160,227,
/* 0x0760 */ 116,255,255,235, 24, 16,157,229, 20,224,157,229, 14, 0, 81,225,
/* 0x0770 */ 29, 0, 0, 42, 28,192,221,229, 4, 0,149,229, 4, 32,148,229,
/* 0x0780 */ 32, 48,141,226, 32,224,141,229, 0,192,141,229, 15,224,160,225,
/* 0x0790 */ 7,240,160,225, 0, 0, 80,227, 3, 0, 0, 26, 32, 32,157,229,
/* 0x07a0 */ 20, 48,157,229, 3, 0, 82,225, 1, 0, 0, 10, 7, 0,160,227,
/* 0x07b0 */ 96,255,255,235, 29, 48,221,229, 0, 0, 83,227, 0, 0, 86, 19,
/* 0x07c0 */ 4, 0,148, 21, 32, 16,157, 21, 30, 32,221, 21, 15,224,160, 17,
/* 0x07d0 */ 6,240,160, 17, 24, 48,157,229, 6, 0,149,232, 3, 32,130,224,
/* 0x07e0 */ 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225,
/* 0x07f0 */ 5, 0,160,225, 4, 16,148,229, 90,255,255,235, 20, 48,157,229,
/* 0x0800 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
/* 0x0810 */ 0, 48,148,229, 0, 0, 83,227,166,255,255, 26, 36,208,141,226,
/* 0x0820 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 15, 0, 0,235,
/* 0x0830 */ 100,111, 95,120,109, 97,112, 32, 32,102,100,105, 61, 37,120, 32,
/* 0x0840 */ 32,109,104,100,114, 61, 37,112, 32, 32, 42,109,104,100,114,112,
/* 0x0850 */ 112, 61, 37,112, 32, 32,120,105, 61, 37,112, 40, 37,120, 32, 37,
/* 0x0860 */ 112, 41, 32,102, 95,117,110,102, 61, 37,112, 10, 0, 0, 0, 0,
/* 0x0870 */ 14, 64,160,225, 52,208, 77,226, 88,192,157,229, 0, 0, 92,227,
/* 0x0880 */ 2,144,160,225, 88, 32,157, 21, 16, 48,141,229, 0, 48,146, 21,
/* 0x0890 */ 12, 48,160, 1, 0, 0, 89,227, 0,192,153, 21, 9,192,160, 1,
/* 0x08a0 */ 4,224,153, 21, 24, 0,141,229, 4,192,141,229, 96,192,157,229,
/* 0x08b0 */ 20, 16,141,229, 9,224,160, 1, 24, 32,157,229, 4, 0,160,225,
/* 0x08c0 */ 16, 16,157,229, 8,224,141,229, 0,144,141,229, 12,192,141,229,
/* 0x08d0 */ 156,254,255,235, 24, 48,157,229, 0, 32,160,227, 28, 80,131,226,
/* 0x08e0 */ 28, 32,141,229, 32, 32,141,229, 36, 32,141,229, 46, 1, 0,234,
/* 0x08f0 */ 0, 32,149,229, 6, 0, 0,235, 32, 32, 35, 37,100, 32, 32, 99,
/* 0x0900 */ 109,100, 61, 37,120, 32, 32, 99,109,100,115,105,122,101, 61, 37,
/* 0x0910 */ 120, 10, 0, 0, 14, 0,160,225, 36, 16,157,229, 4, 48,149,229,
/* 0x0920 */ 136,254,255,235, 0, 32,149,229, 1, 0, 82,227,239, 0, 0, 26,
/* 0x0930 */ 28, 48,149,229, 0, 0, 83,227,236, 0, 0, 10, 32, 48,149,229,
/* 0x0940 */ 0, 0, 83,227, 19, 0, 0, 26, 36, 48,149,229, 0, 0, 83,227,
/* 0x0950 */ 16, 0, 0, 10, 88,192,157,229, 0, 32,156,229, 0, 0, 82,227,
/* 0x0960 */ 12, 0, 0, 10, 24, 48,146,229, 2, 6, 19,227, 9, 0, 0, 10,
/* 0x0970 */ 24, 48,149,229, 2, 0, 0,235,114,101,108,111, 99, 61, 37,112,
/* 0x0980 */ 10, 0, 0, 0, 14, 0,160,225, 2, 32, 99,224, 2, 16,160,225,
/* 0x0990 */ 32, 32,141,229,107,254,255,235, 24, 48,149,229, 32, 32,157,229,
/* 0x09a0 */ 3, 48,130,224, 36, 0,149,229, 28, 16,149,229, 3, 42,160,225,
/* 0x09b0 */ 34, 42,160,225, 1, 16,131,224, 2,160,144,224, 44, 0,141,229,
/* 0x09c0 */ 48, 48,141,229, 40, 16,141,229, 3,112, 98,224, 76, 0, 0, 10,
/* 0x09d0 */ 88,192,157,229, 0, 48,156,229, 0, 0, 83,227, 2, 32,160, 3,
/* 0x09e0 */ 18, 32,160, 19, 0, 0, 89,227, 3, 48,160, 19, 0, 48,160, 3,
/* 0x09f0 */ 0, 0, 89,227, 3,176,138,224, 3, 0, 0, 26, 0, 0, 80,227,
/* 0x0a00 */ 1,106,130, 3, 6, 1, 0, 10,237, 0, 0,234, 0, 0, 80,227,
/* 0x0a10 */ 1,106,130,227, 2, 1, 0, 10, 16,128,157,229, 32, 64,149,229,
/* 0x0a20 */ 16, 0, 0,235,109,109, 97,112, 32, 32, 97,100,100,114, 61, 37,
/* 0x0a30 */ 112, 32, 32,108,101,110, 61, 37,112, 32, 32,112,114,111,116, 61,
/* 0x0a40 */ 37,120, 32, 32,102,108, 97,103,115, 61, 37,120, 32, 32,102,100,
/* 0x0a50 */ 61, 37,100, 32, 32,111,102,102, 61, 37,112, 32, 32,114,101,108,
/* 0x0a60 */ 111, 99, 61, 37,112, 10, 0, 0, 14, 0,160,225, 20, 32,157,229,
/* 0x0a70 */ 32,192,157,229, 4, 64,130,224, 7, 16,160,225, 11, 32,160,225,
/* 0x0a80 */ 3, 48,160,227, 12,192,141,229, 64, 1,141,232, 8, 64,141,229,
/* 0x0a90 */ 44,254,255,235, 11, 16,160,225, 6, 48,160,225, 7, 0,160,225,
/* 0x0aa0 */ 3, 32,160,227, 0,128,141,229, 4, 64,141,229,168,253,255,235,
/* 0x0ab0 */ 88, 32,157,229, 0, 48,146,229, 0, 0, 83,227, 0, 16,160,225,
/* 0x0ac0 */ 32, 0,141, 5, 0,112,160, 1, 0, 0,130, 5, 12, 0, 0, 10,
/* 0x0ad0 */ 0, 0, 87,225, 10, 0, 0, 10, 4, 0, 0,235,109, 97,100,100,
/* 0x0ae0 */ 114, 61, 37,112, 32, 32, 97,100,100,114, 61, 37,112, 10, 0, 0,
/* 0x0af0 */ 14, 0,160,225, 7, 32,160,225, 18,254,255,235, 8, 0,160,227,
/* 0x0b00 */ 140,254,255,235, 0, 0, 89,227,175, 0, 0, 10, 36, 48,149,229,
/* 0x0b10 */ 0, 0, 83,227, 8, 0, 0, 10, 32, 48,149,229, 0, 0, 83,227,
/* 0x0b20 */ 88, 48,157, 5, 9, 0,160,225, 0,112,131, 5, 44, 16,141,226,
/* 0x0b30 */ 92, 32,141,226, 12, 0,146,232,192,254,255,235, 48,192,149,229,
/* 0x0b40 */ 9, 0, 0,235,120,105, 61, 37,112, 32, 32,109,108,101,110, 61,
/* 0x0b50 */ 37,112, 32, 32,102,105,108,101,111,102,102, 61, 37,112, 32, 32,
/* 0x0b60 */ 110,115,101, 99,116,115, 61, 37,100, 10, 0, 0, 14, 0,160,225,
/* 0x0b70 */ 32, 48,149,229, 0, 96, 90,226, 1, 96,160, 19, 9, 16,160,225,
/* 0x0b80 */ 10, 32,160,225, 0,192,141,229,238,253,255,235, 0, 0, 86,227,
/* 0x0b90 */ 34, 0, 0, 10, 32, 48,149,229, 0, 0, 83,227, 31, 0, 0, 26,
/* 0x0ba0 */ 48, 48,149,229, 0, 0, 83,227, 28, 0, 0, 10, 24,192,157,229,
/* 0x0bb0 */ 9, 0, 0,235,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, 14, 0,160,225,
/* 0x0be0 */ 5, 48,108,224, 3, 48,195,227, 3, 48,135,224, 56, 32,131,226,
/* 0x0bf0 */ 40, 16,146,229, 92,194,159,229, 3, 16,193,227, 1, 16,135,224,
/* 0x0c00 */ 4,192, 1,229, 8, 64, 65,226,239,196,160,227, 8,192, 1,229,
/* 0x0c10 */ 4, 16,160,225, 0,112,141,229,202,253,255,235, 28, 64,141,229,
/* 0x0c20 */ 1,128,160,227, 0, 48,106,226, 3, 74,160,225, 36, 74,160,225,
/* 0x0c30 */ 0, 0, 84,227, 5, 0, 0, 10, 10, 16,135,224, 4, 32,160,225,
/* 0x0c40 */ 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,251,255,255, 26,
/* 0x0c50 */ 0, 0, 86,227, 6, 0, 0, 10, 7, 0,160,225, 10, 16,160,225,
/* 0x0c60 */ 44, 32,149,229, 53,253,255,235, 0, 0, 80,227, 10, 0,160, 19,
/* 0x0c70 */ 48,254,255, 27, 4, 48,138,224, 40, 32,157,229, 3, 64,135,224,
/* 0x0c80 */ 2, 0, 84,225, 15, 0, 0, 42, 0, 0, 84,227, 64, 0, 0, 10,
/* 0x0c90 */ 0,192,224,227, 2, 16,100,224, 4, 0,160,225, 44, 32,149,229,
/* 0x0ca0 */ 180, 49,159,229, 0,192,141,229, 1,192,140,226, 4,192,141,229,
/* 0x0cb0 */ 39,253,255,235, 0, 0, 84,225, 53, 0, 0, 10, 9, 0,160,227,
/* 0x0cc0 */ 28,254,255,235, 50, 0, 0,234, 0, 0, 88,227, 48, 0, 0, 10,
/* 0x0cd0 */ 3, 48,138,226, 3, 26,160,225, 33, 26,160,225, 3, 0, 81,227,
/* 0x0ce0 */ 43, 0, 0,138, 4, 0,160,225, 15,253,255,235, 40, 0, 0,234,
/* 0x0cf0 */ 0, 0, 89,227, 38, 0, 0, 26, 4, 48, 66,226, 1, 0, 83,227,
/* 0x0d00 */ 35, 0, 0,138, 5, 16,160,225, 16, 64,133,226, 4, 0, 0,235,
/* 0x0d10 */ 116,104,114,101, 97,100, 95, 99,111,109,109, 97,110,100, 61, 32,
/* 0x0d20 */ 37,112, 10, 0, 14, 0,160,225,134,253,255,235, 12, 0, 0,235,
/* 0x0d30 */ 116,104,114,101, 97,100, 95,115,116, 97,116,101, 61, 32, 37,112,
/* 0x0d40 */ 32, 32,102,108, 97,118,111,114, 61, 37,100, 32, 32, 99,111,117,
/* 0x0d50 */ 110,116, 61, 37,120, 32, 32,114,101,108,111, 99, 61, 37,112, 10,
/* 0x0d60 */ 0, 0, 0, 0, 14, 0,160,225, 32,192,157,229, 8, 32,133,226,
/* 0x0d70 */ 12, 0,146,232, 4, 16,160,225, 0,192,141,229,113,253,255,235,
/* 0x0d80 */ 76, 48,149,229, 32, 32,157,229, 2, 48,131,224, 76, 48,133,229,
/* 0x0d90 */ 28, 64,141,229, 4, 48,149,229, 3, 48,195,227, 3, 80,133,224,
/* 0x0da0 */ 36, 48,157,229, 1, 48,131,226, 36, 48,141,229, 24,192,157,229,
/* 0x0db0 */ 36, 32,157,229, 16, 48,156,229, 3, 0, 82,225,203,254,255, 58,
/* 0x0dc0 */ 25, 0, 0,234, 2, 96,160,225, 18,255,255,234, 48,192,149,229,
/* 0x0dd0 */ 9, 0, 0,235,120,105, 61, 37,112, 32, 32,109,108,101,110, 61,
/* 0x0de0 */ 37,112, 32, 32,102,105,108,101,111,102,102, 61, 37,112, 32, 32,
/* 0x0df0 */ 110,115,101, 99,116,115, 61, 37,100, 10, 0, 0, 14, 0,160,225,
/* 0x0e00 */ 32, 48,149,229, 9, 16,160,225, 10, 32,160,225, 0,192,141,229,
/* 0x0e10 */ 76,253,255,235, 0, 96, 90,226, 1, 96,160, 19, 9,128,160,225,
/* 0x0e20 */ 127,255,255,234, 0,128,224,227,251,254,255,234, 3, 0, 0,235,
/* 0x0e30 */ 100,111, 95,120,109, 97,112, 61, 32, 37,112, 10, 0, 0, 0, 0,
/* 0x0e40 */ 14, 0,160,225, 28, 16,157,229, 62,253,255,235, 28, 0,157,229,
/* 0x0e50 */ 52,208,141,226,240,143,189,232, 30,255, 47,225, 18, 16, 0, 0,
/* 0x0e60 */ 240, 79, 45,233, 21, 0, 0,235,117,112,120, 95,109, 97,105,110,
/* 0x0e70 */ 32,115,122, 99, 61, 37,120, 32, 32,102, 95,101,120,112, 61, 37,
/* 0x0e80 */ 112, 32, 32,102, 95,117,110,102, 61, 37,112, 32, 32, 32, 32,120,
/* 0x0e90 */ 111, 61, 37,112, 40, 37,120, 32, 37,112, 41, 32, 32,120,105, 61,
/* 0x0ea0 */ 37,112, 40, 37,120, 32, 37,112, 41, 32, 32,109,104,100,114,112,
/* 0x0eb0 */ 112, 61, 37,112, 32, 32,109,104,100,114,112, 61, 37,112, 10, 0,
/* 0x0ec0 */ 14, 80,160,225, 68,208, 77,226, 36, 16,141,229, 36,224,157,229,
/* 0x0ed0 */ 24,128,144,229, 24,192,128,226,112, 96,157,229, 24,224, 78,226,
/* 0x0ee0 */ 60,192,141,229, 56,224,141,229, 0,160,150,229,104, 64,141,226,
/* 0x0ef0 */ 16, 2,148,232, 4,128,141,229, 48,128,141,229, 56,112,141,226,
/* 0x0f00 */ 128, 1,151,232, 2,176,160,225, 36, 16,157,229, 32, 48,141,229,
/* 0x0f10 */ 5, 0,160,225, 9, 48,160,225, 56, 80,141,226, 4, 32,160,225,
/* 0x0f20 */ 40,112,141,229, 44,128,141,229, 48,128,141,226, 16,224,141,229,
/* 0x0f30 */ 20,192,141,229, 24, 96,141,229, 28,160,141,229, 52,176,141,229,
/* 0x0f40 */ 0,128,141,229, 8,176,141,229, 12, 80,141,229,253,252,255,235,
/* 0x0f50 */ 5, 0,160,225, 48, 16,141,226, 4, 32,160,225, 0, 48,160,227,
/* 0x0f60 */ 182,253,255,235, 0, 16,160,227, 40, 32,141,226, 11, 0,160,225,
/* 0x0f70 */ 0, 48,224,227, 0, 96,141,229, 16, 2,141,233, 41,254,255,235,
/* 0x0f80 */ 0, 96,160,225, 16, 0,155,229, 28, 32,139,226, 0, 16,160,227,
/* 0x0f90 */ 82, 0, 0,234, 0, 48,146,229, 14, 0, 83,227, 77, 0, 0, 26,
/* 0x0fa0 */ 8, 64,146,229, 2, 0, 0,235,100,121,108,100, 61, 32, 37,115,
/* 0x0fb0 */ 10, 0, 0, 0, 14, 0,160,225, 4, 64,130,224, 4, 16,160,225,
/* 0x0fc0 */ 224,252,255,235, 0, 16,160,227, 4, 0,160,225, 1, 32,160,225,
/* 0x0fd0 */ 70,252,255,235, 0, 80, 80,226, 18, 0,160,179, 85,253,255,187,
/* 0x0fe0 */ 0, 64,160,227, 5, 0,160,225, 11, 16,160,225, 32, 32,157,229,
/* 0x0ff0 */ 4, 48,160,225,100,252,255,235, 32,192,157,229, 0, 0, 92,225,
/* 0x1000 */ 19, 0,160, 19, 75,253,255, 27, 0, 32,155,229,232, 48,159,229,
/* 0x1010 */ 3, 0, 82,225, 2, 0, 0, 10,224, 48,159,229, 3, 0, 82,225,
/* 0x1020 */ 18, 0, 0, 26, 7, 48,219,229, 20, 32,160,227,147, 2, 1,224,
/* 0x1030 */ 11, 0,160,225, 8, 16,129,226, 92,252,255,235, 4,192,155,229,
/* 0x1040 */ 8, 16,139,226, 0, 0,160,227, 5, 0, 0,234, 0, 32,145,229,
/* 0x1050 */ 172, 48,159,229, 3, 0, 82,225, 8, 64,145, 5,224,255,255, 10,
/* 0x1060 */ 20, 16,129,226, 12, 0, 80,225, 1, 0,128,226,246,255,255, 26,
/* 0x1070 */ 0,224,160,227, 68,192,141,226, 4,224, 44,229, 14, 32,160,225,
/* 0x1080 */ 4, 16,160,225, 5, 48,160,225, 11, 0,160,225, 4,224,141,229,
/* 0x1090 */ 8,224,141,229, 0,192,141,229,226,253,255,235, 0, 64,160,225,
/* 0x10a0 */ 4, 16,160,225, 4, 0, 0,235,116,115, 61, 32, 37,112, 32, 32,
/* 0x10b0 */ 104, 97,116, 99,104, 61, 37,112, 10, 0, 0, 0, 14, 0,160,225,
/* 0x10c0 */ 6, 32,160,225,159,252,255,235, 0, 96,132,229, 5, 0,160,225,
/* 0x10d0 */ 11,252,255,235, 5, 0, 0,234, 4, 48,146,229, 3, 32,130,224,
/* 0x10e0 */ 0, 0, 81,225, 1, 16,129,226,169,255,255, 26, 0, 64,160,227,
/* 0x10f0 */ 4, 0,160,225, 68,208,141,226,240,143,189,232,202,254,186,190,
/* 0x1100 */ 190,186,254,202, 7, 0, 0, 1
}; };
+3 -3
View File
@@ -32,8 +32,8 @@
#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7921 #define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7921
#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0x5ccea70c #define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0xedeaa76c
#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x829a61f1 #define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x22df959e
unsigned char stub_arm64_darwin_macho_entry[7921] = { 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, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -336,7 +336,7 @@ unsigned char stub_arm64_darwin_macho_entry[7921] = {
/* 0x1290 */ 5, 0,128,210,228, 3, 64,185, 67, 2,128, 82, 98, 0,128, 82, /* 0x1290 */ 5, 0,128,210,228, 3, 64,185, 67, 2,128, 82, 98, 0,128, 82,
/* 0x12a0 */ 97, 3, 22,203,168, 24,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, /* 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, /* 0x12c0 */ 227, 15, 30,248, 96,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, /* 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, /* 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, /* 0x12f0 */ 96, 51, 0,145,225, 3, 7,170,128, 3, 63,214,225, 11, 64,249,
+169 -157
View File
@@ -1,5 +1,5 @@
/* arm64-darwin.macho-fold.h /* arm64-darwin.macho-fold.h
created from arm64-darwin.macho-fold.bin, 4552 (0x11c8) bytes created from arm64-darwin.macho-fold.bin, 4744 (0x1288) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -31,15 +31,15 @@
*/ */
#define STUB_ARM64_DARWIN_MACHO_FOLD_SIZE 4552 #define STUB_ARM64_DARWIN_MACHO_FOLD_SIZE 4744
#define STUB_ARM64_DARWIN_MACHO_FOLD_ADLER32 0x2d363f6f #define STUB_ARM64_DARWIN_MACHO_FOLD_ADLER32 0xba61851b
#define STUB_ARM64_DARWIN_MACHO_FOLD_CRC32 0x36b2ceb5 #define STUB_ARM64_DARWIN_MACHO_FOLD_CRC32 0xaea9eea0
unsigned char stub_arm64_darwin_macho_fold[4552] = { unsigned char stub_arm64_darwin_macho_fold[4744] = {
/* 0x0000 */ 224, 3, 20,170,225, 3, 21,170, 3, 24, 64,185, 9, 0,132, 82, /* 0x0000 */ 224, 3, 20,170,225, 3, 21,170,131, 26, 64,185, 9, 0,132, 82,
/* 0x0010 */ 127, 0, 9,107, 99,128,137, 26, 99, 60, 0, 17, 99,108, 28, 18, /* 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, /* 0x0020 */ 230,131, 0,145,243, 3, 0,145,255, 67, 35,203,226, 3, 0,145,
/* 0x0030 */ 228, 3, 28,170,165, 1, 0, 16, 67, 3, 0,148, 20,128, 64,249, /* 0x0030 */ 228, 3, 28,170,165, 1, 0, 16,114, 3, 0,148, 20,128, 64,249,
/* 0x0040 */ 28, 0, 64,249,127, 2, 0,145,224, 3, 64,185, 38, 0, 0,148, /* 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, /* 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, /* 0x0060 */ 255,131, 0,145,128, 3, 31,214, 99, 28, 0, 18,127, 72, 1,113,
@@ -106,7 +106,7 @@ unsigned char stub_arm64_darwin_macho_fold[4552] = {
/* 0x0430 */ 161,139, 64,185,160,103, 1, 57,181, 99, 1, 57,160, 59, 64,249, /* 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, /* 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, /* 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, /* 0x0460 */ 3, 0, 0, 20,160, 63, 64,249, 0,192, 33,139, 0, 0, 64,185,
/* 0x0470 */ 161, 99, 1,145, 82,255,255,151, 2,124, 64,147,161, 99, 1,145, /* 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, /* 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, /* 0x0490 */ 148,255,255, 23,161,139, 64,185,160, 59, 64,249,161, 0,248, 54,
@@ -167,158 +167,170 @@ unsigned char stub_arm64_darwin_macho_fold[4552] = {
/* 0x0800 */ 96, 2, 0,249,171,255,255, 23,191, 67, 0,209,243, 83, 66,169, /* 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, /* 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, /* 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, /* 0x0830 */ 232, 39, 6,109,245, 91, 2,169,236, 55, 8,109,247, 99, 3,169,
/* 0x0840 */ 238, 63, 9,109,251,115, 5,169,245, 91, 2,169,251, 3, 0,170, /* 0x0840 */ 238, 63, 9,109,249,107, 4,169,251,115, 5,169,250, 3, 0,170,
/* 0x0850 */ 19,128, 0,145,106, 0, 39, 30,247, 3, 2,170, 44, 0, 39, 30, /* 0x0850 */ 19,128, 0,145,105, 0, 39, 30,245, 3, 2,170, 43, 0, 39, 30,
/* 0x0860 */ 249, 3, 4,170,173, 0,103,158,227, 3, 4,170,203, 0,103,158, /* 0x0860 */ 247, 3, 4,170,172, 0,103,158,227, 3, 4,170,202, 0,103,158,
/* 0x0870 */ 17, 0, 0,148,100,111, 95,120,109, 97,112, 32, 32,102,100,105, /* 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, /* 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, /* 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, /* 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, /* 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, /* 0x08c0 */ 149, 0, 0,180,165, 2, 64,249,166, 6, 64,249, 3, 0, 0, 20,
/* 0x08d0 */ 229, 3, 23,170,230, 3, 23,170, 65, 1, 38, 30,226, 3, 27,170, /* 0x08d0 */ 229, 3, 21,170,230, 3, 21,170, 33, 1, 38, 30,226, 3, 26,170,
/* 0x08e0 */ 103, 1,102,158,228, 3, 23,170, 24, 0,128,210, 28, 0,128, 82, /* 0x08e0 */ 71, 1,102,158,228, 3, 21,170, 22, 0,128,210, 25, 0,128, 82,
/* 0x08f0 */ 250, 3, 24,170, 76,254,255,151, 6, 0, 0,148,116,104,114,101, /* 0x08f0 */ 248, 3, 22,170, 76,254,255,151, 8, 0, 0,148, 32, 32, 35, 37,
/* 0x0900 */ 97,100, 95, 99,111,109,109, 97,110,100, 61, 32, 37,112, 10, 0, /* 0x0900 */ 100, 32, 32, 99,109,100, 61, 37,120, 32, 32, 99,109,100,115,105,
/* 0x0910 */ 224, 3, 30,170, 14, 0,103,158, 8, 0, 0,148,116,104,114,101, /* 0x0910 */ 122,101, 61, 37,120, 10, 0, 0,224, 3, 30,170, 13, 0,103,158,
/* 0x0920 */ 97,100, 95,115,116, 97,116,101, 61, 32, 37,112, 32, 32,114,101, /* 0x0920 */ 6, 0, 0,148,116,104,114,101, 97,100, 95, 99,111,109,109, 97,
/* 0x0930 */ 108,111, 99, 61, 37,112, 10, 0,224, 3, 30,170, 15, 0,103,158, /* 0x0930 */ 110,100, 61, 32, 37,112, 10, 0,224, 3, 30,170, 14, 0,103,158,
/* 0x0940 */ 96, 19, 64,185,159, 3, 0,107, 98, 29, 0, 84, 96, 2, 64,185, /* 0x0940 */ 14, 0, 0,148,116,104,114,101, 97,100, 95,115,116, 97,116,101,
/* 0x0950 */ 31,100, 0,113, 97, 26, 0, 84, 97, 18, 64,249, 33, 26, 0,180, /* 0x0950 */ 61, 32, 37,112, 32, 32,102,108, 97,118,111,114, 61, 37,100, 32,
/* 0x0960 */ 96, 22, 64,249, 0, 2, 0,181, 96, 26, 64,249,192, 1, 0,180, /* 0x0960 */ 32, 99,111,117,110,116, 61, 37,120, 32, 32,114,101,108,111, 99,
/* 0x0970 */ 32, 3, 64,249,128, 1, 0,180, 1, 24, 64,185, 65, 1,168, 54, /* 0x0970 */ 61, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, 15, 0,103,158,
/* 0x0980 */ 120, 14, 64,249, 24, 0, 24,203,225, 3, 24,170, 4, 0, 0,148, /* 0x0980 */ 11, 0, 0,148,120,105, 61, 37,112, 32, 32,109,108,101,110, 61,
/* 0x0990 */ 114,101,108,111, 99, 61, 37,112, 10, 0, 0, 0,224, 3, 30,170, /* 0x0990 */ 37,112, 32, 32,102,105,108,101,111,102,102, 61, 37,112, 32, 32,
/* 0x09a0 */ 33,254,255,151,118, 14, 64,249, 98, 26, 64,249, 22, 3, 22,139, /* 0x09a0 */ 110,115,101, 99,116,115, 61, 37,100, 10, 0, 0,224, 3, 30,170,
/* 0x09b0 */ 96, 18, 64,249,212, 46, 64,146,182,103, 0,249,192, 2, 0,139, /* 0x09b0 */ 160, 95, 0,249, 64, 19, 64,185, 63, 3, 0,107,162, 31, 0, 84,
/* 0x09c0 */ 162, 99, 0,249,214, 2, 20,203,148, 2, 2,171, 8, 0,103,158, /* 0x09c0 */ 160, 1,102,158, 98, 2, 64,185, 99, 6, 64,185,225, 3, 25, 42,
/* 0x09d0 */ 64, 10, 0, 84, 32, 3, 64,249,255, 2, 31,235,104, 0,128,210, /* 0x09d0 */ 21,254,255,151, 96, 2, 64,185, 31,100, 0,113,225, 27, 0, 84,
/* 0x09e0 */ 85, 0,128, 82, 8, 17,159,154, 31, 0, 31,235, 64, 2,128, 82, /* 0x09e0 */ 96, 18, 64,249,192, 29, 0,180, 96, 22, 64,249, 0, 2, 0,181,
/* 0x09f0 */ 8, 1, 20,139, 0, 16,149, 26,255, 2, 31,235,245, 7,159, 26, /* 0x09f0 */ 96, 26, 64,249,192, 1, 0,180,224, 2, 64,249,128, 1, 0,180,
/* 0x0a00 */ 85, 0, 0, 53, 66, 0, 0,181, 21, 4,128, 82,181, 2, 0, 42, /* 0x0a00 */ 1, 24, 64,185, 65, 1,168, 54,118, 14, 64,249, 22, 0, 22,203,
/* 0x0a10 */ 95, 0, 31,235, 64, 1, 38, 30,105, 22, 64,249,226, 3, 8,170, /* 0x0a10 */ 225, 3, 22,170, 4, 0, 0,148,114,101,108,111, 99, 61, 37,112,
/* 0x0a20 */ 228, 3, 21, 42,225, 3, 22,170, 99, 0,128, 82,231, 3, 24,170, /* 0x0a20 */ 10, 0, 0, 0,224, 3, 30,170,255,253,255,151,104, 14, 64,249,
/* 0x0a30 */ 168, 87, 0,249, 10, 16,159, 90,170, 91, 0,249,128, 1, 38, 30, /* 0x0a30 */ 98, 26, 64,249,200, 2, 8,139,123, 18, 64,249, 20, 45, 64,146,
/* 0x0a40 */ 229, 3, 10, 42, 9, 0, 9, 11,169, 95, 0,249,230, 3, 9, 42, /* 0x0a40 */ 162, 99, 0,249, 0, 1, 27,139, 28, 1, 20,203,168,103, 0,249,
/* 0x0a50 */ 18, 0, 0,148,109,109, 97,112, 32, 32, 97,100,100,114, 61, 37, /* 0x0a50 */ 148, 2, 2,171, 8, 0,103,158, 64, 10, 0, 84,224, 2, 64,249,
/* 0x0a60 */ 112, 32, 32,108,101,110, 61, 37,112, 32, 32,112,114,111,116, 61, /* 0x0a60 */ 191, 2, 31,235,106, 0,128,210, 73, 0,128, 82, 74, 17,159,154,
/* 0x0a70 */ 37,120, 32, 32,102,108, 97,103,115, 61, 37,120, 32, 32,102,100, /* 0x0a70 */ 31, 0, 31,235, 64, 2,128, 82, 74, 1, 20,139, 0, 16,137, 26,
/* 0x0a80 */ 61, 37,100, 32, 32,111,102,102, 61, 37,112, 32, 32,114,101,108, /* 0x0a80 */ 191, 2, 31,235,233, 7,159, 26, 73, 0, 0, 53, 66, 0, 0,181,
/* 0x0a90 */ 111, 99, 61, 37,112, 10, 0, 0,224, 3, 30,170,226,253,255,151, /* 0x0a90 */ 9, 0,130, 82, 41, 1, 0, 42, 95, 0, 31,235, 32, 1, 38, 30,
/* 0x0aa0 */ 168, 87, 64,249,227, 3, 21, 42,170, 91, 64,249,224, 3, 22,170, /* 0x0aa0 */ 107, 22, 64,249,226, 3, 10,170,228, 3, 9, 42,225, 3, 28,170,
/* 0x0ab0 */ 169, 95, 64,249,225, 3, 8,170, 98, 0,128, 82,228, 3, 10, 42, /* 0x0ab0 */ 99, 0,128, 82,231, 3, 22,170,170, 83, 0,249, 12, 16,159, 90,
/* 0x0ac0 */ 229, 3, 9, 42,148,253,255,151,245, 3, 0,170, 32, 3, 64,249, /* 0x0ac0 */ 169, 87, 0,249, 96, 1, 38, 30,229, 3, 12, 42,172, 91, 0,249,
/* 0x0ad0 */ 128, 0, 0,181, 53, 3, 0,249,248, 3, 21,170, 16, 0, 0, 20, /* 0x0ad0 */ 27, 0, 11, 11,230, 3, 27, 42, 18, 0, 0,148,109,109, 97,112,
/* 0x0ae0 */ 223, 2, 21,235,192, 1, 0, 84,225, 3, 21,170,226, 3, 22,170, /* 0x0ae0 */ 32, 32, 97,100,100,114, 61, 37,112, 32, 32,108,101,110, 61, 37,
/* 0x0af0 */ 6, 0, 0,148,109, 97,100,100,114, 61, 37,112, 32, 32, 97,100, /* 0x0af0 */ 112, 32, 32,112,114,111,116, 61, 37,120, 32, 32,102,108, 97,103,
/* 0x0b00 */ 100,114, 61, 37,112, 10, 0, 0,224, 3, 30,170,198,253,255,151, /* 0x0b00 */ 115, 61, 37,120, 32, 32,102,100, 61, 37,100, 32, 32,111,102,102,
/* 0x0b10 */ 0, 1,128, 82, 71, 0, 0, 20,245, 3, 22,170,119, 1, 0,180, /* 0x0b10 */ 61, 37,112, 32, 32,114,101,108,111, 99, 61, 37,112, 10, 0, 0,
/* 0x0b20 */ 96, 26, 64,249, 32, 1, 0,180, 96, 22, 64,249, 64, 0, 0,181, /* 0x0b20 */ 224, 3, 30,170,192,253,255,151,170, 83, 64,249,229, 3, 27, 42,
/* 0x0b30 */ 53, 3, 0,249,162, 1,102,158,224, 3, 23,170, 99, 1,102,158, /* 0x0b30 */ 169, 87, 64,249,224, 3, 28,170,172, 91, 64,249,225, 3, 10,170,
/* 0x0b40 */ 161, 3, 3,145,186,254,255,151,255, 2, 31,235,224, 7,159, 26, /* 0x0b40 */ 98, 0,128, 82,227, 3, 9, 42,228, 3, 12, 42,114,253,255,151,
/* 0x0b50 */ 159, 2, 31,235,229, 7,159, 26, 9, 0, 39, 30,101, 4, 0, 52, /* 0x0b50 */ 251, 3, 0,170,224, 2, 64,249,128, 0, 0,181,251, 2, 0,249,
/* 0x0b60 */ 64, 4, 0, 52, 96, 22, 64,249, 0, 4, 0,181, 96, 66, 64,185, /* 0x0b60 */ 246, 3, 27,170, 16, 0, 0, 20,159, 3, 27,235,192, 1, 0, 84,
/* 0x0b70 */ 192, 3, 0, 52, 99, 2, 27,203, 33, 0,128, 82,163, 2, 3,139, /* 0x0b70 */ 225, 3, 27,170,226, 3, 28,170, 6, 0, 0,148,109, 97,100,100,
/* 0x0b80 */ 1,128,186,114, 98, 32, 1,145,228, 3, 21,170,165, 95, 0,249, /* 0x0b80 */ 114, 61, 37,112, 32, 32, 97,100,100,114, 61, 37,112, 10, 0, 0,
/* 0x0b90 */ 64, 48, 64,185, 0, 32, 0,209,186, 2, 0,139,161,106, 32,184, /* 0x0b90 */ 224, 3, 30,170,164,253,255,151, 0, 1,128, 82, 82, 0, 0, 20,
/* 0x0ba0 */ 0,120,128, 82,224,203,186,114,225, 3, 26,170, 64, 7, 0,185, /* 0x0ba0 */ 251, 3, 28,170,117, 1, 0,180, 96, 26, 64,249, 32, 1, 0,180,
/* 0x0bb0 */ 11, 0, 0,148,104, 97,116, 99,104, 61, 37,112, 32, 32,115,101, /* 0x0bb0 */ 96, 22, 64,249, 64, 0, 0,181,251, 2, 0,249,130, 1,102,158,
/* 0x0bc0 */ 99,112, 61, 37,112, 32, 32,115,101,103,112, 61, 37,112, 32, 32, /* 0x0bc0 */ 224, 3, 21,170, 67, 1,102,158,161, 3, 3,145,152,254,255,151,
/* 0x0bd0 */ 109,104,100,114, 61, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, /* 0x0bd0 */ 160, 95, 64,249,225, 3, 21,170, 99, 22, 64,249,226, 3, 20,170,
/* 0x0be0 */ 145,253,255,151,165, 95, 64,249,246, 3, 20,203,214, 46, 64,242, /* 0x0be0 */ 100, 66, 64,185,144,253,255,151,191, 2, 31,235,224, 7,159, 26,
/* 0x0bf0 */ 97, 0, 0, 84, 5, 2, 0, 52, 8, 0, 0, 20,161, 2, 20,139, /* 0x0bf0 */ 159, 2, 31,235,229, 7,159, 26,252, 3, 0, 42,197, 4, 0, 52,
/* 0x0c00 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 22,235, /* 0x0c00 */ 160, 4, 0, 52, 96, 22, 64,249, 96, 4, 0,181, 96, 66, 64,185,
/* 0x0c10 */ 161,255,255, 84,248,255,255, 23, 98, 62, 64,185,224, 3, 21,170, /* 0x0c10 */ 32, 4, 0, 52, 99, 2, 26,203, 33, 0,128, 82, 99,244,126,146,
/* 0x0c20 */ 225, 3, 20,170, 57,253,255,151, 96, 0, 0, 52, 64, 1,128, 82, /* 0x0c20 */ 1,128,186,114, 99, 3, 3,139,228, 3, 27,170, 98, 32, 1,145,
/* 0x0c30 */ 113,254,255,151, 0, 1,102,158,214, 2, 20,139,181, 2, 22,139, /* 0x0c30 */ 165, 91, 0,249, 64, 48, 64,185, 0,124, 2, 83, 0, 8, 0, 81,
/* 0x0c40 */ 191, 2, 0,235,194, 1, 0, 84,245, 4, 0,180, 1, 1,102,158, /* 0x0c40 */ 0,244,126,211,120, 3, 0,139, 97,107, 32,184, 0,120,128, 82,
/* 0x0c50 */ 98, 62, 64,185,224, 3, 21,170, 67, 6,128, 82, 4, 0,128, 18, /* 0x0c50 */ 224,203,186,114,225, 3, 24,170, 0, 7, 0,185, 11, 0, 0,148,
/* 0x0c60 */ 5, 0,128, 82, 33, 0, 21,203, 43,253,255,151,191, 2, 0,235, /* 0x0c60 */ 104, 97,116, 99,104, 61, 37,112, 32, 32,115,101, 99,112, 61, 37,
/* 0x0c70 */ 160, 3, 0, 84, 32, 1,128, 82,238,255,255, 23, 32, 1, 38, 30, /* 0x0c70 */ 112, 32, 32,115,101,103,112, 61, 37,112, 32, 32,109,104,100,114,
/* 0x0c80 */ 32, 3, 0, 52,129, 14, 0,145, 33, 44, 64,146, 63, 12, 0,241, /* 0x0c80 */ 61, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170,102,253,255,151,
/* 0x0c90 */ 168, 2, 0, 84,224, 3, 21,170, 25,253,255,151, 18, 0, 0, 20, /* 0x0c90 */ 165, 91, 64,249,227, 3, 20,203, 99, 44, 64,242, 97, 0, 0, 84,
/* 0x0ca0 */ 0, 16, 0, 81, 31, 4, 0,113,232, 1, 0, 84,192, 1,102,158, /* 0x0ca0 */ 69, 2, 0, 52, 8, 0, 0, 20, 97, 3, 20,139, 0, 0,128,210,
/* 0x0cb0 */ 225, 3, 19,170, 92,253,255,151, 96, 10, 64,185, 31, 16, 0,113, /* 0x0cb0 */ 63,104, 32, 56, 0, 4, 0,145, 31, 0, 3,235,161,255,255, 84,
/* 0x0cc0 */ 33, 1, 0, 84,224, 1,102,158,122, 66, 0,145,225, 3, 26,170, /* 0x0cc0 */ 248,255,255, 23, 98, 62, 64,185,224, 3, 27,170,225, 3, 20,170,
/* 0x0cd0 */ 226, 3, 24,170, 84,253,255,151, 96,138, 64,249, 0, 0, 24,139, /* 0x0cd0 */ 163, 91, 0,249, 13,253,255,151,163, 91, 64,249, 96, 0, 0, 52,
/* 0x0ce0 */ 96,138, 0,249, 96, 6, 64,185,156, 7, 0, 17,115, 2, 0,139, /* 0x0ce0 */ 64, 1,128, 82, 68,254,255,151, 0, 1,102,158, 99, 0, 20,139,
/* 0x0cf0 */ 20,255,255, 23,225, 3, 26,170, 5, 0, 0,148,100,111, 95,120, /* 0x0cf0 */ 102, 3, 3,139,223, 0, 0,235, 2, 2, 0, 84, 6, 5, 0,180,
/* 0x0d00 */ 109, 97,112, 61, 32, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, /* 0x0d00 */ 1, 1,102,158, 98, 62, 64,185,224, 3, 6,170, 67, 2,130, 82,
/* 0x0d10 */ 69,253,255,151,224, 3, 26,170,232, 39, 70,109,243, 83, 65,169, /* 0x0d10 */ 4, 0,128, 18, 5, 0,128, 82,166, 91, 0,249, 33, 0, 6,203,
/* 0x0d20 */ 234, 47, 71,109,245, 91, 66,169,236, 55, 72,109,247, 99, 67,169, /* 0x0d20 */ 253,252,255,151,166, 91, 64,249,223, 0, 0,235,128, 3, 0, 84,
/* 0x0d30 */ 238, 63, 73,109,249,107, 68,169,251,115, 69,169,253,123,205,168, /* 0x0d30 */ 32, 1,128, 82,236,255,255, 23, 60, 3, 0, 52,129, 14, 0,145,
/* 0x0d40 */ 192, 3, 95,214,255, 3, 3,209,253,123, 2,169,253,131, 0,145, /* 0x0d40 */ 33, 44, 64,146, 63, 12, 0,241,168, 2, 0, 84,224, 3, 6,170,
/* 0x0d50 */ 243, 83, 3,169,161, 47, 0,249,243, 3, 2,170, 2, 96, 0,145, /* 0x0d50 */ 235,252,255,151, 18, 0, 0, 20, 53, 2, 0,181, 0, 16, 0, 81,
/* 0x0d60 */ 162, 63, 0,249,167, 47, 64,249,244, 3, 4,170,245, 91, 4,169, /* 0x0d60 */ 31, 4, 0,113,200, 1, 0, 84,192, 1,102,158,225, 3, 19,170,
/* 0x0d70 */ 231, 96, 0,209,167, 59, 0,249,246, 3, 5,170, 5, 24, 64,185, /* 0x0d70 */ 120, 66, 0,145, 44,253,255,151,224, 1,102,158, 98, 10, 64,185,
/* 0x0d80 */ 231, 3, 0,249,245, 3, 6,170,230, 11, 0,249,167,195, 1,145, /* 0x0d80 */ 99, 14, 64,185,225, 3, 24,170,228, 3, 22,170, 38,253,255,151,
/* 0x0d90 */ 226, 7, 0,249,160, 7, 71,169,194, 0, 64,249,230, 3, 19,170, /* 0x0d90 */ 96,138, 64,249, 0, 0, 22,139, 96,138, 0,249, 96, 6, 64,185,
/* 0x0da0 */ 160, 7, 9,169,161, 47, 64,249,247, 99, 5,169,226, 15, 0,249, /* 0x0da0 */ 57, 7, 0, 17, 0,116,126,146,115, 2, 0,139, 2,255,255, 23,
/* 0x0db0 */ 247, 3, 3,170,226, 3, 4,170,227, 3, 22,170,164, 3, 2,145, /* 0x0db0 */ 225, 3, 24,170, 5, 0, 0,148,100,111, 95,120,109, 97,112, 61,
/* 0x0dc0 */ 165, 67, 0,249,249, 51, 0,249,179, 71, 0,249, 23, 0, 0,148, /* 0x0dc0 */ 32, 37,112, 10, 0, 0, 0, 0,224, 3, 30,170, 22,253,255,151,
/* 0x0dd0 */ 117,112,120, 95,109, 97,105,110, 32,115,122, 99, 61, 37,120, 32, /* 0x0dd0 */ 224, 3, 24,170,232, 39, 70,109,243, 83, 65,169,234, 47, 71,109,
/* 0x0de0 */ 32,102, 95,100,101, 99, 61, 37,112, 32, 32,102, 95,117,110,102, /* 0x0de0 */ 245, 91, 66,169,236, 55, 72,109,247, 99, 67,169,238, 63, 73,109,
/* 0x0df0 */ 61, 37,112, 32, 32, 32, 32,120,111, 61, 37,112, 40, 37,120, 32, /* 0x0df0 */ 249,107, 68,169,251,115, 69,169,253,123,205,168,192, 3, 95,214,
/* 0x0e00 */ 37,112, 41, 32, 32,120,105, 61, 37,112, 40, 37,120, 32, 37,112, /* 0x0e00 */ 255, 3, 3,209,253,123, 2,169,253,131, 0,145,243, 83, 3,169,
/* 0x0e10 */ 41, 32, 32,109,104,100,114,112,112, 61, 37,112, 32, 32,109,104, /* 0x0e10 */ 161, 47, 0,249,243, 3, 2,170, 2, 96, 0,145,162, 63, 0,249,
/* 0x0e20 */ 100,114,112, 61, 37,112, 10, 0,224, 3, 30,170,254,252,255,151, /* 0x0e20 */ 167, 47, 64,249,244, 3, 4,170,245, 91, 4,169,231, 96, 0,209,
/* 0x0e30 */ 160,195, 1,145,161, 3, 2,145,226, 3, 20,170, 3, 0,128,210, /* 0x0e30 */ 167, 59, 0,249,246, 3, 5,170, 5, 24, 64,185,231, 3, 0,249,
/* 0x0e40 */ 251,253,255,151, 1, 0,128, 82,228, 3, 21,170,224, 3, 19,170, /* 0x0e40 */ 245, 3, 6,170,230, 11, 0,249,167,195, 1,145,226, 7, 0,249,
/* 0x0e50 */ 162, 67, 2,145, 3, 0,128, 18,229, 3, 20,170,230, 3, 22,170, /* 0x0e50 */ 160, 7, 71,169,194, 0, 64,249,230, 3, 19,170,160, 7, 9,169,
/* 0x0e60 */ 112,254,255,151,248, 3, 0,170, 96, 18, 64,185, 97,130, 0,145, /* 0x0e60 */ 161, 47, 64,249,247, 99, 5,169,226, 15, 0,249,248, 3, 3,170,
/* 0x0e70 */ 4, 0,128, 82,159, 0, 0,107,224, 10, 0, 84, 34, 0, 64,185, /* 0x0e70 */ 226, 3, 4,170,227, 3, 22,170,164, 3, 2,145,165, 67, 0,249,
/* 0x0e80 */ 95, 56, 0,113, 1, 10, 0, 84, 52, 8, 64,185, 22, 0,128, 82, /* 0x0e80 */ 249, 51, 0,249,179, 71, 0,249, 23, 0, 0,148,117,112,120, 95,
/* 0x0e90 */ 4, 0, 0,148,100,121,108,100, 61, 32, 37,115, 10, 0, 0, 0, /* 0x0e90 */ 109, 97,105,110, 32,115,122, 99, 61, 37,120, 32, 32,102, 95,101,
/* 0x0ea0 */ 224, 3, 30,170, 52, 0, 20,139,153, 2,128, 82,225, 3, 20,170, /* 0x0ea0 */ 120,112, 61, 37,112, 32, 32,102, 95,117,110,102, 61, 37,112, 32,
/* 0x0eb0 */ 221,252,255,151, 1, 0,128, 82,224, 3, 20,170,226, 3, 1, 42, /* 0x0eb0 */ 32, 32, 32,120,111, 61, 37,112, 40, 37,120, 32, 37,112, 41, 32,
/* 0x0ec0 */ 134,252,255,151,244, 3, 0, 42, 20, 3,248, 54, 64, 2,128, 82, /* 0x0ec0 */ 32,120,105, 61, 37,112, 40, 37,120, 32, 37,112, 41, 32, 32,109,
/* 0x0ed0 */ 30, 0, 0, 20, 98, 2, 64,185, 64,217,159, 82, 64,215,183,114, /* 0x0ed0 */ 104,100,114,112,112, 61, 37,112, 32, 32,109,104,100,114,112, 61,
/* 0x0ee0 */ 95, 0, 0,107, 65, 3, 0, 84, 97, 30, 64, 57,224, 3, 19,170, /* 0x0ee0 */ 37,112, 10, 0,224, 3, 30,170,207,252,255,151,160,195, 1,145,
/* 0x0ef0 */ 117, 34, 0,145, 33,124, 25, 27, 33, 32, 0, 17,140,252,255,151, /* 0x0ef0 */ 161, 3, 2,145,226, 3, 20,170, 3, 0,128,210,204,253,255,151,
/* 0x0f00 */ 96, 6, 64,185, 1, 0,128, 82, 63, 0, 0,107, 0, 3, 0, 84, /* 0x0f00 */ 1, 0,128, 82,228, 3, 21,170,224, 3, 19,170,162, 67, 2,145,
/* 0x0f10 */ 163, 2, 64,185,226, 0,128, 82, 2, 32,160,114,127, 0, 2,107, /* 0x0f10 */ 3, 0,128, 18,229, 3, 20,170,230, 3, 22,170, 65,254,255,151,
/* 0x0f20 */ 1, 2, 0, 84,182, 10, 64,185,224, 3, 20, 42,225, 3, 19,170, /* 0x0f20 */ 247, 3, 0,170, 96, 18, 64,185, 97,130, 0,145, 4, 0,128, 82,
/* 0x0f30 */ 226, 3, 23,170,227, 3, 22, 42,122,252,255,151,255, 2, 0,235, /* 0x0f30 */ 159, 0, 0,107, 32, 11, 0, 84, 34, 0, 64,185, 95, 56, 0,113,
/* 0x0f40 */ 160,252,255, 84, 96, 2,128, 82,171,253,255,151,193, 87,151, 82, /* 0x0f40 */ 65, 10, 0, 84, 52, 8, 64,185, 22, 0,128, 82, 4, 0, 0,148,
/* 0x0f50 */ 193, 95,185,114, 95, 0, 1,107,128,252,255, 84, 4, 0, 0, 20, /* 0x0f50 */ 100,121,108,100, 61, 32, 37,115, 10, 0, 0, 0,224, 3, 30,170,
/* 0x0f60 */ 33, 4, 0, 17,181, 82, 0,145,232,255,255, 23,164,131, 2,145, /* 0x0f60 */ 52, 0, 20,139,153, 2,128, 82,225, 3, 20,170,174,252,255,151,
/* 0x0f70 */ 2, 0,128,210,225, 3, 22, 42,227, 3, 20, 42,229, 3, 2,170, /* 0x0f70 */ 1, 0,128, 82,224, 3, 20,170,226, 3, 1, 42, 87,252,255,151,
/* 0x0f80 */ 230, 3, 2,170,159,140, 28,248,224, 3, 19,170, 37,254,255,151, /* 0x0f80 */ 244, 3, 0, 42, 20, 3,248, 54, 64, 2,128, 82, 30, 0, 0, 20,
/* 0x0f90 */ 243, 3, 0,170,225, 3, 19,170, 5, 0, 0,148,104, 97,116, 99, /* 0x0f90 */ 97, 2, 64,185, 64,217,159, 82, 64,215,183,114, 63, 0, 0,107,
/* 0x0fa0 */ 104, 32,112,116,114, 61, 32, 37,112, 10, 0, 0,224, 3, 30,170, /* 0x0fa0 */ 65, 3, 0, 84, 97, 30, 64, 57,224, 3, 19,170,117, 34, 0,145,
/* 0x0fb0 */ 157,252,255,151,120, 2, 0,249,224, 3, 20, 42, 74,252,255,151, /* 0x0fb0 */ 33,124, 25, 27, 33, 32, 0, 17, 93,252,255,151, 98, 6, 64,185,
/* 0x0fc0 */ 6, 0, 0, 20, 34, 4, 64,185,132, 4, 0, 17, 33, 0, 2,139, /* 0x0fc0 */ 1, 0,128, 82, 63, 0, 2,107, 0, 3, 0, 84,163, 2, 64,185,
/* 0x0fd0 */ 169,255,255, 23, 19, 0,128,210,191,131, 0,209,224, 3, 19,170, /* 0x0fd0 */ 224, 0,128, 82, 0, 32,160,114,127, 0, 0,107, 1, 2, 0, 84,
/* 0x0fe0 */ 243, 83, 67,169,245, 91, 68,169,247, 99, 69,169,249, 51, 64,249, /* 0x0fe0 */ 182, 10, 64,185,224, 3, 20, 42,225, 3, 19,170,226, 3, 24,170,
/* 0x0ff0 */ 253,123, 66,169,255, 3, 3,145,192, 3, 95,214, 0, 0, 0, 0, /* 0x0ff0 */ 227, 3, 22, 42, 75,252,255,151, 31, 3, 0,235,160,252,255, 84,
/* 0x1000 */ 20, 0, 0, 0, 0, 0, 0, 0, 1,122, 82, 0, 4,120, 30, 1, /* 0x1000 */ 96, 2,128, 82,124,253,255,151,192, 87,151, 82,192, 95,185,114,
/* 0x1010 */ 27, 12, 31, 0, 0, 0, 0, 0, 20, 0, 0, 0, 28, 0, 0, 0, /* 0x1010 */ 63, 0, 0,107,128,252,255, 84, 4, 0, 0, 20, 33, 4, 0, 17,
/* 0x1020 */ 56,241,255,255,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1020 */ 181, 82, 0,145,232,255,255, 23,164,131, 2,145, 2, 0,128,210,
/* 0x1030 */ 20, 0, 0, 0, 52, 0, 0, 0,132,241,255,255,104, 0, 0, 0, /* 0x1030 */ 229, 3, 2,170,230, 3, 2,170,225, 3, 22, 42,227, 3, 20, 42,
/* 0x1040 */ 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 76, 0, 0, 0, /* 0x1040 */ 159,140, 28,248,224, 3, 19,170,246,253,255,151,243, 3, 0,170,
/* 0x1050 */ 212,241,255,255,232, 2, 0, 0, 0, 65, 14,208, 2,157, 42,158, /* 0x1050 */ 225, 3, 19,170,226, 3, 23,170, 6, 0, 0,148,116,115, 61, 32,
/* 0x1060 */ 41, 65, 13, 29, 70,149, 38,150, 37,151, 36,152, 35,147, 40,148, /* 0x1060 */ 37,112, 32, 32,104, 97,116, 99,104, 61, 37,112, 10, 0, 0, 0,
/* 0x1070 */ 39, 66,153, 34,154, 33, 2,175,222,221,218,217,216,215,214,213, /* 0x1070 */ 224, 3, 30,170,108,252,255,151,119, 2, 0,249,224, 3, 20, 42,
/* 0x1080 */ 212,211, 12, 31, 0, 0, 0, 0, 44, 0, 0, 0,140, 0, 0, 0, /* 0x1080 */ 25,252,255,151, 6, 0, 0, 20, 34, 4, 64,185,132, 4, 0, 17,
/* 0x1090 */ 124,244,255,255,232, 0, 0, 0, 0, 65, 14, 48,157, 6,158, 5, /* 0x1090 */ 33, 0, 2,139,167,255,255, 23, 19, 0,128,210,191,131, 0,209,
/* 0x10a0 */ 65, 13, 29, 65,147, 4,148, 3, 67,149, 2,150, 1,115,222,221, /* 0x10a0 */ 224, 3, 19,170,243, 83, 67,169,245, 91, 68,169,247, 99, 69,169,
/* 0x10b0 */ 214,213,212,211, 12, 31, 0, 0, 28, 0, 0, 0,188, 0, 0, 0, /* 0x10b0 */ 249, 51, 64,249,253,123, 66,169,255, 3, 3,145,192, 3, 95,214,
/* 0x10c0 */ 52,245,255,255, 56, 0, 0, 0, 0, 65, 14, 32,157, 4,158, 3, /* 0x10c0 */ 20, 0, 0, 0, 0, 0, 0, 0, 1,122, 82, 0, 4,120, 30, 1,
/* 0x10d0 */ 65, 13, 29, 65,147, 2, 0, 0, 52, 0, 0, 0,220, 0, 0, 0, /* 0x10d0 */ 27, 12, 31, 0, 0, 0, 0, 0, 20, 0, 0, 0, 28, 0, 0, 0,
/* 0x10e0 */ 76,245,255,255,244, 1, 0, 0, 0, 65, 14, 96, 65,157, 10,158, /* 0x10e0 */ 120,240,255,255,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x10f0 */ 9, 65, 12, 29, 80, 65,147, 8,148, 7, 67,149, 6,150, 5, 2, /* 0x10f0 */ 20, 0, 0, 0, 52, 0, 0, 0,196,240,255,255,104, 0, 0, 0,
/* 0x1100 */ 113, 12, 31, 96, 68,222,221,214,213,212,211, 14, 0, 0, 0, 0, /* 0x1100 */ 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 76, 0, 0, 0,
/* 0x1110 */ 108, 0, 0, 0, 20, 1, 0, 0, 8,247,255,255, 36, 5, 0, 0, /* 0x1110 */ 20,241,255,255,232, 2, 0, 0, 0, 65, 14,208, 2,157, 42,158,
/* 0x1120 */ 0, 65, 14,208, 1,157, 26,158, 25, 65, 13, 29, 73, 5, 74, 12, /* 0x1120 */ 41, 65, 13, 29, 70,149, 38,150, 37,151, 36,152, 35,147, 40,148,
/* 0x1130 */ 5, 75, 11,147, 24,148, 23, 5, 76, 10, 5, 77, 9,151, 20,152, /* 0x1130 */ 39, 66,153, 34,154, 33, 2,175,222,221,218,217,216,215,214,213,
/* 0x1140 */ 19, 5, 72, 14, 5, 73, 13,153, 18,154, 17, 5, 78, 8, 5, 79, /* 0x1140 */ 212,211, 12, 31, 0, 0, 0, 0, 44, 0, 0, 0,140, 0, 0, 0,
/* 0x1150 */ 7,155, 16,156, 15,149, 22,150, 21, 3, 61, 1,222,221, 6, 79, /* 0x1150 */ 188,243,255,255,232, 0, 0, 0, 0, 65, 14, 48,157, 6,158, 5,
/* 0x1160 */ 6, 78, 6, 77, 6, 76, 6, 75, 6, 74, 6, 73, 6, 72,220,219, /* 0x1160 */ 65, 13, 29, 65,147, 4,148, 3, 67,149, 2,150, 1,115,222,221,
/* 0x1170 */ 218,217,216,215,214,213,212,211, 12, 31, 0, 0, 0, 0, 0, 0, /* 0x1170 */ 214,213,212,211, 12, 31, 0, 0, 28, 0, 0, 0,188, 0, 0, 0,
/* 0x1180 */ 68, 0, 0, 0,132, 1, 0, 0,188,251,255,255,184, 2, 0, 0, /* 0x1180 */ 116,244,255,255, 56, 0, 0, 0, 0, 65, 14, 32,157, 4,158, 3,
/* 0x1190 */ 0, 65, 14,192, 1, 65,157, 20,158, 19, 65, 12, 29,160, 1, 66, /* 0x1190 */ 65, 13, 29, 65,147, 2, 0, 0, 52, 0, 0, 0,220, 0, 0, 0,
/* 0x11a0 */ 147, 18,148, 17, 72,149, 16,150, 15, 78,151, 14,152, 13, 70,153, /* 0x11a0 */ 140,244,255,255,244, 1, 0, 0, 0, 65, 14, 96, 65,157, 10,158,
/* 0x11b0 */ 12, 2,133, 12, 31,192, 1, 71,222,221,217,216,215,214,213,212, /* 0x11b0 */ 9, 65, 12, 29, 80, 65,147, 8,148, 7, 67,149, 6,150, 5, 2,
/* 0x11c0 */ 211, 14, 0, 0, 0, 0, 0, 0 /* 0x11c0 */ 113, 12, 31, 96, 68,222,221,214,213,212,211, 14, 0, 0, 0, 0,
/* 0x11d0 */ 108, 0, 0, 0, 20, 1, 0, 0, 72,246,255,255,224, 5, 0, 0,
/* 0x11e0 */ 0, 65, 14,208, 1,157, 26,158, 25, 65, 13, 29, 73, 5, 74, 12,
/* 0x11f0 */ 5, 75, 11,147, 24,148, 23, 5, 72, 14, 5, 73, 13,149, 22,150,
/* 0x1200 */ 21, 5, 76, 10, 5, 77, 9,151, 20,152, 19, 5, 78, 8, 5, 79,
/* 0x1210 */ 7,153, 18,154, 17,155, 16,156, 15, 3,108, 1,222,221, 6, 79,
/* 0x1220 */ 6, 78, 6, 77, 6, 76, 6, 75, 6, 74, 6, 73, 6, 72,220,219,
/* 0x1230 */ 218,217,216,215,214,213,212,211, 12, 31, 0, 0, 0, 0, 0, 0,
/* 0x1240 */ 68, 0, 0, 0,132, 1, 0, 0,184,251,255,255,192, 2, 0, 0,
/* 0x1250 */ 0, 65, 14,192, 1, 65,157, 20,158, 19, 65, 12, 29,160, 1, 66,
/* 0x1260 */ 147, 18,148, 17, 72,149, 16,150, 15, 78,151, 14,152, 13, 70,153,
/* 0x1270 */ 12, 2,135, 12, 31,192, 1, 71,222,221,217,216,215,214,213,212,
/* 0x1280 */ 211, 14, 0, 0, 0, 0, 0, 0
}; };
+142 -122
View File
@@ -185,12 +185,12 @@ static void
unpackExtent( unpackExtent(
Extent *const xi, // input Extent *const xi, // input
Extent *const xo, // output Extent *const xo, // output
f_expand *const f_decompress, f_expand *const f_exp,
f_unfilter *f_unf f_unfilter *f_unf
) )
{ {
DPRINTF("unpackExtent in=%%p(%%x %%p) out=%%p(%%x %%p) %%p %%p\\n", DPRINTF("unpackExtent in=%%p(%%x %%p) out=%%p(%%x %%p) %%p %%p\\n",
xi, xi->size, xi->buf, xo, xo->size, xo->buf, f_decompress, f_unf); xi, xi->size, xi->buf, xo, xo->size, xo->buf, f_exp, f_unf);
while (xo->size) { while (xo->size) {
struct b_info h; struct b_info h;
// Note: if h.sz_unc == h.sz_cpr then the block was not // Note: if h.sz_unc == h.sz_cpr then the block was not
@@ -222,7 +222,7 @@ ERR_LAB
if (h.sz_cpr < h.sz_unc) { // Decompress block if (h.sz_cpr < h.sz_unc) { // Decompress block
size_t out_len = h.sz_unc; // EOF for lzma size_t out_len = h.sz_unc; // EOF for lzma
int const j = (*f_decompress)(xi->buf, h.sz_cpr, int const j = (*f_exp)(xi->buf, h.sz_cpr,
xo->buf, &out_len, h.b_method); xo->buf, &out_len, h.b_method);
if (j != 0 || out_len != (nrv_uint)h.sz_unc) if (j != 0 || out_len != (nrv_uint)h.sz_unc)
err_exit(7); err_exit(7);
@@ -314,8 +314,8 @@ typedef struct {
unsigned cmdsize; unsigned cmdsize;
} Mach_load_command; } Mach_load_command;
enum e4 { enum e4 {
LC_SEGMENT = 0x1, // LC_SEGMENT = 0x1,
LC_SEGMENT_64 = 0x19, // LC_SEGMENT_64 = 0x19,
LC_THREAD = 0x4, LC_THREAD = 0x4,
LC_UNIXTHREAD = 0x5, LC_UNIXTHREAD = 0x5,
LC_LOAD_DYLINKER = 0xe LC_LOAD_DYLINKER = 0xe
@@ -380,6 +380,9 @@ typedef struct {
enum e7 { enum e7 {
THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4 THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4
}; };
enum e10 {
LC_SEGMENT = 0x19 // LC_SEGMENT_64
};
#elif defined(__arm__) //}{ #elif defined(__arm__) //}{
typedef struct { typedef struct {
@@ -390,11 +393,14 @@ typedef struct {
uint32_t cpsr; uint32_t cpsr;
} Mach_thread_state; // Mach_ARM_thead_state; } Mach_thread_state; // Mach_ARM_thead_state;
enum e6 { enum e6 {
THREAD_STATE = 4 // ARM_THREAD_STATE THREAD_STATE = 1 // ARM_THREAD_STATE
}; };
enum e7 { enum e7 {
THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4 THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4
}; };
enum e10 {
LC_SEGMENT = 0x1
};
#elif defined(__x86_64__) //}{ #elif defined(__x86_64__) //}{
typedef struct { typedef struct {
@@ -411,6 +417,9 @@ typedef struct {
enum e7 { enum e7 {
THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4 THREAD_STATE_COUNT = sizeof(Mach_thread_state)/4
}; };
enum e10 {
LC_SEGMENT = 0x19 // LC_SEGMENT_64
};
#endif //} #endif //}
@@ -429,14 +438,16 @@ typedef union {
#define MAP_FIXED 0x10 #define MAP_FIXED 0x10
#define MAP_PRIVATE 0x02 #define MAP_PRIVATE 0x02
#define MAP_ANON 0x1000 #if SIMULATE_ON_LINUX_EABI4 //{
#undef MAP_ANON // x86 DEBUG ONLY #define MAP_ANON 0x20 /* SIMULATE_ON_LINUX_EABI4 */
#define MAP_ANON 0x20 // x86 DEBUG ONLY #else //}{
#define MAP_ANON 0x1000 /* native darwin usual case */
#endif //}
#define MAP_ANON_FD -1
#define PROT_READ 1 #define PROT_READ 1
#define PROT_WRITE 2 #define PROT_WRITE 2
#define PROT_EXEC 4 #define PROT_EXEC 4
#define MAP_ANON_FD -1
extern void *mmap(void *, size_t, unsigned, unsigned, int, off_t_upx_stub); extern void *mmap(void *, size_t, unsigned, unsigned, int, off_t_upx_stub);
ssize_t pread(int, void *, size_t, off_t_upx_stub); ssize_t pread(int, void *, size_t, off_t_upx_stub);
@@ -450,7 +461,7 @@ do_xmap(
Extent *const xi, Extent *const xi,
int const fdi, int const fdi,
Mach_header **mhdrpp, Mach_header **mhdrpp,
f_expand *const f_decompress, f_expand *const f_exp,
f_unfilter *const f_unf f_unfilter *const f_unf
) )
{ {
@@ -464,115 +475,124 @@ do_xmap(
for ( j=0; j < mhdr->ncmds; ++j, for ( j=0; j < mhdr->ncmds; ++j,
(sc = (Mach_segment_command *)((sc->cmdsize>>2) + (unsigned *)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 DPRINTF(" #%%d cmd=%%x cmdsize=%%x\\n", j, sc->cmd, sc->cmdsize);
&& *mhdrpp && ((*mhdrpp)->flags & MH_PIE)) { if (LC_SEGMENT==sc->cmd && sc->vmsize) {
reloc = (size_t)*mhdrpp - sc->vmaddr; if (!sc->fileoff && sc->filesize // should be __TEXT
DPRINTF("reloc=%%p\\n", reloc); && *mhdrpp && ((*mhdrpp)->flags & MH_PIE)) {
} reloc = (size_t)*mhdrpp - sc->vmaddr;
Extent xo; DPRINTF("reloc=%%p\\n", reloc);
size_t mlen = xo.size = sc->filesize; }
unsigned char *addr = xo.buf = reloc + (unsigned char *)sc->vmaddr; Extent xo;
unsigned char *haddr = sc->vmsize + addr; size_t mlen = xo.size = sc->filesize;
size_t frag = (int)(uint64_t)addr &~ PAGE_MASK; unsigned char *addr = xo.buf = reloc + (unsigned char *)sc->vmaddr;
addr -= frag; unsigned char *haddr = sc->vmsize + addr;
mlen += frag; size_t frag = (int)(uint64_t)addr &~ PAGE_MASK;
addr -= frag;
mlen += frag;
if (0!=mlen) { if (0!=mlen) {
// Decompressor can overrun the destination by 3 bytes. [x86 only] // Decompressor can overrun the destination by 3 bytes. [x86 only]
size_t const mlen3 = mlen + (xi ? 3 : 0); size_t const mlen3 = mlen + (xi ? 3 : 0);
unsigned const prot = VM_PROT_READ | VM_PROT_WRITE; unsigned const prot = VM_PROT_READ | VM_PROT_WRITE;
unsigned const flags = (*mhdrpp ? MAP_FIXED : 0) | MAP_PRIVATE | unsigned const flags = (*mhdrpp ? MAP_FIXED : 0) | MAP_PRIVATE |
((xi || 0==sc->filesize) ? MAP_ANON : 0); ((xi || 0==sc->filesize) ? MAP_ANON : 0);
int const fdm = ((0==sc->filesize) ? MAP_ANON_FD : fdi); int const fdm = ((0==sc->filesize) ? MAP_ANON_FD : fdi);
off_t_upx_stub const offset = sc->fileoff + fat_offset; off_t_upx_stub const offset = sc->fileoff + fat_offset;
DPRINTF("mmap addr=%%p len=%%p prot=%%x flags=%%x fd=%%d off=%%p reloc=%%p\\n", DPRINTF("mmap addr=%%p len=%%p prot=%%x flags=%%x fd=%%d off=%%p reloc=%%p\\n",
addr, mlen3, prot, flags, fdm, offset, reloc); addr, mlen3, prot, flags, fdm, offset, reloc);
unsigned *maddr = mmap(addr, mlen3, prot, flags, fdm, offset); unsigned *maddr = mmap(addr, mlen3, prot, flags, fdm, offset);
if (!*mhdrpp) { // MH_DYLINKER if (!*mhdrpp) { // MH_DYLINKER
*mhdrpp = (Mach_header*)maddr; *mhdrpp = (Mach_header*)maddr;
addr = (unsigned char *)maddr; addr = (unsigned char *)maddr;
reloc = (size_t)addr; reloc = (size_t)addr;
}
if (addr != (unsigned char *)maddr) {
DPRINTF("maddr=%%p addr=%%p\\n", maddr, addr);
err_exit(8);
}
} }
if (addr != (unsigned char *)maddr) { if (xi && 0!=sc->filesize) {
DPRINTF("maddr=%%p addr=%%p\\n", maddr, addr); if (0==sc->fileoff /*&& 0!=mhdrpp*/) {
err_exit(8); *mhdrpp = (Mach_header *)(void *)addr;
}
unpackExtent(xi, &xo, f_exp, f_unf);
}
DPRINTF("xi=%%p mlen=%%p fileoff=%%p nsects=%%d\\n",
xi, mlen, sc->fileoff, sc->nsects);
if (xi && mlen && !sc->fileoff && sc->nsects) {
// 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.
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+ (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+ (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 = hatch;
}
/*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 SIMULATE_ON_LINUX_EABI4 /*{*/
0!=addr &&
#endif /*}*/
addr < haddr) { // need pages for .bss
if (0!=addr && addr != mmap(addr, haddr - addr, sc->initprot,
MAP_FIXED | MAP_PRIVATE | MAP_ANON, MAP_ANON_FD, 0 ) ) {
err_exit(9);
}
}
else if (xi) { // cleanup if decompressor overrun crosses page boundary
mlen = ~PAGE_MASK & (3+ mlen);
if (mlen<=3) { // page fragment was overrun buffer only
munmap((char *)addr, mlen);
}
} }
} }
if (xi && 0!=sc->filesize) { else if (!xi // dyld
if (0==sc->fileoff /*&& 0!=mhdrpp*/) { && (LC_UNIXTHREAD==sc->cmd || LC_THREAD==sc->cmd)) {
*mhdrpp = (Mach_header *)(void *)addr; Mach_thread_command *const thrc = (Mach_thread_command *)sc;
DPRINTF("thread_command= %%p\\n", sc);
if (1
// FIXME THREAD_STATE ==thrc->flavor
// && THREAD_STATE_COUNT==thrc->count
) {
DPRINTF("thread_state= %%p flavor=%%d count=%%x reloc=%%p\\n",
&thrc->state, thrc->flavor, thrc->count, 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 *)&thrc->state;
} }
unpackExtent(xi, &xo, f_decompress, f_unf);
}
if (xi && mlen && !sc->fileoff && sc->nsects) {
// 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.
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+ (*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+ ((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 = hatch;
}
/*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 SIMULATE_ON_LINUX_EABI4 /*{*/
0!=addr &&
#endif /*}*/
addr < haddr) { // need pages for .bss
if (0!=addr && addr != mmap(addr, haddr - addr, sc->initprot,
MAP_FIXED | MAP_PRIVATE | MAP_ANON, MAP_ANON_FD, 0 ) ) {
err_exit(9);
}
}
else if (xi) { // cleanup if decompressor overrun crosses page boundary
mlen = ~PAGE_MASK & (3+ mlen);
if (mlen<=3) { // page fragment was overrun buffer only
munmap((char *)addr, mlen);
}
}
}
else if (LC_UNIXTHREAD==sc->cmd || LC_THREAD==sc->cmd) {
Mach_thread_command *const thrc = (Mach_thread_command *)sc;
DPRINTF("thread_command= %%p\\n", sc);
if (THREAD_STATE ==thrc->flavor
/* FIXME && THREAD_STATE_COUNT==thrc->count*/ ) {
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 *)&thrc->state;
} }
} }
DPRINTF("do_xmap= %%p\\n", rv); DPRINTF("do_xmap= %%p\\n", rv);
@@ -590,7 +610,7 @@ upx_main(
size_t volatile sz_compressed, // total length size_t volatile sz_compressed, // total length
Mach_header *const mhdr, // temp char[sz_mhdr] for decompressing Mach_header *const mhdr, // temp char[sz_mhdr] for decompressing
size_t const sz_mhdr, size_t const sz_mhdr,
f_expand *const f_decompress, f_expand *const f_exp,
f_unfilter *const f_unf, f_unfilter *const f_unf,
Mach_header **const mhdrpp // Out: *mhdrpp= &real Mach_header Mach_header **const mhdrpp // Out: *mhdrpp= &real Mach_header
) )
@@ -605,16 +625,16 @@ upx_main(
xo.size = ((struct b_info const *)(void const *)xi.buf)->sz_unc; xo.size = ((struct b_info const *)(void const *)xi.buf)->sz_unc;
xi0 = xi; xi0 = xi;
DPRINTF("upx_main szc=%%x f_dec=%%p f_unf=%%p " DPRINTF("upx_main szc=%%x f_exp=%%p f_unf=%%p "
" xo=%%p(%%x %%p) xi=%%p(%%x %%p) mhdrpp=%%p mhdrp=%%p\\n", " xo=%%p(%%x %%p) xi=%%p(%%x %%p) mhdrpp=%%p mhdrp=%%p\\n",
sz_compressed, f_decompress, f_unf, &xo, xo.size, xo.buf, sz_compressed, f_exp, f_unf, &xo, xo.size, xo.buf,
&xi, xi.size, xi.buf, mhdrpp, *mhdrpp); &xi, xi.size, xi.buf, mhdrpp, *mhdrpp);
// Uncompress Macho headers // Uncompress Macho headers
unpackExtent(&xi, &xo, f_decompress, 0); // never filtered? unpackExtent(&xi, &xo, f_exp, 0); // never filtered?
// Overwrite the OS-chosen address space at *mhdrpp. // Overwrite the OS-chosen address space at *mhdrpp.
hatch = do_xmap(mhdr, fat_offset, &xi0, MAP_ANON_FD, mhdrpp, f_decompress, f_unf); hatch = do_xmap(mhdr, fat_offset, &xi0, MAP_ANON_FD, mhdrpp, f_exp, f_unf);
{ // Map dyld dynamic loader { // Map dyld dynamic loader
Mach_load_command const *lc = (Mach_load_command const *)(1+ mhdr); Mach_load_command const *lc = (Mach_load_command const *)(1+ mhdr);
@@ -654,7 +674,7 @@ ERR_LAB
} // switch } // switch
Mach_header *dyhdr = 0; Mach_header *dyhdr = 0;
ts = (Mach_thread_state *)do_xmap(mhdr, fat_offset, 0, fdi, &dyhdr, 0, 0); ts = (Mach_thread_state *)do_xmap(mhdr, fat_offset, 0, fdi, &dyhdr, 0, 0);
DPRINTF("hatch ptr= %%p\\n", ts); DPRINTF("ts= %%p hatch=%%p\\n", ts, hatch);
#if defined(__AARCH64EL__) // { #if defined(__AARCH64EL__) // {
ts->x0 = (uint64_t)hatch; ts->x0 = (uint64_t)hatch;
#elif defined(__arm__) //}{ #elif defined(__arm__) //}{
@@ -768,10 +788,10 @@ finish:
case 'x': { case 'x': {
buf[0] = '0'; buf[0] = '0';
buf[1] = 'x'; buf[1] = 'x';
n+= write(2, buf, heximal(va_arg(va, int), buf, 2)); n+= write(2, buf, heximal(va_arg(va, unsigned int), buf, 2));
} break; } break;
case 's': { case 's': {
char *s0= (char *)va_arg(va, char *), *s= s0; char *s0= (char *)va_arg(va, unsigned char *), *s= s0;
if (s) while (*s) ++s; if (s) while (*s) ++s;
n+= write(2, s0, s - s0); n+= write(2, s0, s - s0);
} break; } break;
+6 -6
View File
@@ -176,8 +176,8 @@ unfold: // lr= &b_info; sp/ fd,%ADRU,%LENU,%entry,%&Mach_header
sub r_RELOC,r0,rcx // relocation constant = new - old sub r_RELOC,r0,rcx // relocation constant = new - old
add rcx,r_EXP,r_RELOC add rcx,r_EXP,r_RELOC
str rcx,[sp,#-NBPW]! // P_10 new f_exp str rcx,[sp,#-NBPW]! // P_10 new f_exp
mov r0,r0,lsr #PAGE_SHIFT mov r0,rcx,lsr #PAGE_SHIFT
mov r0,r0,lsl #PAGE_SHIFT mov r0,r0, lsl #PAGE_SHIFT // page boundary below new f_exp
str r0,[sp,#-NBPW]! // P_11 address str r0,[sp,#-NBPW]! // P_11 address
sub rdx,rdx,r0 sub rdx,rdx,r0
str rdx,[sp,#-NBPW]! // P_12 length str rdx,[sp,#-NBPW]! // P_12 length
@@ -186,13 +186,13 @@ unfold: // lr= &b_info; sp/ fd,%ADRU,%LENU,%entry,%&Mach_header
ldr rax,[rbx,#sz_unc] // dstlen 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 add arg3,rbx,r_RELOC // dst= new unfold
mov r_FOLD,arg3 // execute here mov r_FOLD,arg3 // remember where to execute after unfold
ldr rax,[rbx,#sz_cpr] // srclen
ldr arg5,[rbx,#b_method] ldr arg5,[rbx,#b_method]
ldr arg2,[rbx,#sz_cpr] // srclen
add arg1,rbx,#sz_b_info // src add arg1,rbx,#sz_b_info // src
mov arg2,rax // srclen str arg5,[sp,#-NBPW]! // P_14 ABI: fifth arg goes on stack
blx r_EXP // old f_exp; new f_exp lacks PROT_EXEC blx r_EXP // old f_exp; new f_exp lacks PROT_EXEC
add sp,sp,#NBPW // P_13 toss dstlen add sp,sp,#2*NBPW // P_14,P_13 toss fifth arg and dstlen
// PROT_EXEC // PROT_EXEC
ldr arg2,[sp],#NBPW // P_12 length ldr arg2,[sp],#NBPW // P_12 length
+39 -2
View File
@@ -90,13 +90,13 @@ fold_begin:
r9= f_exp; r10= ADRX; r11= LENX r9= f_exp; r10= ADRX; r11= LENX
rsp/ fd,ADRU,LENU,%entry,&Mach_header rsp/ fd,ADRU,LENU,%entry,&Mach_header
*/ */
r_t0 .req r12 // scratch value r_t0 .req r12 // scratch
r_LENX .req r11 r_LENX .req r11
r_ADRX .req r10 r_ADRX .req r10
r_EXP .req r9 r_EXP .req r9
r_OSTK .req r8 r_OSTK .req r8
ldr arg4,[arg1,#sz_unc + sz_l_info + sz_p_info] // sz_unc of Mach_header ldr arg4,[r_ADRX,#sz_unc + sz_l_info + sz_p_info] // sz_unc of Mach_header
mov r_t0,#(1<<13) mov r_t0,#(1<<13)
cmp arg4,r_t0 cmp arg4,r_t0
movlo arg4,r_t0 // at least 8KiB movlo arg4,r_t0 // at least 8KiB
@@ -111,6 +111,7 @@ r_OSTK .req r8
mov arg5,r_EXP mov arg5,r_EXP
stmdb sp!,{arg5,arg6,arg7} // ABI: only arg1,arg2,arg3,arg4 in registers 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 **) // upx_main(r0=&l_info, r1=len_cpr, r2=temp[sz_mhdr], r3=sz_mhdr, r4=f_exp, r5=f_unf, r6=mhdr **)
bkpt
bl upx_main // OUT: r0= &Mach_thread_state of dyld; will be in temp mhdr[] bl upx_main // OUT: r0= &Mach_thread_state of dyld; will be in temp mhdr[]
ARM_ts_pc= 14*NBPW ARM_ts_pc= 14*NBPW
@@ -262,4 +263,40 @@ bswap9:
bge bswap0 bge bswap0
ret ret
bad__udivsi3:
bkpt
__udivsi3: .globl __udivsi3
cmp r1,#10
bne bad__udivsi3
div10: .globl div10
mov ip,r0 @ extra copy used at end
sub r1,r1,r1 @ hi
mov r2,r0 @ copy lo
adds r0,r0,r0,lsl #3 @ 9*lo
adc r1,r1,r1,lsl #3 @ 9*hi + C
add r1,r1,r2,lsr #(32 - 3) @ bits shifted from lo to hi
mov r2,r0 @ copy lo
adds r0,r0,r0,lsl #4
adc r1,r1,r1,lsl #4
add r1,r1,r2,lsr #(32 - 4) @ * 0x99
mov r2,r0 @ copy lo
adds r0,r0,r0,lsl #8
adc r1,r1,r1,lsl #8
add r1,r1,r2,lsr #(32 - 8) @ * 0x9999
mov r2,r0 @ copy lo
adds r0,r0,r0,lsl #16
adc r1,r1,r1,lsl #16
add r1,r1,r2,lsr #(32 - 16) @ * 0x99999999
subs r0,r0,ip,lsl #(32 - 1) @ - * 0x80000000
sbc r1,r1,ip,lsr #1 @ * 0x19999999
adds r0,r0,ip
adc r0,r1,#0 @ * 0x0.1999999a
ret
/* vim:set ts=8 sw=8 et: */ /* vim:set ts=8 sw=8 et: */
+1 -1
View File
@@ -177,7 +177,7 @@ unfold: // lr= &b_info; sp/ fd,%ADRU,%LENU,%entry,%&Mach_header,HOLE
sub r_RELOC,x0,rcx // relocation constant = new - old sub r_RELOC,x0,rcx // relocation constant = new - old
add rcx,r_EXP,r_RELOC add rcx,r_EXP,r_RELOC
str rcx,[sp,#-4*NBPW]! // P_10 new f_exp str rcx,[sp,#-4*NBPW]! // P_10 new f_exp
and x0,x0,#~0<<PAGE_SHIFT and x0,rcx,#~0<<PAGE_SHIFT // page boundary below new f_exp
str x0,[sp,#1*NBPW] // P_11 address str x0,[sp,#1*NBPW] // P_11 address
sub rdx,rdx,x0 sub rdx,rdx,x0
str rdx,[sp,#2*NBPW] // P_12 length str rdx,[sp,#2*NBPW] // P_12 length
+1 -1
View File
@@ -101,7 +101,7 @@ r_EXP .req x28
#define t0w w9 /* scratch value */ #define t0w w9 /* scratch value */
mov arg1,r_ADRX // &{l_info; p_info; b_info} mov arg1,r_ADRX // &{l_info; p_info; b_info}
mov arg2,r_LENX mov arg2,r_LENX
ldr arg4w,[arg1,#sz_unc + sz_l_info + sz_p_info] // sz_unc of Mach_header ldr arg4w,[r_ADRX,#sz_unc + sz_l_info + sz_p_info] // sz_unc of Mach_header
mov t0w,#(1<<13) mov t0w,#(1<<13)
cmp arg4w,t0w cmp arg4w,t0w
csel arg4w,arg4w,t0w,hi // at least 8KiB csel arg4w,arg4w,t0w,hi // at least 8KiB
+34 -34
View File
@@ -72,7 +72,7 @@ LOAD tmp/amd64-darwin.macho-main.o
.plt .plt
*(.plt) *(.plt)
.text 0x0000000008048000 0xee5 .text 0x0000000008048000 0xf89
*(.text .stub .text.* .gnu.linkonce.t.*) *(.text .stub .text.* .gnu.linkonce.t.*)
.text 0x0000000008048000 0x157 tmp/amd64-darwin.macho-fold.o .text 0x0000000008048000 0x157 tmp/amd64-darwin.macho-fold.o
0x00000000080480b8 munmap 0x00000000080480b8 munmap
@@ -87,17 +87,17 @@ LOAD tmp/amd64-darwin.macho-main.o
0x00000000080480b4 mprotect 0x00000000080480b4 mprotect
0x00000000080480c0 close 0x00000000080480c0 close
*fill* 0x0000000008048157 0x1 90909090 *fill* 0x0000000008048157 0x1 90909090
.text 0x0000000008048158 0xd8d tmp/amd64-darwin.macho-main.o .text 0x0000000008048158 0xe31 tmp/amd64-darwin.macho-main.o
0x000000000804875f do_xmap 0x000000000804875e do_xmap
0x0000000008048c72 upx_main 0x0000000008048d10 upx_main
*(.text.*personality*) *(.text.*personality*)
*(.gnu.warning) *(.gnu.warning)
.fini .fini
*(.fini) *(.fini)
0x0000000008048ee5 PROVIDE (__etext, .) 0x0000000008048f89 PROVIDE (__etext, .)
0x0000000008048ee5 PROVIDE (_etext, .) 0x0000000008048f89 PROVIDE (_etext, .)
0x0000000008048ee5 PROVIDE (etext, .) 0x0000000008048f89 PROVIDE (etext, .)
.rodata .rodata
*(.rodata .rodata.* .gnu.linkonce.r.*) *(.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 .gcc_except_table.*) *(.gcc_except_table .gcc_except_table.*)
0x0000000008048ee5 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff)) 0x0000000008048f89 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff))
0x0000000008049ee5 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000) 0x0000000008049f89 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000)
.eh_frame .eh_frame
*(.eh_frame) *(.eh_frame)
@@ -129,22 +129,22 @@ LOAD tmp/amd64-darwin.macho-main.o
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tbss .tbss.* .gnu.linkonce.tb.*)
*(.tcommon) *(.tcommon)
.preinit_array 0x0000000008049ee5 0x0 .preinit_array 0x0000000008049f89 0x0
0x0000000008049ee5 PROVIDE (__preinit_array_start, .) 0x0000000008049f89 PROVIDE (__preinit_array_start, .)
*(.preinit_array) *(.preinit_array)
0x0000000008049ee5 PROVIDE (__preinit_array_end, .) 0x0000000008049f89 PROVIDE (__preinit_array_end, .)
.init_array 0x0000000008049ee5 0x0 .init_array 0x0000000008049f89 0x0
0x0000000008049ee5 PROVIDE (__init_array_start, .) 0x0000000008049f89 PROVIDE (__init_array_start, .)
*(SORT(.init_array.*)) *(SORT(.init_array.*))
*(.init_array) *(.init_array)
0x0000000008049ee5 PROVIDE (__init_array_end, .) 0x0000000008049f89 PROVIDE (__init_array_end, .)
.fini_array 0x0000000008049ee5 0x0 .fini_array 0x0000000008049f89 0x0
0x0000000008049ee5 PROVIDE (__fini_array_start, .) 0x0000000008049f89 PROVIDE (__fini_array_start, .)
*(.fini_array) *(.fini_array)
*(SORT(.fini_array.*)) *(SORT(.fini_array.*))
0x0000000008049ee5 PROVIDE (__fini_array_end, .) 0x0000000008049f89 PROVIDE (__fini_array_end, .)
.ctors .ctors
*crtbegin*.o(.ctors) *crtbegin*.o(.ctors)
@@ -170,35 +170,35 @@ LOAD tmp/amd64-darwin.macho-main.o
.got .got
*(.got) *(.got)
0x0000000008049ee5 . = (. DATA_SEGMENT_RELRO_END 0xc) 0x0000000008049f89 . = (. DATA_SEGMENT_RELRO_END 0xc)
.got.plt .got.plt
*(.got.plt) *(.got.plt)
.data 0x0000000008049ee8 0x0 .data 0x0000000008049f8c 0x0
*(.data .data.* .gnu.linkonce.d.*) *(.data .data.* .gnu.linkonce.d.*)
.data 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-fold.o .data 0x0000000008049f8c 0x0 tmp/amd64-darwin.macho-fold.o
.data 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-main.o .data 0x0000000008049f8c 0x0 tmp/amd64-darwin.macho-main.o
*(.gnu.linkonce.d.*personality*) *(.gnu.linkonce.d.*personality*)
.data1 .data1
*(.data1) *(.data1)
0x0000000008049ee8 _edata = . 0x0000000008049f8c _edata = .
0x0000000008049ee8 PROVIDE (edata, .) 0x0000000008049f8c PROVIDE (edata, .)
0x0000000008049ee8 __bss_start = . 0x0000000008049f8c __bss_start = .
.bss 0x0000000008049ee8 0x0 .bss 0x0000000008049f8c 0x0
*(.dynbss) *(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*) *(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-fold.o .bss 0x0000000008049f8c 0x0 tmp/amd64-darwin.macho-fold.o
.bss 0x0000000008049ee8 0x0 tmp/amd64-darwin.macho-main.o .bss 0x0000000008049f8c 0x0 tmp/amd64-darwin.macho-main.o
*(COMMON) *(COMMON)
0x0000000008049ee8 . = ALIGN ((. != 0x0)?0x4:0x1) 0x0000000008049f8c . = ALIGN ((. != 0x0)?0x4:0x1)
0x0000000008049ee8 . = ALIGN (0x4) 0x0000000008049f8c . = ALIGN (0x4)
0x0000000008049ee8 . = ALIGN (0x4) 0x0000000008049f8c . = ALIGN (0x4)
0x0000000008049ee8 _end = . 0x0000000008049f8c _end = .
0x0000000008049ee8 PROVIDE (end, .) 0x0000000008049f8c PROVIDE (end, .)
0x0000000008049ee8 . = DATA_SEGMENT_END (.) 0x0000000008049f8c . = DATA_SEGMENT_END (.)
.stab .stab
*(.stab) *(.stab)
+49 -47
View File
@@ -72,33 +72,35 @@ LOAD tmp/arm.v5a-darwin.macho-main.o
.plt .plt
*(.plt) *(.plt)
.text 0x0000000008048000 0xfa8 .text 0x0000000008048000 0x1108
*(.text .stub .text.* .gnu.linkonce.t.*) *(.text .stub .text.* .gnu.linkonce.t.*)
.text 0x0000000008048000 0x1d8 tmp/arm.v5a-darwin.macho-fold.o .text 0x0000000008048000 0x244 tmp/arm.v5a-darwin.macho-fold.o
0x0000000008048128 munmap 0x000000000804812c munmap
0x00000000080481ac bswap 0x00000000080481b0 bswap
0x0000000008048150 mmap 0x00000000080481e0 __udivsi3
0x00000000080480d8 write 0x0000000008048154 mmap
0x00000000080480dc write
0x0000000008048000 _start 0x0000000008048000 _start
0x00000000080480c4 read 0x00000000080480c8 read
0x00000000080480b0 spin 0x00000000080480b4 spin
0x0000000008048188 pread 0x000000000804818c pread
0x00000000080480b4 exit 0x00000000080480b8 exit
0x0000000008048114 brk 0x0000000008048118 brk
0x00000000080480ec open 0x00000000080480f0 open
0x000000000804813c mprotect 0x00000000080481e8 div10
0x0000000008048100 close 0x0000000008048140 mprotect
.text 0x00000000080481d8 0xdd0 tmp/arm.v5a-darwin.macho-main.o 0x0000000008048104 close
0x00000000080487bc do_xmap .text 0x0000000008048244 0xec4 tmp/arm.v5a-darwin.macho-main.o
0x0000000008048d08 upx_main 0x0000000008048828 do_xmap
0x0000000008048e60 upx_main
*(.text.*personality*) *(.text.*personality*)
*(.gnu.warning) *(.gnu.warning)
.fini .fini
*(.fini) *(.fini)
0x0000000008048fa8 PROVIDE (__etext, .) 0x0000000008049108 PROVIDE (__etext, .)
0x0000000008048fa8 PROVIDE (_etext, .) 0x0000000008049108 PROVIDE (_etext, .)
0x0000000008048fa8 PROVIDE (etext, .) 0x0000000008049108 PROVIDE (etext, .)
.rodata .rodata
*(.rodata .rodata.* .gnu.linkonce.r.*) *(.rodata .rodata.* .gnu.linkonce.r.*)
@@ -114,8 +116,8 @@ LOAD tmp/arm.v5a-darwin.macho-main.o
.gcc_except_table .gcc_except_table
*(.gcc_except_table .gcc_except_table.*) *(.gcc_except_table .gcc_except_table.*)
0x0000000008048fa8 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff)) 0x0000000008049108 . = (ALIGN (0x1000) - ((0x1000 - .) & 0xfff))
0x0000000008049fa8 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000) 0x000000000804a108 . = (0x1000 DATA_SEGMENT_ALIGN 0x1000)
.eh_frame .eh_frame
*(.eh_frame) *(.eh_frame)
@@ -130,22 +132,22 @@ LOAD tmp/arm.v5a-darwin.macho-main.o
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tbss .tbss.* .gnu.linkonce.tb.*)
*(.tcommon) *(.tcommon)
.preinit_array 0x0000000008049fa8 0x0 .preinit_array 0x000000000804a108 0x0
0x0000000008049fa8 PROVIDE (__preinit_array_start, .) 0x000000000804a108 PROVIDE (__preinit_array_start, .)
*(.preinit_array) *(.preinit_array)
0x0000000008049fa8 PROVIDE (__preinit_array_end, .) 0x000000000804a108 PROVIDE (__preinit_array_end, .)
.init_array 0x0000000008049fa8 0x0 .init_array 0x000000000804a108 0x0
0x0000000008049fa8 PROVIDE (__init_array_start, .) 0x000000000804a108 PROVIDE (__init_array_start, .)
*(SORT(.init_array.*)) *(SORT(.init_array.*))
*(.init_array) *(.init_array)
0x0000000008049fa8 PROVIDE (__init_array_end, .) 0x000000000804a108 PROVIDE (__init_array_end, .)
.fini_array 0x0000000008049fa8 0x0 .fini_array 0x000000000804a108 0x0
0x0000000008049fa8 PROVIDE (__fini_array_start, .) 0x000000000804a108 PROVIDE (__fini_array_start, .)
*(.fini_array) *(.fini_array)
*(SORT(.fini_array.*)) *(SORT(.fini_array.*))
0x0000000008049fa8 PROVIDE (__fini_array_end, .) 0x000000000804a108 PROVIDE (__fini_array_end, .)
.ctors .ctors
*crtbegin*.o(.ctors) *crtbegin*.o(.ctors)
@@ -171,35 +173,35 @@ LOAD tmp/arm.v5a-darwin.macho-main.o
.got .got
*(.got) *(.got)
0x0000000008049fa8 . = (. DATA_SEGMENT_RELRO_END 0xc) 0x000000000804a108 . = (. DATA_SEGMENT_RELRO_END 0xc)
.got.plt .got.plt
*(.got.plt) *(.got.plt)
.data 0x0000000008049fa8 0x0 .data 0x000000000804a108 0x0
*(.data .data.* .gnu.linkonce.d.*) *(.data .data.* .gnu.linkonce.d.*)
.data 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-fold.o .data 0x000000000804a108 0x0 tmp/arm.v5a-darwin.macho-fold.o
.data 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-main.o .data 0x000000000804a108 0x0 tmp/arm.v5a-darwin.macho-main.o
*(.gnu.linkonce.d.*personality*) *(.gnu.linkonce.d.*personality*)
.data1 .data1
*(.data1) *(.data1)
0x0000000008049fa8 _edata = . 0x000000000804a108 _edata = .
0x0000000008049fa8 PROVIDE (edata, .) 0x000000000804a108 PROVIDE (edata, .)
0x0000000008049fa8 __bss_start = . 0x000000000804a108 __bss_start = .
.bss 0x0000000008049fa8 0x0 .bss 0x000000000804a108 0x0
*(.dynbss) *(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*) *(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-fold.o .bss 0x000000000804a108 0x0 tmp/arm.v5a-darwin.macho-fold.o
.bss 0x0000000008049fa8 0x0 tmp/arm.v5a-darwin.macho-main.o .bss 0x000000000804a108 0x0 tmp/arm.v5a-darwin.macho-main.o
*(COMMON) *(COMMON)
0x0000000008049fa8 . = ALIGN ((. != 0x0)?0x4:0x1) 0x000000000804a108 . = ALIGN ((. != 0x0)?0x4:0x1)
0x0000000008049fa8 . = ALIGN (0x4) 0x000000000804a108 . = ALIGN (0x4)
0x0000000008049fa8 . = ALIGN (0x4) 0x000000000804a108 . = ALIGN (0x4)
0x0000000008049fa8 _end = . 0x000000000804a108 _end = .
0x0000000008049fa8 PROVIDE (end, .) 0x000000000804a108 PROVIDE (end, .)
0x0000000008049fa8 . = DATA_SEGMENT_END (.) 0x000000000804a108 . = DATA_SEGMENT_END (.)
.stab .stab
*(.stab) *(.stab)
+44 -44
View File
@@ -67,7 +67,7 @@ LOAD tmp/arm64-darwin.macho-main.o
*(.iplt) *(.iplt)
.iplt 0x0000000000400080 0x0 tmp/arm64-darwin.macho-fold.o .iplt 0x0000000000400080 0x0 tmp/arm64-darwin.macho-fold.o
.text 0x0000000000400078 0xffc .text 0x0000000000400078 0x10c0
*(.text.unlikely .text.*_unlikely .text.unlikely.*) *(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*) *(.text.exit .text.exit.*)
*(.text.startup .text.startup.*) *(.text.startup .text.startup.*)
@@ -87,16 +87,16 @@ LOAD tmp/arm64-darwin.macho-main.o
0x000000000040018c mmap 0x000000000040018c mmap
0x0000000000400198 pread 0x0000000000400198 pread
0x00000000004001a4 bswap 0x00000000004001a4 bswap
.text 0x00000000004001d0 0xea4 tmp/arm64-darwin.macho-main.o .text 0x00000000004001d0 0xf68 tmp/arm64-darwin.macho-main.o
0x0000000000400898 do_xmap 0x0000000000400898 do_xmap
0x0000000000400dbc upx_main 0x0000000000400e78 upx_main
*(.gnu.warning) *(.gnu.warning)
.fini .fini
*(SORT(.fini)) *(SORT(.fini))
0x0000000000401074 PROVIDE (__etext, .) 0x0000000000401138 PROVIDE (__etext, .)
0x0000000000401074 PROVIDE (_etext, .) 0x0000000000401138 PROVIDE (_etext, .)
0x0000000000401074 PROVIDE (etext, .) 0x0000000000401138 PROVIDE (etext, .)
.rodata .rodata
*(.rodata .rodata.* .gnu.linkonce.r.*) *(.rodata .rodata.* .gnu.linkonce.r.*)
@@ -107,9 +107,9 @@ LOAD tmp/arm64-darwin.macho-main.o
.eh_frame_hdr .eh_frame_hdr
*(.eh_frame_hdr) *(.eh_frame_hdr)
.eh_frame 0x0000000000401078 0x1c8 .eh_frame 0x0000000000401138 0x1c8
*(.eh_frame) *(.eh_frame)
.eh_frame 0x0000000000401078 0x1c8 tmp/arm64-darwin.macho-main.o .eh_frame 0x0000000000401138 0x1c8 tmp/arm64-darwin.macho-main.o
0x1b8 (size before relaxing) 0x1b8 (size before relaxing)
.gcc_except_table .gcc_except_table
@@ -117,8 +117,8 @@ LOAD tmp/arm64-darwin.macho-main.o
.exception_ranges .exception_ranges
*(.exception_ranges .exception_ranges*) *(.exception_ranges .exception_ranges*)
0x0000000000401240 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff)) 0x0000000000401300 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff))
0x0000000000411240 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000) 0x0000000000411300 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000)
.eh_frame .eh_frame
*(.eh_frame) *(.eh_frame)
@@ -136,22 +136,22 @@ LOAD tmp/arm64-darwin.macho-main.o
*(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tbss .tbss.* .gnu.linkonce.tb.*)
*(.tcommon) *(.tcommon)
.preinit_array 0x0000000000411240 0x0 .preinit_array 0x0000000000411300 0x0
0x0000000000411240 PROVIDE (__preinit_array_start, .) 0x0000000000411300 PROVIDE (__preinit_array_start, .)
*(.preinit_array) *(.preinit_array)
0x0000000000411240 PROVIDE (__preinit_array_end, .) 0x0000000000411300 PROVIDE (__preinit_array_end, .)
.init_array 0x0000000000411240 0x0 .init_array 0x0000000000411300 0x0
0x0000000000411240 PROVIDE (__init_array_start, .) 0x0000000000411300 PROVIDE (__init_array_start, .)
*(SORT(.init_array.*)) *(SORT(.init_array.*))
*(.init_array) *(.init_array)
0x0000000000411240 PROVIDE (__init_array_end, .) 0x0000000000411300 PROVIDE (__init_array_end, .)
.fini_array 0x0000000000411240 0x0 .fini_array 0x0000000000411300 0x0
0x0000000000411240 PROVIDE (__fini_array_start, .) 0x0000000000411300 PROVIDE (__fini_array_start, .)
*(SORT(.fini_array.*)) *(SORT(.fini_array.*))
*(.fini_array) *(.fini_array)
0x0000000000411240 PROVIDE (__fini_array_end, .) 0x0000000000411300 PROVIDE (__fini_array_end, .)
.ctors .ctors
*crtbegin.o(.ctors) *crtbegin.o(.ctors)
@@ -180,43 +180,43 @@ LOAD tmp/arm64-darwin.macho-main.o
.got .got
*(.got) *(.got)
*(.igot) *(.igot)
0x0000000000411240 . = DATA_SEGMENT_RELRO_END (., 0x18) 0x0000000000411300 . = DATA_SEGMENT_RELRO_END (., 0x18)
.got.plt 0x0000000000411240 0x0 .got.plt 0x0000000000411300 0x0
*(.got.plt) *(.got.plt)
*(.igot.plt) *(.igot.plt)
.igot.plt 0x0000000000411240 0x0 tmp/arm64-darwin.macho-fold.o .igot.plt 0x0000000000411300 0x0 tmp/arm64-darwin.macho-fold.o
.data 0x0000000000411240 0x0 .data 0x0000000000411300 0x0
0x0000000000411240 PROVIDE (__data_start, .) 0x0000000000411300 PROVIDE (__data_start, .)
*(.data .data.* .gnu.linkonce.d.*) *(.data .data.* .gnu.linkonce.d.*)
.data 0x0000000000411240 0x0 tmp/arm64-darwin.macho-fold.o .data 0x0000000000411300 0x0 tmp/arm64-darwin.macho-fold.o
.data 0x0000000000411240 0x0 tmp/arm64-darwin.macho-main.o .data 0x0000000000411300 0x0 tmp/arm64-darwin.macho-main.o
.data1 .data1
*(.data1) *(.data1)
0x0000000000411240 _edata = . 0x0000000000411300 _edata = .
0x0000000000411240 PROVIDE (edata, .) 0x0000000000411300 PROVIDE (edata, .)
0x0000000000411240 . = . 0x0000000000411300 . = .
0x0000000000411240 __bss_start = . 0x0000000000411300 __bss_start = .
0x0000000000411240 __bss_start__ = . 0x0000000000411300 __bss_start__ = .
.bss 0x0000000000411240 0x0 .bss 0x0000000000411300 0x0
*(.dynbss) *(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*) *(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x0000000000411240 0x0 tmp/arm64-darwin.macho-fold.o .bss 0x0000000000411300 0x0 tmp/arm64-darwin.macho-fold.o
.bss 0x0000000000411240 0x0 tmp/arm64-darwin.macho-main.o .bss 0x0000000000411300 0x0 tmp/arm64-darwin.macho-main.o
*(COMMON) *(COMMON)
0x0000000000411240 . = ALIGN ((. != 0x0)?0x8:0x1) 0x0000000000411300 . = ALIGN ((. != 0x0)?0x8:0x1)
0x0000000000411240 _bss_end__ = . 0x0000000000411300 _bss_end__ = .
0x0000000000411240 __bss_end__ = . 0x0000000000411300 __bss_end__ = .
0x0000000000411240 . = ALIGN (0x8) 0x0000000000411300 . = ALIGN (0x8)
0x0000000000411240 . = SEGMENT_START ("ldata-segment", .) 0x0000000000411300 . = SEGMENT_START ("ldata-segment", .)
0x0000000000411240 . = ALIGN (0x8) 0x0000000000411300 . = ALIGN (0x8)
0x0000000000411240 __end__ = . 0x0000000000411300 __end__ = .
0x0000000000411240 _end = . 0x0000000000411300 _end = .
0x0000000000411240 PROVIDE (end, .) 0x0000000000411300 PROVIDE (end, .)
0x0000000000411240 . = DATA_SEGMENT_END (.) 0x0000000000411300 . = DATA_SEGMENT_END (.)
.stab .stab
*(.stab) *(.stab)