diff --git a/src/p_mach.cpp b/src/p_mach.cpp index b8ac99d7..952878e5 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -1410,11 +1410,19 @@ void PackMachBase::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e unsigned cmdsize = mhdro.sizeofcmds - sizeof(segXHDR); Mach_header const *const ptr0 = (Mach_header const *)stub_main; Mach_command const *ptr1 = (Mach_command const *)(1+ ptr0); - for (unsigned j = 0; j < mhdro.ncmds -1; ++j, - (cmdsize -= ptr1->cmdsize), + for (unsigned j = 0; j < mhdro.ncmds -1; ++j, (cmdsize -= ptr1->cmdsize), ptr1 = (Mach_command const *)(ptr1->cmdsize + (char const *)ptr1)) { if (lc_seg == ptr1->cmd) { Mach_segment_command const *const segptr = (Mach_segment_command const *)ptr1; + Mach_section_command const *const secptr = (Mach_section_command const *)(1+ segptr); + if (!strcmp("__TEXT", segptr->segname)) { + strncpy((char *)secTEXT.segname, "__TEXT", sizeof(secTEXT.segname)); + strncpy((char *)secTEXT.sectname, "upxTEXT", sizeof(secTEXT.sectname)); + secTEXT.addr = secptr->addr; + secTEXT.size = secptr->size; // update later + secTEXT.offset = secptr->offset; + secTEXT.align = secptr->align; + } if (!strcmp("__LINKEDIT", segptr->segname)) { // Mach_command before __LINKEDIT pos += (char const *)ptr1 - (char const *)(1+ ptr0); @@ -1426,6 +1434,7 @@ void PackMachBase::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e fo->write((char const *)ptr1, cmdsize); // Contents before __LINKEDIT; put non-headers at same offset in file fo->write(&stub_main[pos], segptr->fileoff - pos); + sz_mach_headers = fo->getBytesWritten(); break; } } @@ -1443,7 +1452,6 @@ void PackMachBase::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e if (!(1 <= segptr->nsects)) { throwCantPack("TEXT.nsects == 0"); } - mhdro.sizeofcmds += segTEXT.cmdsize - ptr->cmdsize; strncpy((char *)secTEXT.sectname, "upxTEXT", sizeof(secTEXT.sectname)); secTEXT.addr = secptr->addr; secTEXT.size = secptr->size; // update later @@ -1463,13 +1471,14 @@ void PackMachBase::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e memset(&linkitem, 0, sizeof(linkitem)); fo->write(&linkitem, sizeof(linkitem)); fo->write(rawmseg, mhdri.sizeofcmds); + + sz_mach_headers = fo->getBytesWritten(); + unsigned gap = secTEXT.offset - sz_mach_headers; + MemBuffer filler(gap); + memset(filler, 0, gap); + fo->write(filler, gap); + sz_mach_headers += gap; } - sz_mach_headers = fo->getBytesWritten(); - unsigned gap = secTEXT.offset - sz_mach_headers; - MemBuffer filler(gap); - memset(filler, 0, gap); - fo->write(filler, gap); - sz_mach_headers += gap; memset((char *)&linfo, 0, sizeof(linfo)); fo->write(&linfo, sizeof(linfo)); diff --git a/src/stub/amd64-darwin.macho-entry.h b/src/stub/amd64-darwin.macho-entry.h index 7dc7e325..0847ee10 100644 --- a/src/stub/amd64-darwin.macho-entry.h +++ b/src/stub/amd64-darwin.macho-entry.h @@ -1,5 +1,5 @@ /* amd64-darwin.macho-entry.h - created from amd64-darwin.macho-entry.bin, 9649 (0x25b1) bytes + created from amd64-darwin.macho-entry.bin, 9461 (0x24f5) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_AMD64_DARWIN_MACHO_ENTRY_SIZE 9649 -#define STUB_AMD64_DARWIN_MACHO_ENTRY_ADLER32 0xd412b5bf -#define STUB_AMD64_DARWIN_MACHO_ENTRY_CRC32 0x4177ff27 +#define STUB_AMD64_DARWIN_MACHO_ENTRY_SIZE 9461 +#define STUB_AMD64_DARWIN_MACHO_ENTRY_ADLER32 0xaefa8e82 +#define STUB_AMD64_DARWIN_MACHO_ENTRY_CRC32 0x36dd9b86 -unsigned char stub_amd64_darwin_macho_entry[9649] = { +unsigned char stub_amd64_darwin_macho_entry[9461] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 96, 24, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 88, 24, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0040 */ 76, 0,131,249, 73,117, 68, 83, 87, 72,141, 76, 55,253, 94, 86, /* 0x0050 */ 91,235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114, 10, 60, @@ -413,231 +413,219 @@ unsigned char stub_amd64_darwin_macho_entry[9649] = { /* 0x1760 */ 72,141,116, 25, 11,139, 59, 72,141,188, 31,203, 0, 0, 0,253, /* 0x1770 */ 243,164, 72,141,147,128, 0, 0, 0, 72,137,222, 72,141,127, 1, /* 0x1780 */ 82,252,173, 80, 72,137,225,173, 80,173, 68, 15,182,192, 94,255, -/* 0x1790 */ 213, 89, 72,141, 93,247,195, 93,232,191,255,255,255, 0, 0, 0, -/* 0x17a0 */ 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, -/* 0x17b0 */ 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105, -/* 0x17c0 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, -/* 0x17d0 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, -/* 0x17e0 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x17f0 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1800 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65, -/* 0x1810 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 65, -/* 0x1820 */ 77, 68, 54, 52, 66, 88, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1830 */ 48, 48, 48, 52, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1840 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1860 */ 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1870 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x1880 */ 49, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, -/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 53, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x18b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x18c0 */ 48, 48, 48, 48, 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x18d0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x18e0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 77, 65, 67, 72, -/* 0x18f0 */ 95, 85, 78, 67, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1900 */ 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1910 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1920 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 57, 49, -/* 0x1930 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1940 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, -/* 0x1950 */ 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1960 */ 48, 48, 48, 54, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1980 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1990 */ 48, 57, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x19a0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x19b0 */ 52, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x19c0 */ 48, 48, 48, 48, 48, 48, 98, 55, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x19f0 */ 48, 48, 48, 49, 48, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x1a00 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x1a10 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, -/* 0x1a20 */ 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1a30 */ 57,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a40 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 98, 55, -/* 0x1a60 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1a70 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x1a80 */ 89, 10, 32, 32, 54, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, -/* 0x1a90 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 48, 32, 32, 48, 48, -/* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ac0 */ 32, 32, 48, 48, 48, 48, 48, 50, 53, 53, 32, 32, 50, 42, 42, 48, -/* 0x1ad0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, -/* 0x1ae0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, -/* 0x1af0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, -/* 0x1b00 */ 48, 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1b30 */ 48, 50,101, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x1b40 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, -/* 0x1b50 */ 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, -/* 0x1b60 */ 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, -/* 0x1b70 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b80 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b90 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 52, 57, 32, 32, -/* 0x1ba0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x1bb0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, -/* 0x1bc0 */ 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x1bd0 */ 57,102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1be0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 52, -/* 0x1c00 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x1c10 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, -/* 0x1c20 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, -/* 0x1c30 */ 48, 48, 48, 48, 49, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1c60 */ 49, 55, 51, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, -/* 0x1c70 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x1c80 */ 49, 49, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, -/* 0x1c90 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x1cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1cc0 */ 48, 48, 48, 49, 55, 52, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x1cd0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x1ce0 */ 89, 10, 32, 49, 50, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, -/* 0x1cf0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 49, 32, 32, 48, 48, -/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d20 */ 32, 32, 48, 48, 48, 48, 49, 55, 52, 98, 32, 32, 50, 42, 42, 48, -/* 0x1d30 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x1d40 */ 79, 78, 76, 89, 10, 32, 49, 51, 32, 77, 65, 67, 72, 77, 65, 73, -/* 0x1d50 */ 78, 90, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 52, 53, 32, -/* 0x1d60 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d70 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d80 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 53, 99, 32, 32, 50, -/* 0x1d90 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x1da0 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, -/* 0x1db0 */ 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, -/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1dd0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, -/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1df0 */ 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1e10 */ 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, -/* 0x1e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, -/* 0x1e30 */ 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1e50 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, -/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, -/* 0x1e70 */ 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x1e90 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, -/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, -/* 0x1eb0 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ec0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 65, 77, -/* 0x1ed0 */ 68, 54, 52, 66, 88, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 32, 65, 77, 68, 54, 52, 66, 88, 88, -/* 0x1ef0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f00 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, -/* 0x1f10 */ 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f20 */ 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, -/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1f40 */ 108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 95, 85, 78, 67, -/* 0x1f50 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f60 */ 48, 32, 77, 65, 67, 72, 95, 85, 78, 67, 10, 48, 48, 48, 48, 48, -/* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x1f80 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, -/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, -/* 0x1fa0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1fb0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, -/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1fd0 */ 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1fe0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x1ff0 */ 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2000 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, -/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x2020 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x2030 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2040 */ 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, -/* 0x2050 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x2060 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x2070 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2080 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, -/* 0x2090 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x20a0 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, -/* 0x20b0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x20c0 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, -/* 0x20d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x20e0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, -/* 0x20f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x2100 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, -/* 0x2120 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, -/* 0x2130 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, -/* 0x2140 */ 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2150 */ 48, 48, 49, 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, -/* 0x2160 */ 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2170 */ 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111, -/* 0x2180 */ 109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2190 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x21a0 */ 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x21b0 */ 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, -/* 0x21c0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, -/* 0x21d0 */ 68, 83, 32, 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, -/* 0x21e0 */ 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, -/* 0x21f0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, -/* 0x2200 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, -/* 0x2210 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, -/* 0x2220 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, -/* 0x2230 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, -/* 0x2240 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, 55, 10, 10, 82, 69, -/* 0x2250 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x2260 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, -/* 0x2270 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, -/* 0x2280 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2290 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x22a0 */ 48, 48, 48, 48, 48, 97,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, -/* 0x22b0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, -/* 0x22c0 */ 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x22d0 */ 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x22e0 */ 48, 48, 48, 48, 53, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, -/* 0x22f0 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, -/* 0x2300 */ 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102, -/* 0x2310 */ 102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, -/* 0x2320 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, -/* 0x2330 */ 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x2340 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x2350 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 53, -/* 0x2370 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, -/* 0x2380 */ 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, -/* 0x2390 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, -/* 0x23a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 98, 32, -/* 0x23b0 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, -/* 0x23c0 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 43, 48,120,102,102, -/* 0x23d0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10, -/* 0x23e0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, -/* 0x23f0 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, -/* 0x2400 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2410 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2420 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x2430 */ 48, 48, 48, 48, 48, 48, 48, 56, 97, 32, 82, 95, 88, 56, 54, 95, -/* 0x2440 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, -/* 0x2450 */ 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2460 */ 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2470 */ 48, 48, 48, 48, 48, 48, 53, 50, 32, 82, 95, 88, 56, 54, 95, 54, -/* 0x2480 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, -/* 0x2490 */ 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102, -/* 0x24a0 */ 102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x24b0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x24c0 */ 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, -/* 0x24d0 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, -/* 0x24e0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x24f0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2500 */ 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, -/* 0x2510 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, -/* 0x2520 */ 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2530 */ 48, 48, 48, 48, 48, 49, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x2540 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x2550 */ 91, 77, 65, 67, 72, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, -/* 0x2560 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, -/* 0x2570 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2580 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2590 */ 48, 48, 48, 48, 52, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, -/* 0x25a0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, -/* 0x25b0 */ 10 +/* 0x1790 */ 213, 89, 72,141, 93,247,195, 93,232,191,255,255,255,102,105,108, +/* 0x17a0 */ 101, 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,120, +/* 0x17b0 */ 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, +/* 0x17c0 */ 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, +/* 0x17d0 */ 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, +/* 0x17e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x17f0 */ 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1800 */ 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, +/* 0x1810 */ 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 65, 77, 68, 54, 52, +/* 0x1820 */ 66, 88, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 52, +/* 0x1830 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1840 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1850 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, +/* 0x1860 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1870 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 77, 65, +/* 0x1880 */ 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1890 */ 48, 48, 48, 53, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x18c0 */ 56, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x18d0 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x18e0 */ 78, 76, 89, 10, 32, 32, 50, 32, 77, 65, 67, 72, 95, 85, 78, 67, +/* 0x18f0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, +/* 0x1900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1910 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1920 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 57, 49, 32, 32, 50, 42, +/* 0x1930 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1940 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 95, 72, +/* 0x1950 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, +/* 0x1960 */ 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1970 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1980 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 57, 57, 32, +/* 0x1990 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x19a0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, +/* 0x19b0 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x19c0 */ 48, 48, 98, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, +/* 0x19f0 */ 48, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1a00 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, +/* 0x1a10 */ 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, 68, 32, 32, 32, +/* 0x1a20 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57,101, 32, 32, +/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a40 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a50 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 98, 55, 32, 32, 50, 42, +/* 0x1a60 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, +/* 0x1a70 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x1a80 */ 54, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1a90 */ 48, 48, 48, 48, 48, 48, 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1ac0 */ 48, 48, 48, 50, 53, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1ad0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, +/* 0x1ae0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, +/* 0x1af0 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1b00 */ 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b10 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,101, 53, +/* 0x1b30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1b40 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, +/* 0x1b50 */ 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, +/* 0x1b60 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48, +/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b90 */ 32, 32, 48, 48, 48, 48, 48, 51, 52, 57, 32, 32, 50, 42, 42, 48, +/* 0x1ba0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, +/* 0x1bb0 */ 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1bc0 */ 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, +/* 0x1bd0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1be0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bf0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 52, 48, 32, 32, 50, +/* 0x1c00 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x1c10 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 76, 90, 77, 65, +/* 0x1c20 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1c30 */ 49, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c40 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 51, 55, +/* 0x1c60 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1c70 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 78, +/* 0x1c80 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x1c90 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, +/* 0x1cc0 */ 55, 52, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1cd0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, +/* 0x1ce0 */ 50, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, +/* 0x1cf0 */ 48, 48, 48, 48, 48, 48, 49, 49, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1d20 */ 48, 48, 49, 55, 52, 98, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1d30 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1d40 */ 10, 32, 49, 51, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, +/* 0x1d50 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 52, 49, 32, 32, 48, 48, 48, +/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1d80 */ 32, 48, 48, 48, 48, 49, 55, 53, 99, 32, 32, 50, 42, 42, 48, 32, +/* 0x1d90 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, +/* 0x1da0 */ 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, +/* 0x1db0 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1dc0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, +/* 0x1dd0 */ 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1de0 */ 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, +/* 0x1df0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1e00 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, +/* 0x1e10 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e20 */ 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, +/* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1e40 */ 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, +/* 0x1e50 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e60 */ 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, +/* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1e80 */ 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9, 48, +/* 0x1e90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1ea0 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, +/* 0x1eb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1ec0 */ 100, 32, 32, 65, 77, 68, 54, 52, 66, 88, 88, 9, 48, 48, 48, 48, +/* 0x1ed0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 77, 68, +/* 0x1ee0 */ 54, 52, 66, 88, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ef0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, +/* 0x1f00 */ 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, +/* 0x1f20 */ 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f30 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, +/* 0x1f40 */ 72, 95, 85, 78, 67, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 95, 85, 78, 67, 10, +/* 0x1f60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f70 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, +/* 0x1f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1f90 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1fa0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, +/* 0x1fb0 */ 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1fc0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, +/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1fe0 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, +/* 0x1ff0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, +/* 0x2000 */ 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2010 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x2020 */ 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2030 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x2040 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2050 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x2060 */ 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2070 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x2080 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2090 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x20a0 */ 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x20b0 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x20c0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x20d0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, +/* 0x20e0 */ 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x20f0 */ 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, +/* 0x2100 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, +/* 0x2110 */ 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, +/* 0x2120 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2130 */ 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2140 */ 48, 48, 48, 48, 48, 48, 48, 49, 49, 32,103, 32, 32, 32, 32, 32, +/* 0x2150 */ 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, +/* 0x2160 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, +/* 0x2170 */ 95,100,101, 99,111,109,112,114,101,115,115, 10, 10, 82, 69, 76, +/* 0x2180 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x2190 */ 70, 79, 82, 32, 91, 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, +/* 0x21a0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x21b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x21c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x21d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, +/* 0x21e0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, +/* 0x21f0 */ 72, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, +/* 0x2200 */ 48, 48, 48, 48, 48, 48, 48, 51, 55, 10, 10, 82, 69, 76, 79, 67, +/* 0x2210 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, +/* 0x2220 */ 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x2230 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x2240 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x2250 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2260 */ 48, 48, 97,101, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, +/* 0x2270 */ 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, +/* 0x2280 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2290 */ 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x22a0 */ 48, 53, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, +/* 0x22b0 */ 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 43, +/* 0x22c0 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x22d0 */ 102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, +/* 0x22e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, +/* 0x22f0 */ 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, +/* 0x2300 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, +/* 0x2310 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, +/* 0x2320 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 53, 32, 82, 95, +/* 0x2330 */ 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, +/* 0x2340 */ 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, +/* 0x2350 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, +/* 0x2360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 98, 32, 82, 95, 88, +/* 0x2370 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 77, +/* 0x2380 */ 65, 67, 72, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102, +/* 0x2390 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, +/* 0x23a0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x23b0 */ 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, +/* 0x23c0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, +/* 0x23d0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x23e0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x23f0 */ 48, 48, 48, 48, 56, 97, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, +/* 0x2400 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, +/* 0x2410 */ 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2420 */ 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2430 */ 48, 48, 48, 53, 50, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, +/* 0x2440 */ 67, 51, 50, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, +/* 0x2450 */ 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x2460 */ 102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x2470 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, +/* 0x2480 */ 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, +/* 0x2490 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, +/* 0x24a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x24b0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x24c0 */ 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, +/* 0x24d0 */ 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, +/* 0x24e0 */ 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x24f0 */ 48, 48, 49, 48, 10 }; diff --git a/src/stub/src/amd64-darwin.macho-entry.S b/src/stub/src/amd64-darwin.macho-entry.S index 5ee14053..e8e1d199 100644 --- a/src/stub/src/amd64-darwin.macho-entry.S +++ b/src/stub/src/amd64-darwin.macho-entry.S @@ -223,7 +223,6 @@ unfold: main: pop %rbp // &decompress call unfold - .long O_BINFO // compressed fold_elf86 follows /* vim:set ts=8 sw=8 et: */ diff --git a/src/stub/tmp/amd64-darwin.macho-entry.bin.dump b/src/stub/tmp/amd64-darwin.macho-entry.bin.dump index 94aef84d..d2bcb282 100644 --- a/src/stub/tmp/amd64-darwin.macho-entry.bin.dump +++ b/src/stub/tmp/amd64-darwin.macho-entry.bin.dump @@ -15,7 +15,7 @@ Idx Name Size VMA LMA File off Algn 10 LZMA_DEC30 00000014 0000000000000000 0000000000000000 00001737 2**0 CONTENTS, READONLY 11 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000174b 2**0 CONTENTS, READONLY 12 MACHMAINY 00000011 0000000000000000 0000000000000000 0000174b 2**0 CONTENTS, READONLY - 13 MACHMAINZ 00000045 0000000000000000 0000000000000000 0000175c 2**0 CONTENTS, RELOC, READONLY + 13 MACHMAINZ 00000041 0000000000000000 0000000000000000 0000175c 2**0 CONTENTS, READONLY SYMBOL TABLE: 0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 @@ -33,7 +33,6 @@ SYMBOL TABLE: 0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL 0000000000000000 g MACHMAINX 0000000000000000 _start 0000000000000011 g MACHMAINY 0000000000000000 end_decompress -0000000000000000 *UND* 0000000000000000 O_BINFO RELOCATION RECORDS FOR [MACHMAINX]: OFFSET TYPE VALUE @@ -57,7 +56,3 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [LZMA_ELF00]: OFFSET TYPE VALUE 0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000010 - -RELOCATION RECORDS FOR [MACHMAINZ]: -OFFSET TYPE VALUE -0000000000000041 R_X86_64_32 O_BINFO